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

            Bug ID: 93314
           Summary: Invalid use of non-static data member causes ICE in
                    gimplify_expr
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: ice-on-invalid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: language.lawyer at gmail dot com
  Target Milestone: ---

int main()
{
    struct S { int m; };
    return sizeof(char[S::m]);
}

$ g++ prog.cc

prog.cc: In function 'int main()':
prog.cc:4:27: internal compiler error: in gimplify_expr, at gimplify.c:14581
    4 |     return sizeof(char[S::m]);
      |                        ~~~^
0x5c6160 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../source/gcc/gimplify.c:14581
0x9a7434 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../source/gcc/gimplify.c:13885
0x9a7de0 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../source/gcc/gimplify.c:13702
0x9aa19f gimplify_compound_lval
        ../../source/gcc/gimplify.c:3064
0x9a6c00 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../source/gcc/gimplify.c:13533
0x9a7434 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../source/gcc/gimplify.c:13885
0x9a7129 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../source/gcc/gimplify.c:14348
0x9abfb0 internal_get_tmp_var
        ../../source/gcc/gimplify.c:619
0x9ac749 get_initialized_tmp_var(tree_node*, gimple**, gimple**, bool)
        ../../source/gcc/gimplify.c:674
0x9ac749 gimplify_save_expr
        ../../source/gcc/gimplify.c:6072
0x9a7621 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../source/gcc/gimplify.c:13881
0x9a7434 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../source/gcc/gimplify.c:13885
0x9a7129 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../source/gcc/gimplify.c:14348
0x9a7434 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../source/gcc/gimplify.c:13885
0x9b1ecb gimplify_modify_expr
        ../../source/gcc/gimplify.c:5765
0x9a73a2 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../source/gcc/gimplify.c:13581
0x9acc8e gimplify_stmt(tree_node**, gimple**)
        ../../source/gcc/gimplify.c:6822
0x9acc8e gimplify_and_add(tree_node*, gimple**)
        ../../source/gcc/gimplify.c:486
0x9acc8e gimplify_return_expr
        ../../source/gcc/gimplify.c:1667
0x9a8303 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../source/gcc/gimplify.c:13842
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

(https://wandbox.org/permlink/GNNTjXAK2pQ5clUt)

I've selectively checked about some of g++ versions, from 4.4.7 to HEAD, on
wandbox.org. They're all crashing, just segfaulting before 5.1.0 and ICEing in
gimplify_expr starting from 5.1.0.

Reply via email to