aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Analysis/DebugInfo.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/include/llvm/Analysis/DebugInfo.h b/include/llvm/Analysis/DebugInfo.h
index 30cc099283..f4783c022a 100644
--- a/include/llvm/Analysis/DebugInfo.h
+++ b/include/llvm/Analysis/DebugInfo.h
@@ -128,6 +128,14 @@ namespace llvm {
if (DbgNode && !isScope())
DbgNode = 0;
}
+
+ virtual const std::string &getFilename(std::string &F) const {
+ return F;
+ }
+
+ virtual const std::string &getDirectory(std::string &D) const {
+ return D;
+ }
};
/// DICompileUnit - A wrapper for a compile unit.
@@ -382,6 +390,13 @@ namespace llvm {
unsigned isLocalToUnit() const { return getUnsignedField(9); }
unsigned isDefinition() const { return getUnsignedField(10); }
+ const std::string &getFilename(std::string &F) const {
+ return getCompileUnit().getFilename(F);
+ }
+ const std::string &getDirectory(std::string &F) const {
+ return getCompileUnit().getDirectory(F);
+ }
+
/// Verify - Verify that a subprogram descriptor is well formed.
bool Verify() const;
@@ -448,7 +463,16 @@ namespace llvm {
if (DbgNode && !isLexicalBlock())
DbgNode = 0;
}
- DIDescriptor getContext() const { return getDescriptorField(1); }
+ DIScope getContext() const { return getFieldAs<DIScope>(1); }
+
+ const std::string &getFilename(std::string &F) const {
+ return getContext().getFilename(F);
+ }
+ const std::string &getDirectory(std::string &D) const {
+ return getContext().getDirectory(D);
+ }
+
+
};
/// DIFactory - This object assists with the construction of the various