* decl.c (duplicate_decls): Tweak.
authorJason Merrill <jason@redhat.com>
Tue, 28 Jan 2014 17:06:47 +0000 (12:06 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Tue, 28 Jan 2014 17:06:47 +0000 (12:06 -0500)
From-SVN: r207198

gcc/cp/ChangeLog
gcc/cp/decl.c

index 3da4ab4..c5e24d9 100644 (file)
@@ -1,5 +1,7 @@
 2014-01-28  Jason Merrill  <jason@redhat.com>
 
+       * decl.c (duplicate_decls): Tweak.
+
        PR c++/53756
        * mangle.c (write_unqualified_name): Handle operator auto.
 
index c93c783..aca96fc 100644 (file)
@@ -1923,13 +1923,13 @@ duplicate_decls (tree newdecl, tree olddecl, bool newdecl_is_friend)
       if (TREE_CODE (newdecl) == FUNCTION_DECL)
        maybe_instantiate_noexcept (olddecl);
 
-      /* Merge the data types specified in the two decls.  */
-      newtype = merge_types (TREE_TYPE (newdecl), TREE_TYPE (olddecl));
-
       /* For typedefs use the old type, as the new type's DECL_NAME points
         at newdecl, which will be ggc_freed.  */
       if (TREE_CODE (newdecl) == TYPE_DECL)
        newtype = oldtype;
+      else
+       /* Merge the data types specified in the two decls.  */
+       newtype = merge_types (TREE_TYPE (newdecl), TREE_TYPE (olddecl));
 
       if (VAR_P (newdecl))
        {