This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/33407] [4.1/4.3 Regression] C++ operator new and new expression do not change dynamic type
- From: "ian at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Jan 2008 15:25:48 -0000
- Subject: [Bug c++/33407] [4.1/4.3 Regression] C++ operator new and new expression do not change dynamic type
- References: <bug-33407-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #12 from ian at gcc dot gnu dot org 2008-01-18 15:25 -------
Subject: Bug 33407
Author: ian
Date: Fri Jan 18 15:25:02 2008
New Revision: 131629
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131629
Log:
PR c++/33407
./:
* tree.h (DECL_IS_OPERATOR_NEW): Define.
(struct tree_function_decl): Add new field operator_new_flag.
* tree-inline.c (expand_call_inline): When inlining a call to
operator new, force the return value to go into a variable, and
set DECL_NO_TBAA_P on that variable.
* c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
cp/:
* decl.c (duplicate_decls): Copy DECL_IS_OPERATOR_NEW flag.
(grok_op_properties): For NEW_EXPR and VEC_NEW_EXPR set
DECL_IS_OPERATOR_NEW flag.
testsuite/:
* g++.dg/init/new26.C: New test.
Added:
trunk/gcc/testsuite/g++.dg/init/new26.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-decl.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-inline.c
trunk/gcc/tree.h
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33407