blob: 4d4074cbbd3628ecf763fee1ef4cc749abfa0be5 [file] [log] [blame]
// Report error if dllimport attribute in definition itself.
// { dg-do compile { target i?86-*-cygwin* i?86-*-mingw* x86_64-*-mingw* } }
__attribute__((dllimport)) void bar () { } // { dg-error "definition" }
__attribute__((dllimport)) int foo = 1; // { dg-error "definition" }
void faz()
{
__attribute__((dllimport)) int faa = 1; // { dg-error "definition" }
faa++;
}
__attribute__((dllimport)) int fee (1); // { dg-error "definition" }
// In-class initialization of a static data member is not a definition.
struct F
{
__attribute__ ((dllimport)) static const int i = 1; // OK
};
// Reference the dllimport'd static data member.
void f ()
{
const int* j = &F::i;
}
struct G
{
__attribute__ ((dllimport)) static const int i = 1;
};
// Define the static data member _without_ the dllimport.
// This should override the prior declaration with dllimport.
const int G::i; // { dg-warning "dllimport ignored" }