[compiler-rt] r184858 - tsan: add missing __attribute__((visibility("default"))) to interface functions

Dmitry Vyukov dvyukov at google.com
Wed Jun 26 06:09:39 PDT 2013


On Wed, Jun 26, 2013 at 4:59 PM, Alexey Samsonov <samsonov at google.com> wrote:
>
>
> On Tue, Jun 25, 2013 at 9:09 PM, Dmitry Vyukov <dvyukov at google.com> wrote:
>>
>> There are still some moments that are unclear to me:
>> 1. Is INTERCEPTOR_ATTRIBUTE part of public interface of interceptor
>> library?
>> 2. Will it preserve it's meaning over time? It looks like an
>> implementation detail of interceptor machinery.
>>
>> 3. We do not intercept operator new/delete as interception library
>> does (i.e. hot patching function prologue). We just define our own
>> versions. So is it the same?
>
>
> +glider
>
> "hot patching" is not used anymore.
> But, the question is interesting. It looks like we really "define" our own
> new/delete and want
> to export them, so SANITIZER_INTERFACE_ATTRIBUTE is the correct macro for
> it.
>
> Interceptors on Mac doesn't have __attribute__((visibility("default"))).
> Should new/delete on Mac
> have it?
>
>>
>>
>>
>> On Tue, Jun 25, 2013 at 8:55 PM, Sergey Matveev <earthdok at google.com>
>> wrote:
>> > You also have operators new and delete in this patch.
>> >
>> > On Tue, Jun 25, 2013 at 8:40 PM, Dmitry Vyukov <dvyukov at google.com>
>> > wrote:
>> >>
>> >> __interceptor__setjmp() is not an interceptor, it's an interface
>> >> function.
>
>
> Why?

Because they do not intercept anything. foo() intercepts,
__interceptor_foo() is an interface function that can be called by
user.



More information about the llvm-commits mailing list