diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/ext/dllimport5.C')
-rw-r--r-- | gcc/testsuite/g++.dg/ext/dllimport5.C | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/ext/dllimport5.C b/gcc/testsuite/g++.dg/ext/dllimport5.C new file mode 100644 index 000000000..5f1adb1ac --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/dllimport5.C @@ -0,0 +1,28 @@ +// { dg-do compile { target i?86-*-cygwin* i?86-*-mingw* x86_64-*-mingw* } } +// Report error if static symbol definition has dllimport attribute. + +__attribute__((dllimport)) + int impvar; // OK, implicit "extern" + + static __attribute__((dllimport)) + int static_impvar; // { dg-error "external linkage" } + + static __attribute__((dllexport)) +int static_expvar; // { dg-error "external linkage" } + +static __attribute__((dllimport)) +void static_impfun(void); // { dg-error "external linkage" } + +void foo() +{ + __attribute__((dllimport)) + int foovar; // OK, implicit "extern" + foovar++; +} + +void bar() +{ + __attribute__((dllexport)) + int barvar; // { dg-error "external linkage" } + barvar++; +} |