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

julien.blanc at laposte dot net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |julien.blanc at laposte dot net

--- Comment #5 from julien.blanc at laposte dot net ---
Testing a bit, it really looks like the issue resides in how and where the
temporary string objects are created.

Changing marc’s code to have

struct S {
   S(const char* a, const char * b, const char *c);
};

makes it reverting back to only 0.3k more text (which can be explained because
two emplace_back function instanciation are needed vs one), and better
insertion performance (insertion time is worse otherwise, which breaks
emplace_back purpose).

The same goes if strings are constructed before being passed to S constructor.

(see new attachment).

Looks like an optimizer issue to me.

(note : tested with gcc 4.9.2)

Reply via email to