From 8a6a4f5d031875716e06bf7339708874e97d915b Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Tue, 1 Sep 2009 01:14:15 +0000 Subject: Introduce DILocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80648 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/DebugInfo.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'include/llvm/Analysis') diff --git a/include/llvm/Analysis/DebugInfo.h b/include/llvm/Analysis/DebugInfo.h index f4783c0..7c6b421 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(3); } + DILocation getOrigLocation() const { return getFieldAs(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, -- cgit v1.1