diff options
author | Alexey Samsonov <samsonov@google.com> | 2012-12-03 18:28:12 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2012-12-03 18:28:12 +0000 |
commit | 9c1b9f60ad21b36a172bba5235d56ccd2e97437a (patch) | |
tree | 5e3d7f4fdbcb3e43c7d51827e66d7d1d85d88d83 | |
parent | f79351157959adde9a65d99075590a9db613a77b (diff) | |
download | bcm5719-llvm-9c1b9f60ad21b36a172bba5235d56ccd2e97437a.tar.gz bcm5719-llvm-9c1b9f60ad21b36a172bba5235d56ccd2e97437a.zip |
Fix PR14474: don't emit debug info for interface types in -gline-tables-only mode.
llvm-svn: 169138
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 6 | ||||
-rw-r--r-- | clang/test/CodeGenObjCXX/pr14474-gline-tables-only.mm | 25 |
2 files changed, 28 insertions, 3 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 17972e29b65..deeda43adf1 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -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: { diff --git a/clang/test/CodeGenObjCXX/pr14474-gline-tables-only.mm b/clang/test/CodeGenObjCXX/pr14474-gline-tables-only.mm new file mode 100644 index 00000000000..e927ab96f3c --- /dev/null +++ b/clang/test/CodeGenObjCXX/pr14474-gline-tables-only.mm @@ -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 |