llvm-project/compiler-rt
Reid Kleckner ad04914a53 [Windows] Fix UnmapOrDie and MmapAlignedOrDie
Now ASan can return virtual memory to the underlying OS. Portable
sanitizer runtime code needs to be aware that UnmapOrDie cannot unmap
part of previous mapping.

In particular, this required changing how we implement MmapAlignedOrDie
on Windows, which is what Allocator32 uses.

The new code first attempts to allocate memory of the given size, and if
it is appropriately aligned, returns early. If not, it frees the memory
and attempts to reserve size + alignment bytes. In this region there
must be an aligned address. We then free the oversized mapping and
request a new mapping at the aligned address immediately after. However,
a thread could allocate that virtual address in between our free and
allocation, so we have to retry if that allocation fails. The existing
thread creation stress test managed to trigger this condition, so the
code isn't totally untested.

Reviewers: samsonov

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

llvm-svn: 263160
2016-03-10 20:47:26 +00:00
..
cmake [cmake] Address Samsonov's post-commit review of r262723 2016-03-05 10:01:04 +00:00
include [libFuzzer] extend the weak memcmp/strcmp/strncmp interceptors to receive the result of the computations. With that, don't do any mutations if memcmp/etc returned 0 2016-01-12 00:43:42 +00:00
lib [Windows] Fix UnmapOrDie and MmapAlignedOrDie 2016-03-10 20:47:26 +00:00
make [PGO] Add API for profile merge from buffer 2016-03-03 18:54:46 +00:00
test [Windows] Fix UnmapOrDie and MmapAlignedOrDie 2016-03-10 20:47:26 +00:00
unittests [CMake] Push the dependency on AddLLVM into the test and unites layers 2016-02-17 16:38:54 +00:00
www Update references to new lists.llvm.org mailing lists. 2015-08-05 03:58:00 +00:00
.arcconfig Update arc config to new domain. 2014-04-07 10:22:41 +00:00
.gitignore Add vim swap files to .gitignore 2014-03-20 19:44:33 +00:00
CMakeLists.txt [CMake] Fix a really simple, silly bug from r261797 2016-02-24 22:42:47 +00:00
CODE_OWNERS.TXT Add myself as a c-rt owner of ASan/Win 2014-02-27 12:07:43 +00:00
CREDITS.TXT Add Guan-Hong Liu. 2014-06-16 08:38:19 +00:00
LICENSE.TXT Update copyright year to 2015. 2015-03-12 19:53:06 +00:00
Makefile Revert r196490 and fix include paths in makefile-based build 2013-12-05 10:40:11 +00:00
README.txt Moved the builtins documentation to lib/builtins/ 2014-05-28 23:09:45 +00:00

README.txt

Compiler-RT
================================

This directory and its subdirectories contain source code for the compiler
support routines.

Compiler-RT is open source software. You may freely distribute it under the
terms of the license agreement found in LICENSE.txt.

================================