aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/decl.c
diff options
context:
space:
mode:
authorDavid Mandelin <dmandelin@mozilla.com>2009-05-14 01:27:15 +0000
committerTaras Glek <tglek@gcc.gnu.org>2009-05-14 01:27:15 +0000
commitbb36cc75427812229d4ba80d3724236d2127883f (patch)
tree28b8272eb18101c1041d79550a4a80f9bda0d88a /gcc/cp/decl.c
parent4ed7f970f4b999074e4971b5f84286b3c0fd3464 (diff)
downloadgcc-bb36cc75427812229d4ba80d3724236d2127883f.zip
gcc-bb36cc75427812229d4ba80d3724236d2127883f.tar.gz
gcc-bb36cc75427812229d4ba80d3724236d2127883f.tar.bz2
decl.c (duplicate_decls): Preserve parameter attributes.
2009-05-13 David Mandelin <dmandelin@mozilla.com>: gcc/ * decl.c (duplicate_decls): Preserve parameter attributes. From-SVN: r147514
Diffstat (limited to 'gcc/cp/decl.c')
-rw-r--r--gcc/cp/decl.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index fd944f7..dab3e5c 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -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))
{