https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85955
Bug ID: 85955 Summary: ICE in fold_convert_loc, at fold-const.c:2408 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Derived from gcc/testsuite/gcc.dg/torture/pr85567.c, ICE at -O[s23] : $ cat z1.c extern void sincos(double x, double *sinx, double *cosx); void apply(void (*f)(double, double *, double *), double x, double *sinx, double *cosx) { f(x, sinx, cosx); return; } void apply_sincos(double x, double **sinx, double **cosx) { apply(sincos, x, sinx, cosx); return; } $ gcc-9-20180527 -c z1.c -O2 z1.c: In function 'apply_sincos': z1.c:10:20: warning: passing argument 3 of 'apply' from incompatible pointer type [-Wincompatible-pointer-types] apply(sincos, x, sinx, cosx); ^~~~ z1.c:3:30: note: expected 'double *' but argument is of type 'double **' double x, double *sinx, double *cosx) ~~~~~~~~^~~~ z1.c:10:26: warning: passing argument 4 of 'apply' from incompatible pointer type [-Wincompatible-pointer-types] apply(sincos, x, sinx, cosx); ^~~~ z1.c:3:44: note: expected 'double *' but argument is of type 'double **' double x, double *sinx, double *cosx) ~~~~~~~~^~~~ during GIMPLE pass: einline z1.c:5:3: internal compiler error: in fold_convert_loc, at fold-const.c:2408 f(x, sinx, cosx); ^~~~~~~~~~~~~~~~ 0x87694f fold_convert_loc(unsigned int, tree_node*, tree_node*) ../../gcc/fold-const.c:2407 0x8d36e5 gimplify_modify_expr ../../gcc/gimplify.c:5580 0x8ca23b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:11440 0x8cc586 gimplify_stmt(tree_node**, gimple**) ../../gcc/gimplify.c:6663 0x8cccb7 gimplify_compound_expr ../../gcc/gimplify.c:5889 0x8ca215 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:11429 0x8cc586 gimplify_stmt(tree_node**, gimple**) ../../gcc/gimplify.c:6663 0x8cc5d2 gimplify_and_add(tree_node*, gimple**) ../../gcc/gimplify.c:441 0x8a51f2 gimplify_and_update_call_from_tree(gimple_stmt_iterator*, tree_node*) ../../gcc/gimple-fold.c:551 0x8ad5aa gimple_fold_builtin ../../gcc/gimple-fold.c:3792 0x8b057b gimple_fold_call ../../gcc/gimple-fold.c:4158 0x8b057b fold_stmt_1 ../../gcc/gimple-fold.c:4822 0xb54aef fold_marked_statements ../../gcc/tree-inline.c:4977 0xb5ef79 optimize_inline_calls(tree_node*) ../../gcc/tree-inline.c:5102 0x11bd3c3 early_inliner(function*) ../../gcc/ipa-inline.c:2782