rsmith added a comment.

I'm very happy with reducing our configuration space like this, if the 
distinction is indeed unused (which it appears to be). (If compiling in ObjC1 
mode actually is useful, we should instead have a command-line flag for that 
and tests; the fact that we don't tells us almost everything we need to know 
here.)



================
Comment at: clang/include/clang/Basic/Features.def:95
+FEATURE(objc_kindof, LangOpts.ObjC)
+FEATURE(objc_modules, LangOpts.ObjC &&LangOpts.Modules)
 FEATURE(objc_nonfragile_abi, LangOpts.ObjCRuntime.isNonFragile())
----------------
You touched this line last, so it's now your fault that there's missing space 
after the `&&` :)


================
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;
----------------
Would it make sense to fold `KEYOBJC` and `KEYARC` together?


================
Comment at: clang/lib/Sema/SemaCodeComplete.cpp:1365
     Results.AddResult(Result("bool", CCP_Type +
-                             (LangOpts.ObjC1? CCD_bool_in_ObjC : 0)));
+                             (LangOpts.ObjC? CCD_bool_in_ObjC : 0)));
     Results.AddResult(Result("class", CCP_Type));
----------------
Space before `?` please.


================
Comment at: clang/lib/Sema/SemaCodeComplete.cpp:3335
   else if (MacroName.equals("bool"))
-    Priority = CCP_Type + (LangOpts.ObjC1? CCD_bool_in_ObjC : 0);
+    Priority = CCP_Type + (LangOpts.ObjC? CCD_bool_in_ObjC : 0);
 
----------------
Space before `?` please.


================
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;
----------------
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`?


Repository:
  rC Clang

https://reviews.llvm.org/D53547



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to