diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/torture/pr24626-1.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr24626-1.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/pr24626-1.c b/gcc/testsuite/gcc.dg/torture/pr24626-1.c new file mode 100644 index 000000000..331c55ec3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr24626-1.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ + +typedef long +(*bla)(int *node); + +static long F2(void *tree, long blk, bla after_node_func) +{ + long call_result = 0; + int *node; + + + if (call_result = after_node_func(node)) + goto error_free_node; + + T(node); + return 0; + +error_free_node: + T(node); +error: + return call_result; +} + +long F1(void *tree) +{ + return F2(tree, F3(tree), (void *)0); +} |