[TSan] Report proper error on allocator failures instead of CHECK(0)-ing
authorAlex Shlyapnikov <alekseys@google.com>
Mon, 18 Jun 2018 20:03:31 +0000 (20:03 +0000)
committerAlex Shlyapnikov <alekseys@google.com>
Mon, 18 Jun 2018 20:03:31 +0000 (20:03 +0000)
commitc75d47b52d10e68a55594802ca4fd58dad1c363e
tree08ac84c30d32869c7b885bc2ddf0da1478d511bb
parent80274b1ce74d3c415798e7bba81439ba33693f1a
[TSan] Report proper error on allocator failures instead of CHECK(0)-ing

Summary:
Following up on and complementing D44404 and other sanitizer allocators.

Currently many allocator specific errors (OOM, for example) are reported as
a text message and CHECK(0) termination, no stack, no details, not too
helpful nor informative. To improve the situation, detailed and structured
common errors were defined and reported under the appropriate conditions.

Common tests were generalized a bit to cover a slightly different TSan
stack reporting format, extended to verify errno value and returned
pointer value check is now explicit to facilitate debugging.

Reviewers: dvyukov

Subscribers: srhines, kubamracek, delcypher, #sanitizers, llvm-commits

Differential Revision: https://reviews.llvm.org/D48087

llvm-svn: 334975
compiler-rt/lib/tsan/rtl/tsan_mman.cc
compiler-rt/lib/tsan/rtl/tsan_new_delete.cc
compiler-rt/lib/tsan/rtl/tsan_rtl.h
compiler-rt/lib/tsan/rtl/tsan_stack_trace.cc
compiler-rt/lib/tsan/rtl/tsan_stack_trace.h
compiler-rt/lib/tsan/tests/unit/tsan_mman_test.cc
compiler-rt/test/sanitizer_common/TestCases/Linux/aligned_alloc-alignment.cc
compiler-rt/test/sanitizer_common/TestCases/Linux/pvalloc-overflow.cc
compiler-rt/test/sanitizer_common/TestCases/Posix/posix_memalign-alignment.cc
compiler-rt/test/sanitizer_common/TestCases/allocator_returns_null.cc
compiler-rt/test/tsan/allocator_returns_null.cc [deleted file]