1 //===-- PDBLocationToDWARFExpression.h --------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef lldb_Plugins_SymbolFile_PDB_PDBLocationToDWARFExpression_h_
11 #define lldb_Plugins_SymbolFile_PDB_PDBLocationToDWARFExpression_h_
12 
13 #include "lldb/Core/Module.h"
14 
15 namespace lldb_private {
16 class DWARFExpression;
17 }
18 
19 namespace llvm {
20 namespace pdb {
21 class PDBSymbolData;
22 }
23 } // namespace llvm
24 
25 //------------------------------------------------------------------------------
26 /// Converts a location information from a PDB symbol to a DWARF expression
27 ///
28 /// @param[in] module
29 ///     The module \a symbol belongs to.
30 ///
31 /// @param[in] symbol
32 ///     The symbol with a location information to convert.
33 ///
34 /// @param[out] is_constant
35 ///     Set to \b true if the result expression is a constant value data,
36 ///     and \b false if it is a DWARF bytecode.
37 ///
38 /// @return
39 ///     The DWARF expression corresponding to the location data of \a symbol.
40 //------------------------------------------------------------------------------
41 lldb_private::DWARFExpression
42 ConvertPDBLocationToDWARFExpression(lldb::ModuleSP module,
43                                     const llvm::pdb::PDBSymbolData &symbol,
44                                     bool &is_constant);
45 #endif
46