rust/src/rustllvm
Tomasz Miąsko 08a1c566a7 Detect use-after-scope bugs with AddressSanitizer
Enable use-after-scope checks by default when using AddressSanitizer.
They allow to detect incorrect use of stack objects after their scope
have already ended. The detection is based on LLVM lifetime intrinsics.

To facilitate the use of this functionality, the lifetime intrinsics are
now emitted regardless of optimization level if enabled sanitizer makes
use of them.
2020-01-27 16:56:25 +01:00
..
.editorconfig
ArchiveWrapper.cpp Handle removal of llvm::make_unique() 2020-01-07 21:28:22 +01:00
Linker.cpp Handle removal of llvm::make_unique() 2020-01-07 21:28:22 +01:00
PassWrapper.cpp Detect use-after-scope bugs with AddressSanitizer 2020-01-27 16:56:25 +01:00
README
rustllvm.h
RustWrapper.cpp Switch to using MaybeAlign APIs 2020-01-07 21:28:22 +01:00

This directory currently contains some LLVM support code. This will generally
be sent upstream to LLVM in time; for now it lives here.

NOTE: the LLVM C++ ABI is subject to between-version breakage and must *never*
be exposed to Rust. To allow for easy auditing of that, all Rust-exposed types
must be typedef-ed as "LLVMXyz", or "LLVMRustXyz" if they were defined here.

Functions that return a failure status and leave the error in
the LLVM last error should return an LLVMRustResult rather than an
int or anything to avoid confusion.

When translating enums, add a single `Other` variant as the first
one to allow for new variants to be added. It should abort when used
as an input.

All other types must not be typedef-ed as such.