summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2011-05-12 21:14:54 +0000
committerDevang Patel <dpatel@apple.com>2011-05-12 21:14:54 +0000
commit70d77d144b34b5ca3bc307ec8ef384525a530446 (patch)
tree1003f97d8be5b4aaa01711f358c530181152b8fd
parent43054e6159cd9e4de024abbe92030986fa59deaa (diff)
downloadbcm5719-llvm-70d77d144b34b5ca3bc307ec8ef384525a530446.tar.gz
bcm5719-llvm-70d77d144b34b5ca3bc307ec8ef384525a530446.zip
Do not add AT_APPLE_objc_class_extension attribute if @implementation is not seen.
llvm-svn: 131242
-rw-r--r--clang/lib/CodeGen/CGDebugInfo.cpp3
-rw-r--r--clang/test/CodeGenObjC/debug-info-class-extension3.m12
2 files changed, 13 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp
index 3519cd1f385..6def71fe546 100644
--- a/clang/lib/CodeGen/CGDebugInfo.cpp
+++ b/clang/lib/CodeGen/CGDebugInfo.cpp
@@ -1242,8 +1242,7 @@ llvm::DIType CGDebugInfo::CreateType(const ObjCInterfaceType *Ty,
uint64_t Align = CGM.getContext().getTypeAlign(Ty);
unsigned Flags = 0;
- if (ID->getFirstClassExtension() ||
- (ID->getImplementation() && !ID->getImplementation()->ivar_empty()))
+ if (ID->getImplementation())
Flags |= llvm::DIDescriptor::FlagObjcClassExtension;
llvm::DIType RealDecl =
diff --git a/clang/test/CodeGenObjC/debug-info-class-extension3.m b/clang/test/CodeGenObjC/debug-info-class-extension3.m
new file mode 100644
index 00000000000..549a2adea12
--- /dev/null
+++ b/clang/test/CodeGenObjC/debug-info-class-extension3.m
@@ -0,0 +1,12 @@
+// RUN: %clang_cc1 -fobjc-nonfragile-abi -masm-verbose -S -g %s -o - | FileCheck %s
+
+// CHECK-NOT: AT_APPLE_objc_class_extension
+
+@interface Foo {} @end
+
+@interface Foo () {
+ int *bar;
+}
+@end
+
+void bar(Foo *fptr) {}
OpenPOWER on IntegriCloud