1 // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96429
2 // { dg-do compile }
3 // { dg-options "-fdump-tree-original" }
subbyte(byte * bp1,byte * bp2)4 ptrdiff_t subbyte(byte* bp1, byte* bp2)
5 {
6     // { dg-final { scan-tree-dump "\\\(bp1 - bp2\\\) /\\\[ex\\\] 1;" "original" } }
7     return bp1 - bp2;
8 }
9 
subshort(short * sp1,short * sp2)10 ptrdiff_t subshort(short* sp1, short* sp2)
11 {
12     // { dg-final { scan-tree-dump "\\\(sp1 - sp2\\\) /\\\[ex\\\] 2;" "original" } }
13     return sp1 - sp2;
14 }
15 
subint(int * ip1,int * ip2)16 ptrdiff_t subint(int* ip1, int* ip2)
17 {
18     // { dg-final { scan-tree-dump "\\\(ip1 - ip2\\\) /\\\[ex\\\] 4;" "original" } }
19     return ip1 - ip2;
20 }
21 
sublong(long * lp1,long * lp2)22 ptrdiff_t sublong(long* lp1, long* lp2)
23 {
24     // { dg-final { scan-tree-dump "\\\(lp1 - lp2\\\) /\\\[ex\\\] 8;" "original" } }
25     return lp1 - lp2;
26 }
27