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.
 */

Reply via email to