1 /* PR tree-optimization/84339 */
2 
3 struct S { int a; char b[1]; };
4 
5 __attribute__((noipa)) int
foo(struct S * p)6 foo (struct S *p)
7 {
8   return __builtin_strlen (&p->b[0]);
9 }
10 
11 __attribute__((noipa)) int
bar(struct S * p)12 bar (struct S *p)
13 {
14   return __builtin_strlen (p->b);
15 }
16 
17 int
main()18 main ()
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