• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang_cc1 -triple i386-mingw32 -fsyntax-only -verify %s
2 // RUN: %clang_cc1 -triple x86_64-mingw32 -fsyntax-only -verify %s
3 
foo1()4 inline void __attribute__((dllexport)) foo1(){} // expected-warning{{dllexport attribute ignored}}
foo2()5 inline void __attribute__((dllimport)) foo2(){} // expected-warning{{dllimport attribute ignored}}
6 
foo3()7 void __attribute__((dllimport)) foo3(){} // expected-error{{dllimport attribute can be applied only to symbol declaration}}
8 
9 void __attribute__((dllimport, dllexport)) foo4(); // expected-warning{{dllimport attribute ignored}}
10 
11 void __attribute__((dllexport)) foo5();
12 void __attribute__((dllimport)) foo5(); // expected-warning{{dllimport attribute ignored}}
13 
14 typedef int __attribute__((dllexport)) type6; // expected-warning{{'dllexport' attribute only applies to variables and functions}}
15 
16 typedef int __attribute__((dllimport)) type7; // expected-warning{{'dllimport' attribute only applies to variables and functions}}
17 
18 void __attribute__((dllimport)) foo6();
foo6()19 void foo6(){} // expected-warning {{'foo6' redeclared without dllimport attribute: previous dllimport ignored}}
20 
21 // PR6269
foo7()22 inline void __declspec(dllexport) foo7(){} // expected-warning{{dllexport attribute ignored}}
foo8()23 inline void __declspec(dllimport) foo8(){} // expected-warning{{dllimport attribute ignored}}
24 
foo9()25 void __declspec(dllimport) foo9(){} // expected-error{{dllimport attribute can be applied only to symbol declaration}}
26 
27 void __declspec(dllimport) __declspec(dllexport) foo10(); // expected-warning{{dllimport attribute ignored}}
28 
29 void __declspec(dllexport) foo11();
30 void __declspec(dllimport) foo11(); // expected-warning{{dllimport attribute ignored}}
31 
32 typedef int __declspec(dllexport) type1; // expected-warning{{'dllexport' attribute only applies to variables and functions}}
33 
34 typedef int __declspec(dllimport) type2; // expected-warning{{'dllimport' attribute only applies to variables and functions}}
35 
36 void __declspec(dllimport) foo12();
foo12()37 void foo12(){} // expected-warning {{'foo12' redeclared without dllimport attribute: previous dllimport ignored}}
38 
39 void __attribute__((dllimport)) foo13(); // expected-warning{{dllimport attribute ignored}}
40 void __attribute__((dllexport)) foo13();
41 
42 extern int foo14 __attribute__((dllexport));
43 extern int foo14 __attribute__((dllimport));  // expected-warning{{dllimport attribute ignored}}
44 
45 __declspec(dllimport) int foo15 = 54; // expected-warning{{'dllimport' attribute cannot be specified on a definition}}
46 
47 extern __declspec(dllimport) int foo17;
48 int foo17 = 54; // expected-warning{{'dllimport' attribute cannot be specified on a definition}}
49