xref: /llvm-project/clang/test/Modules/Inputs/DebugObjC.h (revision 50fd1a87c4d1a5a78e0dab6f8d6ca5db7960de0e)
1*50fd1a87SAdrian Prantl // -*- ObjC -*-
242ce2d3bSAdrian Prantl @class FwdDecl;
342ce2d3bSAdrian Prantl 
4748a6cd1SAdrian Prantl @interface ObjCClass {
5748a6cd1SAdrian Prantl   int ivar;
6748a6cd1SAdrian Prantl }
7748a6cd1SAdrian Prantl + classMethod;
8748a6cd1SAdrian Prantl - instanceMethodWithInt:(int)i;
9335f5c7eSAdrian Prantl - (struct OpaqueData*) getSomethingOpaque;
10748a6cd1SAdrian Prantl @property int property;
11748a6cd1SAdrian Prantl @end
12748a6cd1SAdrian Prantl 
13*50fd1a87SAdrian Prantl @interface ObjCClassWithPrivateIVars {
14*50fd1a87SAdrian Prantl   int public_ivar;
15*50fd1a87SAdrian Prantl }
16*50fd1a87SAdrian Prantl @end
17*50fd1a87SAdrian Prantl 
18748a6cd1SAdrian Prantl @interface ObjCClass (Category)
19748a6cd1SAdrian Prantl - categoryMethod;
20748a6cd1SAdrian Prantl @end
21d43fe0bdSAdrian Prantl 
22d43fe0bdSAdrian Prantl @protocol ObjCProtocol
23d43fe0bdSAdrian Prantl 
24d43fe0bdSAdrian Prantl typedef enum {
25d43fe0bdSAdrian Prantl   e0 = 0
26d43fe0bdSAdrian Prantl }  InnerEnum;
27d43fe0bdSAdrian Prantl 
28d43fe0bdSAdrian Prantl + (InnerEnum)protocolMethod;
29d43fe0bdSAdrian Prantl 
30d43fe0bdSAdrian Prantl @end
318c0e5051SAdrian Prantl 
328c0e5051SAdrian Prantl struct FwdDeclared;
338c0e5051SAdrian Prantl struct FwdDeclared {
348c0e5051SAdrian Prantl   int i;
358c0e5051SAdrian Prantl };
368c0e5051SAdrian Prantl struct PureForwardDecl;
378c0e5051SAdrian Prantl 
388c0e5051SAdrian Prantl typedef union { int i; } TypedefUnion;
398c0e5051SAdrian Prantl typedef enum { e1 = 1 } TypedefEnum;
408c0e5051SAdrian Prantl typedef struct { int i; } TypedefStruct;
418c0e5051SAdrian Prantl 
428c0e5051SAdrian Prantl union { int i; } GlobalUnion;
438c0e5051SAdrian Prantl struct { int i; } GlobalStruct;
448c0e5051SAdrian Prantl enum { e2 = 2 } GlobalEnum;
45