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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |8.5
           Priority|P3                          |P2

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
It ICEs during ICEing:

#1  0x00000000014351c4 in convert_nonlocal_reference_op (tp=0x7ffff6d904e8, 
    walk_subtrees=0x7fffffffd448, data=0x7fffffffd9e0)
    at ../../src/trunk/gcc/tree-nested.c:1062
1062                                  IDENTIFIER_POINTER (DECL_NAME
(target_context)),
(gdb) l
1057                /* If none of the outer contexts is the target context,
this means
1058                   that the VAR or PARM_DECL is referenced in a wrong
context.  */
1059                if (!i)
1060                  internal_error ("%s from %s referenced in %s",
1061                                  IDENTIFIER_POINTER (DECL_NAME (t)),
1062                                  IDENTIFIER_POINTER (DECL_NAME
(target_context)),
1063                                  IDENTIFIER_POINTER (DECL_NAME
(info->context)));
1064
1065                x = lookup_field_for_decl (i, t, INSERT);
1066                x = get_frame_field (info, target_context, x, &wi->gsi);
(gdb) p target_context
$1 = <tree 0x0>

target_context is also NULL(?)

(gdb) p debug_tree (t)
 <var_decl 0x7ffff6d94120 D.1944
    type <integer_type 0x7ffff6c56690 unsigned int public unsigned SI
        size <integer_cst 0x7ffff6c3df18 constant 32>
        unit-size <integer_cst 0x7ffff6c3df30 constant 4>
        align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff6c56690 precision:32 min <integer_cst 0x7ffff6c3df48 0> max <integer_cst
0x7ffff6c3df00 4294967295>
        pointer_to_this <pointer_type 0x7ffff6c660a8>>
    used unsigned ignored SI x.c:10:8 size <integer_cst 0x7ffff6c3df18 32>
unit-size <integer_cst 0x7ffff6c3df30 4>
    align:32 warn_if_not_align:0>
$6 = void

it's from the LHS of

D.1944 = __builtin_ia32_stmxcsr ();

and obviously the given rev. fails to set a proper context for the decl
and also fails to add it to local_decls.

Reply via email to