llvm-project/llvm/test/Instrumentation/AddressSanitizer
Adrian Prantl 3c6c14d14b ASAN: Provide reliable debug info for local variables at -O0.
The function stack poisioner conditionally stores local variables
either in an alloca or in malloc'ated memory, which has the
unfortunate side-effect, that the actual address of the variable is
only materialized when the variable is accessed, which means that
those variables are mostly invisible to the debugger even when
compiling without optimizations.

This patch stores the address of the local stack base into an alloca,
which can be referred to by the debug info and is available throughout
the function. This adds one extra pointer-sized alloca to each stack
frame (but mem2reg can optimize it away again when optimizations are
enabled, yielding roughly the same debug info quality as before in
optimized code).

rdar://problem/30433661

Differential Revision: https://reviews.llvm.org/D41034

llvm-svn: 320415
2017-12-11 20:43:21 +00:00
..
X86 [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
adaptive_global_redzones.ll [asan] Test ASan instrumentation for shadow scale value of 5 2017-11-17 01:15:31 +00:00
asan-masked-load-store.ll [ASan] Make ASan instrument variable-masked loads and stores 2017-01-06 15:24:51 +00:00
asan-vs-gvn.ll Update some code.google.com links 2017-11-13 23:47:58 +00:00
asan_address_space_attr.ll
basic-msvc64.ll
basic.ll ASAN: Provide reliable debug info for local variables at -O0. 2017-12-11 20:43:21 +00:00
debug-info-global-var.ll Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
debug_info.ll ASAN: Provide reliable debug info for local variables at -O0. 2017-12-11 20:43:21 +00:00
debug_info_noninstrumented_alloca.ll
debug_info_noninstrumented_alloca2.ll
do-not-instrument-globals-darwin.ll
do-not-instrument-globals-linux.ll
do-not-instrument-internal-globals.ll
do-not-instrument-profiling-globals.ll
do-not-instrument-promotable-allocas.ll
do-not-instrument-sanitizers.ll
do-not-touch-comdat-global.ll
do-not-touch-odr-global.ll
do-not-touch-threadlocal.ll
experiment-call.ll
experiment.ll
force-dynamic-shadow.ll Add -asan-force-dynamic-shadow test 2017-08-07 07:12:33 +00:00
freebsd.ll opt: Rename -default-data-layout flag to -data-layout and make it always override the layout. 2017-02-17 17:36:52 +00:00
global_cstring_darwin.ll
global_metadata.ll [asan] Test ASan instrumentation for shadow scale value of 5 2017-11-17 01:15:31 +00:00
global_metadata_array.ll [asan] Test ASan instrumentation for shadow scale value of 5 2017-11-17 01:15:31 +00:00
global_metadata_darwin.ll [asan] Fix dead stripping of globals on Linux. 2017-04-27 20:27:27 +00:00
global_metadata_windows.ll [asan] Upgrade private linkage globals to internal linkage on COFF 2017-10-31 16:16:08 +00:00
instrument-dynamic-allocas.ll
instrument-no-return.ll
instrument-stack.ll [asan] Test ASan instrumentation for shadow scale value of 5 2017-11-17 01:15:31 +00:00
instrument_global.ll [asan] Test ASan instrumentation for shadow scale value of 5 2017-11-17 01:15:31 +00:00
instrument_initializer_metadata.ll [asan] Test ASan instrumentation for shadow scale value of 5 2017-11-17 01:15:31 +00:00
instrument_load_then_store.ll [asan] Delay creation of asan ctor. 2017-04-06 19:55:09 +00:00
instrumentation-with-call-threshold.ll
keep_going.ll
lifetime-throw.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
lifetime-uar-uas.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
lifetime.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
local_alias.ll
local_stack_base.ll ASAN: Provide reliable debug info for local variables at -O0. 2017-12-11 20:43:21 +00:00
localescape.ll
no-globals.ll [asan] Fix dead stripping of globals on Linux. 2017-04-27 20:27:27 +00:00
ps4.ll [AddressSanitizer] Add PS4 offset 2017-02-23 17:10:28 +00:00
scale-offset.ll
stack-poisoning-and-lifetime-be.ll [PowerPC][asan] Update asan to handle changed memory layouts in newer kernels 2017-12-07 22:53:33 +00:00
stack-poisoning-and-lifetime.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
stack-poisoning-byval-args.ll [asan] Test ASan instrumentation for shadow scale value of 5 2017-11-17 01:15:31 +00:00
stack-poisoning.ll
stack_dynamic_alloca.ll [asan] Test ASan instrumentation for shadow scale value of 5 2017-11-17 01:15:31 +00:00
stack_layout.ll ASAN: Provide reliable debug info for local variables at -O0. 2017-12-11 20:43:21 +00:00
str-nobuiltin.ll
test64.ll [asan] Test ASan instrumentation for shadow scale value of 5 2017-11-17 01:15:31 +00:00
twice.ll
ubsan.ll
with-ifunc.ll [asan] Use dynamic shadow on 32-bit Android, try 2. 2017-11-20 17:41:57 +00:00