modern objective-c translator: couple of minor
changes to how meta-data is declared.
// rdar://11076938
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153098 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Rewrite/RewriteModernObjC.cpp b/lib/Rewrite/RewriteModernObjC.cpp
index aee89f1..cbae690 100644
--- a/lib/Rewrite/RewriteModernObjC.cpp
+++ b/lib/Rewrite/RewriteModernObjC.cpp
@@ -5269,7 +5269,7 @@
/// struct _class_t {
/// struct _class_t *isa;
-/// struct _class_t * const superclass;
+/// struct _class_t *superclass;
/// void *cache;
/// IMP *vtable;
/// struct _class_ro_t *ro;
@@ -5354,7 +5354,7 @@
Result += "\nstruct _class_t {\n";
Result += "\tstruct _class_t *isa;\n";
- Result += "\tstruct _class_t *const superclass;\n";
+ Result += "\tstruct _class_t *superclass;\n";
Result += "\tvoid *cache;\n";
Result += "\tvoid *vtable;\n";
Result += "\tstruct _class_ro_t *ro;\n";
@@ -5369,7 +5369,7 @@
Result += "\tconst struct _prop_list_t *const properties;\n";
Result += "};\n";
- Result += "extern void *_objc_empty_cache;\n";
+ Result += "__declspec(dllimport) extern struct objc_cache _objc_empty_cache;\n";
Result += "extern void *_objc_empty_vtable;\n";
meta_data_declared = true;
diff --git a/test/Rewriter/objc-modern-ivar-receiver-1.mm b/test/Rewriter/objc-modern-ivar-receiver-1.mm
index 5ffcdd4..b5078c7 100644
--- a/test/Rewriter/objc-modern-ivar-receiver-1.mm
+++ b/test/Rewriter/objc-modern-ivar-receiver-1.mm
@@ -26,3 +26,6 @@
@end
// CHECK: id obj = (*(id *)((char *)newInv + OBJC_IVAR_$_NSInvocation$_container));
+// rdar://11076938
+// CHECK: struct _class_t *superclass;
+// CHECK: __declspec(dllimport) extern struct objc_cache _objc_empty_cache;