[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / SemaObjC / dllexport.m
blobb306fae527c8759b9eac64741956811fb547e314
1 // RUN: %clang_cc1 -triple i686-windows -fdeclspec -fsyntax-only -verify %s
3 __declspec(dllexport) typedef int typedef1;
4 // expected-warning@-1{{'dllexport' attribute only applies to functions, variables, classes, and Objective-C interfaces}}
5 typedef __declspec(dllexport) int typedef2;
6 // expected-warning@-1{{'dllexport' attribute only applies to}}
7 typedef int __declspec(dllexport) typedef3;
8 // expected-warning@-1{{'dllexport' attribute only applies to}}
9 typedef __declspec(dllexport) void (*FunTy)(void);
10 // expected-warning@-1{{'dllexport' attribute only applies to}}
11 enum __declspec(dllexport) E { Val };
12 // expected-warning@-1{{'dllexport' attribute only applies to}}
13 struct __declspec(dllexport) Record {};
14 // expected-warning@-1{{'dllexport' attribute only applies to}}
16 __declspec(dllexport)
17 __attribute__((__objc_root_class__))
18 @interface NSObject
19 @end
21 __declspec(dllexport)
22 @interface I : NSObject
23 - (void)method;
24 @end
26 @implementation I
27 - (void)method {
29 @end