| Argyrios Kyrtzidis | f4699d1 | 2011-02-18 20:55:19 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -analyze -analyzer-check-objc-mem -verify %s |
| 2 | |||||
| 3 | int f1(char *dst) { | ||||
| 4 | char *p = dst + 4; | ||||
| 5 | char *q = dst + 3; | ||||
| 6 | return !(q >= p); | ||||
| 7 | } | ||||
| Argyrios Kyrtzidis | 4f20de1 | 2011-02-18 21:24:56 +0000 | [diff] [blame] | 8 | |
| Argyrios Kyrtzidis | 7ff07dc | 2011-02-19 01:08:41 +0000 | [diff] [blame] | 9 | long f2(char *c) { |
| 10 | return long(c) & 1; | ||||
| 11 | } | ||||
| 12 | |||||
| Argyrios Kyrtzidis | 370e6e9 | 2011-02-19 01:59:41 +0000 | [diff] [blame] | 13 | bool f3() { |
| 14 | return !false; | ||||
| 15 | } | ||||
| 16 | |||||
| Argyrios Kyrtzidis | b14175a | 2011-02-19 08:03:18 +0000 | [diff] [blame] | 17 | void *f4(int* w) { |
| 18 | return reinterpret_cast<void*&>(w); | ||||
| 19 | } | ||||
| 20 | |||||
| Argyrios Kyrtzidis | 4f20de1 | 2011-02-18 21:24:56 +0000 | [diff] [blame] | 21 | namespace { |
| 22 | |||||
| 23 | struct A { }; | ||||
| 24 | struct B { | ||||
| John McCall | 15e310a | 2011-02-19 02:53:41 +0000 | [diff] [blame] | 25 | operator A() { return A(); } |
| Argyrios Kyrtzidis | 4f20de1 | 2011-02-18 21:24:56 +0000 | [diff] [blame] | 26 | }; |
| 27 | |||||
| 28 | A f(char *dst) { | ||||
| 29 | B b; | ||||
| 30 | return b; | ||||
| 31 | } | ||||
| 32 | |||||
| 33 | } | ||||
| Argyrios Kyrtzidis | b14175a | 2011-02-19 08:03:18 +0000 | [diff] [blame] | 34 | |
| 35 | namespace { | ||||
| 36 | |||||
| 37 | struct S { | ||||
| 38 | void *p; | ||||
| 39 | }; | ||||
| 40 | |||||
| 41 | void *f(S* w) { | ||||
| 42 | return &reinterpret_cast<void*&>(*w); | ||||
| 43 | } | ||||
| 44 | |||||
| 45 | } | ||||