From e5b44dfb3e7f20af022a3c9133cbc5c610b50124 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Fri, 22 Dec 2006 00:31:03 -0800 Subject: [PATCH] re PR c++/30225 (builtins's decl is copied in some cases where it is not needed to be copied) 2006-12-21 Andrew Pinski PR C++/30225 * decl.c (cxx_builtin_function): Only copy the decl if adding it to the std namespace From-SVN: r120145 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/decl.c | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index caad0ec0fd5..5009ebaa251 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,11 @@ 2006-12-21 Andrew Pinski + PR C++/30225 + * decl.c (cxx_builtin_function): Only copy the decl if adding + it to the std namespace. + +2006-12-21 Andrew Pinski + PR C++/30168 * optimize.c (update_cloned_parm): Copy DECL_GIMPLE_REG_P also. diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 5c7d508fc3e..6a46636ea10 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -3402,17 +3402,17 @@ cxx_builtin_function (tree decl) { tree id = DECL_NAME (decl); const char *name = IDENTIFIER_POINTER (id); - tree decl2 = copy_node(decl); /* All builtins that don't begin with an '_' should additionally go in the 'std' namespace. */ if (name[0] != '_') { + tree decl2 = copy_node(decl); push_namespace (std_identifier); - builtin_function_1 (decl, std_node); + builtin_function_1 (decl2, std_node); pop_namespace (); } - return builtin_function_1 (decl2, NULL_TREE); + return builtin_function_1 (decl, NULL_TREE); } /* Generate a FUNCTION_DECL with the typical flags for a runtime library -- 2.11.4.GIT