[PATCH] D29233: Fix linkage of static locals in available_externally functions to be DiscardableODR/linkonce_odr

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 27 15:12:23 PST 2017


On 27 January 2017 at 14:44, David Blaikie <dblaikie at gmail.com> wrote:

>
>
> On Fri, Jan 27, 2017 at 2:11 PM Mehdi AMINI via Phabricator <
> reviews at reviews.llvm.org> wrote:
>
>> mehdi_amini accepted this revision.
>> mehdi_amini added a comment.
>> This revision is now accepted and ready to land.
>>
>> LGTM.
>>
>>
>>
>> ================
>> Comment at: lib/AST/ASTContext.cpp:8909
>> +
>> +    // Itanium ABI (& MSVC seems to do similarly) requires static locals
>> in
>> +    // inline functions to be emitted anywhere they're needed, even if
>> the
>> ----------------
>> I assume you looked it up, do you have a ref? (Citation or pointer to
>> right section/paragraph).
>>
>
> Would you like a citation in source? I thought that might be a bit strong
> since this is ABI-neutral code, notionally (so I was straddling that line a
> bit).
>
> I can't quite figure out how to navigate/find the ABI document nor cast
> the runes as Richard did for the citation, so hopefully he can chime in
> here.
>

https://itanium-cxx-abi.github.io/cxx-abi/abi.html#vague-static

5.2.2: "Each COMDAT group [for a static local variable] must be emitted in
any object with references to the symbol for the object it contains,
whether inline or out-of-line."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170127/6882cb56/attachment.html>


More information about the cfe-commits mailing list