diff options
author | Jason Molenda <jmolenda@apple.com> | 2013-01-19 03:53:42 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 2013-01-19 03:53:42 +0000 |
commit | 4c781fd78a6477cb648ddff5f81cee9decf04950 (patch) | |
tree | 384e46ab1514645ca68a776b13b7d44a8055ffe5 /clang/lib/Frontend/CreateInvocationFromCommandLine.cpp | |
parent | 1ac67d153033293a5e524e0dfb2e91ca4fa3c3e8 (diff) | |
download | llvm-4c781fd78a6477cb648ddff5f81cee9decf04950.zip llvm-4c781fd78a6477cb648ddff5f81cee9decf04950.tar.gz llvm-4c781fd78a6477cb648ddff5f81cee9decf04950.tar.bz2 |
<rdar://problem/12350715>
Modify UnwindLLDB::SearchForSavedLocationForRegister so if the register
save locations for a register mid-stack is in another register (or in the
same register, indicating the reg wasn't modified in this frame), don't
return that as a found location. Keep iterating down the array of frames
until a concrete location/value for the register is found, or until we
get to frame 0 where the reg value can be used as-is.
If lldb was trying to backtrace a program that blew out its stack via
recursion and the unwind instructions had some kind of
this-reg-is-saved-in-that-reg instruction, lldb would revert to doing
a recursive search for a concrete value and blow out its own stack.
llvm-svn: 172887
Diffstat (limited to 'clang/lib/Frontend/CreateInvocationFromCommandLine.cpp')
0 files changed, 0 insertions, 0 deletions