OSDN Git Service

2009-05-13 David Mandelin <dmandelin@mozilla.com>:
authortglek <tglek@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 14 May 2009 01:27:15 +0000 (01:27 +0000)
committertglek <tglek@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 14 May 2009 01:27:15 +0000 (01:27 +0000)
gcc/
      * decl.c (duplicate_decls): Preserve parameter attributes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147514 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cp/decl.c

index ea12e83..3ae9d55 100644 (file)
@@ -1,3 +1,7 @@
+2009-05-13  David Mandelin <dmandelin@mozilla.com>:
+
+      * decl.c (duplicate_decls): Preserve parameter attributes.
+
 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
 
        * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
index fd944f7..dab3e5c 100644 (file)
@@ -1913,6 +1913,17 @@ duplicate_decls (tree newdecl, tree olddecl, bool newdecl_is_friend)
     {
       tree parm;
 
+      /* Merge parameter attributes. */
+      tree oldarg, newarg;
+      for (oldarg = DECL_ARGUMENTS(olddecl), 
+               newarg = DECL_ARGUMENTS(newdecl);
+           oldarg && newarg;
+           oldarg = TREE_CHAIN(oldarg), newarg = TREE_CHAIN(newarg)) {
+          DECL_ATTRIBUTES (newarg)
+              = (*targetm.merge_decl_attributes) (oldarg, newarg);
+          DECL_ATTRIBUTES (oldarg) = DECL_ATTRIBUTES (newarg);
+      }
+      
       if (DECL_TEMPLATE_INSTANTIATION (olddecl)
          && !DECL_TEMPLATE_INSTANTIATION (newdecl))
        {