[Bug c++/101480] [11/12 Regression] Miscompiled code involving operator new
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Oct 11 14:20:43 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101480
--- Comment #19 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:
https://gcc.gnu.org/g:09a0affdb0598a54835ac4bb0dd6b54122c12916
commit r12-4319-g09a0affdb0598a54835ac4bb0dd6b54122c12916
Author: Richard Biener <rguenther@suse.de>
Date: Mon Oct 11 16:06:03 2021 +0200
middle-end/101480 - overloaded global new/delete
The following fixes the issue of ignoring side-effects on memory
from overloaded global new/delete operators by not marking them
as effectively 'const' apart from other explicitely specified
side-effects.
This will cause
FAIL: g++.dg/warn/Warray-bounds-16.C -std=gnu++1? (test for excess errors)
because we now no longer statically see the initialization loop
never executes because the call to operator new can now clobber 'a.m'.
This seems to be an issue with the warning code and/or ranger so
I'm leaving this FAIL to be addressed as followup.
2021-10-11 Richard Biener <rguenther@suse.de>
PR middle-end/101480
* gimple.c (gimple_call_fnspec): Do not mark operator new/delete
as const.
* g++.dg/torture/pr10148.C: New testcase.
More information about the Gcc-bugs
mailing list