summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2012-05-03 20:23:37 +0000
committerFariborz Jahanian <fjahanian@apple.com>2012-05-03 20:23:37 +0000
commit3dc36698582bafb7276272b22adf8fc2db1393de (patch)
tree51d8de97f882343b6f81d8dd46a466a122522f82
parent1c5add6c5ba62ed0059b76f7d40191d28ff6134e (diff)
downloadbcm5719-llvm-3dc36698582bafb7276272b22adf8fc2db1393de.tar.gz
bcm5719-llvm-3dc36698582bafb7276272b22adf8fc2db1393de.zip
modern objc translation. objc_getClass() and objc_getMetaClass()
prototypes should both return `struct objc_class *`. // rdar://11375495 llvm-svn: 156097
-rw-r--r--clang/lib/Rewrite/RewriteModernObjC.cpp4
-rw-r--r--clang/test/Rewriter/objc-modern-getclass-proto.mm9
2 files changed, 11 insertions, 2 deletions
diff --git a/clang/lib/Rewrite/RewriteModernObjC.cpp b/clang/lib/Rewrite/RewriteModernObjC.cpp
index 05883d43df2..3863d48374b 100644
--- a/clang/lib/Rewrite/RewriteModernObjC.cpp
+++ b/clang/lib/Rewrite/RewriteModernObjC.cpp
@@ -5727,11 +5727,11 @@ void RewriteModernObjC::Initialize(ASTContext &context) {
Preamble += "__OBJC_RW_DLLIMPORT void objc_msgSendSuper_stret(void);\n";
Preamble += "__OBJC_RW_DLLIMPORT void objc_msgSend_fpret(void);\n";
- Preamble += "__OBJC_RW_DLLIMPORT struct objc_object *objc_getClass";
+ Preamble += "__OBJC_RW_DLLIMPORT struct objc_class *objc_getClass";
Preamble += "(const char *);\n";
Preamble += "__OBJC_RW_DLLIMPORT struct objc_class *class_getSuperclass";
Preamble += "(struct objc_class *);\n";
- Preamble += "__OBJC_RW_DLLIMPORT struct objc_object *objc_getMetaClass";
+ Preamble += "__OBJC_RW_DLLIMPORT struct objc_class *objc_getMetaClass";
Preamble += "(const char *);\n";
Preamble += "__OBJC_RW_DLLIMPORT void objc_exception_throw( struct objc_object *);\n";
// @synchronized hooks.
diff --git a/clang/test/Rewriter/objc-modern-getclass-proto.mm b/clang/test/Rewriter/objc-modern-getclass-proto.mm
new file mode 100644
index 00000000000..98856570639
--- /dev/null
+++ b/clang/test/Rewriter/objc-modern-getclass-proto.mm
@@ -0,0 +1,9 @@
+// RUN: %clang_cc1 -E %s -o %t.mm
+// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc -fobjc-fragile-abi %t.mm -o %t-rw.cpp
+// rdar://11375495
+
+@interface I @end
+@implementation I @end
+
+// CHECK: __OBJC_RW_DLLIMPORT struct objc_class *objc_getClass(const char *);
+// CHECK: __OBJC_RW_DLLIMPORT struct objc_class *objc_getMetaClass(const char *);
OpenPOWER on IntegriCloud