Kenji Hara <> changed:

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

--- Comment #1 from Kenji Hara <> 2012-05-10 23:05:16 PDT ---
(In reply to comment #0)
> Both D'tors are called and the returned result lives at a different address
> after being returned than before, as expected if not using NRVO.  On the other
> hand, no postblit being called for whichever struct is returned, as expected 
> if
> using NRVO.

The function 'doit' cannot NRVO, because &s1 and &s2 should have different

S doIt(int i) {
    S s1;
    S s2;
    printf("s1 lives at %p.\n", &s1);
    printf("s2 lives at %p.\n", &s2);
    return (i == 42) ? s1 : s2;   // postblit should run

I'll make this a dup of bug 7516. I have posted more better test code in there.

*** This issue has been marked as a duplicate of issue 7516 ***

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to