diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/weak/weak-1.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/weak/weak-1.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/weak/weak-1.c b/gcc/testsuite/gcc.dg/weak/weak-1.c new file mode 100644 index 000000000..078c3ef36 --- /dev/null +++ b/gcc/testsuite/gcc.dg/weak/weak-1.c @@ -0,0 +1,51 @@ +/* { dg-do compile } */ +/* { dg-require-weak "" } */ +/* { dg-options "-fno-common" } */ + +/* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?a" } } */ +/* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?b" } } */ +/* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?c" } } */ +/* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?d" } } */ +/* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?e" } } */ +/* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?g" } } */ +/* { dg-final { scan-assembler-not "weak\[^ \t\]*\[ \t\]_?i" } } */ +/* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?j" } } */ + +#pragma weak a +int a; + +int b; +#pragma weak b + +#pragma weak c +extern int c; +int c; + +extern int d; +#pragma weak d +int d; + +#pragma weak e +void e(void) { } + +#if 0 +/* This permutation is illegal. */ +void f(void) { } +#pragma weak f +#endif + +#pragma weak g +int g = 1; + +#if 0 +/* This permutation is illegal. */ +int h = 1; +#pragma weak h +#endif + +#pragma weak i +extern int i; + +#pragma weak j +extern int j; +int use_j() { return j; } |