/* PR tree-optimization/84339 */ struct S { int a; char b[1]; }; __attribute__((noipa)) int foo (struct S *p) { return __builtin_strlen (&p->b[0]); } __attribute__((noipa)) int bar (struct S *p) { return __builtin_strlen (p->b); } int main () { struct S *p = __builtin_malloc (sizeof (struct S) + 16); if (p) { p->a = 1; __builtin_strcpy (p->b, "abcdefg"); if (foo (p) != 7 || bar (p) != 7) __builtin_abort (); __builtin_free (p); } return 0; }