1// RUN: %clang_cc1 -triple i686-windows -fdeclspec -fsyntax-only -verify %s
2
3__declspec(dllexport) typedef int typedef1;
4// expected-warning@-1{{'dllexport' attribute only applies to functions, variables, classes, and Objective-C interfaces}}
5typedef __declspec(dllexport) int typedef2;
6// expected-warning@-1{{'dllexport' attribute only applies to}}
7typedef int __declspec(dllexport) typedef3;
8// expected-warning@-1{{'dllexport' attribute only applies to}}
9typedef __declspec(dllexport) void (*FunTy)();
10// expected-warning@-1{{'dllexport' attribute only applies to}}
11enum __declspec(dllexport) E { Val };
12// expected-warning@-1{{'dllexport' attribute only applies to}}
13struct __declspec(dllexport) Record {};
14// expected-warning@-1{{'dllexport' attribute only applies to}}
15
16__declspec(dllexport)
17__attribute__((__objc_root_class__))
18@interface NSObject
19@end
20
21__declspec(dllexport)
22@interface I : NSObject
23- (void)method;
24@end
25
26@implementation I
27- (void)method {
28}
29@end
30
31