OSDN Git Service

Add -mlzcnt.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / other / pragma-re-1.C
1 /* { dg-final { scan-assembler "bar" } } */
2 /* { dg-final { scan-assembler-not "foo" } } */
3 /* { dg-final { scan-assembler "_Z3bazv" } } */
4 /* { dg-final { scan-assembler-not "baq" } } */
5 /* { dg-final { scan-assembler "tut" } } */
6 /* { dg-final { scan-assembler-not "gee" } } */
7 /* { dg-final { scan-assembler "bang" } } */
8 /* { dg-final { scan-assembler-not "whiz" } } */
9 /* { dg-final { scan-assembler "eek" } } */
10 /* { dg-final { scan-assembler-not "boo" } } */
11
12 #ifndef __PRAGMA_REDEFINE_EXTNAME
13 #error 
14 #endif
15
16 /* This one is expected to work.  */
17 #pragma redefine_extname foo bar
18 extern "C" int foo(void);
19 int (*p)(void) = foo;
20
21 /* This one is expected not to work (redefine_extname
22    can only be applied to extern "C" names).  */
23 #pragma redefine_extname baz baq
24 extern int baz(void);
25 int (*q)(void) = baz;
26
27 // PR c++/30112
28 // These are expected to work.
29 #pragma redefine_extname gee tut
30 namespace somewhere {
31   extern "C" int gee(void);
32   int (*r)(void) = gee;
33
34   extern "C" int whiz(void);
35   int whiz(int);
36 }
37 #pragma redefine_extname whiz bang
38 int (*s)() = somewhere::whiz;
39
40 namespace elsewhere {
41   extern "C" int whiz(void);
42 }
43 int (*t)() = elsewhere::whiz;
44
45 namespace A
46 {
47   extern "C" int boo(void);
48 }
49
50 namespace B
51 {
52   extern "C" int boo(void);
53 }
54 #pragma redefine_extname boo eek
55
56 int (*u)() = A::boo;
57 int (*v)() = B::boo;