Commit 0c33daff by Mark Mitchell Committed by Mark Mitchell

re PR c++/9924 (Multiple using statements for builtin functions not allowed)

	PR c++/9924
	* g++.dg/overload/builtin2.C: New test.

2003-03-11  Mark Mitchell  <mark@codesourcery.com>

	PR c++/9924
	* decl2.c (do_nonmember_using_decl): Ignore anticipated builtins.

From-SVN: r64197
parent cf237c19
2003-03-11 Mark Mitchell <mark@codesourcery.com>
PR c++/9924
* decl2.c (do_nonmember_using_decl): Ignore anticipated builtins.
2003-03-11 Jason Merrill <jason@redhat.com>
PR c++/9820
......
......@@ -4251,21 +4251,27 @@ do_nonmember_using_decl (tree scope, tree name, tree oldval, tree oldtype,
else if (compparms (TYPE_ARG_TYPES (TREE_TYPE (new_fn)),
TYPE_ARG_TYPES (TREE_TYPE (old_fn))))
{
/* If this using declaration introduces a function
recognized as a built-in, no longer mark it as
anticipated in this scope. */
if (DECL_ANTICIPATED (old_fn))
{
DECL_ANTICIPATED (old_fn) = 0;
break;
}
/* There was already a non-using declaration in
this scope with the same parameter types. If both
are the same extern "C" functions, that's ok. */
if (!decls_match (new_fn, old_fn))
error ("`%D' is already declared in this scope", name);
break;
if (decls_match (new_fn, old_fn))
{
/* If the OLD_FN was a builtin, there is now a
real declaration. */
if (DECL_ANTICIPATED (old_fn))
DECL_ANTICIPATED (old_fn) = 0;
break;
}
else if (!DECL_ANTICIPATED (old_fn))
{
/* If the OLD_FN was really declared, the
declarations don't match. */
error ("`%D' is already declared in this scope", name);
break;
}
/* If the OLD_FN was not really there, just ignore
it and keep going. */
}
}
......
2003-03-11 Mark Mitchell <mark@codesourcery.com>
PR c++/9924
* g++.dg/overload/builtin2.C: New test.
2003-03-11 Steven Bosscher <s.bosscher@student.tudelft.nl>
* gcc.dg/return-type-3.c: New test.
......
namespace __gnu_cxx {
void llabs(long long x);
}
namespace std {
using __gnu_cxx::llabs;
using __gnu_cxx::llabs;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment