blob: 4ea857c1b70c5d601451eb84ec23716b092ce446 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
// don't optimize this, llvm likes to turn the *p into unreachable
// RUN: %xxclang %s -emit-llvm -g %O0opt -c -o %t1.bc
// RUN: rm -rf %t.klee-out
// RUN: %klee --output-dir=%t.klee-out --optimize=false --libc=klee --no-output %t1.bc 2> %t1.log
// RUN: FileCheck --input-file %t1.log %s
#include <cassert>
class Test {
int *p;
public:
Test() : p(0) {}
~Test() {
assert(!p);
// CHECK: :[[@LINE+1]]: memory error
assert(*p == 10); // crash here
}
};
Test t;
int main(int argc, char **argv) { return 0; }
|