[asan] in SizedStackTest check the death string, also restrict one of the checks to 64-bit

llvm-svn: 196576
This commit is contained in:
Kostya Serebryany 2013-12-06 09:33:36 +00:00
parent 89d910c397
commit 3429f78289
1 changed files with 9 additions and 8 deletions

View File

@ -449,17 +449,18 @@ template<int kSize>
NOINLINE void SizedStackTest() {
char a[kSize];
char *A = Ident((char*)&a);
const char *expected_death = "AddressSanitizer: stack-buffer-";
for (size_t i = 0; i < kSize; i++)
A[i] = i;
EXPECT_DEATH(A[-1] = 0, "");
EXPECT_DEATH(A[-5] = 0, "");
EXPECT_DEATH(A[-1] = 0, expected_death);
EXPECT_DEATH(A[-5] = 0, expected_death);
if (kSize > 16 && SANITIZER_WORDSIZE == 64)
EXPECT_DEATH(A[-31] = 0, expected_death);
EXPECT_DEATH(A[kSize] = 0, expected_death);
EXPECT_DEATH(A[kSize + 1] = 0, expected_death);
EXPECT_DEATH(A[kSize + 5] = 0, expected_death);
if (kSize > 16)
EXPECT_DEATH(A[-31] = 0, "");
EXPECT_DEATH(A[kSize] = 0, "");
EXPECT_DEATH(A[kSize + 1] = 0, "");
EXPECT_DEATH(A[kSize + 5] = 0, "");
if (kSize > 16)
EXPECT_DEATH(A[kSize + 31] = 0, "");
EXPECT_DEATH(A[kSize + 31] = 0, expected_death);
}
TEST(AddressSanitizer, SimpleStackTest) {