https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71602
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |ice-on-valid-code Status|UNCONFIRMED |NEW Last reconfirmed| |2016-06-21 CC| |msebor at gcc dot gnu.org, | |tom at codesourcery dot com Summary|ICE on valid code on |[6/7 regression] ICE on |x86_64-linux-gnu (in |__builtin_va_arg in |build_va_arg, at |build_va_arg, at |c-family/c-common.c:5810) |c-family/c-common.c:5810 Ever confirmed|0 |1 Known to fail| |6.1.0, 7.0 --- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> --- ICE confirmed in 6.1.0 and 7.0 with r223286 as the cause of the ICE: r223286 | vries | 2015-05-18 04:19:29 -0400 (Mon, 18 May 2015) | 17 lines Move array-type va_list handling to build_va_arg 2015-05-18 Tom de Vries <t...@codesourcery.com> * gimplify.c (gimplify_modify_expr): Remove do_deref handling. (gimplify_va_arg_expr): Remove do_deref handling. Remove adding of address operator to va_list operand. * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand unconditionally. * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list operand. * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same. * config/s390/s390.c (s390_gimplify_va_arg): Same. * config/spu/spu.c (spu_gimplify_va_arg_expr): Same. * c-common.c (build_va_arg_1): New function. (build_va_arg): Add address operator to va_list operand if necessary.