Commit fda2d612 by David Edelsohn Committed by David Edelsohn

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
parent 621d0992
2016-11-07 David Edelsohn <dje.gcc@gmail.com>
* 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 <jakub@redhat.com> 2016-11-07 Jakub Jelinek <jakub@redhat.com>
PR target/78227 PR target/78227
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Test for anonymous namespace internal linkage // Test for anonymous namespace internal linkage
// { dg-do compile } // { dg-do compile }
// { dg-final { scan-assembler-not "globl.*_ZN.*1fEv" } } // { dg-final { scan-assembler-not "globl.*_ZN.*1fEv" { xfail *-*-aix* } } }
// { dg-require-visibility "" } // { dg-require-visibility "" }
namespace namespace
......
// Test for propagation of anonymous namespace internal linkage // Test for propagation of anonymous namespace internal linkage
// { dg-do compile } // { dg-do compile }
// { dg-final { scan-assembler-not "globl.*_Z1fv" } } // { dg-final { scan-assembler-not "globl.*_Z1fv" { xfail *-*-aix* } } }
// { dg-require-visibility "" } // { dg-require-visibility "" }
namespace namespace
......
/* Test that #pragma GCC visibility does not override class member specific settings. */ /* Test that #pragma GCC visibility does not override class member specific settings. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-visibility "internal" } */ /* { 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* } } } */ /* { dg-final { scan-assembler "\\.(internal|hidden).*Foo.methodEv" { target *-*-solaris2* } } } */
#pragma GCC visibility push(hidden) #pragma GCC visibility push(hidden)
......
/* Test that #pragma GCC visibility does not override class member specific settings. */ /* Test that #pragma GCC visibility does not override class member specific settings. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-visibility "internal" } */ /* { 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* } } } */ /* { dg-final { scan-assembler "\\.(internal|hidden).*Foo.methodEv" { target *-*-solaris2* } } } */
#pragma GCC visibility push(hidden) #pragma GCC visibility push(hidden)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */ /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */
/* { dg-require-visibility "" } */ /* { dg-require-visibility "" } */
/* { dg-final { scan-hidden "foo" } } */ /* { dg-final { scan-hidden "foo" { xfail *-*-aix* } } } */
extern void foo(void) __attribute__ ((visibility ("hidden"))); extern void foo(void) __attribute__ ((visibility ("hidden")));
int f () { int f () {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */ /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */
/* { dg-require-visibility "" } */ /* { dg-require-visibility "" } */
/* { dg-final { scan-hidden "foo" } } */ /* { dg-final { scan-hidden "foo" { xfail *-*-aix* } } } */
extern void foo(void) __attribute__ ((visibility ("hidden"))); extern void foo(void) __attribute__ ((visibility ("hidden")));
typedef void (*foo_t)(void); typedef void (*foo_t)(void);
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */ /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */
/* { dg-require-visibility "" } */ /* { dg-require-visibility "" } */
/* { dg-final { scan-hidden "foo" } } */ /* { dg-final { scan-hidden "foo" { xfail *-*-aix* } } } */
extern int foo __attribute__ ((visibility ("hidden"))); extern int foo __attribute__ ((visibility ("hidden")));
int f () { int f () {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */ /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */
/* { dg-require-visibility "" } */ /* { dg-require-visibility "" } */
/* { dg-final { scan-hidden "foo" } } */ /* { dg-final { scan-hidden "foo" { xfail *-*-aix* } } } */
extern int foo __attribute__ ((visibility ("hidden"))); extern int foo __attribute__ ((visibility ("hidden")));
int *f () { int *f () {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */ /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */
/* { dg-require-visibility "" } */ /* { dg-require-visibility "" } */
/* { dg-final { scan-hidden "foo" } } */ /* { dg-final { scan-hidden "foo" { xfail *-*-aix* } } } */
extern int foo __attribute__ ((visibility ("hidden"))); extern int foo __attribute__ ((visibility ("hidden")));
int *test = &foo; int *test = &foo;
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */ /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */
/* { dg-require-visibility "" } */ /* { dg-require-visibility "" } */
/* { dg-final { scan-hidden "foo" } } */ /* { dg-final { scan-hidden "foo" { xfail *-*-aix* } } } */
extern void foo(void) __attribute__ ((visibility ("hidden"))); extern void foo(void) __attribute__ ((visibility ("hidden")));
typedef void (*foo_t)(void); typedef void (*foo_t)(void);
......
! { dg-do run } ! { dg-do run }
! { dg-skip-if "" { powerpc-ibm-aix* } { "*" } { "" } }
! !
! PR 56500: [OOP] "IMPLICIT CLASS(...)" wrongly rejected ! PR 56500: [OOP] "IMPLICIT CLASS(...)" wrongly rejected
! !
......
...@@ -103,6 +103,7 @@ proc hidden-scan-for { symbol } { ...@@ -103,6 +103,7 @@ proc hidden-scan-for { symbol } {
set objformat [gcc_target_object_format] set objformat [gcc_target_object_format]
switch $objformat { switch $objformat {
coff { return "$symbol\[,\d\]*hidden" }
elf { return "hidden\[ \t_\]*$symbol" } elf { return "hidden\[ \t_\]*$symbol" }
mach-o { return "private_extern\[ \t_\]*_?$symbol" } mach-o { return "private_extern\[ \t_\]*_?$symbol" }
default { return "" } default { return "" }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment