blob: ba2c648167d7ad774d3ae8ba9427fb2a06699b0b [file] [log] [blame]
/* 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;
}