| /* PR sanitizer/81281 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-optimized" } */ |
| /* { dg-final { scan-tree-dump-not "p_\[0-9]*\\(D\\)" "optimized" } } */ |
| |
| typedef __SIZE_TYPE__ size_t; |
| typedef __INTPTR_TYPE__ T; |
| |
| T |
| f1 (char *p, size_t a, size_t b) |
| { |
| char *c = p + 1; |
| size_t d = a + 2; |
| size_t e = b + 3; |
| T f = (T) (p + a); |
| T g = (T) (p + b); |
| return f - g; |
| } |
| |
| T |
| f2 (char *p, size_t a, size_t b) |
| { |
| size_t c = a + 1; |
| char *d = p + 2; |
| size_t e = b + 3; |
| T f = (T) (p + a); |
| T g = (T) (p + b); |
| return f - g; |
| } |
| |
| T |
| f3 (char *p, size_t a, size_t b) |
| { |
| size_t c = b + 1; |
| char *d = p + 2; |
| size_t e = a + 3; |
| T f = (T) (p + a); |
| T g = (T) (p + b); |
| return f - g; |
| } |
| |
| T |
| f4 (char *p, size_t a) |
| { |
| char *c = p + 1; |
| size_t d = a + 2; |
| T f = (T) (p + a); |
| T g = (T) p; |
| return f - g; |
| } |
| |
| T |
| f5 (char *p, size_t a) |
| { |
| size_t c = a + 1; |
| char *d = p + 2; |
| T f = (T) (p + a); |
| T g = (T) p; |
| return f - g; |
| } |
| |
| T |
| f6 (char *p, size_t a) |
| { |
| char *c = p + 1; |
| size_t d = a + 2; |
| T f = (T) p; |
| T g = (T) (p + a); |
| return f - g; |
| } |
| |
| T |
| f7 (char *p, size_t a) |
| { |
| size_t c = a + 1; |
| char *d = p + 2; |
| T f = (T) p; |
| T g = (T) (p + a); |
| return f - g; |
| } |