* decl.c (duplicate_decls): Use the new type when prototyping
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Mar 2003 04:31:21 +0000 (04:31 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Mar 2003 04:31:21 +0000 (04:31 +0000)
anticipated decls, even when the types match.  This defines the
exception list for the built-in function.

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

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

index d6efa61..25cc235 100644 (file)
@@ -1,3 +1,9 @@
+2003-03-17  Roger Sayle  <roger@eyesopen.com>
+
+       * decl.c (duplicate_decls): Use the new type when prototyping
+       anticipated decls, even when the types match.  This defines the
+       exception list for the built-in function.
+
 2003-03-17  Jason Merrill  <jason@redhat.com>
 
        PR c++/10091
index e00a5f3..a0dba2f 100644 (file)
@@ -3072,6 +3072,10 @@ duplicate_decls (tree newdecl, tree olddecl)
          /* Replace the old RTL to avoid problems with inlining.  */
          SET_DECL_RTL (olddecl, DECL_RTL (newdecl));
        }
+      /* Even if the types match, prefer the new declarations type
+        for anitipated built-ins, for exception lists, etc...  */
+      else if (DECL_ANTICIPATED (olddecl))
+       TREE_TYPE (olddecl) = TREE_TYPE (newdecl);
 
       if (DECL_THIS_STATIC (newdecl) && !DECL_THIS_STATIC (olddecl))
        {