I've incorporated all the review comments in the attached patches.
The tool is off by default, and enabled by adding -mllvm
-asan-initialization-order to clang.

I don't have commit access, so I'd appreciate it if someone could
commit these for me.

All the best,
Reid

On Thu, Aug 16, 2012 at 6:09 PM, Reid Watson <[email protected]> wrote:
> I'll add in the prefix before the final version for commit.
>
> The goal is to detect globals with dynamic initialization per the C++
> standard, so that ASan knows which globals can only be accessed during
> .  It's valid to access a statically initialized global inside of an
> initializer, even if that global resides in a different TU.  Thus,
> LLVM/ASan need to be able to distinguish between
> dynamically/statically initialized globals.  I'm not certain this is
> optimal, but there haven't been any unexpected false positives with
> it.  We may be missing a few case, and the optimizer can certainly end
> up leaving us with false negatives, but those are much better than
> false positives.
>
> On Thu, Aug 16, 2012 at 5:27 PM, Eric Christopher <[email protected]> wrote:
>>
>>
>> On Aug 16, 2012, at 1:05 AM, Kostya Serebryany <[email protected]> wrote:
>>
>>> +llvm-commits
>>>
>>> Reid,
>>>
>>> The LLVM and compiler-rt patches look good.
>>> Please fix the remaining small issues (see my code review comments) and 
>>> commit.
>>> Hold on with the output tests for a bit since Alexey Samsonov is migrating 
>>> them to cmake (please coordinate with him and commit as a separate patch).
>>>
>>> The stress test should contain X files, Y linker initialized globals and Z 
>>> dynamically initialized globals.
>>> Such test only makes sense where all 3 numbers are large.
>>> I guess you can commit a single .sh script into compiler-rt/lib/asan/scripts
>>
>> The metadata should at least be prefixed with something like 
>> llvm.asan.<whatever> instead of just the name. That way it's more 
>> identifiable.
>>
>> What's the idea behind the metadata use anyhow?
>>
>> -eric

Attachment: asan-initialization-order-clang.patch
Description: Binary data

Attachment: asan-initialization-order-llvm.patch
Description: Binary data

Attachment: asan-initialization-order-compilerrt.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to