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

--- Comment #1 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Thanks for filing this.

It's failing this assertion in frame_region::get_region_for_local :

1421            case VAR_DECL:
1422              gcc_assert (!is_global_var (expr));
1423              /* Fall through.  */
1424            case PARM_DECL:
1425            case RESULT_DECL:
1426              gcc_assert (DECL_CONTEXT (expr) == m_fun.decl);
1427              break;

(gdb) pt expr
 <var_decl 0x7fffea8212d0 D.2795
    type <integer_type 0x7fffea664000 sizetype public unsigned DI
        size <integer_cst 0x7fffea644f48 constant 64>
        unit-size <integer_cst 0x7fffea644f60 constant 8>
        align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fffea664000 precision:64 min <integer_cst 0x7fffea644f78 0> max <integer_cst
0x7fffea6455e0 18446744073709551615>>
    used unsigned ignored DI ../../src/pr114778.c:6:5 size <integer_cst
0x7fffea644f48 64> unit-size <integer_cst 0x7fffea644f60 8>
    align:64 warn_if_not_align:0 context <function_decl 0x7fffea7f5a00 f>>

(gdb) p m_fun.decl
$1 = <function_decl 0x7fffea7f5600 a>

Looks like another ICE due to GCC's nested functions extension for C, which the
analyzer doesn't yet support.

Reply via email to