Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / gcc / testsuite / g++.dg / lookup / java2.C
blob26fd36922b626b64335bb92751d52712a3f5709a
1 // { dg-do compile }
2 // { dg-options "-fdollars-in-identifiers" }
3 // Origin: Giovanni Bajo <giovannibajo at libero dot it>
4 // Make sure that Java special functions can be called correctly.
5 // (continue from java1.C)
7 extern "Java"
9   typedef __java_int jint;
10   namespace java
11   {
12     namespace lang
13     {
14       class Class;
15       class Object;
16       class Throwable {};
17       class Foo;
18     }
19   }
22 typedef struct java::lang::Object* jobject;
23 typedef struct java::lang::Throwable* jthrowable;
24 typedef class java::lang::Class* jclass;
25 using java::lang::Foo;
27 class Foo : public java::lang::Throwable
29 public:
30   static ::java::lang::Class class$;
34  * Step 4: Manual declaration of _Jv_Throw
35  *  This is the last case we need to test. In the other file we're testing
36  *  the compiler is able to generate an artifical declaration for this 
37  *  function, so we need to test here if it works with a normal declaration.
38  */
40 extern "C" jobject _Jv_AllocObject (jclass) __attribute__((__malloc__));
41 extern "C" void _Jv_Throw (jthrowable) __attribute__ ((__noreturn__));
43 void Bar4(void)
45   Foo* f = new java::lang::Foo;
46   throw (f);