re PR c++/21784 (Using vs builtin names)

PR c++/21784
	* name-lookup.c (do_nonmember_using_decl): Ignore builtin
	functions, even	when the used name is not a function.

	PR c++/21784
	* g++.dg/lookup/using14.C: New test.

From-SVN: r100365
This commit is contained in:
Mark Mitchell 2005-05-30 16:20:29 +00:00 committed by Mark Mitchell
parent 2a2ea37674
commit d035c29621
4 changed files with 35 additions and 9 deletions

View File

@ -1,9 +1,20 @@
2005-05-30 Mark Mitchell <mark@codesourcery.com>
PR c++/21784
* name-lookup.c (do_nonmember_using_decl): Ignore builtin
functions, even when the used name is not a function.
2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
* operators.def, optimize.c: Update copyright.
2005-05-28 Mark Mitchell <mark@codesourcery.com>
PR c++/21210
* call.c (standard_conversion): Permit conversions to complex
types if conversion to the corresponding scalar type would be
permitted.
PR c++/21340
* method.c (implicitly_declare_fn): Clear processing_template_decl
when generating implicit declaration.

View File

@ -2032,6 +2032,14 @@ do_nonmember_using_decl (tree scope, tree name, tree oldval, tree oldtype,
return;
}
/* It is impossible to overload a built-in function; any explicit
declaration eliminates the built-in declaration. So, if OLDVAL
is a built-in, then we can just pretend it isn't there. */
if (oldval
&& TREE_CODE (oldval) == FUNCTION_DECL
&& DECL_ANTICIPATED (oldval))
oldval = NULL_TREE;
/* Check for using functions. */
if (decls.value && is_overloaded_fn (decls.value))
{
@ -2044,15 +2052,6 @@ do_nonmember_using_decl (tree scope, tree name, tree oldval, tree oldtype,
oldval = NULL_TREE;
}
/* It is impossible to overload a built-in function; any
explicit declaration eliminates the built-in declaration.
So, if OLDVAL is a built-in, then we can just pretend it
isn't there. */
if (oldval
&& TREE_CODE (oldval) == FUNCTION_DECL
&& DECL_ANTICIPATED (oldval))
oldval = NULL_TREE;
*newval = oldval;
for (tmp = decls.value; tmp; tmp = OVL_NEXT (tmp))
{

View File

@ -1,3 +1,8 @@
2005-05-30 Mark Mitchell <mark@codesourcery.com>
PR c++/21784
* g++.dg/lookup/using14.C: New test.
2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
* gcc.dg/c99-math-double-1.c, gcc.dg/c99-math-float-1.c,
@ -29,6 +34,9 @@
2005-05-28 Mark Mitchell <mark@codesourcery.com>
PR c++/21210
* g++.dg/ext/complex1.C: New test.
PR c++/21340
* g++.dg/init/ctor6.C: New test.

View File

@ -0,0 +1,8 @@
// PR c++/21784
namespace mine
{
int cpow;
};
using mine::cpow;