[clang] a7dcd3a - [clang][cli] NFC: Parse some LangOpts after the defaults are set
Jan Svoboda via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 15 07:41:53 PST 2021
Author: Jan Svoboda
Date: 2021-01-15T16:41:34+01:00
New Revision: a7dcd3aeb0fb58ad774bc89428ed6c925f31f8aa
URL: https://github.com/llvm/llvm-project/commit/a7dcd3aeb0fb58ad774bc89428ed6c925f31f8aa
DIFF: https://github.com/llvm/llvm-project/commit/a7dcd3aeb0fb58ad774bc89428ed6c925f31f8aa.diff
LOG: [clang][cli] NFC: Parse some LangOpts after the defaults are set
This patch ensures we only parse the necessary options before calling `setLangDefaults` (explained in D94678).
Because neither `LangOpts.CFProtectionBranch` nor `LangOpts.SYCLIsDevice` are used in `setLangDefaults`, this is a NFC.
Reviewed By: Bigcheese
Differential Revision: https://reviews.llvm.org/D94680
Added:
Modified:
clang/lib/Frontend/CompilerInvocation.cpp
Removed:
################################################################################
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index d261eb7f45cd..c672834a7970 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -2196,12 +2196,6 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK,
}
}
- if (const Arg *A = Args.getLastArg(OPT_fcf_protection_EQ)) {
- StringRef Name = A->getValue();
- if (Name == "full" || Name == "branch") {
- Opts.CFProtectionBranch = 1;
- }
- }
// -cl-std only applies for OpenCL language standards.
// Override the -std option in this case.
if (const Arg *A = Args.getLastArg(OPT_cl_std_EQ)) {
@@ -2224,14 +2218,21 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK,
LangStd = OpenCLLangStd;
}
- Opts.SYCLIsDevice = Opts.SYCL && Args.hasArg(options::OPT_fsycl_is_device);
-
// These need to be parsed now. They are used to set OpenCL defaults.
Opts.IncludeDefaultHeader = Args.hasArg(OPT_finclude_default_header);
Opts.DeclareOpenCLBuiltins = Args.hasArg(OPT_fdeclare_opencl_builtins);
CompilerInvocation::setLangDefaults(Opts, IK, T, Includes, LangStd);
+ if (const Arg *A = Args.getLastArg(OPT_fcf_protection_EQ)) {
+ StringRef Name = A->getValue();
+ if (Name == "full" || Name == "branch") {
+ Opts.CFProtectionBranch = 1;
+ }
+ }
+
+ Opts.SYCLIsDevice = Opts.SYCL && Args.hasArg(options::OPT_fsycl_is_device);
+
// -cl-strict-aliasing needs to emit diagnostic in the case where CL > 1.0.
// This option should be deprecated for CL > 1.0 because
// this option was added for compatibility with OpenCL 1.0.
More information about the cfe-commits
mailing list