__OBJC__ is also a standard predefined macro.

llvm-svn: 132855
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp
index 26230d6..147a8df 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -247,6 +247,9 @@
       Builder.defineMacro("__cplusplus", "199711L");
   }
 
+  if (LangOpts.ObjC1)
+    Builder.defineMacro("__OBJC__");
+
   // Not "standard" per se, but available even with the -undef flag.
   if (LangOpts.AsmPreprocessor)
     Builder.defineMacro("__ASSEMBLER__");
@@ -295,7 +298,6 @@
     Builder.defineMacro("__GXX_EXPERIMENTAL_CXX0X__");
 
   if (LangOpts.ObjC1) {
-    Builder.defineMacro("__OBJC__");
     if (LangOpts.ObjCNonFragileABI) {
       Builder.defineMacro("__OBJC2__");
       Builder.defineMacro("OBJC_ZEROCOST_EXCEPTIONS");