[DebugInfoPDB] Add source / line number accessors for PDB.

This patch adds a variety of different methods to query source
and line number information from PDB files.

llvm-svn: 261239
diff --git a/llvm/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp b/llvm/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp
index 7436914..8393b5c 100644
--- a/llvm/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp
+++ b/llvm/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp
@@ -8,6 +8,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/DebugInfo/PDB/PDBSymbolCompiland.h"
+#include "llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h"
 
 #include "llvm/DebugInfo/PDB/PDBSymDumper.h"
 
@@ -22,3 +23,21 @@
 void PDBSymbolCompiland::dump(PDBSymDumper &Dumper) const {
   Dumper.dump(*this);
 }
+
+std::string PDBSymbolCompiland::getSourceFileName() const
+{
+    std::string Result = RawSymbol->getSourceFileName();
+    if (!Result.empty())
+        return Result;
+    auto Envs = findAllChildren<PDBSymbolCompilandEnv>();
+    if (!Envs)
+        return std::string();
+    while (auto Env = Envs->getNext()) {
+        std::string Var = Env->getName();
+        if (Var != "src")
+            continue;
+        std::string Value = Env->getValue();
+        return Value;
+    }
+    return std::string();
+}