| /* 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; | |
| } |