Fix PR14474: don't emit debug info for interface types in -gline-tables-only mode.

llvm-svn: 169138
This commit is contained in:
Alexey Samsonov 2012-12-03 18:28:12 +00:00
parent f793511579
commit 9c1b9f60ad
2 changed files with 28 additions and 3 deletions

View File

@ -2691,9 +2691,9 @@ void CodeGenModule::EmitTopLevelDecl(Decl *D) {
ObjCRuntime->GenerateClass(OMD);
// Emit global variable debug information.
if (CGDebugInfo *DI = getModuleDebugInfo())
DI->getOrCreateInterfaceType(getContext().getObjCInterfaceType(OMD->getClassInterface()),
OMD->getLocation());
if (getCodeGenOpts().getDebugInfo() >= CodeGenOptions::LimitedDebugInfo)
DI->getOrCreateInterfaceType(getContext().getObjCInterfaceType(
OMD->getClassInterface()), OMD->getLocation());
break;
}
case Decl::ObjCMethod: {

View File

@ -0,0 +1,25 @@
// PR 14474
// RUN: %clang_cc1 -triple i386-apple-macosx10.6.0 -emit-llvm \
// RUN: -gline-tables-only -x objective-c++ -o /dev/null %s
typedef signed char BOOL;
@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
@protocol NSObject - (BOOL)isEqual:(id)object;
@end
@protocol NSCoding - (void)encodeWithCoder:(NSCoder *)aCoder;
@end
@interface NSObject <NSObject> { }
@end
@interface NSResponder : NSObject <NSCoding> { }
@end
@protocol NSValidatedUserInterfaceItem - (SEL)action;
@end
@protocol NSUserInterfaceValidations - (BOOL)validateUserInterfaceItem:(id
<NSValidatedUserInterfaceItem>)anItem;
@end
@interface NSRunningApplication : NSObject { }
@end
@interface NSApplication : NSResponder <NSUserInterfaceValidations> { }
@end
@implementation MockCrApp + (NSApplication*)sharedApplication { }
@end