blob: 37b80dfccb845d3986aed102c2b79e1a07750c23 [file] [log] [blame]
Jonas Devlieghere924d5602018-07-13 10:29:27 +00001//===-- 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
15namespace lldb_private {
16class DWARFExpression;
17}
18
19namespace llvm {
20namespace pdb {
21class 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//------------------------------------------------------------------------------
41lldb_private::DWARFExpression
42ConvertPDBLocationToDWARFExpression(lldb::ModuleSP module,
43 const llvm::pdb::PDBSymbolData &symbol,
44 bool &is_constant);
45#endif