https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96680

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> ---
In the debugger, the first call to lto_fixup_prevailing_decls is for
main._omp_fn.0 and the second - and failing - one is for

(gdb) p debug_tree(t)
 <tree_list 0x7ffff73d2cf8
    purpose <function_decl 0x7ffff73d3a00 p_fn

at the end, it fails for

  else
    {
      switch (code)
        {
        case TREE_LIST:
          LTO_SET_PREVAIL (TREE_VALUE (t));
          LTO_SET_PREVAIL (TREE_PURPOSE (t));
          LTO_NO_PREVAIL (TREE_PURPOSE (t));
          break;

in the call to

2595              LTO_NO_PREVAIL (TREE_PURPOSE (t));

And that's the following (I assume 'of' is 'or'):

/* Ensure that TT isn't a replacable var of function decl.  */
#define LTO_NO_PREVAIL(tt) \
  gcc_checking_assert (!(tt) || !VAR_OR_FUNCTION_DECL_P (tt))

Reply via email to