1 // RUN: %clang_cc1 -triple i386-unknown-unknown -O1 -emit-llvm -o - %s | FileCheck %s 2 // CHECK-LABEL: define i32 @f0 3 // CHECK: ret i32 1 4 // CHECK-LABEL: define i32 @f1 5 // CHECK: ret i32 1 6 // CHECK-LABEL: define i32 @f2 7 // CHECK: ret i32 1 8 // <rdr://6115726> 9 10 int f0() { 11 int x; 12 unsigned short n = 1; 13 int *a = &x; 14 int *b = &x; 15 a = a - n; 16 b -= n; 17 return a == b; 18 } 19 20 int f1(int *a) { 21 long b = a - (int*) 1; 22 a -= (int*) 1; 23 return b == (long) a; 24 } 25 26 int f2(long n) { 27 int *b = n + (int*) 1; 28 n += (int*) 1; 29 return b == (int*) n; 30 } 31 32