forked from OSchip/llvm-project
c5e7f56249
Add "memtag" sanitizer that detects and mitigates stack memory issues using armv8.5 Memory Tagging Extension. It is similar in principle to HWASan, which is a software implementation of the same idea, but there are enough differencies to warrant a new sanitizer type IMHO. It is also expected to have very different performance properties. The new sanitizer does not have a runtime library (it may grow one later, along with a "debugging" mode). Similar to SafeStack and StackProtector, the instrumentation pass (in a follow up change) will be inserted in all cases, but will only affect functions marked with the new sanitize_memtag attribute. Reviewers: pcc, hctim, vitalybuka, ostannard Subscribers: srhines, mehdi_amini, javed.absar, kristof.beyls, hiraditya, cryptoad, steven_wu, dexonsmith, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D64169 llvm-svn: 366123 |
||
---|---|---|
.. | ||
Inputs | ||
11-27-2007-FloatLiterals.c | ||
aligned-allocation.cpp | ||
asm-preproc-no-unicode.s | ||
badstring_in_if0.c | ||
bcpl-escaped-newline.c | ||
block_cmt_end.c | ||
builtin_redef.c | ||
c90.c | ||
case-insensitive-include-ms.c | ||
case-insensitive-include-pr31836.sh | ||
case-insensitive-include.c | ||
case-insensitive-system-include.c | ||
char-escapes.c | ||
char-literal-encoding-error.c | ||
char-literal.cpp | ||
char8_t.cpp | ||
comment-escape.c | ||
conflict-marker.c | ||
constants.c | ||
coroutines.cpp | ||
counter.c | ||
cross-windows-on-linux-default.cpp | ||
cross-windows-on-linux.cpp | ||
cxx-features.cpp | ||
cxx0x_keyword_as_cxx98.cpp | ||
cxx0x_raw_string_delim_length.cpp | ||
cxx0x_raw_string_directives.cpp | ||
cxx0x_raw_string_unterminated.cpp | ||
cxx1y_binary_literal.cpp | ||
cxx1y_digit_separators.cpp | ||
cxx1z-trigraphs.cpp | ||
cxx2a-spaceship.cpp | ||
cxx2a_keyword_as_cxx17.cpp | ||
digraph.c | ||
dollar-idents.c | ||
eof-char.c | ||
eof-conflict-marker.c | ||
eof-file.c | ||
eof-include.c | ||
eof-number.c | ||
eof-string.c | ||
escape_newline.c | ||
gnu-flags.c | ||
half-literal.cpp | ||
has_attribute_objc_boxable.m | ||
has_extension.c | ||
has_extension_cxx.cpp | ||
has_feature_address_sanitizer.cpp | ||
has_feature_boxed_nsvalue_expressions.m | ||
has_feature_c1x.c | ||
has_feature_cxx0x.cpp | ||
has_feature_exceptions.cpp | ||
has_feature_memory_sanitizer.cpp | ||
has_feature_memtag_sanitizer.cpp | ||
has_feature_modules.m | ||
has_feature_objc_arc.m | ||
has_feature_rtti.cpp | ||
has_feature_thread_sanitizer.cpp | ||
has_feature_type_traits.cpp | ||
has_feature_undefined_behavior_sanitizer.cpp | ||
has_feature_xray_instrument.cpp | ||
header.cpp | ||
hexfloat.cpp | ||
keywords_test.c | ||
keywords_test.cpp | ||
long-long.cpp | ||
minimize_source_to_dependency_directives_at_import_extra_tokens.m | ||
minimize_source_to_dependency_directives_at_import_missing_semi.m | ||
minimize_source_to_dependency_directives_invalid_macro_name.c | ||
modules-ts.cpp | ||
ms-compatibility.c | ||
ms-extensions.c | ||
ms-extensions.cpp | ||
msdos-cpm-eof.c | ||
multiple-include.c | ||
newline-eof-c++98-compat.cpp | ||
newline-eof.c | ||
newline-nul.c | ||
null-character-in-literal.c | ||
numeric-literal-trash.c | ||
objc_macros.m | ||
opencl-half-literal.cl | ||
pragma-mark.c | ||
pragma-message.c | ||
pragma-message2.c | ||
pragma-operators.cpp | ||
pragma-region.c | ||
preamble.c | ||
preamble2.c | ||
rdar-8914293.c | ||
rdr-6096838-2.c | ||
rdr-6096838.c | ||
string-literal-encoding.c | ||
string-literal-errors.cpp | ||
string_concat.cpp | ||
token-concat.c | ||
token-concat.cpp | ||
unicode-strings.c | ||
unicode.c | ||
unknown-char.c | ||
utf-16.c | ||
utf-16.c.txt | ||
utf8-char-literal.cpp | ||
utf8-invalid.c | ||
warn-date-time.c | ||
warn_binary_literals.cpp | ||
wchar-signedness.c | ||
wchar.c |