172131161SEvgeniy Stepanov // RUN: %clangxx_msan -O0 %s -o %t && %run %t
272131161SEvgeniy Stepanov 
3*118757afSVitaly Buka // FIXME: Something changed in glibc 2.34, maybe earier.
4*118757afSVitaly Buka // UNSUPPORTED: glibc-2.34
5*118757afSVitaly Buka 
672131161SEvgeniy Stepanov #include <sanitizer/msan_interface.h>
772131161SEvgeniy Stepanov 
872131161SEvgeniy Stepanov volatile int global;
pre_ctor()972131161SEvgeniy Stepanov static void pre_ctor() {
1072131161SEvgeniy Stepanov   volatile int local;
1172131161SEvgeniy Stepanov   global = 42;
1272131161SEvgeniy Stepanov   local = 42;
1372131161SEvgeniy Stepanov }
1472131161SEvgeniy Stepanov 
1572131161SEvgeniy Stepanov __attribute__((section(".preinit_array"), used)) void(*__local_pre_ctor)(void) = pre_ctor;
1672131161SEvgeniy Stepanov 
main(void)1772131161SEvgeniy Stepanov int main(void) {
1872131161SEvgeniy Stepanov   return 0;
1972131161SEvgeniy Stepanov }
20