forked from OSchip/llvm-project
09667bc192
Summary: This fixes https://llvm.org/PR26673 "Wrong debugging information with -fsanitize=address" where asan instrumentation causes the prologue end to be computed incorrectly: findPrologueEndLoc, looks for the first instruction with a debug location to determine the prologue end. Since the asan instrumentation instructions had debug locations, that prologue end was at some instruction, where the stack frame is still being set up. There seems to be no good reason for extra debug locations for the asan instrumentations that set up the frame; they don't have a natural source location. In the debugger they are simply located at the start of the function. For certain other instrumentations like -fsanitize-coverage=trace-pc-guard the same problem persists - that might be more work to fix, since it looks like they rely on locations of the tracee functions. This partly reverts |
||
---|---|---|
.. | ||
X86 | ||
adaptive_global_redzones.ll | ||
asan-detect-invalid-pointer-pair.ll | ||
asan-masked-load-store.ll | ||
asan-vs-gvn.ll | ||
asan_address_space_attr.ll | ||
basic-msvc64.ll | ||
basic-myriad.ll | ||
basic.ll | ||
debug-info-alloca.ll | ||
debug-info-global-var.ll | ||
debug_info.ll | ||
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 | ||
dynamic-shadow-darwin.ll | ||
experiment-call.ll | ||
experiment.ll | ||
force-dynamic-shadow.ll | ||
freebsd.ll | ||
global_addrspace.ll | ||
global_cstring_darwin.ll | ||
global_lto_merge.ll | ||
global_metadata.ll | ||
global_metadata_array.ll | ||
global_metadata_bitcasts.ll | ||
global_metadata_darwin.ll | ||
global_metadata_external_comdat.ll | ||
global_metadata_windows.ll | ||
instrument-dynamic-allocas.ll | ||
instrument-no-return.ll | ||
instrument-stack.ll | ||
instrument_global.ll | ||
instrument_initializer_metadata.ll | ||
instrument_load_then_store.ll | ||
instrumentation-with-call-threshold.ll | ||
keep_going.ll | ||
lifetime-throw.ll | ||
lifetime-uar-uas.ll | ||
lifetime.ll | ||
local_alias.ll | ||
local_stack_base.ll | ||
localescape.ll | ||
no-globals.ll | ||
odr-check-ignore.ll | ||
ps4.ll | ||
scale-offset.ll | ||
stack-poisoning-and-lifetime-be.ll | ||
stack-poisoning-and-lifetime.ll | ||
stack-poisoning-byval-args.ll | ||
stack-poisoning.ll | ||
stack_dynamic_alloca.ll | ||
stack_layout.ll | ||
str-nobuiltin.ll | ||
test64.ll | ||
twice.ll | ||
ubsan.ll | ||
version-mismatch-check.ll | ||
win-sorted-sections.ll | ||
win-string-literal.ll | ||
with-ifunc.ll |