1// Test for blacklist functionality of initialization-order checker. 2 3// RUN: %clangxx_asan -O0 %s %p/Helpers/initialization-blacklist-extra.cc\ 4// RUN: %p/Helpers/initialization-blacklist-extra2.cc \ 5// RUN: -fsanitize-blacklist=%p/Helpers/initialization-blacklist.txt -o %t 6// RUN: env ASAN_OPTIONS=check_initialization_order=true %run %t 2>&1 7// RUN: %clangxx_asan -O1 %s %p/Helpers/initialization-blacklist-extra.cc\ 8// RUN: %p/Helpers/initialization-blacklist-extra2.cc \ 9// RUN: -fsanitize-blacklist=%p/Helpers/initialization-blacklist.txt -o %t 10// RUN: env ASAN_OPTIONS=check_initialization_order=true %run %t 2>&1 11// RUN: %clangxx_asan -O2 %s %p/Helpers/initialization-blacklist-extra.cc\ 12// RUN: %p/Helpers/initialization-blacklist-extra2.cc \ 13// RUN: -fsanitize-blacklist=%p/Helpers/initialization-blacklist.txt -o %t 14// RUN: env ASAN_OPTIONS=check_initialization_order=true %run %t 2>&1 15 16// Function is defined in another TU. 17int readBadGlobal(); 18int x = readBadGlobal(); // init-order bug. 19 20// Function is defined in another TU. 21int accessBadObject(); 22int y = accessBadObject(); // init-order bug. 23 24int readBadSrcGlobal(); 25int z = readBadSrcGlobal(); // init-order bug. 26 27int main(int argc, char **argv) { 28 return argc + x + y + z - 1; 29} 30