blob: 3a98fc63eeee27d2ded2ccd110647a1b366cd894 [file] [log] [blame]
Stephen Hines2d1fdb22014-05-28 23:58:16 -07001// 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 \
Stephen Hines6a211c52014-07-21 00:49:56 -07005// RUN: -fsanitize-blacklist=%p/Helpers/initialization-blacklist.txt -o %t
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -08006// RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1
Stephen Hines2d1fdb22014-05-28 23:58:16 -07007// RUN: %clangxx_asan -O1 %s %p/Helpers/initialization-blacklist-extra.cc\
8// RUN: %p/Helpers/initialization-blacklist-extra2.cc \
Stephen Hines6a211c52014-07-21 00:49:56 -07009// RUN: -fsanitize-blacklist=%p/Helpers/initialization-blacklist.txt -o %t
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -080010// RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1
Stephen Hines2d1fdb22014-05-28 23:58:16 -070011// RUN: %clangxx_asan -O2 %s %p/Helpers/initialization-blacklist-extra.cc\
12// RUN: %p/Helpers/initialization-blacklist-extra2.cc \
Stephen Hines6a211c52014-07-21 00:49:56 -070013// RUN: -fsanitize-blacklist=%p/Helpers/initialization-blacklist.txt -o %t
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -080014// RUN: %env_asan_opts=check_initialization_order=true %run %t 2>&1
Stephen Hines2d1fdb22014-05-28 23:58:16 -070015
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}