about summary refs log tree commit diff homepage
path: root/test/CXX/StaticDestructor.cpp
blob: 60390c2da1ef81e6c83402dcc264bae28b05fa59 (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 --optimize=false --libc=uclibc --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(int argc, char** argv) {
  return 0;
}