https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92352
Bug ID: 92352 Summary: ICE in force_constant_size Product: gcc Version: 9.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: anbu1024.me at gmail dot com Target Milestone: --- $ gcc-9.2.0 -v Using built-in specs. COLLECT_GCC=/home/tom/Documents/gcc/9.2.0/install/bin/gcc COLLECT_LTO_WRAPPER=/home/tom/Documents/gcc/9.2.0/install/libexec/gcc/x86_64-pc-linux-gnu/9.2.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-9.2.0/configure --prefix=/home/tom/Documents/gcc/9.2.0/install --enable-languages=c,c++ --disable-multilib Thread model: posix gcc version 9.2.0 (GCC) $ cat test.c void foo ( long int arg ) { int var[arg] ; asm volatile ( "" : "+r" ( var ) ) ; } $ gcc-9.2.0 test.c test.c: In function ‘foo’: test.c:5:5: internal compiler error: in force_constant_size, at gimplify.c:712 5 | asm volatile ( "" : "+r" ( var ) ) ; | ^~~ 0x5b67a9 force_constant_size ../../gcc-9.2.0/gcc/gimplify.c:712 0x8625af gimple_add_tmp_var(tree_node*) ../../gcc-9.2.0/gcc/gimplify.c:750 0x83d016 create_tmp_var(tree_node*, char const*) ../../gcc-9.2.0/gcc/gimple-expr.c:482 0x86b09f create_tmp_from_val ../../gcc-9.2.0/gcc/gimplify.c:541 0x86b09f lookup_tmp_var ../../gcc-9.2.0/gcc/gimplify.c:562 0x86b09f internal_get_tmp_var ../../gcc-9.2.0/gcc/gimplify.c:615 0x86602d gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc-9.2.0/gcc/gimplify.c:13464 0x86d1b7 gimplify_asm_expr ../../gcc-9.2.0/gcc/gimplify.c:6386 0x867860 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc-9.2.0/gcc/gimplify.c:12834 0x8694e6 gimplify_stmt(tree_node**, gimple**) ../../gcc-9.2.0/gcc/gimplify.c:6718 0x867763 gimplify_statement_list ../../gcc-9.2.0/gcc/gimplify.c:1794 0x867763 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc-9.2.0/gcc/gimplify.c:12931 0x8694e6 gimplify_stmt(tree_node**, gimple**) ../../gcc-9.2.0/gcc/gimplify.c:6718 0x869ddf gimplify_bind_expr ../../gcc-9.2.0/gcc/gimplify.c:1362 0x866d59 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc-9.2.0/gcc/gimplify.c:12703 0x8694e6 gimplify_stmt(tree_node**, gimple**) ../../gcc-9.2.0/gcc/gimplify.c:6718 0x86a7c6 gimplify_body(tree_node*, bool) ../../gcc-9.2.0/gcc/gimplify.c:13711 0x86aa75 gimplify_function_tree(tree_node*) ../../gcc-9.2.0/gcc/gimplify.c:13855 0x71f18f cgraph_node::analyze() ../../gcc-9.2.0/gcc/cgraphunit.c:667 0x7216e7 analyze_functions ../../gcc-9.2.0/gcc/cgraphunit.c:1126 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. I tried the snapshot version gcc-9-20191102, the ICE is nearly same. $ gcc-snapshot -v Using built-in specs. COLLECT_GCC=/home/tom/Documents/gcc/9-20191102/install/bin/gcc COLLECT_LTO_WRAPPER=/home/tom/Documents/gcc/9-20191102/install/libexec/gcc/x86_64-pc-linux-gnu/9.2.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-9-20191102/configure --prefix=/home/tom/Documents/gcc/9-20191102/install Thread model: posix gcc version 9.2.1 20191102 (GCC) $ gcc-snapshot test.c test.c: In function ‘foo’: test.c:5:5: internal compiler error: in force_constant_size, at gimplify.c:712 5 | asm volatile ( "" : "+r" ( var ) ) ; | ^~~ 0x5b698d force_constant_size ../../gcc-9-20191102/gcc/gimplify.c:712 0x862c3f gimple_add_tmp_var(tree_node*) ../../gcc-9-20191102/gcc/gimplify.c:750 0x83d696 create_tmp_var(tree_node*, char const*) ../../gcc-9-20191102/gcc/gimple-expr.c:482 0x86b75f create_tmp_from_val ../../gcc-9-20191102/gcc/gimplify.c:541 0x86b75f lookup_tmp_var ../../gcc-9-20191102/gcc/gimplify.c:562 0x86b75f internal_get_tmp_var ../../gcc-9-20191102/gcc/gimplify.c:615 0x8666dd gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc-9-20191102/gcc/gimplify.c:13466 0x86d877 gimplify_asm_expr ../../gcc-9-20191102/gcc/gimplify.c:6386 0x867f18 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc-9-20191102/gcc/gimplify.c:12836 0x869ba6 gimplify_stmt(tree_node**, gimple**) ../../gcc-9-20191102/gcc/gimplify.c:6718 0x867e1b gimplify_statement_list ../../gcc-9-20191102/gcc/gimplify.c:1794 0x867e1b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc-9-20191102/gcc/gimplify.c:12933 0x869ba6 gimplify_stmt(tree_node**, gimple**) ../../gcc-9-20191102/gcc/gimplify.c:6718 0x86a49f gimplify_bind_expr ../../gcc-9-20191102/gcc/gimplify.c:1362 0x867409 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc-9-20191102/gcc/gimplify.c:12705 0x869ba6 gimplify_stmt(tree_node**, gimple**) ../../gcc-9-20191102/gcc/gimplify.c:6718 0x86ae86 gimplify_body(tree_node*, bool) ../../gcc-9-20191102/gcc/gimplify.c:13713 0x86b135 gimplify_function_tree(tree_node*) ../../gcc-9-20191102/gcc/gimplify.c:13857 0x71f88f cgraph_node::analyze() ../../gcc-9-20191102/gcc/cgraphunit.c:667 0x721de7 analyze_functions ../../gcc-9-20191102/gcc/cgraphunit.c:1126 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.