[Bug c/71602] [6/7 regression] ICE on __builtin_va_arg in build_va_arg, at c-family/c-common.c:5810

msebor at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jun 21 02:39:00 GMT 2016


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  <tom@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.


More information about the Gcc-bugs mailing list