Reproduce ICE in 'gimplify_expr: gcc_assert ((*gimple_test_f) (*expr_p))' diff --git a/gcc/testsuite/gcc.dg/reproduce.c b/gcc/testsuite/gcc.dg/reproduce.c new file mode 100644 index 0000000..c0c8e0b --- /dev/null +++ b/gcc/testsuite/gcc.dg/reproduce.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ + +#include + +void +f2 (int i, ...) +{ + va_list ap; + va_start (ap, i); + va_arg (ap, long); + va_end (ap); +} diff --git a/gcc/tree-stdarg.c b/gcc/tree-stdarg.c index 1356374..829cbc1 100644 --- a/gcc/tree-stdarg.c +++ b/gcc/tree-stdarg.c @@ -1079,7 +1079,7 @@ expand_ifn_va_arg_1 (function *fun) gimplify_assign (lhs, expr, &pre); } else - gimplify_expr (&expr, &pre, &post, is_gimple_lvalue, fb_lvalue); + gimplify_expr (&expr, &pre, &post, is_gimple_val, fb_either); pop_gimplify_context (NULL); -- 1.9.1