Merge from mainline (167278:168000).
[official-gcc/graphite-test-results.git] / gcc / testsuite / g++.dg / ext / java-2.C
blob8114517b942c685af0b57e3bfe7af02828c0ff8b
1 // PR c++/30293
2 // PR c++/30294
3 // { dg-do compile { target { ! { powerpc-ibm-aix* } } } }
4 // { dg-options "" }
6 extern "Java" {
7 typedef __java_byte jbyte;
8 namespace java {
9 namespace lang {
10   class Object {};
11   class Class {};
14 typedef struct java::lang::Object* jobject;
15 typedef java::lang::Class *jclass;
17 extern "C" jobject _Jv_AllocObject (jclass);
19 extern "Java" {
20   struct A { static java::lang::Class class$; };
23 struct B {
24   A a;          // { dg-error "has Java class type" }
27 void* operator new (__SIZE_TYPE__, void*) throw();
28 char buf[1024];
30 A a;            // { dg-error "not allocated with" }
31 A b = A ();     // { dg-error "not allocated with" }
32 A *c = new ((void *) buf) A (); // { dg-error "using placement new" }
33 A *d = new A ();
34 jbyte e = 6;
36 const A fn1 ()  // { dg-error "return type has Java class type" }
38   A a;          // { dg-error "not allocated with" }
39   return a;
42 A fn2 ()        // { dg-error "return type has Java class type" }
44   A a;          // { dg-error "not allocated with" }
45   return a;
48 A *fn3 ()
50   return new A ();
53 A &fn4 ()
55   return *c;
58 jbyte fn5 ()
60   return 7;
63 void fn6 (A x)  // { dg-error "has Java class type" }
67 void fn7 (const A x)    // { dg-error "has Java class type" }
71 void fn8 (A *x)
73   (void) x;
76 void fn9 (jbyte x)
78   (void) x;