cxx-crashes.cpp revision c4d2c9074be6eb2091086eddd6c8f052f3b245c8
1// RUN: %clang_cc1 -analyze -analyzer-checker=core -verify %s
2
3int f1(char *dst) {
4  char *p = dst + 4;
5  char *q = dst + 3;
6  return !(q >= p);
7}
8
9long f2(char *c) {
10  return long(c) & 1;
11}
12
13bool f3() {
14  return !false;
15}
16
17void *f4(int* w) {
18  return reinterpret_cast<void*&>(w);
19}
20
21namespace {
22
23struct A { };
24struct B {
25  operator A() { return A(); }
26};
27
28A f(char *dst) {
29  B b;
30  return b;
31}
32
33}
34
35namespace {
36
37struct S {
38    void *p;
39};
40
41void *f(S* w) {
42    return &reinterpret_cast<void*&>(*w);
43}
44
45}
46