diff options
Diffstat (limited to 'lib/asan/lit_tests/TestCases/use-after-scope-dtor-order.cc')
-rw-r--r-- | lib/asan/lit_tests/TestCases/use-after-scope-dtor-order.cc | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/lib/asan/lit_tests/TestCases/use-after-scope-dtor-order.cc b/lib/asan/lit_tests/TestCases/use-after-scope-dtor-order.cc deleted file mode 100644 index 32fa6ad8a464..000000000000 --- a/lib/asan/lit_tests/TestCases/use-after-scope-dtor-order.cc +++ /dev/null @@ -1,25 +0,0 @@ -// RUN: %clangxx_asan -O0 -fsanitize=use-after-scope %s -o %t && \ -// RUN: not %t 2>&1 | FileCheck %s -#include <stdio.h> - -struct IntHolder { - explicit IntHolder(int *val = 0) : val_(val) { } - ~IntHolder() { - printf("Value: %d\n", *val_); // BOOM - // CHECK: ERROR: AddressSanitizer: stack-use-after-scope - // CHECK: #0 0x{{.*}} in IntHolder::~IntHolder{{.*}}use-after-scope-dtor-order.cc:[[@LINE-2]] - } - void set(int *val) { val_ = val; } - int *get() { return val_; } - - int *val_; -}; - -int main(int argc, char *argv[]) { - // It is incorrect to use "x" int IntHolder destructor, because "x" is - // "destroyed" earlier as it's declared later. - IntHolder holder; - int x = argc; - holder.set(&x); - return 0; -} |