1061da546Spatrick //===-- PDBLocationToDWARFExpression.h --------------------------*- C++ -*-===// 2061da546Spatrick // 3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information. 5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6061da546Spatrick // 7061da546Spatrick //===----------------------------------------------------------------------===// 8061da546Spatrick 9*dda28197Spatrick #ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_PDB_PDBLOCATIONTODWARFEXPRESSION_H 10*dda28197Spatrick #define LLDB_SOURCE_PLUGINS_SYMBOLFILE_PDB_PDBLOCATIONTODWARFEXPRESSION_H 11061da546Spatrick 12061da546Spatrick #include "lldb/Core/Module.h" 13061da546Spatrick #include "lldb/Symbol/Variable.h" 14061da546Spatrick 15061da546Spatrick namespace lldb_private { 16061da546Spatrick class DWARFExpression; 17061da546Spatrick } 18061da546Spatrick 19061da546Spatrick namespace llvm { 20061da546Spatrick namespace pdb { 21061da546Spatrick class PDBSymbolData; 22061da546Spatrick } 23061da546Spatrick } // namespace llvm 24061da546Spatrick 25061da546Spatrick /// Converts a location information from a PDB symbol to a DWARF expression 26061da546Spatrick /// 27061da546Spatrick /// \param[in] module 28061da546Spatrick /// The module \a symbol belongs to. 29061da546Spatrick /// 30061da546Spatrick /// \param[in] symbol 31061da546Spatrick /// The symbol with a location information to convert. 32061da546Spatrick /// 33061da546Spatrick /// \param[in] ranges 34061da546Spatrick /// Ranges where this variable is valid. 35061da546Spatrick /// 36061da546Spatrick /// \param[out] is_constant 37061da546Spatrick /// Set to \b true if the result expression is a constant value data, 38061da546Spatrick /// and \b false if it is a DWARF bytecode. 39061da546Spatrick /// 40061da546Spatrick /// \return 41061da546Spatrick /// The DWARF expression corresponding to the location data of \a symbol. 42061da546Spatrick lldb_private::DWARFExpression 43061da546Spatrick ConvertPDBLocationToDWARFExpression(lldb::ModuleSP module, 44061da546Spatrick const llvm::pdb::PDBSymbolData &symbol, 45061da546Spatrick const lldb_private::Variable::RangeList &ranges, 46061da546Spatrick bool &is_constant); 47061da546Spatrick #endif 48