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
asan-initialization-order-clang.patch
Description: Binary data
asan-initialization-order-llvm.patch
Description: Binary data
asan-initialization-order-compilerrt.patch
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
