https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78620
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
Status|UNCONFIRMED |WAITING
Last reconfirmed| |2016-12-01
Ever confirmed|0 |1
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Since C++11 zero-initialization requires that padding is initialized to zero
bits;
fprintf(stderr, "no initialization\n");
print(&tt1);
That's default-initialization (which for this type performs no initialization).
struct tm tt2 = tm();
fprintf(stderr, "default initialization\n");
print(&tt2);
That's value-initialization (which for this type performs zero-initialization).
new (buf) tm();
fprintf(stderr, "placement new with default constructor
initialization\n");
That's also value-initialization (so should also perform zero-initialization).
However, GCC 4.8 has been unsupported for a while now, please try a supported
version (5 or 6).