Under gcc4.9, the address obtained from the new operator is only 16-byte aligned, but under gcc5.1, it is 32-byte aligned.
I initially thought it was related to aligned new, but aligned new is only available when std=c++17 flag is used and compiled under gcc7.
The alignment rules of new should be controlled in Libstdc++, so I went to look at the code of libstdc++ , but did not find any changes related to gcc5
So my question is, why gcc5 can have 32 byte alignment, is there any report related to this?