1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
char *cps(char *data, short pos)
{
data += pos;
return data;
}
int *ipss(int *data, short pos)
{
data += pos;
return data;
}
int *ipus(int *data, unsigned short pos)
{
data += pos;
return data;
}
char *cpq(char *data, long long pos)
{
data += pos;
return data;
}
int *ipq_ref(int *data, long long pos)
{
data = data + pos;
return data;
}
int *ipq(int *data, long long pos)
{
data += pos;
return data;
}
/*
* check-name: pointer-arith32
* check-command: test-linearize -Wno-decl --arch=generic -m32 $file
*
* check-output-start
cps:
.L0:
<entry-point>
sext.32 %r2 <- (16) %arg2
add.32 %r5 <- %r2, %arg1
ret.32 %r5
ipss:
.L2:
<entry-point>
sext.32 %r10 <- (16) %arg2
mul.32 %r11 <- %r10, $4
add.32 %r14 <- %r11, %arg1
ret.32 %r14
ipus:
.L4:
<entry-point>
zext.32 %r19 <- (16) %arg2
mul.32 %r20 <- %r19, $4
add.32 %r23 <- %r20, %arg1
ret.32 %r23
cpq:
.L6:
<entry-point>
trunc.32 %r28 <- (64) %arg2
add.32 %r31 <- %r28, %arg1
ret.32 %r31
ipq_ref:
.L8:
<entry-point>
trunc.32 %r37 <- (64) %arg2
mul.32 %r38 <- %r37, $4
add.32 %r39 <- %r38, %arg1
ret.32 %r39
ipq:
.L10:
<entry-point>
trunc.32 %r43 <- (64) %arg2
mul.32 %r44 <- %r43, $4
add.32 %r47 <- %r44, %arg1
ret.32 %r47
* check-output-end
*/
|