diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2004-10-28 23:38:47 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2004-10-28 16:38:47 -0700 |
commit | d533f1cb17580dea7f45d6ff7a1a371b796556e3 (patch) | |
tree | f7bb9a830096e0eda4a125d40d0604355b033c4c /gcc | |
parent | de66168d60454ab3cb39479bfe86a27254b679ea (diff) | |
download | gcc-d533f1cb17580dea7f45d6ff7a1a371b796556e3.zip gcc-d533f1cb17580dea7f45d6ff7a1a371b796556e3.tar.gz gcc-d533f1cb17580dea7f45d6ff7a1a371b796556e3.tar.bz2 |
visibility-[1-9a].c: Change to use scan-hidden instead of scan-assembler.
2004-10-28 Andrew Pinski <pinskia@physics.uc.edu>
* gcc.dg/visibility-[1-9a].c: Change to use scan-hidden instead of
scan-assembler.
* lib/scanasm.exp (hidden-scan-for): New proc.
(scan-hidden): Use hidden-scan-for instead of constructing the scan
string.
(scan-not-hidden): Likewise.
* lib/target-supports.exp (check_visibility_available): mach-o is
support too.
From-SVN: r89793
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/visibility-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/visibility-2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/visibility-3.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/visibility-4.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/visibility-5.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/visibility-6.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/visibility-7.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/visibility-8.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/visibility-9.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/visibility-a.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/visibility-b.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/lib/scanasm.exp | 24 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 1 |
14 files changed, 47 insertions, 13 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 556d330..c781e8b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2004-10-28 Andrew Pinski <pinskia@physics.uc.edu> + + * gcc.dg/visibility-[1-9a].c: Change to use scan-hidden instead of + scan-assembler. + * lib/scanasm.exp (hidden-scan-for): New proc. + (scan-hidden): Use hidden-scan-for instead of constructing the scan + string. + (scan-not-hidden): Likewise. + * lib/target-supports.exp (check_visibility_available): mach-o is + support too. + 2004-10-28 Mark Mitchell <mark@codesourcery.com> PR c++/17132 diff --git a/gcc/testsuite/gcc.dg/visibility-1.c b/gcc/testsuite/gcc.dg/visibility-1.c index f76c3ca..864b971 100644 --- a/gcc/testsuite/gcc.dg/visibility-1.c +++ b/gcc/testsuite/gcc.dg/visibility-1.c @@ -1,7 +1,7 @@ /* Test visibility attribute on function definition. */ /* { dg-do compile } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-assembler "\\.hidden.*foo" } } */ +/* { dg-final { scan-hidden "foo" } } */ void __attribute__((visibility ("hidden"))) diff --git a/gcc/testsuite/gcc.dg/visibility-2.c b/gcc/testsuite/gcc.dg/visibility-2.c index e62dbbb..0977aba 100644 --- a/gcc/testsuite/gcc.dg/visibility-2.c +++ b/gcc/testsuite/gcc.dg/visibility-2.c @@ -1,7 +1,7 @@ /* Test that visibility attribute on declaration extends to definition. */ /* { dg-do compile } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-assembler "\\.hidden.*foo" } } */ +/* { dg-final { scan-hidden "foo" } } */ void __attribute__((visibility ("hidden"))) diff --git a/gcc/testsuite/gcc.dg/visibility-3.c b/gcc/testsuite/gcc.dg/visibility-3.c index e0bf01f..cb5a715 100644 --- a/gcc/testsuite/gcc.dg/visibility-3.c +++ b/gcc/testsuite/gcc.dg/visibility-3.c @@ -1,7 +1,7 @@ /* Test visibility attribute on forward declaration of global variable */ /* { dg-do compile } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-assembler "\\.hidden.*xyzzy" } } */ +/* { dg-final { scan-hidden "xyzzy" } } */ int __attribute__((visibility ("hidden"))) diff --git a/gcc/testsuite/gcc.dg/visibility-4.c b/gcc/testsuite/gcc.dg/visibility-4.c index 1a0b3ca..af0d461 100644 --- a/gcc/testsuite/gcc.dg/visibility-4.c +++ b/gcc/testsuite/gcc.dg/visibility-4.c @@ -1,7 +1,7 @@ /* Test visibility attribute on forward declaration of global variable */ /* { dg-do compile } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-assembler "\\.hidden.*xyzzy" } } */ +/* { dg-final { scan-hidden "xyzzy" } } */ extern int __attribute__((visibility ("hidden"))) diff --git a/gcc/testsuite/gcc.dg/visibility-5.c b/gcc/testsuite/gcc.dg/visibility-5.c index b1f46d2..0302768 100644 --- a/gcc/testsuite/gcc.dg/visibility-5.c +++ b/gcc/testsuite/gcc.dg/visibility-5.c @@ -2,7 +2,7 @@ already had a forward declaration. */ /* { dg-do compile } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-assembler "\\.hidden.*foo" } } */ +/* { dg-final { scan-hidden "foo" } } */ void foo(); diff --git a/gcc/testsuite/gcc.dg/visibility-6.c b/gcc/testsuite/gcc.dg/visibility-6.c index 632f2ac..4e9deeb 100644 --- a/gcc/testsuite/gcc.dg/visibility-6.c +++ b/gcc/testsuite/gcc.dg/visibility-6.c @@ -2,7 +2,7 @@ already had a forward declaration. */ /* { dg-do compile } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-assembler "\\.hidden.*xyzzy" } } */ +/* { dg-final { scan-hidden "xyzzy" } } */ extern int xyzzy; diff --git a/gcc/testsuite/gcc.dg/visibility-7.c b/gcc/testsuite/gcc.dg/visibility-7.c index 5bdc2b0..f5e6e9a 100644 --- a/gcc/testsuite/gcc.dg/visibility-7.c +++ b/gcc/testsuite/gcc.dg/visibility-7.c @@ -1,7 +1,7 @@ /* Test warning from conflicting visibility specifications. */ /* { dg-do compile } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-assembler "\\.hidden.*xyzzy" } } */ +/* { dg-final { scan-hidden "xyzzy" } } */ extern int __attribute__((visibility ("hidden"))) diff --git a/gcc/testsuite/gcc.dg/visibility-8.c b/gcc/testsuite/gcc.dg/visibility-8.c index fc3a105..89f89c0 100644 --- a/gcc/testsuite/gcc.dg/visibility-8.c +++ b/gcc/testsuite/gcc.dg/visibility-8.c @@ -2,7 +2,7 @@ /* { dg-do compile } */ /* { dg-options "-std=gnu99" } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-assembler "\\.hidden.*__GI_fputs_unlocked" } } */ +/* { dg-final { scan-hidden "__GI_fputs_unlocked" } } */ int fputs_unlocked (const char *restrict, int *restrict) __asm__ ("__GI_fputs_unlocked") diff --git a/gcc/testsuite/gcc.dg/visibility-9.c b/gcc/testsuite/gcc.dg/visibility-9.c index ac6493e..9d57516 100644 --- a/gcc/testsuite/gcc.dg/visibility-9.c +++ b/gcc/testsuite/gcc.dg/visibility-9.c @@ -2,7 +2,7 @@ /* { dg-do compile } */ /* { dg-require-visibility "" } */ /* { dg-options "-fvisibility=hidden" } */ -/* { dg-final { scan-assembler "\\.hidden.*foo" } } */ +/* { dg-final { scan-hidden "foo" } } */ void foo(); diff --git a/gcc/testsuite/gcc.dg/visibility-a.c b/gcc/testsuite/gcc.dg/visibility-a.c index 1749234..23a51d7 100644 --- a/gcc/testsuite/gcc.dg/visibility-a.c +++ b/gcc/testsuite/gcc.dg/visibility-a.c @@ -1,7 +1,7 @@ /* Test that #pragma GCC visibility works. */ /* { dg-do compile } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-assembler "\\.hidden.*foo" } } */ +/* { dg-final { scan-hidden "foo" } } */ #pragma GCC visibility push(hidden) void foo(); diff --git a/gcc/testsuite/gcc.dg/visibility-b.c b/gcc/testsuite/gcc.dg/visibility-b.c index b1f1575..8b0c41d 100644 --- a/gcc/testsuite/gcc.dg/visibility-b.c +++ b/gcc/testsuite/gcc.dg/visibility-b.c @@ -1,4 +1,6 @@ -/* { dg-do assemble { target *-*-darwin* } } */ +/* { dg-do compile } */ +/* { dg-require-visibility "" } */ +/* { dg-final { scan-hidden "n" } } */ #define __private_extern__ extern __attribute__((visibility ("hidden"))) diff --git a/gcc/testsuite/lib/scanasm.exp b/gcc/testsuite/lib/scanasm.exp index 9116afc..33c574a 100644 --- a/gcc/testsuite/lib/scanasm.exp +++ b/gcc/testsuite/lib/scanasm.exp @@ -79,6 +79,21 @@ proc scan-assembler-not { args } { dg-scan "scan-assembler-not" 0 $testcase $output_file $args } +# Return the scan for the assembly for hidden visibility. + +proc hidden-scan-for { symbol } { + + set objformat [gcc_target_object_format] + + switch $objformat { + elf { return "hidden\[ \t_\]*$symbol" } + mach-o { return "private_extern\[ \t_\]*_?$symbol" } + default { return "" } + } + +} + + # Check that a symbol is defined as a hidden symbol in the .s file # produced by the compiler. @@ -87,7 +102,10 @@ proc scan-hidden { args } { set output_file "[file rootname [file tail $testcase]].s" set symbol [lindex $args 0] - set args [lreplace $args 0 0 "hidden\[ \t_\]*$symbol"] + + set hidden_scan [hidden-scan-for $symbol] + + set args [lreplace $args 0 0 "$hidden_scan"] dg-scan "scan-hidden" 1 $testcase $output_file $args } @@ -100,7 +118,9 @@ proc scan-not-hidden { args } { set output_file "[file rootname [file tail $testcase]].s" set symbol [lindex $args 0] - set args [lreplace $args 0 0 "hidden\[ \t_\]*$symbol"] + set hidden_scan [hidden-scan-for symbol] + + set args [lreplace $args 0 0 "$hidden_scan"] dg-scan "scan-not-hidden" 0 $testcase $output_file $args } diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index a737f5d..b968de2 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -88,6 +88,7 @@ proc check_visibility_available { } { switch $objformat { elf { return 1 } + mach-o { return 1 } unknown { return -1 } default { return 0 } } |