1 /* PR tree-optimization/79352 - -fprintf-return-value doesn't handle
2 flexible-like array members properly
4 { dg-options "-O2 -fdump-tree-optimized -fno-ipa-icf" } */
6 struct A
{ int i
; char a1
[1]; };
7 struct B
{ int i
; char a3
[3]; };
8 struct C
{ int i
; char ax
[]; };
10 int test_array_1 (int i
, struct A
*a
)
12 return __builtin_snprintf (0, 0, "%-s", a
->a1
);
15 int test_array_3 (int i
, struct B
*b
)
17 return __builtin_snprintf (0, 0, "%-s", b
->a3
);
20 int test_array_1_3 (int i
, struct A
*a
, struct B
*b
)
22 return __builtin_snprintf (0, 0, "%-s", i
? a
->a1
: b
->a3
);
25 int test_string_and_array_3 (int i
, struct B
*b
)
27 return __builtin_snprintf (0, 0, "%-s", i
? "123" : b
->a3
);
30 int test_flexarray (struct C
*c
)
32 return __builtin_snprintf (0, 0, "%-s", c
->ax
);
35 int test_array_and_flexarray (int i
, struct B
*b
, struct C
*c
)
37 return __builtin_snprintf (0, 0, "%-s", i
? b
->a3
: c
->ax
);
40 int test_string_and_flexarray (int i
, struct C
*c
)
42 return __builtin_snprintf (0, 0, "%-s", i
? "123" : c
->ax
);
45 /* { dg-final { scan-tree-dump-times "snprintf" 7 "optimized"} } */