[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/llvm-commits/attachments/20130222/bed7189f/attachment.html>
More information about the llvm-commits
mailing list