[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133 Segher Boessenkool changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #12 from Segher Boessenkool --- Fixed.
[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133 --- Comment #11 from Segher Boessenkool --- This should be fixed on trunk now. Martin, can you please check that?
[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133 Martin Liška changed: What|Removed |Added Priority|P3 |P4 --- Comment #10 from Martin Liška --- Having proper assembler, I can't reproduce that.
[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133 --- Comment #9 from Segher Boessenkool --- It's a different symptom, but sure, might be related. Somehow your toolchain thinks it is a newer ISA but not compliant to older ISAs :-/
[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133 --- Comment #8 from Martin Liška --- Same happens for: ./xgcc -B. /home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/do_check_3.f90 #0 lookup_handler (scode=1122058) at insn-opinit.c:1156 #1 0x032f34de in raw_optab_handler (scode=1122058) at insn-opinit.c:1173 #2 0x013a87d2 in convert_optab_handler (op=ufixtrunc_optab, to_mode=E_DImode, from_mode=E_SFmode) at /home/marxin/Programming/gcc/gcc/optabs-query.h:55 #3 0x01c4c93a in can_fix_p (fixmode=E_DImode, fltmode=E_SFmode, unsignedp=1, truncp_ptr=0x7fffc9bb) at /home/marxin/Programming/gcc/gcc/optabs-query.c:313 #4 0x01c2759a in expand_fix (to=0x75afca38, from=0x75afc9f0, unsignedp=1) at /home/marxin/Programming/gcc/gcc/optabs.c:4922 #5 0x01405268 in expand_expr_real_2 (ops=0x7fffd230, target=0x75afca38, tmode=E_DImode, modifier=EXPAND_NORMAL) at /home/marxin/Programming/gcc/gcc/expr.c:8961 #6 0x00f8e553 in expand_gimple_stmt_1 (stmt=) at /home/marxin/Programming/gcc/gcc/cfgexpand.c:3673 #7 0x00f8ea9a in expand_gimple_stmt (stmt=) at /home/marxin/Programming/gcc/gcc/cfgexpand.c:3734 #8 0x00fa3f59 in expand_gimple_basic_block (bb=, disable_tail_calls=false) at /home/marxin/Programming/gcc/gcc/cfgexpand.c:5770 on native target pats contains {scode = 1122058, icode = CODE_FOR_fixuns_truncsfdi2}, on cross compiler not. cross-compiler: (gdb) p sizeof(pats) $2 = 4440 native: (gdb) p sizeof(pats) $15 = 5448 That said, isn't it similar to: PR86684?
[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133 --- Comment #7 from Segher Boessenkool --- lang_hooks.types.type_for_mode can return NULL, but emit_library_call_value cannot handle that. Why it fails on a cross and not natively, I don't know... target bug is my guess.
[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133 --- Comment #6 from Martin Liška --- Backtrace from GDB with function arguments visible: #0 0x015140fd in aggregate_value_p (exp=0x0, fntype=0x0) at /home/marxin/Programming/gcc/gcc/function.c:2046 #1 0x00f3d2e0 in emit_library_call_value_1 (retval=1, orgfun=0x75834210, value=0x0, fn_type=LCT_CONST, outmode=E_KFmode, nargs=1, args=0x7fffc0d0) at /home/marxin/Programming/gcc/gcc/calls.c:4745 #2 0x0136c557 in emit_library_call_value (fun=0x75834210, value=0x0, fn_type=LCT_CONST, outmode=E_KFmode, arg1=0x75912ea0, arg1_mode=E_SFmode) at /home/marxin/Programming/gcc/gcc/rtl.h:4185 #3 0x013b3a7a in convert_mode_scalar (to=0x75917558, from=0x75912ea0, unsignedp=0) at /home/marxin/Programming/gcc/gcc/expr.c:329 #4 0x013b2da4 in convert_move (to=0x75917558, from=0x75912ea0, unsignedp=0) at /home/marxin/Programming/gcc/gcc/expr.c:271 #5 0x013ba345 in convert_modes (mode=E_KFmode, oldmode=E_SFmode, x=0x75912ea0, unsignedp=0) at /home/marxin/Programming/gcc/gcc/expr.c:712 #6 0x013b86db in convert_to_mode (mode=E_KFmode, x=0x75912ea0, unsignedp=0) at /home/marxin/Programming/gcc/gcc/expr.c:637 #7 0x01c27738 in expand_fix (to=0x75912f30, from=0x75912ea0, unsignedp=1) at /home/marxin/Programming/gcc/gcc/optabs.c:4930 #8 0x01405268 in expand_expr_real_2 (ops=0x7fffd1e0, target=0x75912f30, tmode=E_DImode, modifier=EXPAND_NORMAL) at /home/marxin/Programming/gcc/gcc/expr.c:8961 #9 0x00f8e553 in expand_gimple_stmt_1 (stmt=) at /home/marxin/Programming/gcc/gcc/cfgexpand.c:3673 #10 0x00f8ea9a in expand_gimple_stmt (stmt=) at /home/marxin/Programming/gcc/gcc/cfgexpand.c:3734 #11 0x00fa3f59 in expand_gimple_basic_block (bb=, disable_tail_calls=false) at /home/marxin/Programming/gcc/gcc/cfgexpand.c:5770 #12 0x00fa88db in (anonymous namespace)::pass_expand::execute (this=0x6e6f770, fun=0x75903000) at /home/marxin/Programming/gcc/gcc/cfgexpand.c:6373 #13 0x01d1578d in execute_one_pass (pass=) at /home/marxin/Programming/gcc/gcc/passes.c:2446 #14 0x01d1611e in execute_pass_list_1 (pass=) at /home/marxin/Programming/gcc/gcc/passes.c:2535 #15 0x01d16272 in execute_pass_list (fn=0x75903000, pass=) at /home/marxin/Programming/gcc/gcc/passes.c:2546 #16 0x010a13e3 in cgraph_node::expand (this=) at /home/marxin/Programming/gcc/gcc/cgraphunit.c:2121 #17 0x010a3a16 in output_in_order () at /home/marxin/Programming/gcc/gcc/cgraphunit.c:2365 #18 0x010a5434 in symbol_table::compile (this=0x7580d000) at /home/marxin/Programming/gcc/gcc/cgraphunit.c:2609 #19 0x010a5ea7 in symbol_table::finalize_compilation_unit (this=0x7580d000) at /home/marxin/Programming/gcc/gcc/cgraphunit.c:2788 #20 0x020dd5b6 in compile_file () at /home/marxin/Programming/gcc/gcc/toplev.c:480 #21 0x020e4821 in do_compile () at /home/marxin/Programming/gcc/gcc/toplev.c:2170 #22 0x020e4e50 in toplev::main (this=0x7fffd98e, argc=12, argv=0x7fffda88) at /home/marxin/Programming/gcc/gcc/toplev.c:2305 #23 0x03aec681 in main (argc=12, argv=0x7fffda88) at /home/marxin/Programming/gcc/gcc/main.c:39
[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133 --- Comment #5 from Martin Liška --- In calls.c I see: │4742 if (outmode != VOIDmode) │4743{ │4744 tfom = lang_hooks.types.type_for_mode (outmode, 0); >│4745 if (aggregate_value_p (tfom, 0)) (gdb) p tfom $2 = (gdb) p outmode $3 = E_KFmode Would it help?
[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133 --- Comment #4 from Martin Liška --- ubsan build helps: $ UBSAN_OPTIONS=print_stacktrace=1 ./xgcc -B. /home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90 -frounding-math /home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:5: 13 | do x = 1.0, 2.05, 0.1 | 1 Warning: Deleted feature: Loop variable at (1) must be integer /home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:8: 13 | do x = 1.0, 2.05, 0.1 |1 Warning: Deleted feature: Start expression in DO loop at (1) must be integer /home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:13: 13 | do x = 1.0, 2.05, 0.1 | 1 Warning: Deleted feature: End expression in DO loop at (1) must be integer /home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:19: 13 | do x = 1.0, 2.05, 0.1 | 1 Warning: Deleted feature: Step expression in DO loop at (1) must be integer /home/marxin/Programming/gcc/gcc/function.c:2046:22: runtime error: member access within null pointer of type 'const union tree_node' #0 0x15140fc in aggregate_value_p(tree_node const*, tree_node const*) /home/marxin/Programming/gcc/gcc/function.c:2046 #1 0xf3d2df in emit_library_call_value_1(int, rtx_def*, rtx_def*, libcall_type, machine_mode, int, std::pair*) /home/marxin/Programming/gcc/gcc/calls.c:4745 #2 0x136c556 in emit_library_call_value(rtx_def*, rtx_def*, libcall_type, machine_mode, rtx_def*, machine_mode) /home/marxin/Programming/gcc/gcc/rtl.h:4185 #3 0x13b3a79 in convert_mode_scalar /home/marxin/Programming/gcc/gcc/expr.c:329 #4 0x13b2da3 in convert_move(rtx_def*, rtx_def*, int) /home/marxin/Programming/gcc/gcc/expr.c:271 #5 0x13ba344 in convert_modes(machine_mode, machine_mode, rtx_def*, int) /home/marxin/Programming/gcc/gcc/expr.c:712 #6 0x13b86da in convert_to_mode(machine_mode, rtx_def*, int) /home/marxin/Programming/gcc/gcc/expr.c:637 #7 0x1c27737 in expand_fix(rtx_def*, rtx_def*, int) /home/marxin/Programming/gcc/gcc/optabs.c:4930 #8 0x1405267 in expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) /home/marxin/Programming/gcc/gcc/expr.c:8961 #9 0xf8e552 in expand_gimple_stmt_1 /home/marxin/Programming/gcc/gcc/cfgexpand.c:3673 #10 0xf8ea99 in expand_gimple_stmt /home/marxin/Programming/gcc/gcc/cfgexpand.c:3734 #11 0xfa3f58 in expand_gimple_basic_block /home/marxin/Programming/gcc/gcc/cfgexpand.c:5770 #12 0xfa88da in execute /home/marxin/Programming/gcc/gcc/cfgexpand.c:6373 #13 0x1d1578c in execute_one_pass(opt_pass*) /home/marxin/Programming/gcc/gcc/passes.c:2446 #14 0x1d1611d in execute_pass_list_1 /home/marxin/Programming/gcc/gcc/passes.c:2535 #15 0x1d16271 in execute_pass_list(function*, opt_pass*) /home/marxin/Programming/gcc/gcc/passes.c:2546 #16 0x10a13e2 in cgraph_node::expand() /home/marxin/Programming/gcc/gcc/cgraphunit.c:2121 #17 0x10a3a15 in output_in_order /home/marxin/Programming/gcc/gcc/cgraphunit.c:2365 #18 0x10a5433 in symbol_table::compile() /home/marxin/Programming/gcc/gcc/cgraphunit.c:2609 #19 0x10a5ea6 in symbol_table::finalize_compilation_unit() /home/marxin/Programming/gcc/gcc/cgraphunit.c:2788 #20 0x20dd5b5 in compile_file /home/marxin/Programming/gcc/gcc/toplev.c:480 #21 0x20e4820 in do_compile /home/marxin/Programming/gcc/gcc/toplev.c:2170 #22 0x20e4e4f in toplev::main(int, char**) /home/marxin/Programming/gcc/gcc/toplev.c:2305 #23 0x3aec680 in main /home/marxin/Programming/gcc/gcc/main.c:39 #24 0x75ea1fea in __libc_start_main ../csu/libc-start.c:308 #25 0x812bc9 in _start (/dev/shm/objdir2/gcc/f951+0x812bc9) during RTL pass: expand /home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:0: 13 | do x = 1.0, 2.05, 0.1 | internal compiler error: Segmentation fault 0x20dc92f crash_signal /home/marxin/Programming/gcc/gcc/toplev.c:325 0x75eb710f ??? /usr/src/debug/glibc-2.27-6.1.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0 0x15140fd aggregate_value_p(tree_node const*, tree_node const*) /home/marxin/Programming/gcc/gcc/function.c:2046 0xf3d2df emit_library_call_value_1(int, rtx_def*, rtx_def*, libcall_type, machine_mode, int, std::pair*) /home/marxin/Programming/gcc/gcc/calls.c:4745 0x136c556 emit_library_call_value(rtx_def*, rtx_def*, libcall_type, machine_mode, rtx_def*, machine_mode) /home/marxin/Programming/gcc/gcc/rtl.h:4185 0x13b3a79 convert_mode_scalar /home/marxin/Programming/gcc/gcc/expr.c:329 0x13b2da3 convert_move(rtx_def*, rtx_def*, int) /home/marxin/Programming/gcc/gcc/expr.c:271 0x13ba344 convert_modes(machine_mode, machine_mode, rtx_def*, int) /home/marxin/Programming/gcc/gcc/expr.c:712 0x13b86da convert_to_mode(machine_mode, rtx_def*, int) /home/marxin/Programming/gcc/gcc/expr.c:637 0x1c27737
[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133 --- Comment #3 from Segher Boessenkool --- ... Nope, works fine with trunk as well. You must be doing something you're not telling us?
[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133 --- Comment #2 from Segher Boessenkool --- Actually, doesn't fail on powerpc64le-linux either. Well let me try some brand spanking new tree...
[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133 --- Comment #1 from Segher Boessenkool --- Does not fail on powerpc64-linux, even with -mlittle -mabi=elfv2 .