[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / SemaObjC / class-property-access.m
blob73f9d308d5f09168cbbcce683d4842f31a558623
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 // expected-no-diagnostics
4 @interface Test {}
5 + (Test*)one;
6 - (int)two;
7 @end
9 int main (void)
11   return Test.one.two;
14 // rdar://16650575
15 __attribute__((objc_root_class))
16 @interface RootClass { 
17   Class isa; 
20 @property int property;
21 -(int)method;
22 - (void) setMethod : (int)arg;
23 +(int)classMethod;
24 @end
26 @interface Subclass : RootClass @end
27 void Test1(void) { 
28     // now okay
29     (void)RootClass.property;
30     (void)Subclass.property;
31     (void)RootClass.method;
32     (void)Subclass.method;
34     RootClass.property = 1;
35     Subclass.property = 2;
36     RootClass.method = 3;
37     Subclass.method = 4;
39     // okay
40     (void)RootClass.classMethod;
41     (void)Subclass.classMethod;
43     // also okay
44     (void)[RootClass property];
45     (void)[Subclass property];
46     [RootClass method];
47     [Subclass method];
48     [RootClass classMethod];
49     [Subclass classMethod];
51     // also okay
52     [RootClass setProperty : 1];
53     [Subclass setProperty : 2];
54     [RootClass setMethod : 3];
55     [Subclass setMethod : 4];