[LLVMdev] [cfe-dev] weak_odr constant versus weak_odr global

Eric Christopher echristo at apple.com
Wed Dec 7 11:19:33 PST 2011

On Nov 27, 2011, at 5:00 AM, John McCall wrote:

> To sketch out the proposed IR extension a bit more:
> 1.  We add 'comdat "name"' to the global variable and function
> productions.  I have the COMDAT name in quotes only because
> there's no other precedent for a bare identifier in the IR grammar.
> I don't think we want to allow this on aliases;  I think I could
> probably invent reasonable semantics, but it's really not worth
> worrying about without cause.
> 2.  A symbol with a COMDAT name must be a definition.
> 3.  All symbols sharing the same COMDAT name are required to
> share the same linkage and visibility.  Conveniently, this lets us
> talk about the COMDAT's linkage / etc.
> 4.  A symbol with a COMDAT name is considered to be referenced
> if any symbol with the same COMDAT name is referenced
> (ignoring this rule).
> 5.  It's undefined behavior if two modules are linked and they
> export different sets of symbols with a given COMDAT name.
> 6.  Otherwise, if two modules are linked and they both export
> symbols with a given COMDAT name, all the symbols must be
> taken from the same module.
> I think that covers it.

Mostly. How to work the current md node debug implementation into
this will be a bit tricky, but linking debug information is already a
task that needs to be looked at so…

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111207/8bd6a575/attachment.html>

More information about the llvm-dev mailing list