summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/BackendUtil.cpp
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2011-11-16 17:34:26 +0000
committerKostya Serebryany <kcc@google.com>2011-11-16 17:34:26 +0000
commit8855ff61cb4e554a7ca74ed47a97299c7b2a8b9e (patch)
tree74fbffa58fbdfebeb708b71d92b32fbe2de68043 /clang/lib/CodeGen/BackendUtil.cpp
parent10f4d06b81d4457b2742f3303aa8c1a7afd63df2 (diff)
downloadbcm5719-llvm-8855ff61cb4e554a7ca74ed47a97299c7b2a8b9e.tar.gz
bcm5719-llvm-8855ff61cb4e554a7ca74ed47a97299c7b2a8b9e.zip
Add -f[no-]address-sanitizer flag
llvm-svn: 144800
Diffstat (limited to 'clang/lib/CodeGen/BackendUtil.cpp')
-rw-r--r--clang/lib/CodeGen/BackendUtil.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp
index 3639dba49af..0410cec7369 100644
--- a/clang/lib/CodeGen/BackendUtil.cpp
+++ b/clang/lib/CodeGen/BackendUtil.cpp
@@ -115,6 +115,11 @@ static void addObjCARCOptPass(const PassManagerBuilder &Builder, PassManagerBase
PM.add(createObjCARCOptPass());
}
+static void addAddressSanitizerPass(const PassManagerBuilder &Builder,
+ PassManagerBase &PM) {
+ PM.add(createAddressSanitizerPass());
+}
+
void EmitAssemblyHelper::CreatePasses() {
unsigned OptLevel = CodeGenOpts.OptimizationLevel;
CodeGenOptions::InliningMethod Inlining = CodeGenOpts.Inlining;
@@ -141,6 +146,11 @@ void EmitAssemblyHelper::CreatePasses() {
PMBuilder.addExtension(PassManagerBuilder::EP_ScalarOptimizerLate,
addObjCARCOptPass);
}
+
+ if (CodeGenOpts.AddressSanitizer) {
+ PMBuilder.addExtension(PassManagerBuilder::EP_ScalarOptimizerLate,
+ addAddressSanitizerPass);
+ }
// Figure out TargetLibraryInfo.
Triple TargetTriple(TheModule->getTargetTriple());
OpenPOWER on IntegriCloud