diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/pr43058.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/pr43058.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/pr43058.c b/gcc/testsuite/gcc.dg/pr43058.c new file mode 100644 index 000000000..bba6f814a --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr43058.c @@ -0,0 +1,21 @@ +/* PR debug/43058 */ +/* { dg-do compile } */ +/* { dg-options "-g -O2" } */ +/* { dg-timeout-factor 4 } */ + +extern void *f1 (void *, void *, void *); +extern void *f2 (const char *, int, int, int, void *(*) ()); +extern void *f3 (const char *); +extern void *f4 (void *s); +extern void *f5 (void *); + +void test (void) +{ +#define X1 f1 (f2 ("a", 1, 0, 0, f5), \ + f4 (({ const char *a = "b"; f3 (a); })), \ + ({ const char *a = "c"; f3 (a); })); +#define X2 X1 X1 X1 X1 X1 X1 X1 X1 X1 X1 +#define X3 X2 X2 X2 X2 X2 X2 X2 X2 X2 X2 +#define X4 X3 X3 X3 X3 X3 X3 X3 X3 X3 X3 + X4 X4 +} |