diff options
author | Joerg Sonnenberger <joerg@bec.de> | 2012-09-12 13:51:14 +0000 |
---|---|---|
committer | Joerg Sonnenberger <joerg@bec.de> | 2012-09-12 13:51:14 +0000 |
commit | 85e2bbc3f8c751584871537e72caffc2bffb9613 (patch) | |
tree | 0eb6f922765693078a968b2f73e00a04bfefb94e /clang/lib/Driver/Tools.cpp | |
parent | 26d7a06da33d5c1d162b579745fbf6bdba7b6af2 (diff) | |
download | bcm5719-llvm-85e2bbc3f8c751584871537e72caffc2bffb9613.tar.gz bcm5719-llvm-85e2bbc3f8c751584871537e72caffc2bffb9613.zip |
Claim --param ssp-buffer-size, even if the stack protector is not
active.
llvm-svn: 163705
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 25dd0824bce..c0ce50437ff 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -2346,17 +2346,19 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, if (StackProtectorLevel) { CmdArgs.push_back("-stack-protector"); CmdArgs.push_back(Args.MakeArgString(Twine(StackProtectorLevel))); + } - // --param ssp-buffer-size= - for (arg_iterator it = Args.filtered_begin(options::OPT__param), - ie = Args.filtered_end(); it != ie; ++it) { - StringRef Str((*it)->getValue(Args)); - if (Str.startswith("ssp-buffer-size=")) { + // --param ssp-buffer-size= + for (arg_iterator it = Args.filtered_begin(options::OPT__param), + ie = Args.filtered_end(); it != ie; ++it) { + StringRef Str((*it)->getValue(Args)); + if (Str.startswith("ssp-buffer-size=")) { + if (StackProtectorLevel) { CmdArgs.push_back("-stack-protector-buffer-size"); // FIXME: Verify the argument is a valid integer. CmdArgs.push_back(Args.MakeArgString(Str.drop_front(16))); - (*it)->claim(); } + (*it)->claim(); } } |