https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89397
Bug ID: 89397 Summary: [7/8/9 Regression] ICE in build_call_expr_loc_array at gcc/tree.c:11563 since r229082 Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org Target Milestone: --- Following is causing ICE: $ cat atomic.c _Atomic double a; int b; void c() { a += b; } $ gcc -mfpmath=sse,387 -msoft-float -mno-sse -c atomic.c atomic.c: In function ‘c’: atomic.c:4:1: internal compiler error: Segmentation fault 4 | void c() { a += b; } | ^~~~ 0xd1194f crash_signal /home/marxin/Programming/gcc/gcc/toplev.c:326 0x7ffff7b79e0f ??? /usr/src/debug/glibc-2.29-1.3.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0 0xfa6488 contains_struct_check(tree_node*, tree_node_structure_enum, char const*, int, char const*) /home/marxin/Programming/gcc/gcc/tree.h:3289 0xfa6488 build_call_expr_loc_array(unsigned int, tree_node*, int, tree_node**) /home/marxin/Programming/gcc/gcc/tree.c:11563 0xfa66c1 build_call_expr(tree_node*, int, ...) /home/marxin/Programming/gcc/gcc/tree.c:11613 0x102556c ix86_atomic_assign_expand_fenv /home/marxin/Programming/gcc/gcc/config/i386/i386.c:50733 0x7d5a23 build_atomic_assign /home/marxin/Programming/gcc/gcc/c/c-typeck.c:4228 0x7e37f1 build_modify_expr(unsigned int, tree_node*, tree_node*, tree_code, unsigned int, tree_node*, tree_node*) /home/marxin/Programming/gcc/gcc/c/c-typeck.c:6204 0x7fd78e c_parser_expr_no_commas /home/marxin/Programming/gcc/gcc/c/c-parser.c:6721 0x7fd902 c_parser_expression /home/marxin/Programming/gcc/gcc/c/c-parser.c:9727 0x7fe006 c_parser_expression_conv /home/marxin/Programming/gcc/gcc/c/c-parser.c:9760 0x80d66f c_parser_statement_after_labels /home/marxin/Programming/gcc/gcc/c/c-parser.c:5610 0x80f4ee c_parser_compound_statement_nostart /home/marxin/Programming/gcc/gcc/c/c-parser.c:5148 0x80fc76 c_parser_compound_statement /home/marxin/Programming/gcc/gcc/c/c-parser.c:4982 0x81138a c_parser_declaration_or_fndef /home/marxin/Programming/gcc/gcc/c/c-parser.c:2354 0x8183bf c_parser_external_declaration /home/marxin/Programming/gcc/gcc/c/c-parser.c:1653 0x818c09 c_parser_translation_unit /home/marxin/Programming/gcc/gcc/c/c-parser.c:1534 0x818c09 c_parse_file() /home/marxin/Programming/gcc/gcc/c/c-parser.c:19842 0x86c5b0 c_common_parse_file() /home/marxin/Programming/gcc/gcc/c-family/c-opts.c:1155 Before the revision it was rejected with: atomic2.c: In function ‘func’: atomic2.c:49:8: error: x87 register return with x87 disabled ald1 = d1; ^ atomic2.c:51:8: error: SSE register return with SSE disabled acd1 += ab1; ^