https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77745
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |trippels at gcc dot gnu.org
--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Runtime example, e.g.:
#include <new>
long foo(char *c1, char *c2) {
long *p1 = new (c1) long;
*p1 = 100;
long long *p2 = new (c2) long long;
*p2 = 200;
long *p3 = new (c2) long;
*p3 = 200;
return *p1;
}
int main() {
char c[128];
if (foo(c, c) == 100)
__builtin_abort();
}
gcc hits the abort with -O2, all other compilers (clang, icc, visual c++) not.