1ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines//===- PDBSymbolCompilandEnv.cpp - compiland env variables ------*- C++ -*-===//
2ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines//
3ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines//                     The LLVM Compiler Infrastructure
4ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines//
5ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// This file is distributed under the University of Illinois Open Source
6ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// License. See LICENSE.TXT for details.
7ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines//
8ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines//===----------------------------------------------------------------------===//
9ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines
10ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines#include "llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h"
11ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines
12ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines#include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
13ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines#include "llvm/DebugInfo/PDB/PDBSymbol.h"
14ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines#include "llvm/DebugInfo/PDB/PDBSymDumper.h"
15ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines
16ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines#include <utility>
17ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines
18ebe69fe11e48d322045d5949c83283927a0d790bStephen Hinesusing namespace llvm;
19de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainarusing namespace llvm::pdb;
20ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines
21ebe69fe11e48d322045d5949c83283927a0d790bStephen HinesPDBSymbolCompilandEnv::PDBSymbolCompilandEnv(
22ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
23ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    : PDBSymbol(PDBSession, std::move(Symbol)) {}
24ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines
25ebe69fe11e48d322045d5949c83283927a0d790bStephen Hinesstd::string PDBSymbolCompilandEnv::getValue() const {
26de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar  Variant Value = RawSymbol->getValue();
27de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar  if (Value.Type != PDB_VariantType::String)
28de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar    return std::string();
29de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar  return std::string(Value.Value.String);
30ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines}
31ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines
324c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainarvoid PDBSymbolCompilandEnv::dump(PDBSymDumper &Dumper) const {
334c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  Dumper.dump(*this);
34ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines}
35