2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / gcc.dg / weak / weak-2.c
blob7f9cde5d0951e0d1fdcf0b172f3075b9e588c158
1 /* { dg-do compile } */
2 /* { dg-require-weak "" } */
3 /* { dg-options "-fno-common" } */
5 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?ffoo1a" } } */
6 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?ffoo1b" } } */
7 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?ffoo1c" } } */
8 /* { dg-final { scan-assembler-not "weak\[^ \t\]*\[ \t\]_?ffoo1d" } } */
9 /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?ffoo1e" } } */
11 /* test function addresses with #pragma weak */
13 #pragma weak ffoo1a
14 extern void * ffoo1a (void);
15 void * foo1a (void)
17 return (void *)ffoo1a;
20 extern void * ffoo1b (void);
21 #pragma weak ffoo1b
22 void * foo1b (void)
24 return (void *)ffoo1b;
27 extern void * ffoo1c (void); /* { dg-warning "applying #pragma weak" "applying #pragma weak" } */
28 void * foo1c (void)
30 return (void *)ffoo1c;
32 #pragma weak ffoo1c
35 int ffoo1d (void);
36 #pragma weak ffoo1d
39 extern void * ffoo1e (void);
40 #pragma weak ffoo1e
41 void * foo1e (void)
43 if (ffoo1e)
44 ffoo1e ();
45 return 0;