visibility-12.c: New test.

* gcc.dg/visibility-12.c: New test.
	* gcc.dg/visibility-13.c: Likewise.
	* g++.dg/ext/visibility-9.C: Likewise.
	* g++.dg/ext/visibility-10.C: Likewise.

From-SVN: r126330
This commit is contained in:
Mark Mitchell 2007-07-04 17:34:16 +00:00 committed by Mark Mitchell
parent 121f163f34
commit 73ed196896
5 changed files with 84 additions and 7 deletions

View File

@ -1,3 +1,10 @@
2007-07-04 Mark Mitchell <mark@codesourcery.com>
* gcc.dg/visibility-12.c: New test.
* gcc.dg/visibility-13.c: Likewise.
* g++.dg/ext/visibility-9.C: Likewise.
* g++.dg/ext/visibility-10.C: Likewise.
2007-07-04 Richard Sandiford <richard@codesourcery.com>
* gcc.dg/sh-relax.c: Skip for VxWorks if non-PIC.
@ -462,13 +469,6 @@
PR fortran/32298
* gfortran.dg/minmaxloc_2.f90: New test.
2007-06-23 Mark Mitchell <mark@codesourcery.com>
* gcc.dg/visibility-12.c: New test.
* gcc.dg/visibility-13.c: Likewise.
* g++.dg/ext/visibility-9.C: Likewise.
* g++.dg/ext/visibility-10.C: Likewise.
2007-06-23 Richard Guenther <rguenther@suse.de>
PR tree-optimization/16876

View File

@ -0,0 +1,19 @@
// { dg-require-visibility "" }
// { dg-require-dll "" }
extern void __attribute__((dllimport, visibility("hidden")))
f1(); // { dg-error "visibility" }
extern void __attribute__((visibility("hidden"), dllimport))
f2(); // { dg-error "visibility" }
extern void __attribute__((dllexport, visibility("hidden")))
f3(); // { dg-error "visibility" }
extern void __attribute__((visibility("hidden"), dllexport))
f4(); // { dg-error "visibility" }
extern void __attribute__((visibility("default"), dllimport))
f5();
extern void __attribute__((dllimport, visibility("default")))
f6();
extern void __attribute__((visibility("default"), dllexport))
f7();
extern void __attribute__((dllexport, visibility("default")))
f8();

View File

@ -0,0 +1,29 @@
// Test that dllimport'd functions have default visibility.
// { dg-require-visibility "" }
// { dg-require-dll "" }
// { dg-options "-fvisibility=hidden" }
// { dg-final { scan-not-hidden "_Z2f1v" } }
// { dg-final { scan-not-hidden "_ZN1S2f3Ev" } }
extern void __attribute__((dllimport)) f1();
void f2() {
f1();
}
struct __attribute__((visibility("hidden")) S1 {
__attribute__((dllimport)) void f3();
};
void f4() {
S1 s1;
s1.f3();
}
struct S2 {
__attribute__((dllimport)) void f5();
};
void f6() {
S2 s2;
s2.f5();
}

View File

@ -0,0 +1,10 @@
/* Test that dllimport'd functions have default visibility. */
/* { dg-require-visibility "" } */
/* { dg-require-dll "" } */
/* { dg-options "-fvisibility=hidden" } */
/* { dg-final { scan-not-hidden "f1" } } */
extern void __attribute__((dllimport)) f1();
void f2() {
f1();
}

View File

@ -0,0 +1,19 @@
/* { dg-require-visibility "" } */
/* { dg-require-dll "" } */
extern void __attribute__((dllimport, visibility("hidden")))
f1(); /* { dg-error "visibility" } */
extern void __attribute__((visibility("hidden"), dllimport))
f2(); /* { dg-error "visibility" } */
extern void __attribute__((dllexport, visibility("hidden")))
f3(); /* { dg-error "visibility" } */
extern void __attribute__((visibility("hidden"), dllexport))
f4(); /* { dg-error "visibility" } */
extern void __attribute__((visibility("default"), dllimport))
f5();
extern void __attribute__((dllimport, visibility("default")))
f6();
extern void __attribute__((visibility("default"), dllexport))
f7();
extern void __attribute__((dllexport, visibility("default")))
f8();