ASan: Disable alloc/dealloc-mismatch checker on Mac for now (it produces weird false positives on googletest)

llvm-svn: 172394
This commit is contained in:
Alexey Samsonov 2013-01-14 10:18:38 +00:00
parent c1a1517a37
commit aaa50f06d4
2 changed files with 8 additions and 4 deletions

View File

@ -144,7 +144,9 @@ void InitializeFlags(Flags *f, const char *env) {
f->fast_unwind_on_fatal = true;
f->fast_unwind_on_malloc = true;
f->poison_heap = true;
f->alloc_dealloc_mismatch = true;
// Turn off alloc/dealloc mismatch checker on Mac for now.
// TODO(glider): Fix known issues and enable this back.
f->alloc_dealloc_mismatch = (ASAN_MAC == 0);
f->use_stack_depot = true; // Only affects allocator2.
// Override from user-specified string.

View File

@ -2060,13 +2060,14 @@ TEST(AddressSanitizer, AttributeNoAddressSafetyTest) {
Ident(NoAddressSafety)();
}
// TODO(glider): Enable this test on Mac when alloc/dealloc mismatch is
// fixed there.
#ifndef __APPLE__
static string MismatchStr(const string &str) {
return string("AddressSanitizer: alloc-dealloc-mismatch \\(") + str;
}
// This test is disabled until we enable alloc_dealloc_mismatch by default.
// The feature is also tested by lit tests.
TEST(AddressSanitizer, DISABLED_AllocDeallocMismatch) {
TEST(AddressSanitizer, AllocDeallocMismatch) {
EXPECT_DEATH(free(Ident(new int)),
MismatchStr("operator new vs free"));
EXPECT_DEATH(free(Ident(new int[2])),
@ -2080,6 +2081,7 @@ TEST(AddressSanitizer, DISABLED_AllocDeallocMismatch) {
EXPECT_DEATH(delete [] (Ident((int*)malloc(2 * sizeof(int)))),
MismatchStr("malloc vs operator delete \\[\\]"));
}
#endif // __APPLE__
// ------------------ demo tests; run each one-by-one -------------
// e.g. --gtest_filter=*DemoOOBLeftHigh --gtest_also_run_disabled_tests