[Bug lto/58723] ICE in lto_output_edge, at lto-cgraph.c:300 for OpenMP's simd reduction

burnus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Oct 14 17:52:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58723

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> ---
The failure is for the assert:

295           /* Flags that should not appear on indirect calls.  */
296           gcc_assert (!(flags & (ECF_LOOPING_CONST_OR_PURE
297                                  | ECF_MAY_BE_ALLOCA
298                                  | ECF_SIBCALL
299                                  | ECF_LEAF
300                                  | ECF_NOVOPS)));

Here, (flags & ECF_LEAF) != 0. The edge->caller is:

(gdb) p dump_cgraph_node(stdout, edge->caller)

_ZStL17DoFinalizeBooleanSt8XPBoolOpiPKSt5XPBoxPSt6vectorIS0_SaIS0_EE/0
(std::DoFinalizeBoolean(std::XPBoolOp, int, std::XPBox const*,
std::vector<std::XPBox, std::allocator<std::XPBox> >*)) @0x2aaaac1f1e40
Type: function definition analyzed
Visibility: prevailing_def_ironly
References:
Referring:
Availability: local
Function flags: body local
Called by: _ZNSt7XPClass4finiEPSt6vectorISt5XPBoxSaIS1_EE/1 (1.00 per call)
Calls:
Has 3 outgoing edges for indirect calls.


My suspicion is that this is due to:

DEF_INTERNAL_FN (GOMP_SIMD_VF, ECF_CONST | ECF_LEAF | ECF_NOTHROW)



More information about the Gcc-bugs mailing list