OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [ext/] [java-2.C] - Rev 693

Compare with Previous | Blame | View Log

// PR c++/30293
// PR c++/30294
// { dg-do compile { target { ! { powerpc-ibm-aix* } } } }
// { dg-options "" }

extern "Java" {
typedef __java_byte jbyte;
namespace java {
namespace lang {
  class Object {};
  class Class {};
}
}
typedef struct java::lang::Object* jobject;
typedef java::lang::Class *jclass;
}
extern "C" jobject _Jv_AllocObject (jclass);

extern "Java" {
  struct A { static java::lang::Class class$; };
}

struct B {
  A a;          // { dg-error "has Java class type" }
};

void* operator new (__SIZE_TYPE__, void*) throw();
char buf[1024];

A a;            // { dg-error "not allocated with" }
A b = A ();     // { dg-error "not allocated with" }
A *c = new ((void *) buf) A (); // { dg-error "using placement new" }
A *d = new A ();
jbyte e = 6;

const A fn1 ()  // { dg-error "return type has Java class type" }
{
  A a;          // { dg-error "not allocated with" }
  return a;
}

A fn2 ()        // { dg-error "return type has Java class type" }
{
  A a;          // { dg-error "not allocated with" }
  return a;
}

A *fn3 ()
{
  return new A ();
}

A &fn4 ()
{
  return *c;
}

jbyte fn5 ()
{
  return 7;
}

void fn6 (A x)  // { dg-error "has Java class type" }
{
}

void fn7 (const A x)    // { dg-error "has Java class type" }
{
}

void fn8 (A *x)
{
  (void) x;
}

void fn9 (jbyte x)
{
  (void) x;
}

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.