This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [C++] GCC tree linkage types
- From: Andreas Schwab <schwab at suse dot de>
- To: Chris Lattner <sabre at nondot dot org>
- Cc: Ian Lance Taylor <ian at wasabisystems dot com>,Daniel Jacobowitz <drow at mvista dot com>, <gcc at gcc dot gnu dot org>
- Date: Fri, 07 Nov 2003 16:54:17 +0100
- Subject: Re: [C++] GCC tree linkage types
- References: <Pine.LNX.4.44.0311071003550.18499-100000@nondot.org>
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."