forked from OSchip/llvm-project
c299d1981d
When the hardware and operating system support the ARM Memory Tagging Extension, tag primary allocation granules with a random tag. The granules either side of the allocation are tagged with tag 0, which is normally excluded from the set of tags that may be selected randomly. Memory is also retagged with a random tag when it is freed, and we opportunistically reuse the new tag when the block is reused to reduce overhead. This causes linear buffer overflows to be caught deterministically and non-linear buffer overflows and use-after-free to be caught probabilistically. This feature is currently only enabled for the Android allocator and depends on an experimental Linux kernel branch available here: https://github.com/pcc/linux/tree/android-experimental-mte All code that depends on the kernel branch is hidden behind a macro, ANDROID_EXPERIMENTAL_MTE. This is the same macro that is used by the Android platform and may only be defined in non-production configurations. When the userspace interface is finalized the code will be updated to use the stable interface and all #ifdef ANDROID_EXPERIMENTAL_MTE will be removed. Differential Revision: https://reviews.llvm.org/D70762 |
||
---|---|---|
.. | ||
cmake | ||
docs | ||
include | ||
lib | ||
test | ||
tools | ||
unittests | ||
utils | ||
www | ||
.arcconfig | ||
.gitignore | ||
CMakeLists.txt | ||
CODE_OWNERS.TXT | ||
CREDITS.TXT | ||
LICENSE.TXT | ||
README.txt |
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. ================================