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 | |