FreeBSD/contrib/gcc/cp/name-lookup.c
/* Enter DECL into the symbol table, if that's appropriate.  Returns
   DECL, or a modified version thereof.  */
Enter DECL into the symbol table, if that's appropriate.  Returns
DECL, or a modified version thereof.
Enter DECL into the symbol table if that ' s appropriate . Returns DECL or a modified version thereof .
tree
maybe_push_decl (tree decl)
{
  tree type = TREE_TYPE (decl);
  if (decl == error_mark_node
      || (TREE_CODE (decl) != PARM_DECL
	  && DECL_CONTEXT (decl) != NULL_TREE
	  && TREE_CODE (DECL_CONTEXT (decl)) != NAMESPACE_DECL)
      || (TREE_CODE (decl) == TEMPLATE_DECL && !namespace_bindings_p ())
      || TREE_CODE (type) == UNKNOWN_TYPE
      || (TREE_CODE (decl) == FUNCTION_DECL
	  && DECL_TEMPLATE_SPECIALIZATION (decl)))
    return decl;
  else
    return pushdecl (decl);
}
tree maybe_push_decl ( tree decl ) { tree type = TREE_TYPE ( decl ) ; if ( decl == error_mark_node || ( TREE_CODE ( decl ) != PARM_DECL && DECL_CONTEXT ( decl ) != NULL_TREE && TREE_CODE ( DECL_CONTEXT ( decl ) ) != NAMESPACE_DECL ) || ( TREE_CODE ( decl ) == TEMPLATE_DECL && ! namespace_bindings_p ( ) ) || TREE_CODE ( type ) == UNKNOWN_TYPE || ( TREE_CODE ( decl ) == FUNCTION_DECL && DECL_TEMPLATE_SPECIALIZATION ( decl ) ) ) return decl ; else return pushdecl ( decl ) ; }
Enter DECL into the symbol table, if that's appropriate.
Enter DECL into the symbol table if that ' s appropriate .
/* Add this decl to the current binding level, but not if it comes
     from another scope, e.g. a static member variable.  TEM may equal
     DECL or it may be a previous decl of the same name.  */ /* Definitions of namespace members outside their namespace are
	     possible.  */ /* The declaration of a template specialization does not affect
	 the functions available for overload resolution, so we do not
	 call pushdecl.  */