Skip to content

Commit 0d13c70

Browse files
committed
[msan] Extend VAArgTLSOverwrite test.
This test now covers LLVM r189104. llvm-svn: 189105
1 parent d42863c commit 0d13c70

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

compiler-rt/lib/msan/tests/msan_test.cc

+15-4
Original file line numberDiff line numberDiff line change
@@ -1792,22 +1792,33 @@ TEST(MemorySanitizer, VAArgOverflow) {
17921792
static void vaargsfn_tlsoverwrite2(int guard, ...) {
17931793
va_list vl;
17941794
va_start(vl, guard);
1795-
EXPECT_NOT_POISONED(va_arg(vl, int));
1795+
for (int i = 0; i < 20; ++i)
1796+
EXPECT_NOT_POISONED(va_arg(vl, int));
17961797
va_end(vl);
17971798
}
17981799

17991800
static void vaargsfn_tlsoverwrite(int guard, ...) {
18001801
// This call will overwrite TLS contents unless it's backed up somewhere.
1801-
vaargsfn_tlsoverwrite2(2, 42);
1802+
vaargsfn_tlsoverwrite2(2,
1803+
42, 42, 42, 42, 42,
1804+
42, 42, 42, 42, 42,
1805+
42, 42, 42, 42, 42,
1806+
42, 42, 42, 42, 42); // 20x
18021807
va_list vl;
18031808
va_start(vl, guard);
1804-
EXPECT_POISONED(va_arg(vl, int));
1809+
for (int i = 0; i < 20; ++i)
1810+
EXPECT_POISONED(va_arg(vl, int));
18051811
va_end(vl);
18061812
}
18071813

18081814
TEST(MemorySanitizer, VAArgTLSOverwrite) {
18091815
int* x = GetPoisoned<int>();
1810-
vaargsfn_tlsoverwrite(1, *x);
1816+
vaargsfn_tlsoverwrite(1,
1817+
*x, *x, *x, *x, *x,
1818+
*x, *x, *x, *x, *x,
1819+
*x, *x, *x, *x, *x,
1820+
*x, *x, *x, *x, *x); // 20x
1821+
18111822
}
18121823

18131824
struct StructByVal {

0 commit comments

Comments
 (0)