https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64344
Bug ID: 64344 Summary: [5 Regression] [UBSAN] ICE with -fsanitize=float-cast-overflow [ICE in -fsanitize=float-cast-overflow] Product: gcc Version: 5.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, mpolacek at gcc dot gnu.org New since today: $ gcc -w -fsanitize=float-cast-overflow new8.i new8.i: In function ‘float2long’: new8.i:11:23: internal compiler error: in -fsanitize=float-cast-overflow *exponent = (int32 )log((double )value); ^ 0x9058fb gimplify_expr(tree_node**, gimple_statement_base**, gimple_statement_base**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:8451 For the following program: /* ----------------------------------------------------------*/ typedef enum { PARAPROX_Q_EXTRA_FAST = 4 } pthread_cond_t; extern int drand48_r (struct drand48_data *__restrict __buffer, int __reject3) { } typedef int int32; float2long(int32 *mantisse, int32 *exponent, float value) { *exponent = (int32 )log((double )value); }