Add -fno-assume-sane-operator-new when building with MSan.

A workaroudn for PR16386. MSan's operator new aften has side-effects that are
miscompiled without this flag.

llvm-svn: 184410
This commit is contained in:
Evgeniy Stepanov 2013-06-20 10:49:46 +00:00
parent 673cf23d06
commit edc91428a2
2 changed files with 9 additions and 2 deletions

View File

@ -94,8 +94,12 @@ class SanitizerArgs {
CmdArgs.push_back(Args.MakeArgString("-fsanitize-memory-track-origins"));
if (AsanZeroBaseShadow)
CmdArgs.push_back(Args.MakeArgString(
"-fsanitize-address-zero-base-shadow"));
CmdArgs.push_back(
Args.MakeArgString("-fsanitize-address-zero-base-shadow"));
// Workaround for PR16386.
if (needsMsanRt())
CmdArgs.push_back(Args.MakeArgString("-fno-assume-sane-operator-new"));
}
private:

View File

@ -139,3 +139,6 @@
// RUN: %clang -target x86_64-linux-gnu -fsanitize=address,leak -fno-sanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANA-SANL-NO-SANA
// CHECK-SANA-SANL-NO-SANA: "-fsanitize=leak"
// RUN: %clang -target x86_64-linux-gnu -fsanitize=memory %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-MSAN
// CHECK-MSAN: "-fno-assume-sane-operator-new"