[cfe-commits] r131239 - in /cfe/trunk: lib/CodeGen/CGDebugInfo.cpp test/CodeGenObjC/debug-info-class-extension.m test/CodeGenObjC/debug-info-class-extension2.m
Devang Patel
dpatel at apple.com
Thu May 12 12:07:41 PDT 2011
Author: dpatel
Date: Thu May 12 14:07:41 2011
New Revision: 131239
URL: http://llvm.org/viewvc/llvm-project?rev=131239&view=rev
Log:
Use DW_AT_APPLE_objc_class_extension attribute to identify interfaces that represent class extension.
Radar 9423077.
Added:
cfe/trunk/test/CodeGenObjC/debug-info-class-extension.m
cfe/trunk/test/CodeGenObjC/debug-info-class-extension2.m
Modified:
cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=131239&r1=131238&r2=131239&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Thu May 12 14:07:41 2011
@@ -1241,9 +1241,14 @@
uint64_t Size = CGM.getContext().getTypeSize(Ty);
uint64_t Align = CGM.getContext().getTypeAlign(Ty);
+ unsigned Flags = 0;
+ if (ID->getFirstClassExtension() ||
+ (ID->getImplementation() && !ID->getImplementation()->ivar_empty()))
+ Flags |= llvm::DIDescriptor::FlagObjcClassExtension;
+
llvm::DIType RealDecl =
DBuilder.createStructType(Unit, ID->getName(), DefUnit,
- Line, Size, Align, 0,
+ Line, Size, Align, Flags,
Elements, RuntimeLang);
// Now that we have a real decl for the struct, replace anything using the
Added: cfe/trunk/test/CodeGenObjC/debug-info-class-extension.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-class-extension.m?rev=131239&view=auto
==============================================================================
--- cfe/trunk/test/CodeGenObjC/debug-info-class-extension.m (added)
+++ cfe/trunk/test/CodeGenObjC/debug-info-class-extension.m Thu May 12 14:07:41 2011
@@ -0,0 +1,15 @@
+// RUN: %clang_cc1 -fobjc-nonfragile-abi -masm-verbose -S -g %s -o - | FileCheck %s
+
+// CHECK: AT_APPLE_objc_class_extension
+
+ at interface I1
+ at end
+
+ at implementation I1 {
+int myi2;
+}
+int myi;
+ at end
+
+void foo(I1 *iptr) {}
+
Added: cfe/trunk/test/CodeGenObjC/debug-info-class-extension2.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/debug-info-class-extension2.m?rev=131239&view=auto
==============================================================================
--- cfe/trunk/test/CodeGenObjC/debug-info-class-extension2.m (added)
+++ cfe/trunk/test/CodeGenObjC/debug-info-class-extension2.m Thu May 12 14:07:41 2011
@@ -0,0 +1,14 @@
+// RUN: %clang_cc1 -fobjc-nonfragile-abi -masm-verbose -S -g %s -o - | FileCheck %s
+// CHECK: AT_APPLE_objc_class_extension
+
+ at interface Foo {} @end
+
+ at interface Foo () {
+ int *bar;
+}
+ at end
+
+ at implementation Foo
+ at end
+
+void bar(Foo *fptr) {}
More information about the cfe-commits
mailing list