llvm-project/lldb/source/Core
Adrian Prantl 9b23df63ec Implement DW_OP_convert
This patch adds basic support for DW_OP_convert[1] for integer
types. Recent versions of LLVM's optimizer may insert this opcode into
DWARF expressions. DW_OP_convert is effectively a type cast operation
that takes a reference to a base type DIE (or zero) and then casts the
value at the top of the DWARF stack to that type. Internally this
works by changing the bit size of the APInt that is used as backing
storage for LLDB's DWARF stack.

I managed to write a unit test for this by implementing a mock YAML
object file / module that takes debug info sections in yaml2obj
format.

[1] Typed DWARF stack. http://www.dwarfstd.org/ShowIssue.php?issue=140425.1

<rdar://problem/48167864>

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

llvm-svn: 371532
2019-09-10 16:17:38 +00:00
..
Address.cpp Remove SymbolVendor::GetSymtab 2019-08-05 09:21:47 +00:00
AddressRange.cpp Include inlined functions when figuring out a contiguous address range 2019-05-06 20:01:21 +00:00
AddressResolver.cpp [NFC] Remove ASCII lines from comments 2019-04-10 20:48:55 +00:00
AddressResolverFileLine.cpp [Logging] Replace Log::Printf with LLDB_LOG macro (NFC) 2019-07-24 17:56:10 +00:00
AddressResolverName.cpp [lldb] D66174 `RegularExpression` cleanup 2019-08-20 09:24:20 +00:00
CMakeLists.txt [lldb] Qualify includes of Properties[Enum].inc files. NFC 2019-07-29 17:22:10 +00:00
Communication.cpp [Logging] Replace Log::Printf with LLDB_LOG macro (NFC) 2019-07-24 17:56:10 +00:00
CoreProperties.td [lldb] Qualify includes of Properties[Enum].inc files. NFC 2019-07-29 17:22:10 +00:00
Debugger.cpp [lldb] Limit the amount of zeroes we use for padding when printing small floats 2019-09-04 11:41:23 +00:00
Disassembler.cpp [Disassembler] Simplify a few methods (2/2) (NFC) 2019-09-04 23:05:32 +00:00
DumpDataExtractor.cpp [Core] Remove use of ClangASTContext in DumpDataExtractor 2019-09-06 21:05:21 +00:00
DumpRegisterValue.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DynamicLoader.cpp [NFC] Remove ASCII lines from comments 2019-04-10 20:48:55 +00:00
EmulateInstruction.cpp Fix a "memset clearing an object of non-trivial type" warning in EmulateInstruction 2019-03-19 15:05:55 +00:00
FileLineResolver.cpp [NFC] Remove ASCII lines from comments 2019-04-10 20:48:55 +00:00
FileSpecList.cpp [NFC] Remove ASCII lines from comments 2019-04-10 20:48:55 +00:00
FormatEntity.cpp [lldb][NFC] Remove WordComplete mode, make result array indexed from 0 and remove any undocumented/redundant return values 2019-08-22 07:41:23 +00:00
Highlighter.cpp [NFC] Remove lldb_utility namespace. 2019-08-21 00:50:46 +00:00
IOHandler.cpp [lldb][NFC] NFC cleanup for the completion code 2019-08-22 09:02:54 +00:00
Mangled.cpp [Logging] Replace Log::Printf with LLDB_LOG macro (NFC) 2019-07-24 17:56:10 +00:00
Module.cpp Upstream macCatalyst support in debugserver and the macOS dynamic loader 2019-09-04 17:23:15 +00:00
ModuleChild.cpp Delete unnecessary copy ctors/copy assignment operators 2019-05-15 11:23:54 +00:00
ModuleList.cpp [lldb] Qualify includes of Properties[Enum].inc files. NFC 2019-07-29 17:22:10 +00:00
Opcode.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PluginManager.cpp Extend FindTypes with CompilerContext to allow filtering by language. 2019-08-22 21:45:58 +00:00
RichManglingContext.cpp [NFC] Remove ASCII lines from comments 2019-04-10 20:48:55 +00:00
SearchFilter.cpp SymbolVendor: Remove passthrough methods 2019-08-06 09:12:42 +00:00
Section.cpp Implement DW_OP_convert 2019-09-10 16:17:38 +00:00
SourceManager.cpp [lldb] NFC modernize codebase with modernize-use-nullptr 2019-05-23 11:14:47 +00:00
StreamAsynchronousIO.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
StreamFile.cpp [NFC] Remove ASCII lines from comments 2019-04-10 20:48:55 +00:00
UserSettingsController.cpp Pass ConstString by value (NFC) 2019-03-06 21:22:25 +00:00
Value.cpp Remove unused and undocumented data_offset parameter (NFC) 2019-08-08 19:22:32 +00:00
ValueObject.cpp [NFC] Remove lldb_utility namespace. 2019-08-21 00:50:46 +00:00
ValueObjectCast.cpp Remove unused and undocumented data_offset parameter (NFC) 2019-08-08 19:22:32 +00:00
ValueObjectChild.cpp Remove unused and undocumented data_offset parameter (NFC) 2019-08-08 19:22:32 +00:00
ValueObjectConstResult.cpp Remove unused and undocumented data_offset parameter (NFC) 2019-08-08 19:22:32 +00:00
ValueObjectConstResultCast.cpp Pass ConstString by value (NFC) 2019-03-06 21:22:25 +00:00
ValueObjectConstResultChild.cpp Pass ConstString by value (NFC) 2019-03-06 21:22:25 +00:00
ValueObjectConstResultImpl.cpp [lldb] NFC modernize codebase with modernize-use-nullptr 2019-05-23 11:14:47 +00:00
ValueObjectDynamicValue.cpp Remove unused and undocumented data_offset parameter (NFC) 2019-08-08 19:22:32 +00:00
ValueObjectList.cpp Delete unnecessary copy ctors/copy assignment operators 2019-05-15 11:23:54 +00:00
ValueObjectMemory.cpp Remove unused and undocumented data_offset parameter (NFC) 2019-08-08 19:22:32 +00:00
ValueObjectRegister.cpp [Symbol] Use llvm::Expected when getting TypeSystems 2019-07-30 22:12:34 +00:00
ValueObjectSyntheticFilter.cpp [LLDB] Migrate llvm::make_unique to std::make_unique 2019-08-14 22:19:23 +00:00
ValueObjectVariable.cpp Remove unused and undocumented data_offset parameter (NFC) 2019-08-08 19:22:32 +00:00