[cfe-commits] r148842 - in /cfe/trunk: docs/LanguageExtensions.html include/clang/Basic/Attr.td include/clang/Sema/AttributeList.h lib/CodeGen/CodeGenModule.cpp lib/Sema/AttributeList.cpp lib/Sema/SemaDeclAttr.cpp test/CodeGen/address-safety-attr
Alexander Potapenko
glider at google.com
Mon Jan 30 10:19:54 PST 2012
See http://code.google.com/p/address-sanitizer/issues/detail?id=33
This is about static methods, not only ObjC.
And I'm afraid it'll be too inconvenient to support ObjC on Linux, as
nobody actually uses it.
On Mon, Jan 30, 2012 at 10:17 PM, Kostya Serebryany <kcc at google.com> wrote:
>
>
> On Fri, Jan 27, 2012 at 7:58 AM, Alexander Potapenko <glider at google.com>
> wrote:
>>
>> Kostya,
>>
>> it seems to me that this patch broke the support for ObjC.
>
> It is very unlikely that this patch broke the objc support in asan.
> btw, can we have objc tests on linux?
>
> --kcc
>
>>
>>
>> $ gobjdump -D bin_darwin/asan_test32
>> ...
>>
>> 0013b460 <+[LoadSomething load]>:
>> 13b460: 55 push %ebp
>> 13b461: 89 e5 mov %esp,%ebp
>> 13b463: 53 push %ebx
>> 13b464: 57 push %edi
>> 13b465: 56 push %esi
>> 13b466: 83 ec 0c sub $0xc,%esp
>> 13b469: e8 00 00 00 00 call 13b46e <+[LoadSomething
>> load]+0xe>
>> 13b46e: 5b pop %ebx
>> 13b46f: 8d b3 72 75 1b 00 lea 0x1b7572(%ebx),%esi
>> 13b475: 89 34 24 mov %esi,(%esp)
>> 13b478: e8 4f 77 17 00 call 2b2bcc <_strlen$stub>
>> 13b47d: 85 c0 test %eax,%eax
>> 13b47f: 74 22 je 13b4a3 <+[LoadSomething
>> load]+0x43>
>> 13b481: 31 ff xor %edi,%edi
>> 13b483: 8d 9b 72 75 1b 00 lea 0x1b7572(%ebx),%ebx
>> 13b489: 0f 1f 80 00 00 00 00 nopl 0x0(%eax)
>> 13b490: 8a 06 mov (%esi),%al
>> 13b492: 88 45 f3 mov %al,-0xd(%ebp)
>> 13b495: 89 1c 24 mov %ebx,(%esp)
>> 13b498: 46 inc %esi
>> 13b499: 47 inc %edi
>> 13b49a: e8 2d 77 17 00 call 2b2bcc <_strlen$stub>
>> 13b49f: 39 c7 cmp %eax,%edi
>> 13b4a1: 72 ed jb 13b490 <+[LoadSomething
>> load]+0x30>
>> 13b4a3: 83 c4 0c add $0xc,%esp
>> 13b4a6: 5e pop %esi
>> 13b4a7: 5f pop %edi
>> 13b4a8: 5b pop %ebx
>> 13b4a9: 5d pop %ebp
>> 13b4aa: c3 ret
>> 13b4ab: 0f 1f 44 00 00 nopl 0x0(%eax,%eax,1)
>> ...
>>
>> -- as you can see, __asan_init is not called at the beginning of the
>> function.
>> This leads to crashes in Chromium, because some instrumented code ends
>> up being called from such load methods before __asan_init.
>> I'm going to take a look, but it'll be great if you know how to fix
>> this off the top of your head.
>
>
--
Alexander Potapenko
Software Engineer
Google Moscow
More information about the cfe-commits
mailing list