1/* PR debug/43058 */
2/* { dg-do compile } */
3/* { dg-options "-g -O2" } */
4/* { dg-timeout-factor 4 } */
5
6extern void *f1 (void *, void *, void *);
7extern void *f2 (const char *, int, int, int, void *(*) ());
8extern void *f3 (const char *);
9extern void *f4 (void *s);
10extern void *f5 (void *);
11
12void test (void)
13{
14#define X1 f1 (f2 ("a", 1, 0, 0, f5), \
15	       f4 (({ const char *a = "b"; f3 (a); })), \
16	       ({ const char *a = "c"; f3 (a); }));
17#define X2 X1 X1 X1 X1 X1 X1 X1 X1 X1 X1
18#define X3 X2 X2 X2 X2 X2 X2 X2 X2 X2 X2
19#define X4 X3 X3 X3 X3 X3 X3 X3 X3 X3 X3
20  X4 X4
21}
22