forked from OSchip/llvm-project
[ASan] test blacklist functionality for global-init-order checker (r167725)
llvm-svn: 167727
This commit is contained in:
parent
b3e91f6ae0
commit
c835b9e4a3
|
@ -0,0 +1,15 @@
|
|||
int zero_init() { return 0; }
|
||||
int badGlobal = zero_init();
|
||||
int readBadGlobal() { return badGlobal; }
|
||||
|
||||
namespace badNamespace {
|
||||
class BadClass {
|
||||
public:
|
||||
BadClass() { value = 0; }
|
||||
int value;
|
||||
};
|
||||
// Global object with non-trivial constructor.
|
||||
BadClass bad_object;
|
||||
} // namespace badNamespace
|
||||
|
||||
int accessBadObject() { return badNamespace::bad_object.value; }
|
|
@ -0,0 +1,2 @@
|
|||
global-init:*badGlobal*
|
||||
global-init-type:*badNamespace::BadClass*
|
|
@ -0,0 +1,32 @@
|
|||
// Test for blacklist functionality of initialization-order checker.
|
||||
|
||||
// RUN: %clangxx_asan -m64 -O0 %s %p/Helpers/initialization-blacklist-extra.cc\
|
||||
// RUN: -mllvm -asan-blacklist=%p/Helpers/initialization-blacklist.txt \
|
||||
// RUN: -mllvm -asan-initialization-order -o %t && %t 2>&1
|
||||
// RUN: %clangxx_asan -m64 -O1 %s %p/Helpers/initialization-blacklist-extra.cc\
|
||||
// RUN: -mllvm -asan-blacklist=%p/Helpers/initialization-blacklist.txt \
|
||||
// RUN: -mllvm -asan-initialization-order -o %t && %t 2>&1
|
||||
// RUN: %clangxx_asan -m64 -O2 %s %p/Helpers/initialization-blacklist-extra.cc\
|
||||
// RUN: -mllvm -asan-blacklist=%p/Helpers/initialization-blacklist.txt \
|
||||
// RUN: -mllvm -asan-initialization-order -o %t && %t 2>&1
|
||||
// RUN: %clangxx_asan -m32 -O0 %s %p/Helpers/initialization-blacklist-extra.cc\
|
||||
// RUN: -mllvm -asan-blacklist=%p/Helpers/initialization-blacklist.txt \
|
||||
// RUN: -mllvm -asan-initialization-order -o %t && %t 2>&1
|
||||
// RUN: %clangxx_asan -m32 -O1 %s %p/Helpers/initialization-blacklist-extra.cc\
|
||||
// RUN: -mllvm -asan-blacklist=%p/Helpers/initialization-blacklist.txt \
|
||||
// RUN: -mllvm -asan-initialization-order -o %t && %t 2>&1
|
||||
// RUN: %clangxx_asan -m32 -O2 %s %p/Helpers/initialization-blacklist-extra.cc\
|
||||
// RUN: -mllvm -asan-blacklist=%p/Helpers/initialization-blacklist.txt \
|
||||
// RUN: -mllvm -asan-initialization-order -o %t && %t 2>&1
|
||||
|
||||
// Function is defined in another TU.
|
||||
int readBadGlobal();
|
||||
int x = readBadGlobal(); // init-order bug.
|
||||
|
||||
// Function is defined in another TU.
|
||||
int accessBadObject();
|
||||
int y = accessBadObject(); // init-order bug.
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
return argc + x + y - 1;
|
||||
}
|
Loading…
Reference in New Issue