https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90648
Bug ID: 90648 Summary: [8/9/10 Regression] ICE tree check: accessed operand 4 of call_expr with 3 operands in generic_simplify_MULT_EXPR, at generic-match.c:27222 Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Started with gcc-8, compiles with gcc-7 : $ cat z1.c extern _Float128 copysignf128 (); _Float128 foo (_Float128 x) { return x * copysignf128 (); } $ cat z2.c extern _Float128 copysignf128 (x); double foo (double x) { return x * copysignf128 (); } $ gcc-7 -c z1.c $ $ gcc-10-20190526 -c z1.c z1.c: In function 'foo': z1.c:4:14: warning: too few arguments to built-in function 'copysignf128' expecting 2 [-Wbuiltin-declaration-mismatch] 4 | return x * copysignf128 (); | ^~~~~~~~~~~~ z1.c:1:18: note: declared here 1 | extern _Float128 copysignf128 (); | ^~~~~~~~~~~~ z1.c:4:3: internal compiler error: tree check: accessed operand 4 of call_expr with 3 operands in generic_simplify_MULT_EXPR, at generic-match.c:27222 4 | return x * copysignf128 (); | ^~~~~~ 0x5bd990 tree_operand_check_failed(int, tree_node const*, char const*, int, char const*) ../../gcc/tree.c:10116 0x64cbb1 tree_operand_check(tree_node*, int, char const*, int, char const*) ../../gcc/tree.h:3685 0x116a717 generic_simplify_MULT_EXPR .../gcc/generic-match.c:27222 0x11da8fd generic_simplify(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) .../gcc/generic-match.c:53387 0x8d49dd fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) ../../gcc/fold-const.c:9387 0x8ddeba fold_build2_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) ../../gcc/fold-const.c:12327 0x8d4c1d fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) ../../gcc/fold-const.c:9379 0x8f6ef4 fold(tree_node*) ../../gcc/fold-const.c:11949 0x683cca c_fully_fold_internal ../../gcc/c/c-fold.c:373 0x6850a7 c_fully_fold(tree_node*, bool, bool*, bool) ../../gcc/c/c-fold.c:125 0x629175 c_finish_return(unsigned int, tree_node*, tree_node*) ../../gcc/c/c-typeck.c:10523 0x673c3a c_parser_statement_after_labels ../../gcc/c/c-parser.c:5524 0x6757ce c_parser_compound_statement_nostart ../../gcc/c/c-parser.c:5149 0x675f56 c_parser_compound_statement ../../gcc/c/c-parser.c:4983 0x677873 c_parser_declaration_or_fndef ../../gcc/c/c-parser.c:2355 0x67fea3 c_parser_external_declaration ../../gcc/c/c-parser.c:1653 0x680969 c_parser_translation_unit ../../gcc/c/c-parser.c:1534 0x680969 c_parse_file() ../../gcc/c/c-parser.c:19884 0x6e26d0 c_common_parse_file() ../../gcc/c-family/c-opts.c:1156