This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [C++] GCC tree linkage types


Chris Lattner <sabre@nondot.org> writes:

> Ian Lance Taylor writes:
>
>> A weak undefined symbol is like an ordinary undefined symbol, except
>> that it is not an error if the symbol is never defined (and in that
>> case the symbol is implicitly defined with the value zero).
>
> What are weak undefined symbols used for?

extern void foo (void) __attribute__ ((weak));
void bar (void)
{
  if (foo) foo ();
}

> If they are referenced but never defined, how does the program link?

The undefined reference just resolves to zero.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]