Use-after-return sanitizer binary metadata
authorDmitry Vyukov <dvyukov@google.com>
Mon, 17 Oct 2022 13:13:56 +0000 (15:13 +0200)
committerDmitry Vyukov <dvyukov@google.com>
Wed, 30 Nov 2022 08:14:19 +0000 (09:14 +0100)
commite6aea4a5db09c845276ece92737a6aac97794100
treefc315a0ac0331a0ad3630782b14e4e50b1d6beb5
parent851176c7f760ca27ef6aff4ab0b6491afd7b0304
Use-after-return sanitizer binary metadata

Currently per-function metadata consists of:
(start-pc, size, features)

This adds a new UAR feature and if it's set an additional element:
(start-pc, size, features, stack-args-size)

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D136078
20 files changed:
clang/include/clang/Basic/CodeGenOptions.def
clang/include/clang/Basic/CodeGenOptions.h
clang/include/clang/Driver/Options.td
clang/lib/CodeGen/BackendUtil.cpp
clang/lib/Driver/SanitizerArgs.cpp
llvm/include/llvm/CodeGen/CodeGenPassBuilder.h
llvm/include/llvm/CodeGen/MachinePassRegistry.def
llvm/include/llvm/CodeGen/Passes.h
llvm/include/llvm/InitializePasses.h
llvm/include/llvm/Transforms/Instrumentation.h
llvm/include/llvm/Transforms/Instrumentation/SanitizerBinaryMetadata.h
llvm/lib/CodeGen/CMakeLists.txt
llvm/lib/CodeGen/CodeGen.cpp
llvm/lib/CodeGen/SanitizerBinaryMetadata.cpp [new file with mode: 0644]
llvm/lib/CodeGen/TargetPassConfig.cpp
llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp
llvm/test/Instrumentation/SanitizerBinaryMetadata/common.h [new file with mode: 0644]
llvm/test/Instrumentation/SanitizerBinaryMetadata/covered.cpp [new file with mode: 0644]
llvm/test/Instrumentation/SanitizerBinaryMetadata/lit.local.cfg [new file with mode: 0644]
llvm/test/Instrumentation/SanitizerBinaryMetadata/uar.cpp [new file with mode: 0644]