about summary refs log tree commit diff homepage
path: root/test/CXX/StaticDestructor.cpp
blob: adc449a5c1f740960eb31205c255cbe7db5c5415 (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
25
// 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: grep ":17: 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;
}