diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/dll-1.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/dll-2.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/dll-3.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/dll-4.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/dll-5.c | 22 |
6 files changed, 48 insertions, 10 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1cf08340a14..40e66e03b00 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,15 @@ +2003-03-13 Danny Smith <dannysmith@users.sourceforge.net> + + * gcc.dg/dll-1.c: Remove thumb target. Change exp to _exp. + * gcc.dg/dll-2.c: Enable for cygwin and mingw. Remove + thumb target, + * gcc.dg/dll-3.c: Likewise. Adjust scan-assembler + to accept newer _imp__ prefix and additional + newline in .drectve section. + * gcc.dg/dll-4.c: Likewise. + * gcc.dg/dll-5.c: New file to test -mnop-fun-dllimport + switch. + 2003-03-13 Mark Mitchell <mark@codesourcery.com> * g++.dg/parse/namespace9.C: New test. diff --git a/gcc/testsuite/gcc.dg/dll-1.c b/gcc/testsuite/gcc.dg/dll-1.c index 4ae1a0e1797..f823523b270 100644 --- a/gcc/testsuite/gcc.dg/dll-1.c +++ b/gcc/testsuite/gcc.dg/dll-1.c @@ -1,10 +1,10 @@ /* { dg-do compile { target arm*-*-pe* } } */ -/* { dg-do compile { target thumb*-*-pe* } } */ /* { dg-options -mno-nop-fun-dllimport } */ __declspec (dllimport) void imp (); -__declspec (dllexport) void exp () { imp (); } +__declspec (dllexport) void _exp () { imp (); } + +/* { dg-final { scan-assembler "\.section\[ \t\]*.drectve\n\[^\n\]*-export:_exp.*__imp_imp" } } */ +/* { dg-final { scan-assembler-not "__imp__exp" } } */ -/* { dg-final { scan-assembler "\.section\[ \t\]*.drectve\n\[^\n\]*-export:exp.*__imp_imp" } } */ -/* { dg-final { scan-assembler-not "__imp_exp" } } */ diff --git a/gcc/testsuite/gcc.dg/dll-2.c b/gcc/testsuite/gcc.dg/dll-2.c index bf917079965..45456ce8330 100644 --- a/gcc/testsuite/gcc.dg/dll-2.c +++ b/gcc/testsuite/gcc.dg/dll-2.c @@ -9,7 +9,8 @@ and functions. In C++, it only works for functions. */ /* { dg-do compile { target arm*-*-pe* } } */ -/* { dg-do compile { target thumb*-*-pe* } } */ +/* { dg-do compile { target i?86-pc-cygwin } } */ +/* { dg-do compile { target i?86-pc-mingw* } } */ __declspec (dllimport) int foo1 (); __declspec (dllexport) int foo1 (); diff --git a/gcc/testsuite/gcc.dg/dll-3.c b/gcc/testsuite/gcc.dg/dll-3.c index 0be1f973025..2d5517eace6 100644 --- a/gcc/testsuite/gcc.dg/dll-3.c +++ b/gcc/testsuite/gcc.dg/dll-3.c @@ -1,7 +1,8 @@ /* Ensure dllexport overrides dllimport. */ /* { dg-do compile { target arm*-*-pe* } } */ -/* { dg-do compile { target thumb*-*-pe* } } */ +/* { dg-do compile { target i?86-pc-cygwin } } */ +/* { dg-do compile { target i?86-pc-mingw* } } */ __declspec (dllimport) int foo1 (); __declspec (dllexport) int foo1 (); @@ -12,5 +13,6 @@ __declspec (dllimport) int foo2 (); __declspec (dllexport) int foo1 () { return foo2 (); } __declspec (dllexport) int foo2 () { return foo1 (); } -/* { dg-final { scan-assembler "\.section\[ \t\]*\.drectve\n\[^\n\]*-export:foo1.*\.section\[ \t\]*\.drectve\n\[^\n\]*-export:foo2" } } */ -/* { dg-final { scan-assembler-not "(__imp_foo1|__imp_foo2)" } } */ +/* { dg-final { scan-assembler "\.section\[ \t\]*.drectve\n.*-export:foo2" } } */ +/* { dg-final { scan-assembler "-export:foo1" } } */ +/* { dg-final { scan-assembler-not "(__imp_foo1|_imp__foo1|__imp_foo2|_imp__foo2)" } } */ diff --git a/gcc/testsuite/gcc.dg/dll-4.c b/gcc/testsuite/gcc.dg/dll-4.c index fec08fcbb60..45ed7a11007 100644 --- a/gcc/testsuite/gcc.dg/dll-4.c +++ b/gcc/testsuite/gcc.dg/dll-4.c @@ -1,5 +1,6 @@ /* { dg-do compile { target arm*-*-pe* } } */ -/* { dg-do compile { target thumb*-*-pe* } } */ +/* { dg-do compile { target i?86-pc-cygwin } } */ +/* { dg-do compile { target i?86-pc-mingw* } } */ __declspec (dllimport) int foo1; int foo1; @@ -11,4 +12,4 @@ int f () { return foo1 + foo2; } /* FIXME: We should scan the output of nm for this case. */ /* { dg-final { scan-assembler "(foo2:.*\.comm\[ \t_\]*foo1)" } } */ -/* { dg-final { scan-assembler-not "__imp_" } } */ +/* { dg-final { scan-assembler-not "(__imp_|_imp__)" } } */ diff --git a/gcc/testsuite/gcc.dg/dll-5.c b/gcc/testsuite/gcc.dg/dll-5.c new file mode 100644 index 00000000000..df7e3e3f274 --- /dev/null +++ b/gcc/testsuite/gcc.dg/dll-5.c @@ -0,0 +1,22 @@ +/* { dg-do compile { target i?86-pc-cygwin } } */ +/* { dg-do compile { target i?86-pc-mingw* } } */ +/* { dg-do compile { target arm*-*-pe* } } */ + +/* { dg-options -mnop-fun-dllimport } */ + +/* The dllimport attribute should be ignored for functions. */ +__declspec (dllimport) void dllimpfn (); + +/* The dllimport attribute should not be ignored for variables. */ +__declspec (dllimport) int dllimpvar; + +/* The dllexport attribute should not be ignored. */ +__declspec (dllexport) void dllexp () +{ + dllimpfn (); + dllimpvar = 0; +} + +/* { dg-final { scan-assembler-not "(__imp_dllimpfn|_imp__dllimpfn)" } } */ +/* { dg-final { scan-assembler "(__imp_dllimpvar|_imp__dllimpvar)" } } */ +/* { dg-final { scan-assembler "\.section\[ \t\]*.drectve\n\.*-export:dllexp" } } */ |