1 /* PR tree-optimization/84339 */ 2 3 struct S { int a; char b[1]; }; 4 5 __attribute__((noipa)) int foo(struct S * p)6foo (struct S *p) 7 { 8 return __builtin_strlen (&p->b[0]); 9 } 10 11 __attribute__((noipa)) int bar(struct S * p)12bar (struct S *p) 13 { 14 return __builtin_strlen (p->b); 15 } 16 17 int main()18main () 19 { 20 struct S *p = __builtin_malloc (sizeof (struct S) + 16); 21 if (p) 22 { 23 p->a = 1; 24 __builtin_strcpy (p->b, "abcdefg"); 25 if (foo (p) != 7 || bar (p) != 7) 26 __builtin_abort (); 27 __builtin_free (p); 28 } 29 return 0; 30 } 31