This also clarifies some terminology used by the diagnostic (methods -> Objective-C methods, fields -> non-static data members, etc). Many of the tests needed to be updated in multiple places for the diagnostic wording tweaks. The first instance of the diagnostic for that attribute is fully specified and subsequent instances cut off the complete list (to make it easier if additional subjects are added in the future for the attribute). llvm-svn: 319002
31 lines
973 B
Objective-C
31 lines
973 B
Objective-C
// RUN: %clang_cc1 -triple i686-windows -fdeclspec -fsyntax-only -verify %s
|
|
|
|
__declspec(dllimport) typedef int typedef1;
|
|
// expected-warning@-1{{'dllimport' attribute only applies to functions, variables, classes, and Objective-C interfaces}}
|
|
typedef __declspec(dllimport) int typedef2;
|
|
// expected-warning@-1{{'dllimport' attribute only applies to}}
|
|
typedef int __declspec(dllimport) typedef3;
|
|
// expected-warning@-1{{'dllimport' attribute only applies to}}
|
|
typedef __declspec(dllimport) void (*FunTy)();
|
|
// expected-warning@-1{{'dllimport' attribute only applies to}}
|
|
enum __declspec(dllimport) E { Val };
|
|
// expected-warning@-1{{'dllimport' attribute only applies to}}
|
|
struct __declspec(dllimport) Record {};
|
|
// expected-warning@-1{{'dllimport' attribute only applies to}}
|
|
|
|
__declspec(dllimport)
|
|
__attribute__((__objc_root_class__))
|
|
@interface NSObject
|
|
@end
|
|
|
|
__declspec(dllimport)
|
|
@interface I : NSObject
|
|
- (void)method;
|
|
@end
|
|
|
|
@implementation I
|
|
- (void)method {
|
|
}
|
|
@end
|
|
|