[compiler-rt] r198017 - [ASan] Make sure none of the __asan_gen_ global strings end up in the symbol table, add a test.

Alexander Potapenko glider at google.com
Thu Dec 18 02:20:16 PST 2014


Looks like the behavior is different for 32 and 64 bits:

$ clang ../no_asan_gen_globals.c -c -fsanitize=address -m64 ; nm
no_asan_gen_globals.o | grep __asan_gen
# nothing here
$ clang ../no_asan_gen_globals.c -c -fsanitize=address -m32 ; nm
no_asan_gen_globals.o | grep __asan_gen
00000000 r .L__asan_gen_


On Thu, Dec 18, 2014 at 1:38 AM, David Blaikie <dblaikie at gmail.com> wrote:
>
> Ping. This is still showing up for me (& one of the reasons (the main one
> being increased build times) I keep removing my projects/compiler-rt from
> time to time).
>
> On Tue, Sep 9, 2014 at 9:20 AM, David Blaikie <dblaikie at gmail.com> wrote:
>>
>>>>  no_asan_gen_globals.nm.txt
>> <https://docs.google.com/file/d/0B0jpkch3iC_7WlYwemNsMzVuWmM/edit?usp=drive_web>
>> ​​
>>  no_asan_gen_globals.s
>> <https://docs.google.com/file/d/0B0jpkch3iC_7QWdDbzFhbW9jVnM/edit?usp=drive_web>
>> ​​
>>  no_asan_gen_globals.ll
>> <https://docs.google.com/file/d/0B0jpkch3iC_7eHZkeGtJX1FkSzQ/edit?usp=drive_web>
>>>>
>> On Mon, Sep 8, 2014 at 12:45 AM, Alexander Potapenko <glider at google.com>
>> wrote:
>>
>>> I wonder why __asan_gen_ is prefixed with "L". I'd think you were
>>> targeting Darwin, but looking at the command line it isn't so.
>>> The test passes for me on Ubuntu 12.04.
>>> Do you have local changes in your tree?
>>
>>
>> I don't think so.
>>
>>
>>> Can you please post the IR and the assembly for this test?
>>>
>>
>> Attached the assembly, IR, and the output of 'nm'. Let me know if I can
>> provide more information.
>>
>>
>>>
>>> On Mon, Sep 8, 2014 at 8:37 AM, David Blaikie <dblaikie at gmail.com>
>>> wrote:
>>> > This test is failing for me on Linux (Ubuntu TLS 12.04 I believe) as
>>> > follows:
>>> >
>>> >
>>> /home/blaikie/dev/llvm/build/clang/debug/split/notypes/nostandalone/./bin/clang
>>> > -fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer
>>> > -fno-optimize-sibling-calls -gline-tables-only -m32
>>> >
>>> /mnt/fast/dev/llvm/src/projects/compiler-rt/test/asan/TestCases/no_asan_gen_globals.c
>>> > -o
>>> >
>>> /mnt/fast/dev/llvm/build/clang/debug/split/notypes/nostandalone/projects/compiler-rt/test/asan/32bitConfig/TestCases/Output/no_asan_gen_globals.c.tmp.exe
>>> > nm
>>> >
>>> /mnt/fast/dev/llvm/build/clang/debug/split/notypes/nostandalone/projects/compiler-rt/test/asan/32bitConfig/TestCases/Output/no_asan_gen_globals.c.tmp.exe
>>> > | FileCheck
>>> >
>>> /mnt/fast/dev/llvm/src/projects/compiler-rt/test/asan/TestCases/no_asan_gen_globals.c
>>> > --
>>> > Exit Code: 1
>>> >
>>> > Command Output (stderr):
>>> > --
>>> > <stdin>:2011:14: error: CHECK-NOT: string occurred!
>>> > 080fb9de r .L__asan_gen_
>>> >              ^
>>> >
>>> /mnt/fast/dev/llvm/src/projects/compiler-rt/test/asan/TestCases/no_asan_gen_globals.c:11:15:
>>> > note: CHECK-NOT: pattern specified here
>>> > // CHECK-NOT: __asan_gen_
>>> >               ^
>>> >
>>> >
>>> > Anything ideas with what the issue is here? Something I should fix?
>>> > Legitimate bug?
>>> >
>>> >
>>> > On Wed, Dec 25, 2013 at 6:22 AM, Alexander Potapenko <
>>> glider at google.com>
>>> > wrote:
>>> >>
>>> >> Author: glider
>>> >> Date: Wed Dec 25 08:22:15 2013
>>> >> New Revision: 198017
>>> >>
>>> >> URL: http://llvm.org/viewvc/llvm-project?rev=198017&view=rev
>>> >> Log:
>>> >> [ASan] Make sure none of the __asan_gen_ global strings end up in the
>>> >> symbol table, add a test.
>>> >>
>>> >> This should fix http://llvm.org/bugs/show_bug.cgi?id=17976
>>> >> Another test checking for the global variables' locations and
>>> prefixes on
>>> >> Darwin will be committed separately.
>>> >>
>>> >>
>>> >> Added:
>>> >>
>>>  compiler-rt/trunk/lib/asan/lit_tests/TestCases/no_asan_gen_globals.c
>>> >> (with props)
>>> >>
>>> >> Added:
>>> >> compiler-rt/trunk/lib/asan/lit_tests/TestCases/no_asan_gen_globals.c
>>> >> URL:
>>> >>
>>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/lit_tests/TestCases/no_asan_gen_globals.c?rev=198017&view=auto
>>> >>
>>> >>
>>> ==============================================================================
>>> >> ---
>>> compiler-rt/trunk/lib/asan/lit_tests/TestCases/no_asan_gen_globals.c
>>> >> (added)
>>> >> +++
>>> compiler-rt/trunk/lib/asan/lit_tests/TestCases/no_asan_gen_globals.c
>>> >> Wed Dec 25 08:22:15 2013
>>> >> @@ -0,0 +1,7 @@
>>> >> +// Make sure __asan_gen_* strings do not end up in the symbol table.
>>> >> +
>>> >> +// RUN: %clang_asan %s -o %t.exe
>>> >> +// RUN: nm %t.exe | grep __asan_gen_ || exit 0
>>> >> +
>>> >> +int x, y, z;
>>> >> +int main() { return 0; }
>>> >>
>>> >> Propchange:
>>> >> compiler-rt/trunk/lib/asan/lit_tests/TestCases/no_asan_gen_globals.c
>>> >>
>>> >>
>>> ------------------------------------------------------------------------------
>>> >>     svn:eol-style = LF
>>> >>
>>> >>
>>> >> _______________________________________________
>>> >> llvm-commits mailing list
>>> >> llvm-commits at cs.uiuc.edu
>>> >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>> >
>>> >
>>>
>>>
>>>
>>> --
>>> Alexander Potapenko
>>> Software Engineer
>>> Google Moscow
>>>
>>
>>

-- 
Alexander Potapenko
Software Engineer
Google Moscow
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141218/3952d042/attachment.html>


More information about the llvm-commits mailing list