1*95d609b5SMatt Morehouse // Test that HWASan shadow is initialized before .preinit_array functions run.
2*95d609b5SMatt Morehouse 
3*95d609b5SMatt Morehouse // RUN: %clang_hwasan %s -o %t
4*95d609b5SMatt Morehouse // RUN: %run %t
5*95d609b5SMatt Morehouse 
6*95d609b5SMatt Morehouse volatile int Global;
StoreToGlobal()7*95d609b5SMatt Morehouse void StoreToGlobal() { Global = 42; }
8*95d609b5SMatt Morehouse 
9*95d609b5SMatt Morehouse __attribute__((section(".preinit_array"), used))
10*95d609b5SMatt Morehouse void (*__StoreToGlobal_preinit)() = StoreToGlobal;
11*95d609b5SMatt Morehouse 
main()12*95d609b5SMatt Morehouse int main() { return Global != 42; }
13