Adrian Prantl 50fd1a87c4 Module Debugging: Emit the canonical debug info for Objective-C classes
in the compile unit that contains their implementation even if their
interface is declared in a module.

The private @implementation of an @interface may have additional
hidden ivars so we should not defer to the public version of the
type that is found in the module.

<rdar://problem/25541798>

llvm-svn: 266937
2016-04-20 23:59:32 +00:00

45 lines
697 B
Objective-C

// -*- ObjC -*-
@class FwdDecl;
@interface ObjCClass {
int ivar;
}
+ classMethod;
- instanceMethodWithInt:(int)i;
- (struct OpaqueData*) getSomethingOpaque;
@property int property;
@end
@interface ObjCClassWithPrivateIVars {
int public_ivar;
}
@end
@interface ObjCClass (Category)
- categoryMethod;
@end
@protocol ObjCProtocol
typedef enum {
e0 = 0
} InnerEnum;
+ (InnerEnum)protocolMethod;
@end
struct FwdDeclared;
struct FwdDeclared {
int i;
};
struct PureForwardDecl;
typedef union { int i; } TypedefUnion;
typedef enum { e1 = 1 } TypedefEnum;
typedef struct { int i; } TypedefStruct;
union { int i; } GlobalUnion;
struct { int i; } GlobalStruct;
enum { e2 = 2 } GlobalEnum;