/* PR tree-optimization/69172 - ICE in make_ssa_name_fn, at tree-ssanames.c:266 */ /* { dg-do compile } */ /* { dg-options "-O2" } */ int a; void * f1 (void) { int *b = &a, *c = &a; return __builtin___mempcpy_chk (b, c, sizeof (int), 0); } void * f2 (void) { int *b = &a; return __builtin___mempcpy_chk (b, b, sizeof (int), 0); } void * f3 (void) { return __builtin___mempcpy_chk (&a, &a, sizeof (int), 0); } void * f4 (int x) { int *b = &a, *c = &a; return __builtin___mempcpy_chk (b, c, x, 0); } void * f5 (int x) { int *b = &a; return __builtin___mempcpy_chk (b, b, x, 0); } void * f6 (int x) { return __builtin___mempcpy_chk (&a, &a, x, 0); } /* The calls above violate strict aliasing. Eliminate the -Wrestrict warnings they trigger. { dg-prune-output "\\\[-Wrestrict]" } */