? temp.diff.txt ? lib/temp.diff.txt Index: gcc.dg/visibility-1.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/visibility-1.c,v retrieving revision 1.1 diff -u -p -r1.1 visibility-1.c --- gcc.dg/visibility-1.c 10 Dec 2003 06:34:45 -0000 1.1 +++ gcc.dg/visibility-1.c 28 Oct 2004 01:28:42 -0000 @@ -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"))) Index: gcc.dg/visibility-2.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/visibility-2.c,v retrieving revision 1.1 diff -u -p -r1.1 visibility-2.c --- gcc.dg/visibility-2.c 10 Dec 2003 06:34:45 -0000 1.1 +++ gcc.dg/visibility-2.c 28 Oct 2004 01:28:42 -0000 @@ -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"))) Index: gcc.dg/visibility-3.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/visibility-3.c,v retrieving revision 1.1 diff -u -p -r1.1 visibility-3.c --- gcc.dg/visibility-3.c 10 Dec 2003 06:34:45 -0000 1.1 +++ gcc.dg/visibility-3.c 28 Oct 2004 01:28:42 -0000 @@ -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"))) Index: gcc.dg/visibility-4.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/visibility-4.c,v retrieving revision 1.1 diff -u -p -r1.1 visibility-4.c --- gcc.dg/visibility-4.c 10 Dec 2003 06:34:45 -0000 1.1 +++ gcc.dg/visibility-4.c 28 Oct 2004 01:28:42 -0000 @@ -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"))) Index: gcc.dg/visibility-5.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/visibility-5.c,v retrieving revision 1.1 diff -u -p -r1.1 visibility-5.c --- gcc.dg/visibility-5.c 10 Dec 2003 06:34:45 -0000 1.1 +++ gcc.dg/visibility-5.c 28 Oct 2004 01:28:42 -0000 @@ -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(); Index: gcc.dg/visibility-6.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/visibility-6.c,v retrieving revision 1.1 diff -u -p -r1.1 visibility-6.c --- gcc.dg/visibility-6.c 10 Dec 2003 06:34:45 -0000 1.1 +++ gcc.dg/visibility-6.c 28 Oct 2004 01:28:42 -0000 @@ -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; Index: gcc.dg/visibility-7.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/visibility-7.c,v retrieving revision 1.2 diff -u -p -r1.2 visibility-7.c --- gcc.dg/visibility-7.c 11 Jan 2004 01:18:58 -0000 1.2 +++ gcc.dg/visibility-7.c 28 Oct 2004 01:28:42 -0000 @@ -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"))) Index: gcc.dg/visibility-8.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/visibility-8.c,v retrieving revision 1.2 diff -u -p -r1.2 visibility-8.c --- gcc.dg/visibility-8.c 8 Feb 2004 01:59:11 -0000 1.2 +++ gcc.dg/visibility-8.c 28 Oct 2004 01:28:42 -0000 @@ -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") Index: gcc.dg/visibility-9.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/visibility-9.c,v retrieving revision 1.1 diff -u -p -r1.1 visibility-9.c --- gcc.dg/visibility-9.c 25 Jul 2004 22:52:22 -0000 1.1 +++ gcc.dg/visibility-9.c 28 Oct 2004 01:28:42 -0000 @@ -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(); Index: gcc.dg/visibility-a.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/visibility-a.c,v retrieving revision 1.1 diff -u -p -r1.1 visibility-a.c --- gcc.dg/visibility-a.c 25 Jul 2004 22:52:22 -0000 1.1 +++ gcc.dg/visibility-a.c 28 Oct 2004 01:28:42 -0000 @@ -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(); Index: lib/scanasm.exp =================================================================== RCS file: /cvs/gcc/gcc/gcc/testsuite/lib/scanasm.exp,v retrieving revision 1.13 diff -u -p -r1.13 scanasm.exp --- lib/scanasm.exp 6 Aug 2004 02:03:29 -0000 1.13 +++ lib/scanasm.exp 28 Oct 2004 01:28:54 -0000 @@ -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 } Index: lib/target-supports.exp =================================================================== RCS file: /cvs/gcc/gcc/gcc/testsuite/lib/target-supports.exp,v retrieving revision 1.23 diff -u -p -r1.23 target-supports.exp --- lib/target-supports.exp 28 Oct 2004 00:16:57 -0000 1.23 +++ lib/target-supports.exp 28 Oct 2004 01:28:54 -0000 @@ -88,6 +88,7 @@ proc check_visibility_available { } { switch $objformat { elf { return 1 } + mach-o { return 1 } unknown { return -1 } default { return 0 } }