diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/dll-3.c')
-rwxr-xr-x | gcc/testsuite/gcc.dg/dll-3.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/dll-3.c b/gcc/testsuite/gcc.dg/dll-3.c new file mode 100755 index 0000000..0f7818f --- /dev/null +++ b/gcc/testsuite/gcc.dg/dll-3.c @@ -0,0 +1,16 @@ +/* Ensure dllexport overrides dllimport. */ + +/* { dg-do compile { target arm*-*-pe* } } */ +/* { dg-do compile { target thumb*-*-pe* } } */ + +__declspec (dllimport) int foo1 (); +__declspec (dllexport) int foo1 (); + +__declspec (dllexport) int foo2 (); +__declspec (dllimport) int foo2 (); + +__declspec (dllexport) int foo1 () { return foo2 (); } +__declspec (dllexport) int foo2 () { return foo1 (); } + +/* { dg-final { scan-assembler dll-3.c "\.section\[ \t\]*\.drectve\n\[^\n\]*-export:foo1.*\.section\[ \t\]*\.drectve\n\[^\n\]*-export:foo2" } } */ +/* { dg-final { scan-assembler-not dll-3.c "(__imp_foo1|__imp_foo2)" } } */ |