| // RUN: %clang_cc1 -analyze -analyzer-check-objc-mem -verify %s | |
| int f1(char *dst) { | |
| char *p = dst + 4; | |
| char *q = dst + 3; | |
| return !(q >= p); | |
| } | |
| long f2(char *c) { | |
| return long(c) & 1; | |
| } | |
| bool f3() { | |
| return !false; | |
| } | |
| void *f4(int* w) { | |
| return reinterpret_cast<void*&>(w); | |
| } | |
| namespace { | |
| struct A { }; | |
| struct B { | |
| operator A() { return A(); } | |
| }; | |
| A f(char *dst) { | |
| B b; | |
| return b; | |
| } | |
| } | |
| namespace { | |
| struct S { | |
| void *p; | |
| }; | |
| void *f(S* w) { | |
| return &reinterpret_cast<void*&>(*w); | |
| } | |
| } |