diff --git a/compiler-rt/test/asan/TestCases/alloca_loop_unpoisoning.cpp b/compiler-rt/test/asan/TestCases/alloca_loop_unpoisoning.cpp index ac25a4faa2dc1..0967b34dc7dbf 100644 --- a/compiler-rt/test/asan/TestCases/alloca_loop_unpoisoning.cpp +++ b/compiler-rt/test/asan/TestCases/alloca_loop_unpoisoning.cpp @@ -2,7 +2,6 @@ // RUN: %env_asan_opts=detect_stack_use_after_return=0 %run %t 2>&1 // // REQUIRES: stable-runtime -// UNSUPPORTED: target=s390{{.*}} // This testcase checks that allocas and VLAs inside loop are correctly unpoisoned. @@ -25,11 +24,15 @@ void *top, *bot; __attribute__((noinline)) void foo(int len) { char x; top = &x; - char array[len]; + volatile char array[len]; + if (len) + array[0] = 0; assert(!(reinterpret_cast(array) & 31L)); alloca(len); for (int i = 0; i < 32; ++i) { - char array[i]; + volatile char array[i]; + if (i) + array[0] = 0; bot = alloca(i); assert(!(reinterpret_cast(bot) & 31L)); }