------- Additional Comments From mark at codesourcery dot com  2005-04-22 00:58 
-------
Subject: Re: [PR c++/21087] don't keep builtin anticipated decl, override
 it with actual declaration

Alexandre Oliva wrote:
> When push_overloaded_decl() was passed a new declaration that matches
> a builtin decl, it would verify that the declarations matched and, if
> so, leave the existing (built-in) declaration alone.
> 
> The intended behavior is to merge the built-in declaration with the
> new declaration, into the location of the built-in declaration.
> 
> The problem is that duplicate_decl() doesn't perform such merging when
> the new declaration is a template decl, and then we end up with an
> overload involving the template decl and the anticipated built-in
> decl.  However, overloads involving anticipated decls are something we
> try to avoid, and actually check for elsewhere.
> 
> This patch fixes the code such that, if the existing decl is
> anticipated and the two decls weren't merged, we discard the built-in
> and use the new decl by itself.
> 
> Bootstrapped and regtested on amd64-linux-gnu.  Ok to install?

OK.

Yet another reason we should generate builtins lazily, as needed...



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21087

Reply via email to