diff options
author | Devang Patel <dpatel@apple.com> | 2010-10-28 19:50:08 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2010-10-28 19:50:08 +0000 |
commit | bc2bb9bbd0610bc43f08be6678431148898591aa (patch) | |
tree | f5c6a2b134ffb552fc10ad53505997cfaa8fefbb | |
parent | 42d3a345754b216dec927252f136f1ae715710b2 (diff) |
Do not work too hard to find type's file info. There is a special field to record file info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117588 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Analysis/DebugInfo.h | 10 | ||||
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 4 |
2 files changed, 10 insertions, 4 deletions
diff --git a/include/llvm/Analysis/DebugInfo.h b/include/llvm/Analysis/DebugInfo.h index ad824dd7fe..41d8e14aae 100644 --- a/include/llvm/Analysis/DebugInfo.h +++ b/include/llvm/Analysis/DebugInfo.h @@ -271,8 +271,14 @@ namespace llvm { bool isValid() const { return DbgNode && (isBasicType() || isDerivedType() || isCompositeType()); } - StringRef getFilename() const { return getCompileUnit().getFilename();} - StringRef getDirectory() const { return getCompileUnit().getDirectory();} + StringRef getDirectory() const { + DIFile F = getFieldAs<DIFile>(3); + return F.getDirectory(); + } + StringRef getFilename() const { + DIFile F = getFieldAs<DIFile>(3); + return F.getFilename(); + } /// replaceAllUsesWith - Replace all uses of debug info referenced by /// this descriptor. diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index b9c7d7a33e..55c2e24eb9 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -568,8 +568,8 @@ void DwarfDebug::addSourceLine(DIE *Die, DIType Ty) { unsigned Line = Ty.getLineNumber(); if (Line == 0 || !Ty.getContext().Verify()) return; - unsigned FileID = GetOrCreateSourceID(Ty.getContext().getDirectory(), - Ty.getContext().getFilename()); + unsigned FileID = GetOrCreateSourceID(Ty.getDirectory(), + Ty.getFilename()); assert(FileID && "Invalid file id"); addUInt(Die, dwarf::DW_AT_decl_file, 0, FileID); addUInt(Die, dwarf::DW_AT_decl_line, 0, Line); |