summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2014-04-18 21:36:39 +0000
committerAlexey Samsonov <samsonov@google.com>2014-04-18 21:36:39 +0000
commit08ef0202ce1b2324cccafba3d640cc8a9b859dd0 (patch)
tree0139a3b5dfc177e1c5949e2fa285603c89c00a89 /tools
parent037da24c10511f857cf2790905d9378184c3a355 (diff)
downloadllvm-08ef0202ce1b2324cccafba3d640cc8a9b859dd0.tar.gz
llvm-08ef0202ce1b2324cccafba3d640cc8a9b859dd0.tar.bz2
llvm-08ef0202ce1b2324cccafba3d640cc8a9b859dd0.tar.xz
[DWARF parser] Turn DILineInfo into a struct.
Immutable DILineInfo doesn't bring any benefits and complicates code. Also, use std::string instead of SmallString<16> for file and function names - their length can vary significantly. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206654 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r--tools/llvm-dwarfdump/llvm-dwarfdump.cpp6
-rw-r--r--tools/llvm-objdump/MachODump.cpp6
-rw-r--r--tools/llvm-rtdyld/llvm-rtdyld.cpp3
-rw-r--r--tools/llvm-symbolizer/LLVMSymbolize.cpp18
4 files changed, 11 insertions, 22 deletions
diff --git a/tools/llvm-dwarfdump/llvm-dwarfdump.cpp b/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
index f4a9ae8bef..e41ae25168 100644
--- a/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
+++ b/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
@@ -80,10 +80,8 @@ DumpType("debug-dump", cl::init(DIDT_All),
static void PrintDILineInfo(DILineInfo dli) {
if (PrintFunctions)
- outs() << (dli.getFunctionName() ? dli.getFunctionName() : "<unknown>")
- << "\n";
- outs() << (dli.getFileName() ? dli.getFileName() : "<unknown>") << ':'
- << dli.getLine() << ':' << dli.getColumn() << '\n';
+ outs() << dli.FunctionName << "\n";
+ outs() << dli.FileName << ':' << dli.Line << ':' << dli.Column << '\n';
}
static void DumpInput(const StringRef &Filename) {
diff --git a/tools/llvm-objdump/MachODump.cpp b/tools/llvm-objdump/MachODump.cpp
index b6b851f6d4..376948e382 100644
--- a/tools/llvm-objdump/MachODump.cpp
+++ b/tools/llvm-objdump/MachODump.cpp
@@ -421,9 +421,9 @@ static void DisassembleInputMachO2(StringRef Filename,
DILineInfo dli =
diContext->getLineInfoForAddress(SectAddress + Index);
// Print valid line info if it changed.
- if (dli != lastLine && dli.getLine() != 0)
- outs() << "\t## " << dli.getFileName() << ':'
- << dli.getLine() << ':' << dli.getColumn();
+ if (dli != lastLine && dli.Line != 0)
+ outs() << "\t## " << dli.FileName << ':' << dli.Line << ':'
+ << dli.Column;
lastLine = dli;
}
outs() << "\n";
diff --git a/tools/llvm-rtdyld/llvm-rtdyld.cpp b/tools/llvm-rtdyld/llvm-rtdyld.cpp
index ac43653d58..5e3c488c7b 100644
--- a/tools/llvm-rtdyld/llvm-rtdyld.cpp
+++ b/tools/llvm-rtdyld/llvm-rtdyld.cpp
@@ -172,8 +172,7 @@ static int printLineInfoForInput() {
DILineInfoTable::iterator End = Lines.end();
for (DILineInfoTable::iterator It = Begin; It != End; ++It) {
outs() << " Line info @ " << It->first - Addr << ": "
- << It->second.getFileName()
- << ", line:" << It->second.getLine() << "\n";
+ << It->second.FileName << ", line:" << It->second.Line << "\n";
}
}
}
diff --git a/tools/llvm-symbolizer/LLVMSymbolize.cpp b/tools/llvm-symbolizer/LLVMSymbolize.cpp
index 13f2f8fc58..7ffb1a13c5 100644
--- a/tools/llvm-symbolizer/LLVMSymbolize.cpp
+++ b/tools/llvm-symbolizer/LLVMSymbolize.cpp
@@ -44,13 +44,6 @@ getDILineInfoSpecifierFlags(const LLVMSymbolizer::Options &Opts) {
return Flags;
}
-static void patchFunctionNameInDILineInfo(const std::string &NewFunctionName,
- DILineInfo &LineInfo) {
- std::string FileName = LineInfo.getFileName();
- LineInfo = DILineInfo(StringRef(FileName), StringRef(NewFunctionName),
- LineInfo.getLine(), LineInfo.getColumn());
-}
-
ModuleInfo::ModuleInfo(ObjectFile *Obj, DIContext *DICtx)
: Module(Obj), DebugInfoContext(DICtx) {
for (const SymbolRef &Symbol : Module->symbols()) {
@@ -130,7 +123,7 @@ DILineInfo ModuleInfo::symbolizeCode(
uint64_t Start, Size;
if (getNameFromSymbolTable(SymbolRef::ST_Function, ModuleOffset,
FunctionName, Start, Size)) {
- patchFunctionNameInDILineInfo(FunctionName, LineInfo);
+ LineInfo.FunctionName = FunctionName;
}
}
return LineInfo;
@@ -157,7 +150,7 @@ DIInliningInfo ModuleInfo::symbolizeInlinedCode(
uint64_t Start, Size;
if (getNameFromSymbolTable(SymbolRef::ST_Function, ModuleOffset,
FunctionName, Start, Size)) {
- patchFunctionNameInDILineInfo(FunctionName, LineInfo);
+ LineInfo.FunctionName = FunctionName;
}
}
PatchedInlinedContext.addFrame(LineInfo);
@@ -408,18 +401,17 @@ std::string LLVMSymbolizer::printDILineInfo(DILineInfo LineInfo) const {
static const std::string kDILineInfoBadString = "<invalid>";
std::stringstream Result;
if (Opts.PrintFunctions) {
- std::string FunctionName = LineInfo.getFunctionName();
+ std::string FunctionName = LineInfo.FunctionName;
if (FunctionName == kDILineInfoBadString)
FunctionName = kBadString;
else if (Opts.Demangle)
FunctionName = DemangleName(FunctionName);
Result << FunctionName << "\n";
}
- std::string Filename = LineInfo.getFileName();
+ std::string Filename = LineInfo.FileName;
if (Filename == kDILineInfoBadString)
Filename = kBadString;
- Result << Filename << ":" << LineInfo.getLine() << ":" << LineInfo.getColumn()
- << "\n";
+ Result << Filename << ":" << LineInfo.Line << ":" << LineInfo.Column << "\n";
return Result.str();
}