Hi echristo,
Don't emit debug info for interface types in -gline-tables-only mode.
http://llvm-reviews.chandlerc.com/D151
Files:
lib/CodeGen/CodeGenModule.cpp
test/CodeGenObjCXX/pr14474-gline-tables-only.mm
Index: lib/CodeGen/CodeGenModule.cpp
===================================================================
--- lib/CodeGen/CodeGenModule.cpp
+++ lib/CodeGen/CodeGenModule.cpp
@@ -2691,9 +2691,9 @@
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: {
Index: test/CodeGenObjCXX/pr14474-gline-tables-only.mm
===================================================================
--- /dev/null
+++ test/CodeGenObjCXX/pr14474-gline-tables-only.mm
@@ -0,0 +1,26 @@
+// PR 14474
+// RUN: %clang_cc1 -triple i386-apple-macosx10.6.0 -emit-obj \
+// 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
Index: lib/CodeGen/CodeGenModule.cpp
===================================================================
--- lib/CodeGen/CodeGenModule.cpp
+++ lib/CodeGen/CodeGenModule.cpp
@@ -2691,9 +2691,9 @@
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: {
Index: test/CodeGenObjCXX/pr14474-gline-tables-only.mm
===================================================================
--- /dev/null
+++ test/CodeGenObjCXX/pr14474-gline-tables-only.mm
@@ -0,0 +1,26 @@
+// PR 14474
+// RUN: %clang_cc1 -triple i386-apple-macosx10.6.0 -emit-obj \
+// 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
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits