Finish fixing <rdar://problem/5929344> clang ObjC rewriter: "extern int __CFConstantStringClassReference[];" should be extern "C"


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54367 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/RewriteObjC.cpp b/Driver/RewriteObjC.cpp
index a6e5364..b83200e 100644
--- a/Driver/RewriteObjC.cpp
+++ b/Driver/RewriteObjC.cpp
@@ -358,7 +358,11 @@
   Preamble += "  char *str;\n";
   Preamble += "  long length;\n";
   Preamble += "};\n";
+  Preamble += "#ifdef CF_EXPORT_CONSTANT_STRING\n";
+  Preamble += "extern \"C\" __declspec(dllexport) int __CFConstantStringClassReference[];\n";
+  Preamble += "#else\n";
   Preamble += "__OBJC_RW_EXTERN int __CFConstantStringClassReference[];\n";
+  Preamble += "#endif\n";
   Preamble += "#define __NSCONSTANTSTRINGIMPL\n";
   Preamble += "#endif\n";
   if (LangOpts.Microsoft) {