From: David Edelsohn Date: Mon, 7 Nov 2016 20:33:30 +0000 (+0000) Subject: scanasm.exp (hidden-scan-for): Add XCOFF support. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fda2d61208385823f6b75f637eed60a9e77256c1;p=gcc.git scanasm.exp (hidden-scan-for): Add XCOFF support. * lib/scanasm.exp (hidden-scan-for): Add XCOFF support. * gfortran.dg/implicit_class_1.f90: Skip on AIX. * gcc.dg/visibility-14.c: XFAIL AIX. * gcc.dg/visibility-15.c: XFAIL AIX. * gcc.dg/visibility-16.c: XFAIL AIX. * gcc.dg/visibility-17.c: XFAIL AIX. * gcc.dg/visibility-18.c: XFAIL AIX. * gcc.dg/visibility-19.c: XFAIL AIX. * g++.dg/ext/visibility/anon1.C: XFAIL AIX. * g++.dg/ext/visibility/anon2.C: XFAIL AIX. * g++.dg/ext/visibility/pragma-override1.C: XFAIL AIX. * g++.dg/ext/visibility/pragma-override2.C: XFAIL AIX. From-SVN: r241934 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ba56fa6f682..5dc544e16fe 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,19 @@ +2016-11-07 David Edelsohn + + * lib/scanasm.exp (hidden-scan-for): Add XCOFF support. + + * gfortran.dg/implicit_class_1.f90: Skip on AIX. + * gcc.dg/visibility-14.c: XFAIL AIX. + * gcc.dg/visibility-15.c: XFAIL AIX. + * gcc.dg/visibility-16.c: XFAIL AIX. + * gcc.dg/visibility-17.c: XFAIL AIX. + * gcc.dg/visibility-18.c: XFAIL AIX. + * gcc.dg/visibility-19.c: XFAIL AIX. + * g++.dg/ext/visibility/anon1.C: XFAIL AIX. + * g++.dg/ext/visibility/anon2.C: XFAIL AIX. + * g++.dg/ext/visibility/pragma-override1.C: XFAIL AIX. + * g++.dg/ext/visibility/pragma-override2.C: XFAIL AIX. + 2016-11-07 Jakub Jelinek PR target/78227 diff --git a/gcc/testsuite/g++.dg/ext/visibility/anon1.C b/gcc/testsuite/g++.dg/ext/visibility/anon1.C index 1f3be3b774b..0135f931a6f 100644 --- a/gcc/testsuite/g++.dg/ext/visibility/anon1.C +++ b/gcc/testsuite/g++.dg/ext/visibility/anon1.C @@ -2,7 +2,7 @@ // Test for anonymous namespace internal linkage // { dg-do compile } -// { dg-final { scan-assembler-not "globl.*_ZN.*1fEv" } } +// { dg-final { scan-assembler-not "globl.*_ZN.*1fEv" { xfail *-*-aix* } } } // { dg-require-visibility "" } namespace diff --git a/gcc/testsuite/g++.dg/ext/visibility/anon2.C b/gcc/testsuite/g++.dg/ext/visibility/anon2.C index 49022963127..dcf0e64fa23 100644 --- a/gcc/testsuite/g++.dg/ext/visibility/anon2.C +++ b/gcc/testsuite/g++.dg/ext/visibility/anon2.C @@ -1,7 +1,7 @@ // Test for propagation of anonymous namespace internal linkage // { dg-do compile } -// { dg-final { scan-assembler-not "globl.*_Z1fv" } } +// { dg-final { scan-assembler-not "globl.*_Z1fv" { xfail *-*-aix* } } } // { dg-require-visibility "" } namespace diff --git a/gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C b/gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C index c13161d3ceb..b6bc0c5466a 100644 --- a/gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C +++ b/gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C @@ -1,7 +1,7 @@ /* Test that #pragma GCC visibility does not override class member specific settings. */ /* { dg-do compile } */ /* { dg-require-visibility "internal" } */ -/* { dg-final { scan-assembler "\\.internal.*Foo.methodEv" { target { ! { *-*-solaris2* *-*-darwin* } } } } } */ +/* { dg-final { scan-assembler "\\.internal.*Foo.methodEv" { target { ! { *-*-solaris2* *-*-darwin* *-*-aix* } } } } } */ /* { dg-final { scan-assembler "\\.(internal|hidden).*Foo.methodEv" { target *-*-solaris2* } } } */ #pragma GCC visibility push(hidden) diff --git a/gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C b/gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C index 25e9ceac076..8499ceff60a 100644 --- a/gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C +++ b/gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C @@ -1,7 +1,7 @@ /* Test that #pragma GCC visibility does not override class member specific settings. */ /* { dg-do compile } */ /* { dg-require-visibility "internal" } */ -/* { dg-final { scan-assembler "\\.internal.*Foo.methodEv" { target { ! { *-*-solaris2* *-*-darwin* } } } } } */ +/* { dg-final { scan-assembler "\\.internal.*Foo.methodEv" { target { ! { *-*-solaris2* *-*-darwin* *-*-aix* } } } } } */ /* { dg-final { scan-assembler "\\.(internal|hidden).*Foo.methodEv" { target *-*-solaris2* } } } */ #pragma GCC visibility push(hidden) diff --git a/gcc/testsuite/gcc.dg/visibility-14.c b/gcc/testsuite/gcc.dg/visibility-14.c index 1c01f8399db..e1d85f0ed25 100644 --- a/gcc/testsuite/gcc.dg/visibility-14.c +++ b/gcc/testsuite/gcc.dg/visibility-14.c @@ -2,7 +2,7 @@ /* { dg-do compile } */ /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-hidden "foo" } } */ +/* { dg-final { scan-hidden "foo" { xfail *-*-aix* } } } */ extern void foo(void) __attribute__ ((visibility ("hidden"))); int f () { diff --git a/gcc/testsuite/gcc.dg/visibility-15.c b/gcc/testsuite/gcc.dg/visibility-15.c index 8d331d76cae..4e69fa1db4c 100644 --- a/gcc/testsuite/gcc.dg/visibility-15.c +++ b/gcc/testsuite/gcc.dg/visibility-15.c @@ -2,7 +2,7 @@ /* { dg-do compile } */ /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-hidden "foo" } } */ +/* { dg-final { scan-hidden "foo" { xfail *-*-aix* } } } */ extern void foo(void) __attribute__ ((visibility ("hidden"))); typedef void (*foo_t)(void); diff --git a/gcc/testsuite/gcc.dg/visibility-16.c b/gcc/testsuite/gcc.dg/visibility-16.c index 52a25cdef81..dcd5448d182 100644 --- a/gcc/testsuite/gcc.dg/visibility-16.c +++ b/gcc/testsuite/gcc.dg/visibility-16.c @@ -2,7 +2,7 @@ /* { dg-do compile } */ /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-hidden "foo" } } */ +/* { dg-final { scan-hidden "foo" { xfail *-*-aix* } } } */ extern int foo __attribute__ ((visibility ("hidden"))); int f () { diff --git a/gcc/testsuite/gcc.dg/visibility-17.c b/gcc/testsuite/gcc.dg/visibility-17.c index 0ff3e83de4b..dc90d35839f 100644 --- a/gcc/testsuite/gcc.dg/visibility-17.c +++ b/gcc/testsuite/gcc.dg/visibility-17.c @@ -2,7 +2,7 @@ /* { dg-do compile } */ /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-hidden "foo" } } */ +/* { dg-final { scan-hidden "foo" { xfail *-*-aix* } } } */ extern int foo __attribute__ ((visibility ("hidden"))); int *f () { diff --git a/gcc/testsuite/gcc.dg/visibility-18.c b/gcc/testsuite/gcc.dg/visibility-18.c index f54c73b198a..653e3b1971f 100644 --- a/gcc/testsuite/gcc.dg/visibility-18.c +++ b/gcc/testsuite/gcc.dg/visibility-18.c @@ -2,7 +2,7 @@ /* { dg-do compile } */ /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-hidden "foo" } } */ +/* { dg-final { scan-hidden "foo" { xfail *-*-aix* } } } */ extern int foo __attribute__ ((visibility ("hidden"))); int *test = &foo; diff --git a/gcc/testsuite/gcc.dg/visibility-19.c b/gcc/testsuite/gcc.dg/visibility-19.c index 3c2455fb291..2b0b9beb401 100644 --- a/gcc/testsuite/gcc.dg/visibility-19.c +++ b/gcc/testsuite/gcc.dg/visibility-19.c @@ -2,7 +2,7 @@ /* { dg-do compile } */ /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */ /* { dg-require-visibility "" } */ -/* { dg-final { scan-hidden "foo" } } */ +/* { dg-final { scan-hidden "foo" { xfail *-*-aix* } } } */ extern void foo(void) __attribute__ ((visibility ("hidden"))); typedef void (*foo_t)(void); diff --git a/gcc/testsuite/gfortran.dg/implicit_class_1.f90 b/gcc/testsuite/gfortran.dg/implicit_class_1.f90 index 2ab90405eb0..380942cfdba 100644 --- a/gcc/testsuite/gfortran.dg/implicit_class_1.f90 +++ b/gcc/testsuite/gfortran.dg/implicit_class_1.f90 @@ -1,4 +1,5 @@ ! { dg-do run } +! { dg-skip-if "" { powerpc-ibm-aix* } { "*" } { "" } } ! ! PR 56500: [OOP] "IMPLICIT CLASS(...)" wrongly rejected ! diff --git a/gcc/testsuite/lib/scanasm.exp b/gcc/testsuite/lib/scanasm.exp index 07b8f7d834d..707f63bea24 100644 --- a/gcc/testsuite/lib/scanasm.exp +++ b/gcc/testsuite/lib/scanasm.exp @@ -103,6 +103,7 @@ proc hidden-scan-for { symbol } { set objformat [gcc_target_object_format] switch $objformat { + coff { return "$symbol\[,\d\]*hidden" } elf { return "hidden\[ \t_\]*$symbol" } mach-o { return "private_extern\[ \t_\]*_?$symbol" } default { return "" }