https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64199
Bug ID: 64199 Summary: [4.8/4.9/5 Regression] ICE: tree check: expected class 'constant', have 'binary' (plus_expr) in fold_binary_loc, at fold-const.c:10404 with -ffast-math -frounding-math Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: zsojka at seznam dot cz Created attachment 34201 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34201&action=edit reduced testcase Compiler output: $ gcc -O -ffast-math -frounding-math testcase.c testcase.c: In function 'foo': testcase.c:20:1: internal compiler error: tree check: expected class 'constant', have 'binary' (plus_expr) in fold_binary_loc, at fold-const.c:10404 } ^ 0xe94097 tree_class_check_failed(tree_node const*, tree_code_class, char const*, int, char const*) /mnt/svn/gcc-trunk/gcc/tree.c:9277 0x9152d6 tree_class_check(tree_node*, tree_code_class, char const*, int, char const*) /mnt/svn/gcc-trunk/gcc/tree.h:2887 0x9152d6 fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) /mnt/svn/gcc-trunk/gcc/fold-const.c:10404 0x91f16a fold_build2_stat_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) /mnt/svn/gcc-trunk/gcc/fold-const.c:14290 0x90c652 fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) /mnt/svn/gcc-trunk/gcc/fold-const.c:9881 0xdd50c1 simplify_binary_expression /mnt/svn/gcc-trunk/gcc/tree-ssa-sccvn.c:3368 0xdd50c1 try_to_simplify /mnt/svn/gcc-trunk/gcc/tree-ssa-sccvn.c:3487 0xdd50c1 visit_use /mnt/svn/gcc-trunk/gcc/tree-ssa-sccvn.c:3541 0xdd7911 process_scc /mnt/svn/gcc-trunk/gcc/tree-ssa-sccvn.c:3902 0xdd7911 extract_and_process_scc_for_name /mnt/svn/gcc-trunk/gcc/tree-ssa-sccvn.c:3988 0xdd7911 DFS /mnt/svn/gcc-trunk/gcc/tree-ssa-sccvn.c:4040 0xdd88ce run_scc_vn(vn_lookup_kind) /mnt/svn/gcc-trunk/gcc/tree-ssa-sccvn.c:4425 0xdae1d2 execute /mnt/svn/gcc-trunk/gcc/tree-ssa-pre.c:4904 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. $ gcc -v Using built-in specs. COLLECT_GCC=/mnt/svn/gcc-trunk/binary-latest/bin/gcc COLLECT_LTO_WRAPPER=/mnt/svn/gcc-trunk/binary-218413-lto-fortran-checking-yes-rtl-df/libexec/gcc/x86_64-unknown-linux-gnu/5.0.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: /mnt/svn/gcc-trunk//configure --enable-checking=yes,rtl,df --enable-languages=c,c++,lto,fortran --prefix=/mnt/svn/gcc-trunk/binary-218413-lto-fortran-checking-yes-rtl-df/ --without-cloog --without-ppl Thread model: posix gcc version 5.0.0 20141205 (experimental) (GCC) Tested revisions: r218413 - ICE 4_9 r218177 - ICE 4_8 r218176 - ICE 4_7 r211571 - OK 4_6 r197894 - OK