diff options
| author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2013-08-23 12:13:18 +0000 |
|---|---|---|
| committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2013-08-23 12:13:18 +0000 |
| commit | 0d13c707d57ecd69827a729dd8bbf6c94a56d02a (patch) | |
| tree | fead91cf19bbc81ec4a66f6c6c28d749894e120f | |
| parent | d42863cc1fd8702aa635859a56411bd5f3a59142 (diff) | |
| download | bcm5719-llvm-0d13c707d57ecd69827a729dd8bbf6c94a56d02a.tar.gz bcm5719-llvm-0d13c707d57ecd69827a729dd8bbf6c94a56d02a.zip | |
[msan] Extend VAArgTLSOverwrite test.
This test now covers LLVM r189104.
llvm-svn: 189105
| -rw-r--r-- | compiler-rt/lib/msan/tests/msan_test.cc | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/compiler-rt/lib/msan/tests/msan_test.cc b/compiler-rt/lib/msan/tests/msan_test.cc index f0574cea048..d1d25f63a80 100644 --- a/compiler-rt/lib/msan/tests/msan_test.cc +++ b/compiler-rt/lib/msan/tests/msan_test.cc @@ -1792,22 +1792,33 @@ TEST(MemorySanitizer, VAArgOverflow) { static void vaargsfn_tlsoverwrite2(int guard, ...) { va_list vl; va_start(vl, guard); - EXPECT_NOT_POISONED(va_arg(vl, int)); + for (int i = 0; i < 20; ++i) + EXPECT_NOT_POISONED(va_arg(vl, int)); va_end(vl); } static void vaargsfn_tlsoverwrite(int guard, ...) { // This call will overwrite TLS contents unless it's backed up somewhere. - vaargsfn_tlsoverwrite2(2, 42); + vaargsfn_tlsoverwrite2(2, + 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42); // 20x va_list vl; va_start(vl, guard); - EXPECT_POISONED(va_arg(vl, int)); + for (int i = 0; i < 20; ++i) + EXPECT_POISONED(va_arg(vl, int)); va_end(vl); } TEST(MemorySanitizer, VAArgTLSOverwrite) { int* x = GetPoisoned<int>(); - vaargsfn_tlsoverwrite(1, *x); + vaargsfn_tlsoverwrite(1, + *x, *x, *x, *x, *x, + *x, *x, *x, *x, *x, + *x, *x, *x, *x, *x, + *x, *x, *x, *x, *x); // 20x + } struct StructByVal { |

