about summary refs log tree commit diff homepage
path: root/test/CXX/StaticDestructor.cpp
blob: 7a765a8fc45581b5450f6150f6acce6a76c51d15 (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: %llvmgxx %s --emit-llvm -g -O0 -c -o %t1.bc
// RUN: %klee --libc=klee --no-output %t1.bc 2> %t1.log
// RUN: grep ":16: memory error" %t1.log

#include <cassert>

class Test {
  int *p;

public:
  Test() : p(0) {}
  ~Test() { 
    assert(!p); 
    assert(*p == 10); // crash here
  }
};

Test t;

int main() {
  return 0;
}