aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/decl.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index e933965..3c967b3 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2010-02-22 Mike Stump <mikestump@comcast.net>
+
+ PR c++/43125
+ * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
+
2010-02-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c++/23510
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index a22cf01..3eec0c7 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -2093,6 +2093,10 @@ duplicate_decls (tree newdecl, tree olddecl, bool newdecl_is_friend)
TREE_USED (newdecl) = 1;
else if (TREE_USED (newdecl))
TREE_USED (olddecl) = 1;
+ if (DECL_PRESERVE_P (olddecl))
+ DECL_PRESERVE_P (newdecl) = 1;
+ else if (DECL_PRESERVE_P (newdecl))
+ DECL_PRESERVE_P (olddecl) = 1;
if (TREE_CODE (newdecl) == FUNCTION_DECL)
{