http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60688
Bug ID: 60688 Summary: ICE in real_to_decimal_for_mode Product: gcc Version: unknown Status: UNCONFIRMED Severity: major Priority: P3 Component: bootstrap Assignee: unassigned at gcc dot gnu.org Reporter: rth at gcc dot gnu.org Building stage1 libstdc++: /home/rth/work/gcc/bld/./gcc/xgcc -shared-libgcc -B/home/rth/work/gcc/bld/./gcc -nostdinc++ -L/home/rth/work/gcc/bld/armv7l-unknown-linux-gnueabihf/libstdc++-v3/src -L/home/rth/work/gcc/bld/armv7l-unknown-linux-gnueabihf/libstdc++-v3/src/.libs -L/home/rth/work/gcc/bld/armv7l-unknown-linux-gnueabihf/libstdc++-v3/libsupc++/.libs -B/home/rth/work/gcc/run/armv7l-unknown-linux-gnueabihf/bin/ -B/home/rth/work/gcc/run/armv7l-unknown-linux-gnueabihf/lib/ -isystem /home/rth/work/gcc/run/armv7l-unknown-linux-gnueabihf/include -isystem /home/rth/work/gcc/run/armv7l-unknown-linux-gnueabihf/sys-include -I/home/rth/work/gcc/git-master/libstdc++-v3/../libgcc -I/home/rth/work/gcc/bld/armv7l-unknown-linux-gnueabihf/libstdc++-v3/include/armv7l-unknown-linux-gnueabihf -I/home/rth/work/gcc/bld/armv7l-unknown-linux-gnueabihf/libstdc++-v3/include -I/home/rth/work/gcc/git-master/libstdc++-v3/libsupc++ -D_GLIBCXX_SHARED -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=ios.lo -g -O2 -D_GNU_SOURCE -c ../../../../../git-master/libstdc++-v3/src/c++98/ios.cc -fPIC -DPIC -D_GLIBCXX_SHARED -o ios.o In file included from ../../../../../git-master/libstdc++-v3/src/c++98/ios.cc:30:0: /home/rth/work/gcc/bld/armv7l-unknown-linux-gnueabihf/libstdc++-v3/include/limits:1558:7: internal compiler error: in real_to_decimal_for_mode, at real.c:1799 min() _GLIBCXX_USE_NOEXCEPT { return __FLT_MIN__; } ^ 0x9c43af real_to_decimal_for_mode(char*, real_value const*, unsigned int, unsigned int, int, machine_mode) ../../git-master/gcc/real.c:1799 0x4bec7f lazy_hex_fp_value ../../git-master/gcc/c-family/c-cppbuiltin.c:1149 (gdb) where #0 fancy_abort (file=0x13d11d8 "../../git-master/gcc/real.c", line=1799, function=0x13d1740 <real_to_decimal_for_mode(char*, real_value const*, unsigned int, unsigned int, int, machine_mode)::__FUNCTION__> "real_to_decimal_for_mode") at ../../git-master/gcc/diagnostic.c:1190 #1 0x009c43b0 in real_to_decimal_for_mode ( str=0x7effeae4 "1.1754943508222875e-38", r_orig=0x7effec24, buf_size=64, digits=0, crop_trailing_zeros=0, mode=SFmode) at ../../git-master/gcc/real.c:1799 #2 0x004bec80 in lazy_hex_fp_value (pfile=0x17b7bc0, node=0x76d9cb38) at ../../git-master/gcc/c-family/c-cppbuiltin.c:1149 #3 0x013140c0 in enter_macro_context (pfile=0x17b7bc0, node=0x76d9cb38, result=0x17e7790, location=4858974) at ../../git-master/libcpp/macro.c:1052 #4 0x013166bc in cpp_get_token_1 (pfile=0x17b7bc0, location=0x7effeda4) at ../../git-master/libcpp/macro.c:2439 #5 0x01316878 in cpp_get_token_with_location (pfile=0x17b7bc0, loc=0x7effeda4) at ../../git-master/libcpp/macro.c:2541 #6 0x004c895c in c_lex_with_flags (value=0x7effeda8, loc=0x7effeda4, cpp_flags=0x7effed9e "\001", lex_flags=2) at ../../git-master/gcc/c-family/c-lex.c:302 #7 0x002d9ce4 in cp_lexer_get_preprocessor_token (lexer=0x76da4768, token=0x7effed9c) at ../../git-master/gcc/cp/parser.c:761 #8 0x002d98c8 in cp_lexer_new_main () at ../../git-master/gcc/cp/parser.c:641 #9 0x002ddb20 in cp_parser_new () at ../../git-master/gcc/cp/parser.c:3407 #10 0x0031dca4 in c_parse_file () at ../../git-master/gcc/cp/parser.c:31650 #11 0x004d30a8 in c_common_parse_file () at ../../git-master/gcc/c-family/c-opts.c:1061 #12 0x00ab35e4 in compile_file () at ../../git-master/gcc/toplev.c:548 #13 0x00ab65e4 in do_compile () at ../../git-master/gcc/toplev.c:1914 #14 0x00ab67d0 in toplev_main (argc=59, argv=0x7effef84) at ../../git-master/gcc/toplev.c:1990 #15 0x012ce4c0 in main (argc=59, argv=0x7effef84) at ../../git-master/gcc/main.c:36 (gdb) up #1 0x009c43b0 in real_to_decimal_for_mode ( str=0x7effeae4 "1.1754943508222875e-38", r_orig=0x7effec24, buf_size=64, digits=0, crop_trailing_zeros=0, mode=SFmode) at ../../git-master/gcc/real.c:1799 1799 gcc_assert (real_identical (&r, r_orig)); (gdb) p r $1 = {cl = 0, decimal = 0, sign = 0, signalling = 0, canonical = 0, uexp = 0, sig = {0, 0, 0, 0, 0}} (gdb) p *r_orig $3 = {cl = 1, decimal = 0, sign = 0, signalling = 0, canonical = 0, uexp = 67108739, sig = {0, 0, 0, 0, 2147483648}} I don't have time to backtrack this further just now. Saving state.