Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / SemaObjC / objc-asm-attribute-neg-test.m
blobaa2114d79fc8c3634ee2429be47d699c01ba7b80
1 // RUN: %clang_cc1  -fsyntax-only -verify -Wno-objc-root-class %s
3 __attribute__((objc_runtime_name)) // expected-error {{'objc_runtime_name' attribute takes one argument}}
4 @interface BInterface
5 @end
7 __attribute__((objc_runtime_name(123))) // expected-error {{expected string literal as argument of 'objc_runtime_name' attribute}}
8 @protocol BProtocol1
9 @end
11 __attribute__((objc_runtime_name("MySecretNamespace.Protocol")))
12 @protocol Protocol
13 @end
15 __attribute__((objc_runtime_name("MySecretNamespace.Message")))
16 @interface Message <Protocol> {
17 __attribute__((objc_runtime_name("MySecretNamespace.Message"))) // expected-error {{'objc_runtime_name' attribute only applies to Objective-C interfaces and Objective-C protocols}}
18   id MyIVAR;
20 __attribute__((objc_runtime_name("MySecretNamespace.Message")))
21 @property int MyProperty; // expected-error {{prefix attribute must be followed by an interface, protocol, or implementation}}}}
23 - (int) getMyProperty __attribute__((objc_runtime_name("MySecretNamespace.Message"))); // expected-error {{'objc_runtime_name' attribute only applies to}}
25 - (void) setMyProperty : (int) arg __attribute__((objc_runtime_name("MySecretNamespace.Message"))); // expected-error {{'objc_runtime_name' attribute only applies to}}
27 @end
29 __attribute__((objc_runtime_name("MySecretNamespace.ForwardClass")))
30 @class ForwardClass; // expected-error {{prefix attribute must be followed by an interface, protocol, or implementation}}
32 __attribute__((objc_runtime_name("MySecretNamespace.ForwardProtocol")))
33 @protocol ForwardProtocol;
35 @implementation Message
36 // expected-error@+1 {{'objc_runtime_name' attribute only applies to Objective-C interfaces and Objective-C protocols}}
37 - (id) MyMethod __attribute__((objc_runtime_name("MySecretNamespace.Message"))) {
38   return MyIVAR;
41 -(int)getMyProperty { return 0; }
42 -(void)setMyProperty:(int)arg {}
43 @end
45 @interface NoImpl @end
47 // expected-error@+1 {{'objc_runtime_name' attribute only applies to Objective-C interfaces and Objective-C protocols}}
48 __attribute__((objc_runtime_name("MySecretNamespace.Message")))
49 @implementation NoImpl @end