FreeBSD/contrib/gcc/varasm.c
/* First pass of completing pending aliases.  Make sure that cgraph knows
   which symbols will be required.  */
First pass of completing pending aliases.  Make sure that cgraph knows
which symbols will be required.
First pass of completing pending aliases . Make sure that cgraph knows which symbols will be required .
void
finish_aliases_1 (void)
{
  unsigned i;
  alias_pair *p;
  for (i = 0; VEC_iterate (alias_pair, alias_pairs, i, p); i++)
    {
      tree target_decl;
      target_decl = find_decl_and_mark_needed (p->decl, p->target);
      if (target_decl == NULL)
	{
	  if (! lookup_attribute ("weakref", DECL_ATTRIBUTES (p->decl)))
	    error ("%q+D aliased to undefined symbol %qs",
		   p->decl, IDENTIFIER_POINTER (p->target));
	}
      else if (DECL_EXTERNAL (target_decl)
	       && ! lookup_attribute ("weakref", DECL_ATTRIBUTES (p->decl)))
	error ("%q+D aliased to external symbol %qs",
	       p->decl, IDENTIFIER_POINTER (p->target));
    }
}
void finish_aliases_1 ( void ) { unsigned i ; alias_pair * p ; for ( i = 0 ; VEC_iterate ( alias_pair , alias_pairs , i , p ) ; i ++ ) { tree target_decl ; target_decl = find_decl_and_mark_needed ( p -> decl , p -> target ) ; if ( target_decl == NULL ) { if ( ! lookup_attribute ( " " , DECL_ATTRIBUTES ( p -> decl ) ) ) error ( " " , p -> decl , IDENTIFIER_POINTER ( p -> target ) ) ; } else if ( DECL_EXTERNAL ( target_decl ) && ! lookup_attribute ( " " , DECL_ATTRIBUTES ( p -> decl ) ) ) error ( " " , p -> decl , IDENTIFIER_POINTER ( p -> target ) ) ; } }
First pass of completing pending aliases.
First pass of completing pending aliases .