https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70877
Bug ID: 70877 Summary: ICE in in convert_move Product: gcc Version: 6.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zeccav at gmail dot com Target Milestone: --- /* gcc -fcheck-pointer-bounds -mmpx */ int foo(int); typedef struct { double d; int a; } str_t; void bar(double d, int i, str_t s) { d = ((double (*) (int)) foo) (i); } /*p.c: In function ‘bar’: * p.c:11:8: warning: function called through a non-compatible type * d = ((double (*) (int)) foo) (i); * ~^~~~~~~~~~~~~~~~~~~~~~~ * p.c: In function ‘bar.chkp’: * p.c:11:5: internal compiler error: in convert_move, at expr.c:268 * d = ((double (*) (int)) foo) (i); * ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * 0x768d18 convert_move(rtx_def*, rtx_def*, int) * ../../gcc-6.1.0/gcc/expr.c:268 * 0x76e515 store_expr_with_bounds(tree_node*, rtx_def*, int, bool, bool, tree_node*) * ../../gcc-6.1.0/gcc/expr.c:5483 * 0x76e98f expand_assignment(tree_node*, tree_node*, bool) * ../../gcc-6.1.0/gcc/expr.c:5175 * 0x691a9c expand_call_stmt * ../../gcc-6.1.0/gcc/cfgexpand.c:2658 * 0x691a9c expand_gimple_stmt_1 * ../../gcc-6.1.0/gcc/cfgexpand.c:3548 * 0x691a9c expand_gimple_stmt * ../../gcc-6.1.0/gcc/cfgexpand.c:3714 * 0x693435 expand_gimple_basic_block * ../../gcc-6.1.0/gcc/cfgexpand.c:5720 * 0x698316 execute * ../../gcc-6.1.0/gcc/cfgexpand.c:6335 * Please submit a full bug report, * with preprocessed source if appropriate. * Please include the complete backtrace with any bug report. * See <http://gcc.gnu.org/bugs.html> for instructions. */