forked from OSchip/llvm-project
parent
71b42f2d40
commit
b1bff47718
|
@ -471,8 +471,24 @@ namespace llvm {
|
||||||
const std::string &getDirectory(std::string &D) const {
|
const std::string &getDirectory(std::string &D) const {
|
||||||
return getContext().getDirectory(D);
|
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
|
/// DIFactory - This object assists with the construction of the various
|
||||||
|
@ -575,6 +591,10 @@ namespace llvm {
|
||||||
/// with the specified parent context.
|
/// with the specified parent context.
|
||||||
DILexicalBlock CreateLexicalBlock(DIDescriptor 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,
|
/// InsertStopPoint - Create a new llvm.dbg.stoppoint intrinsic invocation,
|
||||||
/// inserting it at the end of the specified basic block.
|
/// inserting it at the end of the specified basic block.
|
||||||
void InsertStopPoint(DICompileUnit CU, unsigned LineNo, unsigned ColNo,
|
void InsertStopPoint(DICompileUnit CU, unsigned LineNo, unsigned ColNo,
|
||||||
|
|
|
@ -791,6 +791,18 @@ DILexicalBlock DIFactory::CreateLexicalBlock(DIDescriptor Context) {
|
||||||
return DILexicalBlock(MDNode::get(VMContext, &Elts[0], 2));
|
return DILexicalBlock(MDNode::get(VMContext, &Elts[0], 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// CreateLocation - Creates a debug info location.
|
||||||
|
DILocation DIFactory::CreateLocation(unsigned LineNo, unsigned ColumnNo,
|
||||||
|
DIScope S, DILocation OrigLoc) {
|
||||||
|
Value *Elts[] = {
|
||||||
|
ConstantInt::get(Type::getInt32Ty(VMContext), LineNo),
|
||||||
|
ConstantInt::get(Type::getInt32Ty(VMContext), ColumnNo),
|
||||||
|
S.getNode(),
|
||||||
|
OrigLoc.getNode(),
|
||||||
|
};
|
||||||
|
return DILocation(MDNode::get(VMContext, &Elts[0], 4));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// DIFactory: Routines for inserting code into a function
|
// DIFactory: Routines for inserting code into a function
|
||||||
|
|
Loading…
Reference in New Issue