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

--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
I think the issue is that gimplify_cleanup_point_expr when walking the
body_sequence to look for WCE stmts doesn't traverse GIMPLE_BIND sub-stmts.

Or it is not supposed to do that and the GENERIC is at fault, mis-matching
cleanup_points somehow:

 <<cleanup_point return <retval> = {
    const unsigned int _B1 = 32;

    <<cleanup_point     const unsigned int _B1 = 32;>>;
    *((unsigned int *) &TARGET_EXPR <D.3230, NON_LVALUE_EXPR <v>> + 8);
  }>>;

here the outer cleanup_point is relevant, and the stmt expression generating
the GIMPLE_BIND.  Is there a cleanup_point missing in that scope?

Other than that I don't know very much of this logic.

Reply via email to