[PATCH] D53547: NFC: Remove the ObjC1/ObjC2 distinction from clang (and related projects)

Erik Pilkington via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 23 11:09:56 PDT 2018


erik.pilkington added a subscriber: jingham.
erik.pilkington added inline comments.


================
Comment at: clang/lib/Basic/IdentifierTable.cpp:166-167
   // in non-arc mode.
-  if (LangOpts.ObjC2 && (Flags & KEYARC)) return KS_Enabled;
-  if (LangOpts.ObjC2 && (Flags & KEYOBJC2)) return KS_Enabled;
+  if (LangOpts.ObjC && (Flags & KEYARC)) return KS_Enabled;
+  if (LangOpts.ObjC && (Flags & KEYOBJC)) return KS_Enabled;
   if (LangOpts.ConceptsTS && (Flags & KEYCONCEPTS)) return KS_Enabled;
----------------
rsmith wrote:
> Would it make sense to fold `KEYOBJC` and `KEYARC` together?
Yep, good point. Looks like we used to only enable these keywords in -fobjc-arc mode, but now that we're doing it for objective-c there isn't any distinction to be made here. I'll commit this in a follow-up.


================
Comment at: lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp:408
     // non-Apple platforms, but for now it is needed.
-    m_compiler->getLangOpts().ObjC1 = true;
+    m_compiler->getLangOpts().ObjC = true;
     break;
----------------
rsmith wrote:
> Curious, this looks like it was the *only* way we previously ever got into `ObjC1` mode. Any idea why this path turns on `ObjC1` but not `ObjC2`?
This comes from https://reviews.llvm.org/D11102. I can't really imagine this being anything but an oversight, I doubt that there is some subtle reason to use ObjC1. @jingham: Can you confirm that there isn't any reason to use just ObjC1 and not ObjC1+ObjC2 here?


https://reviews.llvm.org/D53547





More information about the cfe-commits mailing list