[PATCH] Unify clang/llvm attributes for asan/tsan/msan (Clang part)

Richard Smith richard at metafoo.co.uk
Fri Feb 22 15:11:03 PST 2013


My primary desire is that we use consistent naming for the attributes
across sanitizers. I'm a little concerned about the proliferation of
attributes this will create -- we currently have 26 different
-fsanitize=<foo> values, and presumably we will want attributes covering
all of them eventually. My counter-proposal is
__attribute__((no_sanitize("address"))), but it's sufficiently superficial
that I don't really care very much. I'm happy for this to go ahead either
way.

On Fri, Feb 22, 2013 at 5:29 AM, Chandler Carruth <chandlerc at gmail.com>wrote:

> FYI, Richard Smith had more strong feelings about the Clang attributes
> than I did. It was still in the vein of consolidating on a single
> predictable pattern, but I'll defer this patch to him to review in case he
> wants to tweak exactly what pattern that is. (I think he had more
> compelling arguments for using one attribute and 3 string literals, I leave
> that in his hands... =D)
>
>
> On Fri, Feb 22, 2013 at 5:03 AM, Kostya Serebryany <kcc at google.com> wrote:
>
>> Hi chandlerc, samsonov,
>>
>> These are two related changes (one in llvm, one in clang).
>> LLVM:
>>  -  rename address_safety => sanitize_address (the enum value is the
>> same, so we preserve binary compatibility with old bitcode)
>>  - rename thread_safety => sanitize_thread
>>  - rename no_uninitialized_checks -> sanitize_memory
>>
>> CLANG:
>>   - add __attribute__((no_sanitize_address)) as a synonym for
>> __attribute__((no_address_safety_analysis))
>>   - add __attribute__((no_sanitize_thread))
>>   - add __attribute__((no_sanitize_memory))
>>
>> for S in address thread memory
>>    If -fsanitize=S is present and __attribute__((no_sanitize_S)) is not
>>        set llvm attribute sanitize_S
>>
>> http://llvm-reviews.chandlerc.com/D449
>>
>> Files:
>>   test/CodeGenObjCXX/address-safety-attr.mm
>>   test/CodeGen/address-safety-attr.cpp
>>   test/CodeGen/sanitize-thread-attr.cpp
>>   test/SemaCXX/attr-no-sanitize-address.cpp
>>   test/SemaCXX/attr-no-sanitize-thread.cpp
>>   test/SemaCXX/attr-no-sanitize-memory.cpp
>>   include/clang/Basic/Attr.td
>>   docs/MemorySanitizer.rst
>>   docs/LanguageExtensions.rst
>>   docs/AddressSanitizer.rst
>>   docs/ThreadSanitizer.rst
>>   lib/CodeGen/CGDeclCXX.cpp
>>   lib/CodeGen/CodeGenModule.cpp
>>   lib/Sema/SemaDeclAttr.cpp
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130222/bed7189f/attachment.html>


More information about the cfe-commits mailing list