OSDN Git Service

Add getDirectory() and getFilename() interface to DIScope.
authorDevang Patel <dpatel@apple.com>
Tue, 1 Sep 2009 00:53:21 +0000 (00:53 +0000)
committerDevang Patel <dpatel@apple.com>
Tue, 1 Sep 2009 00:53:21 +0000 (00:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80647 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/DebugInfo.h

index 30cc099..f4783c0 100644 (file)
@@ -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