blob: 9c7f0b1be56f461490fcee1d74fd3cd26f04425a [file] [log] [blame]
Zachary Turner0e9e6632015-02-06 20:30:52 +00001//===- PDBSymbolCompilandEnv.cpp - compiland env variables ------*- 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
Zachary Turner52c9f882015-02-14 03:53:56 +000010#include "llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h"
11
Zachary Turner0e9e6632015-02-06 20:30:52 +000012#include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
13#include "llvm/DebugInfo/PDB/PDBSymbol.h"
Zachary Turner9a818ad2015-02-22 22:03:38 +000014#include "llvm/DebugInfo/PDB/PDBSymDumper.h"
Zachary Turner52c9f882015-02-14 03:53:56 +000015
Chandler Carruth71f308a2015-02-13 09:09:03 +000016#include <utility>
Zachary Turner0e9e6632015-02-06 20:30:52 +000017
18using namespace llvm;
Zachary Turnerec28fc32016-05-04 20:32:13 +000019using namespace llvm::pdb;
Zachary Turner0e9e6632015-02-06 20:30:52 +000020
Zachary Turner21473f72015-02-08 00:29:29 +000021PDBSymbolCompilandEnv::PDBSymbolCompilandEnv(
Zachary Turner98571ed2015-02-08 22:53:53 +000022 const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
Zachary Turnerbae16b32015-02-08 20:58:09 +000023 : PDBSymbol(PDBSession, std::move(Symbol)) {}
Zachary Turner21473f72015-02-08 00:29:29 +000024
Zachary Turner0e9e6632015-02-06 20:30:52 +000025std::string PDBSymbolCompilandEnv::getValue() const {
Zachary Turnerec28fc32016-05-04 20:32:13 +000026 Variant Value = RawSymbol->getValue();
27 if (Value.Type != PDB_VariantType::String)
28 return std::string();
29 return std::string(Value.Value.String);
Zachary Turner0e9e6632015-02-06 20:30:52 +000030}
Zachary Turner21473f72015-02-08 00:29:29 +000031
Zachary Turnerb52d08d2015-03-01 06:51:29 +000032void PDBSymbolCompilandEnv::dump(PDBSymDumper &Dumper) const {
33 Dumper.dump(*this);
Zachary Turner9a818ad2015-02-22 22:03:38 +000034}