// don't optimize this, llvm likes to turn the *p into unreachable // RUN: %llvmgxx %s -emit-llvm -g -O0 -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 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; }