summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorNuno Lopes <nunoplopes@sapo.pt>2012-05-08 22:10:46 +0000
committerNuno Lopes <nunoplopes@sapo.pt>2012-05-08 22:10:46 +0000
commit3d6311d5f7e5078df992c5167b53a586cfb7213a (patch)
tree6daffe4e34e3129dc4f01776be1a20311d2575c3 /clang/lib/Driver/Tools.cpp
parenta777dc2abe4525b34a0e9d6433b41ea9728b27a2 (diff)
downloadbcm5719-llvm-3d6311d5f7e5078df992c5167b53a586cfb7213a.tar.gz
bcm5719-llvm-3d6311d5f7e5078df992c5167b53a586cfb7213a.zip
add -fbounds-checking option.
When enabled, clang generates bounds checks for array and pointers dereferences. Work to follow in LLVM's backend. OK'ed by Chad; thanks for the review. llvm-svn: 156431
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 90a9f0cf947..1ccba755071 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -2025,6 +2025,15 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back("-Wlarge-by-value-copy=64"); // default value
}
+ if (Arg *A = Args.getLastArg(options::OPT_fbounds_checking,
+ options::OPT_fbounds_checking_EQ)) {
+ if (A->getNumValues()) {
+ StringRef val = A->getValue(Args);
+ CmdArgs.push_back(Args.MakeArgString("-fbounds-checking=" + val));
+ } else
+ CmdArgs.push_back("-fbounds-checking=1");
+ }
+
if (Args.hasArg(options::OPT__relocatable_pch))
CmdArgs.push_back("-relocatable-pch");
OpenPOWER on IntegriCloud