Ted Kremenek | 565e465 | 2010-02-05 02:06:54 +0000 | [diff] [blame^] | 1 | // RUN: %clang_cc1 -triple i386-apple-darwin9 -analyze -analyzer-experimental-internal-checks -analyzer-check-objc-mem -analyzer-store=region -verify -fblocks %s |
Ted Kremenek | 0c10699 | 2009-07-14 23:17:22 +0000 | [diff] [blame] | 2 | |
Ted Kremenek | a6275a5 | 2009-07-15 02:31:43 +0000 | [diff] [blame] | 3 | // Here is a case where a pointer is treated as integer, invalidated as an |
| 4 | // integer, and then used again as a pointer. This test just makes sure |
| 5 | // we don't crash. |
| 6 | typedef unsigned uintptr_t; |
| 7 | void test_pointer_invalidated_as_int_aux(uintptr_t* ptr); |
| 8 | void test_pointer_invalidated_as_int() { |
| 9 | void *x; |
| 10 | test_pointer_invalidated_as_int_aux((uintptr_t*) &x); |
| 11 | // Here we have a pointer to integer cast. |
| 12 | uintptr_t y = (uintptr_t) x; |
Ted Kremenek | 0c10699 | 2009-07-14 23:17:22 +0000 | [diff] [blame] | 13 | } |
| 14 | |