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

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Created attachment 53468
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53468&action=edit
patch restoring backward threader functionality

The attached restores functionality in the backwards threader but as said it
gives up in find_taken_edge_goto doing

  m_solver->range_of_expr (r, dest, m_last_stmt);
  tree addr;
  if (!r.singleton_p (&addr)
      || (TREE_CODE (addr) != ADDR_EXPR
          && TREE_CODE (TREE_OPERAND (addr, 0)) != LABEL_DECL))
    return NULL;

since the range we get is non-null, not &label

Reply via email to