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
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits