[libcxx-dev] Non-merged type info name comparison
Louis Dionne via libcxx-dev
libcxx-dev at lists.llvm.org
Wed Sep 25 13:24:46 PDT 2019
> On Sep 25, 2019, at 15:19, Nico Weber <thakis at chromium.org> wrote:
>
> On Wed, Sep 25, 2019 at 12:11 PM Louis Dionne via libcxx-dev <libcxx-dev at lists.llvm.org <mailto:libcxx-dev at lists.llvm.org>> wrote:
>
>
>> On Sep 23, 2019, at 15:15, Shoaib Meenai via libcxx-dev <libcxx-dev at lists.llvm.org <mailto:libcxx-dev at lists.llvm.org>> wrote:
>>
>> Ah, sorry – my apologies.
>>
>> From: Marshall Clow <mclow.lists at gmail.com <mailto:mclow.lists at gmail.com>>
>> Date: Monday, September 23, 2019 at 12:14 PM
>> To: Shoaib Meenai <smeenai at fb.com <mailto:smeenai at fb.com>>
>> Cc: "libcxx-dev at lists.llvm.org <mailto:libcxx-dev at lists.llvm.org>" <libcxx-dev at lists.llvm.org <mailto:libcxx-dev at lists.llvm.org>>
>> Subject: Re: [libcxx-dev] Non-merged type info name comparison
>>
>> On Mon, Sep 23, 2019 at 12:02 PM Shoaib Meenai via libcxx-dev <libcxx-dev at lists.llvm.org <mailto:libcxx-dev at lists.llvm.org>> wrote:
>> In https://reviews.llvm.org/rL361913 <https://urldefense.proofpoint.com/v2/url?u=https-3A__reviews.llvm.org_rL361913&d=DwMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=zXNo5HfpEBs2AeK5MYbybBHSXRWS2rfFR2LYPo1zuhA&s=5In-WOhspL-mxLcgsafyIl0_G_S9IkKnfaj3lVT6y44&e=>, libc++ gained the option to make type info comparisons use a strcmp on the type info name, which is useful for when we can’t guarantee RTTI uniqueness. I believe libstdc++ also defaults to strcmp comparisons. However, libstdc++ doesn’t perform the string comparison when the type info name begins with the * character [1], which is the case for e.g. types defined in anonymous namespaces. Should libc++’s implementation be changed to match, at least when targeting Linux?
> Actually, in what cases can we guarantee that RTTI has been fully duplicated? For example, I don't think anything prevents users from using a shared library that redefines the RTTI for a type, no?
>
> Do you mean deduplicated?
Yes, sorry!
>
> If so, then in binaries that have everything (including libc++) statically linked, this is guaranteed.
Right. So some platforms (I guess Android) have this property, and other platforms (like Apple platforms, where we don't link libc++ statically into applications) do not. I guess it's then a choice to be made by vendors, and the status quo is OK.
Louis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/libcxx-dev/attachments/20190925/6e218e3f/attachment.html>
More information about the libcxx-dev
mailing list