xref: /llvm-project/clang/test/SemaObjC/attr-swift_objc_members.m (revision 916b43403588a85425bbc82712427cf53ed877cc)
1*916b4340SSaleem Abdulrasool// RUN: %clang_cc1 -verify -fsyntax-only %s
2*916b4340SSaleem Abdulrasool
3*916b4340SSaleem Abdulrasool#if !__has_attribute(swift_objc_members)
4*916b4340SSaleem Abdulrasool#error cannot verify presence of swift_objc_members attribute
5*916b4340SSaleem Abdulrasool#endif
6*916b4340SSaleem Abdulrasool
7*916b4340SSaleem Abdulrasool__attribute__((__swift_objc_members__))
8*916b4340SSaleem Abdulrasool__attribute__((__objc_root_class__))
9*916b4340SSaleem Abdulrasool@interface I
10*916b4340SSaleem Abdulrasool@end
11*916b4340SSaleem Abdulrasool
12*916b4340SSaleem Abdulrasool__attribute__((swift_objc_members))
13*916b4340SSaleem Abdulrasool@protocol P
14*916b4340SSaleem Abdulrasool@end
15*916b4340SSaleem Abdulrasool// expected-error@-3 {{'swift_objc_members' attribute only applies to Objective-C interfaces}}
16*916b4340SSaleem Abdulrasool
17*916b4340SSaleem Abdulrasool__attribute__((swift_objc_members))
18*916b4340SSaleem Abdulrasoolextern void f(void);
19*916b4340SSaleem Abdulrasool// expected-error@-2 {{'swift_objc_members' attribute only applies to Objective-C interfaces}}
20*916b4340SSaleem Abdulrasool
21*916b4340SSaleem Abdulrasool// expected-error@+1 {{'__swift_objc_members__' attribute takes no arguments}}
22*916b4340SSaleem Abdulrasool__attribute__((__swift_objc_members__("J")))
23*916b4340SSaleem Abdulrasool@interface J
24*916b4340SSaleem Abdulrasool@end
25