diff options
author | Hans Wennborg <hans@hanshq.net> | 2015-01-20 19:45:50 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2015-01-20 19:45:50 +0000 |
commit | 77dc236605aa95a542ea68d7430a9e5ddb30123b (patch) | |
tree | 464d99fff9f115da92634aeeb2b53bde45413a6c /clang/lib/Driver/Tools.cpp | |
parent | 6b77455f819dfd587bd6927b7e1c705a6d3df36d (diff) | |
download | bcm5719-llvm-77dc236605aa95a542ea68d7430a9e5ddb30123b.tar.gz bcm5719-llvm-77dc236605aa95a542ea68d7430a9e5ddb30123b.zip |
Implement command line options for stack probe space
This code adds the -mstack-probe-size command line option and implements the /Gs
compiler switch for clang-cl.
This should fix http://llvm.org/bugs/show_bug.cgi?id=21896
Patch by Andrew H!
Differential Revision: http://reviews.llvm.org/D6685
llvm-svn: 226601
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index db43fde7634..680539bcfe2 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -3733,6 +3733,15 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back(Args.MakeArgString("-mstack-alignment=" + alignment)); } + if (Args.hasArg(options::OPT_mstack_probe_size)) { + StringRef Size = Args.getLastArgValue(options::OPT_mstack_probe_size); + + if (!Size.empty()) + CmdArgs.push_back(Args.MakeArgString("-mstack-probe-size=" + Size)); + else + CmdArgs.push_back("-mstack-probe-size=0"); + } + if (getToolChain().getTriple().getArch() == llvm::Triple::aarch64 || getToolChain().getTriple().getArch() == llvm::Triple::aarch64_be) CmdArgs.push_back("-fallow-half-arguments-and-returns"); |