[Bug c++/67942] diagnose placement new buffer overflow
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67942 --- Comment #8 from Martin Sebor --- *** Bug 67875 has been marked as a duplicate of this bug. ***
[Bug c++/67942] diagnose placement new buffer overflow
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67942 --- Comment #7 from Martin Sebor --- Author: msebor Date: Sun Nov 8 17:53:51 2015 New Revision: 229959 URL: https://gcc.gnu.org/viewcvs?rev=229959=gcc=rev Log: Clean up fallout on ILP32 from r229831. gcc/ PR c++/67942 * cp/init.c (warn_placement_new_too_small): Convert integer operand of POINTER_PLUS_EXPR to ssize_t to determine its signed value. c-family/ * c.opt (Wplacement-new): Add a period to the end of a sentence. Modified: trunk/gcc/c-family/ChangeLog trunk/gcc/c-family/c.opt trunk/gcc/cp/ChangeLog trunk/gcc/cp/init.c
[Bug c++/67942] diagnose placement new buffer overflow
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67942 --- Comment #6 from Martin Sebor --- Author: msebor Date: Fri Nov 6 15:42:41 2015 New Revision: 229857 URL: https://gcc.gnu.org/viewcvs?rev=229857=gcc=rev Log: Correct entry for PR c++/67942. Modified: trunk/gcc/ChangeLog
[Bug c++/67942] diagnose placement new buffer overflow
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67942 --- Comment #3 from Martin Sebor --- Author: msebor Date: Thu Nov 5 21:42:10 2015 New Revision: 229827 URL: https://gcc.gnu.org/viewcvs?rev=229827=gcc=rev Log: PR c++/67942 - diagnose placement new buffer overflow gcc/ * invoke.texi (-Wplacement-new): Document new option. * gcc/testsuite/g++.dg/warn/Wplacement-new-size.C: New test. gcc/c-family/ * c.opt (-Wplacement-new): New option. gcc/cp/ * cp/init.c (warn_placement_new_too_small): New function. (build_new_1): Call it. gcc/testsuite/ * g++.dg/warn/Wplacement-new-size.C: New test. Added: trunk/gcc/testsuite/g++.dg/warn/Wplacement-new-size.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-family/ChangeLog trunk/gcc/c-family/c.opt trunk/gcc/cp/ChangeLog trunk/gcc/cp/init.c trunk/gcc/doc/invoke.texi trunk/gcc/testsuite/ChangeLog
[Bug c++/67942] diagnose placement new buffer overflow
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67942 Martin Sebor changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #4 from Martin Sebor --- Committed in revision 229827.
[Bug c++/67942] diagnose placement new buffer overflow
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67942 --- Comment #5 from Martin Sebor --- Author: msebor Date: Fri Nov 6 01:08:53 2015 New Revision: 229831 URL: https://gcc.gnu.org/viewcvs?rev=229831=gcc=rev Log: PR c++/67942 - diagnose placement new buffer overflow gcc/cp/ * cp/init.c (warn_placement_new_too_small): Avoid assuming the size of the first operand of placement new or its type is known. gcc/testsuite/ * g++.dg/warn/Wplacement-new-size.C: Exercise placement new invocations where the size of the destination buffer object or its type (or both) is unknown. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/init.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/warn/Wplacement-new-size.C
[Bug c++/67942] diagnose placement new buffer overflow
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67942 Martin Sebor changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2015-10-13 Ever confirmed|0 |1 --- Comment #2 from Martin Sebor --- Patch posted for review here: https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01284.html
[Bug c++/67942] diagnose placement new buffer overflow
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67942 Martin Sebor changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |msebor at gcc dot gnu.org --- Comment #1 from Martin Sebor --- A patch capable of detecting and diagnosing a limited subset of such overflows will be posted for review shortly. The output of the patch for the example program in the Description is as follows: $ g++ -Wall u.cpp u.cpp: In function ‘void f(S*)’: u.cpp:22:27: warning: placement new constructing a 16-byte object of type ‘S’ in a region of type ‘char [8]’ that is 8 bytes large S *t = new (buf) S (*s);