1*061da546Spatrick //===-- PDBLocationToDWARFExpression.h --------------------------*- C++ -*-===// 2*061da546Spatrick // 3*061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*061da546Spatrick // See https://llvm.org/LICENSE.txt for license information. 5*061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*061da546Spatrick // 7*061da546Spatrick //===----------------------------------------------------------------------===// 8*061da546Spatrick 9*061da546Spatrick #ifndef lldb_Plugins_SymbolFile_PDB_PDBLocationToDWARFExpression_h_ 10*061da546Spatrick #define lldb_Plugins_SymbolFile_PDB_PDBLocationToDWARFExpression_h_ 11*061da546Spatrick 12*061da546Spatrick #include "lldb/Core/Module.h" 13*061da546Spatrick #include "lldb/Symbol/Variable.h" 14*061da546Spatrick 15*061da546Spatrick namespace lldb_private { 16*061da546Spatrick class DWARFExpression; 17*061da546Spatrick } 18*061da546Spatrick 19*061da546Spatrick namespace llvm { 20*061da546Spatrick namespace pdb { 21*061da546Spatrick class PDBSymbolData; 22*061da546Spatrick } 23*061da546Spatrick } // namespace llvm 24*061da546Spatrick 25*061da546Spatrick /// Converts a location information from a PDB symbol to a DWARF expression 26*061da546Spatrick /// 27*061da546Spatrick /// \param[in] module 28*061da546Spatrick /// The module \a symbol belongs to. 29*061da546Spatrick /// 30*061da546Spatrick /// \param[in] symbol 31*061da546Spatrick /// The symbol with a location information to convert. 32*061da546Spatrick /// 33*061da546Spatrick /// \param[in] ranges 34*061da546Spatrick /// Ranges where this variable is valid. 35*061da546Spatrick /// 36*061da546Spatrick /// \param[out] is_constant 37*061da546Spatrick /// Set to \b true if the result expression is a constant value data, 38*061da546Spatrick /// and \b false if it is a DWARF bytecode. 39*061da546Spatrick /// 40*061da546Spatrick /// \return 41*061da546Spatrick /// The DWARF expression corresponding to the location data of \a symbol. 42*061da546Spatrick lldb_private::DWARFExpression 43*061da546Spatrick ConvertPDBLocationToDWARFExpression(lldb::ModuleSP module, 44*061da546Spatrick const llvm::pdb::PDBSymbolData &symbol, 45*061da546Spatrick const lldb_private::Variable::RangeList &ranges, 46*061da546Spatrick bool &is_constant); 47*061da546Spatrick #endif 48