| // RUN: %clang_cc1 -triple i386-unknown-unknown -O1 -emit-llvm -o - %s | FileCheck %s | |
| // CHECK: define i32 @f0 | |
| // CHECK: ret i32 1 | |
| // CHECK: define i32 @f1 | |
| // CHECK: ret i32 1 | |
| // CHECK: define i32 @f2 | |
| // CHECK: ret i32 1 | |
| // <rdr://6115726> | |
| int f0() { | |
| int x; | |
| unsigned short n = 1; | |
| int *a = &x; | |
| int *b = &x; | |
| a = a - n; | |
| b -= n; | |
| return a == b; | |
| } | |
| int f1(int *a) { | |
| long b = a - (int*) 1; | |
| a -= (int*) 1; | |
| return b == (long) a; | |
| } | |
| int f2(long n) { | |
| int *b = n + (int*) 1; | |
| n += (int*) 1; | |
| return b == (int*) n; | |
| } | |