From bb36cc75427812229d4ba80d3724236d2127883f Mon Sep 17 00:00:00 2001 From: David Mandelin Date: Thu, 14 May 2009 01:27:15 +0000 Subject: [PATCH] decl.c (duplicate_decls): Preserve parameter attributes. 2009-05-13 David Mandelin : gcc/ * decl.c (duplicate_decls): Preserve parameter attributes. From-SVN: r147514 --- gcc/ChangeLog | 4 ++++ gcc/cp/decl.c | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ea12e83dd2c..3ae9d55ff5e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2009-05-13 David Mandelin : + + * decl.c (duplicate_decls): Preserve parameter attributes. + 2009-05-14 Dave Korn * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index fd944f713db..dab3e5c75bb 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)) {