llvm-capstone/clang
Evgeniy Stepanov c5e7f56249 ARM MTE stack sanitizer.
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
2019-07-15 20:02:23 +00:00
..
bindings [clang][Tooling] Infer target and mode from argv[0] when using JSONCompilationDatabase 2019-06-26 07:39:03 +00:00
cmake [CMake][Fuchsia] Define asan+noexcept multilib 2019-07-13 08:07:10 +00:00
docs Update __VERSION__ to remove the hardcoded 4.2.1 version 2019-07-15 17:47:22 +00:00
examples cmake: Add CLANG_LINK_CLANG_DYLIB option 2019-07-03 22:45:55 +00:00
include ARM MTE stack sanitizer. 2019-07-15 20:02:23 +00:00
INPUTS
lib ARM MTE stack sanitizer. 2019-07-15 20:02:23 +00:00
runtime [GWP-ASan] Mutex implementation [2]. 2019-05-30 19:45:32 +00:00
test ARM MTE stack sanitizer. 2019-07-15 20:02:23 +00:00
tools Revert [clang-shlib] Fix clang-shlib for PRIVATE dependencies 2019-07-12 17:23:35 +00:00
unittests [ASTImporter] Using Lang_CXX14 in ASTImporterVisibilityTest. 2019-07-15 12:16:30 +00:00
utils Template-related improvements to Visual Studio visualizers 2019-07-13 15:27:53 +00:00
www Retire VS2015 Support 2019-07-09 10:12:37 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt Rename libclang_shared to libclang-cpp 2019-07-11 21:42:55 +00:00
CODE_OWNERS.TXT
INSTALL.txt
LICENSE.TXT
ModuleInfo.txt
NOTES.txt
README.txt [NFC] Test commit 2019-06-12 07:50:48 +00:00

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source-level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:             http://clang.llvm.org/
Building and using Clang:         http://clang.llvm.org/get_started.html
Clang Static Analyzer:            http://clang-analyzer.llvm.org/
Information on the LLVM project:  http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/