summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/dll-3.c
blob: f68758ccaa02092183021360724fdcf67020c994 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* Ensure dllexport overrides dllimport.  */

/* { dg-do compile { target arm*-*-pe* } } */
/* { dg-do compile { target i?86-pc-cygwin } } */
/* { dg-do compile { target i?86-*-mingw* x86_64-*-mingw*} } */

__declspec (dllimport) int foo1 ();
__declspec (dllexport) int foo1 ();	/* { dg-warning "previous dllimport ignored" } */

__declspec (dllexport) int foo2 ();
__declspec (dllimport) int foo2 ();	/* { dg-warning "dllimport ignored" } */

__declspec (dllexport) int foo1 () { return foo2 (); }
__declspec (dllexport) int foo2 () { return foo1 (); }

/* { 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)" } } */