[PATCH] D54763: [clang][slh] Forward mSLH only to Clang CC1
Zola Bridges via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 20 11:26:14 PST 2018
zbrid created this revision.
zbrid added reviewers: chandlerc, EricWF.
Herald added a subscriber: llvm-commits.
-mno-speculative-load-hardening isn't a cc1 option, therefore,
before this change:
clang -mno-speculative-load-hardening hello.cpp
would have the following error:
error: unknown argument: '-mno-speculative-load-hardening'
This change will only ever forward -mspeculative-load-hardening
which is a CC1 option based on which flag was passed to clang.
Also added a test that uses this option that fails if an error like the
above is ever thrown.
Thank you ericwf for help debugging and fixing this error.
Repository:
rL LLVM
https://reviews.llvm.org/D54763
Files:
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/CodeGen/attr-speculative-load-hardening.c
Index: clang/test/CodeGen/attr-speculative-load-hardening.c
===================================================================
--- clang/test/CodeGen/attr-speculative-load-hardening.c
+++ clang/test/CodeGen/attr-speculative-load-hardening.c
@@ -1,4 +1,5 @@
// RUN: %clang_cc1 -mspeculative-load-hardening -disable-llvm-passes -emit-llvm %s -o - | FileCheck %s -check-prefix=SLH
+// RUN: %clang -mno-speculative-load-hardening -S -emit-llvm %s -o - | FileCheck %s -check-prefix=NOSLH
//
// Check that we set the attribute on each function.
@@ -8,3 +9,7 @@
// SLH: @{{.*}}test1{{.*}}[[SLH:#[0-9]+]]
// SLH: attributes [[SLH]] = { {{.*}}speculative_load_hardening{{.*}} }
+
+// NOSLH: @{{.*}}test1{{.*}}[[NOSLH:#[0-9]+]]
+
+// NOSLH-NOT: attributes [[SLH]] = { {{.*}}speculative_load_hardening{{.*}} }
Index: clang/lib/Driver/ToolChains/Clang.cpp
===================================================================
--- clang/lib/Driver/ToolChains/Clang.cpp
+++ clang/lib/Driver/ToolChains/Clang.cpp
@@ -4452,8 +4452,9 @@
Args.AddLastArg(CmdArgs, options::OPT_pthread);
- Args.AddLastArg(CmdArgs, options::OPT_mspeculative_load_hardening,
- options::OPT_mno_speculative_load_hardening);
+ if (Args.hasFlag(options::OPT_mspeculative_load_hardening, options::OPT_mno_speculative_load_hardening,
+ false))
+ CmdArgs.push_back(Args.MakeArgString("-mspeculative-load-hardening"));
RenderSSPOptions(TC, Args, CmdArgs, KernelOrKext);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D54763.174813.patch
Type: text/x-patch
Size: 1487 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181120/a351210e/attachment.bin>
More information about the llvm-commits
mailing list