cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.

* cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
	* decl.c (select_decl): Don't return declarations that are
	DECL_ANTICIPATED.

From-SVN: r36953
This commit is contained in:
Mark Mitchell 2000-10-19 17:57:49 +00:00 committed by Mark Mitchell
parent 3cf3728197
commit 97ba1e3c39
4 changed files with 29 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2000-10-19 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
* decl.c (select_decl): Don't return declarations that are
DECL_ANTICIPATED.
2000-10-18 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.

View File

@ -2481,7 +2481,7 @@ extern int flag_new_for_scope;
/* Nonzero if NODE is a FUNCTION_DECL for a built-in function, and we have
not yet seen a prototype for that function. */
#define DECL_ANTICIPATED(NODE) \
(DECL_LANG_SPECIFIC (FUNCTION_DECL_CHECK (NODE))->decl_flags.anticipated_p)
(DECL_LANG_SPECIFIC (DECL_CHECK (NODE))->decl_flags.anticipated_p)
/* Record whether a typedef for type `int' was actually `signed int'. */
#define C_TYPEDEF_EXPLICITLY_SIGNED(exp) DECL_LANG_FLAG_1 ((exp))

View File

@ -5693,6 +5693,15 @@ select_decl (binding, flags)
{
tree val;
val = BINDING_VALUE (binding);
/* When we implicitly declare some builtin entity, we mark it
DECL_ANTICIPATED, so that we know to ignore it until it is
really declared. */
if (val && DECL_P (val)
&& DECL_LANG_SPECIFIC (val)
&& DECL_ANTICIPATED (val))
return NULL_TREE;
if (LOOKUP_NAMESPACES_ONLY (flags))
{
/* We are not interested in types. */

View File

@ -0,0 +1,13 @@
// Build don't link:
// Special g++ Options: -fhonor-std
// Origin: Mark Mitchell <mark@codesourcery.com>
extern "C" int memcmp (const void * __s1,
const void * __s2,
__SIZE_TYPE__ __n) throw ();
namespace std {
void f () {
memcmp (0, 0, 0);
}
};