https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82084

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
      Known to work|                            |4.7.4
           Keywords|                            |ice-on-valid-code
   Last reconfirmed|                            |2017-09-04
                 CC|                            |marxin at gcc dot gnu.org
     Ever confirmed|0                           |1
            Summary|internal compiler error:    |[5/6/7/8 Regression] ICE:
                   |constructing wstring with   |constructing wstring with
                   |-O3                         |-O3
      Known to fail|                            |4.8.0

--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
Confirmed, started with GCC 4.8.0. We do:

  3232                      }
  3233                    else
  3234                      op = fold_unary (VIEW_CONVERT_EXPR,
  3235                                       TREE_TYPE (vector_type), op);
  3236                    gcc_assert (op && CONSTANT_CLASS_P (op));

where op before folding is:

(gdb) p debug_tree(op)
 <string_cst 0x2ab504e760c0
    type <array_type 0x2ab504e71540
        type <integer_type 0x2ab5040747e0 wchar_t sizes-gimplified public
type_6 SI
            size <integer_cst 0x2ab50406b120 constant 32>
            unit-size <integer_cst 0x2ab50406b138 constant 4>
            align:32 warn_if_not_align:0 symtab:0 alias-set 9 canonical-type
0x2ab5040747e0 precision:32 min <integer_cst 0x2ab50406b498 -2147483648> max
<integer_cst 0x2ab50406b4b0 2147483647>
            pointer_to_this <pointer_type 0x2ab504810f18> reference_to_this
<reference_type 0x2ab504865a80>>
        sizes-gimplified type_6 DI
        size <integer_cst 0x2ab50404bed0 constant 64>
        unit-size <integer_cst 0x2ab50404bee8 constant 8>
        align:32 warn_if_not_align:0 symtab:0 alias-set 9 canonical-type
0x2ab504e71540
        domain <integer_type 0x2ab504810bd0 type <integer_type 0x2ab504068000
sizetype>
            sizes-gimplified type_6 DI size <integer_cst 0x2ab50404bed0 64>
unit-size <integer_cst 0x2ab50404bee8 8>
            align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x2ab504810bd0 precision:64 min <integer_cst 0x2ab50404bf00 0> max <integer_cst
0x2ab50404bfd8 1>>
        pointer_to_this <pointer_type 0x2ab504e717e0>>
    readonly constant static "D\000\000\000\000\000\000\000">

and is NULL_TREE after the folding.

Reply via email to