Fixed a problem where the DWARF for inline functions was mis-parsed.
authorSean Callanan <scallanan@apple.com>
Tue, 23 Feb 2016 00:51:52 +0000 (00:51 +0000)
committerSean Callanan <scallanan@apple.com>
Tue, 23 Feb 2016 00:51:52 +0000 (00:51 +0000)
commit99cb0224000ece85afb25a596356e70ab0434e3b
tree11f0dce3ae743c791eccc782c53cddfd255c4a50
parent4fdf974e3e6f59e29f98452ed9febc05136ac5be
Fixed a problem where the DWARF for inline functions was mis-parsed.

Inline functions in DWARF have AT_abstract_origin set, but we only handled that
if the functions were C++ methods.  Inline functions -- C or C++ -- have this
also, and as a result they got one FunctionDecl for each inlined instance.  When
going to construct the locals, this meant that the arguments (which did properly
have their abstract origins handled) would get associated with the master
FunctionDecl, and the inlined FunctionDecls would all appear to have no locals.

This manifested as not being able to look up local variables when stopped in an
inline fuunction.  We should have had a test for this, but somewhere along the
line the relevant test case lost its .py file (or it never had one).

This patch fixes this problem and restores the .py file.

<rdar://problem/24712434>

llvm-svn: 261598
lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp