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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |DUPLICATE
             Status|NEW                         |RESOLVED

--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Actually RSO setting might come from the gimplifier:
          /* For calls that return in memory, give *to_p as the CALL_EXPR's
             return slot so that we don't generate a temporary.  */
          if (!CALL_EXPR_RETURN_SLOT_OPT (*from_p)
              && aggregate_value_p (*from_p, *from_p))
            {
...

In the case of x86_64, Foo is not aggregate_value_p.

Which does a target hook:
  if (targetm.calls.return_in_memory (type, fntype))
    return true;

  reg = hard_function_value (type, 0, fntype, 0);


and how it returns too.

So yes this is a dup of bug 82705.

*** This bug has been marked as a duplicate of bug 82705 ***

Reply via email to