https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70107
Bug ID: 70107 Summary: ICE: in emit_move_insn, at expr.c:3546 with -mcpu=power8 Product: gcc Version: 6.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org Target Milestone: --- Target: ppc64le trippels@gcc2-power8 test % cat apply.ii struct { template <typename Base, typename T, typename Derived> auto operator()(T Base::*, Derived ref) -> decltype(ref); } a; struct TestClass {}; template <typename Signature, typename, typename Functor> void test_b12(Functor f) { using ClassFunc = Signature TestClass::*; ClassFunc b; a(b, f); } void foo() { TestClass c; test_b12<int(), int>(c); } trippels@gcc2-power8 test % /home/trippels/gcc_test/usr/local/bin/g++ -w -c -mcpu=power8 apply.ii apply.ii: In function ‘void test_b12(Functor) [with Signature = int(); <template-parameter-1-2> = int; Functor = TestClass]’: apply.ii:10:4: internal compiler error: in emit_move_insn, at expr.c:3546 a(b, f); ~^~~~~~ 0x106cd757 emit_move_insn(rtx_def*, rtx_def*) ../../gcc/gcc/expr.c:3545 0x10558def load_register_parameters ../../gcc/gcc/calls.c:2047 0x10558def expand_call(tree_node*, rtx_def*, int) ../../gcc/gcc/calls.c:3329 0x106c699f expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/gcc/expr.c:10594 0x10570907 expand_expr ../../gcc/gcc/expr.h:256 0x10570907 expand_call_stmt ../../gcc/gcc/cfgexpand.c:2660 0x10570907 expand_gimple_stmt_1 ../../gcc/gcc/cfgexpand.c:3548 0x10570907 expand_gimple_stmt ../../gcc/gcc/cfgexpand.c:3714 0x10574413 expand_gimple_basic_block ../../gcc/gcc/cfgexpand.c:5720 0x10579887 execute ../../gcc/gcc/cfgexpand.c:6335