diff options
Diffstat (limited to 'include/llvm/Analysis/DebugInfo.h')
-rw-r--r-- | include/llvm/Analysis/DebugInfo.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/include/llvm/Analysis/DebugInfo.h b/include/llvm/Analysis/DebugInfo.h index f4783c022a..7c6b421ca3 100644 --- a/include/llvm/Analysis/DebugInfo.h +++ b/include/llvm/Analysis/DebugInfo.h @@ -471,8 +471,24 @@ namespace llvm { const std::string &getDirectory(std::string &D) const { return getContext().getDirectory(D); } + }; + /// DILocation - This object holds location information. This object + /// is not associated with any DWARF tag. + class DILocation : public DIDescriptor { + public: + explicit DILocation(MDNode *L) { DbgNode = L; } + unsigned getLineNumber() const { return getUnsignedField(0); } + unsigned getColumnNumber() const { return getUnsignedField(1); } + DIScope getScope() const { return getFieldAs<DIScope>(3); } + DILocation getOrigLocation() const { return getFieldAs<DILocation>(4); } + std::string getFilename(std::string &F) const { + return getScope().getFilename(F); + } + std::string getDirectory(std::string &D) const { + return getScope().getDirectory(D); + } }; /// DIFactory - This object assists with the construction of the various @@ -575,6 +591,10 @@ namespace llvm { /// with the specified parent context. DILexicalBlock CreateLexicalBlock(DIDescriptor Context); + /// CreateLocation - Creates a debug info location. + DILocation CreateLocation(unsigned LineNo, unsigned ColumnNo, + DIScope S, DILocation OrigLoc); + /// InsertStopPoint - Create a new llvm.dbg.stoppoint intrinsic invocation, /// inserting it at the end of the specified basic block. void InsertStopPoint(DICompileUnit CU, unsigned LineNo, unsigned ColNo, |