[Sanitizer] Fix report_path functionality:
authorAlexey Samsonov <vonosmas@gmail.com>
Thu, 11 Dec 2014 18:30:25 +0000 (18:30 +0000)
committerAlexey Samsonov <vonosmas@gmail.com>
Thu, 11 Dec 2014 18:30:25 +0000 (18:30 +0000)
commit3a41ed15743a1a6bd7d0bcc3ed627dcba692c05c
treebbc563bbc69ac8db1ddd235f01baa43f21fd446d
parentbf3d4465289f605b0cfd1b31749845de4aaee837
[Sanitizer] Fix report_path functionality:

Summary:
  - Make sure mmap() is never called inside RawWrite function.
  - Wrap a bunch of standalone globals in a ReportFile object.
  - Make sure accesses to these globals are thread-safe.
  - Fix report_path functionality on Windows, where
    __sanitizer_set_report_path() would break program.

I've started this yak shaving in order to make
"CommonFlags::mmap_limit_mb" immutable. Currently we drop this flag
to zero before printing an error message.

Test Plan: regression test suite

Reviewers: kcc, glider

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D6595

llvm-svn: 224031
compiler-rt/lib/sanitizer_common/sanitizer_common.cc
compiler-rt/lib/sanitizer_common/sanitizer_common.h
compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc
compiler-rt/lib/sanitizer_common/sanitizer_posix.cc
compiler-rt/lib/sanitizer_common/sanitizer_win.cc