aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorJeremy Morse <jeremy.morse@sony.com>2022-04-27 09:40:31 +0100
committerJeremy Morse <jeremy.morse@sony.com>2022-04-27 09:54:50 +0100
commita15b66e76d1ecff625a4bbb4a46ff83a43138f49 (patch)
tree9fa88d232504a616028cea89f22b35449d3383d4 /flang/lib/Frontend/CompilerInvocation.cpp
parent4a8c13a6f42e9c58af64421790509cc58208859b (diff)
downloadllvm-a15b66e76d1ecff625a4bbb4a46ff83a43138f49.zip
llvm-a15b66e76d1ecff625a4bbb4a46ff83a43138f49.tar.gz
llvm-a15b66e76d1ecff625a4bbb4a46ff83a43138f49.tar.bz2
[DebugInfo][InstrRef] Describe value sizes when spilt to stack
InstrRefBasedLDV can track and describe variable values that are spilt to the stack -- however it does not current describe the size of the value on the stack. This can cause uninitialized bytes to be read from the stack if a small register is spilt for a larger variable, or theoretically on big-endian machines if a large value on the stack is used for a small variable. Fix this by using DW_OP_deref_size to specify the amount of data to load from the stack, if there's any possibility for ambiguity. There are a few scenarios where this can be omitted (such as when using DW_OP_piece and a non-DW_OP_stack_value location), see deref-spills-with-size.mir for an explicit table of inputs flavours and output expressions. Differential Revision: https://reviews.llvm.org/D123599
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions