@@ -1792,22 +1792,33 @@ TEST(MemorySanitizer, VAArgOverflow) {
17921792static 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
17991800static 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
18081814TEST (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
18131824struct StructByVal {
0 commit comments