mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-25 16:24:23 +00:00
Make getDISubprogram(const Function *F) available in LLVM
Reviewed at http://reviews.llvm.org/D5950 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220536 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -912,6 +912,24 @@ DISubprogram llvm::getDISubprogram(const MDNode *Scope) {
|
||||
return DISubprogram();
|
||||
}
|
||||
|
||||
DISubprogram llvm::getDISubprogram(const Function *F) {
|
||||
// We look for the first instr that has a debug annotation leading back to F.
|
||||
const LLVMContext &Ctx = F->getParent()->getContext();
|
||||
for (auto &BB : *F) {
|
||||
for (auto &Inst : BB.getInstList()) {
|
||||
DebugLoc DLoc = Inst.getDebugLoc();
|
||||
if (DLoc.isUnknown())
|
||||
continue;
|
||||
const MDNode *Scope = DLoc.getScopeNode(Ctx);
|
||||
DISubprogram Subprogram = getDISubprogram(Scope);
|
||||
if (Subprogram.describes(F))
|
||||
return Subprogram;
|
||||
}
|
||||
}
|
||||
|
||||
return DISubprogram();
|
||||
}
|
||||
|
||||
DICompositeType llvm::getDICompositeType(DIType T) {
|
||||
if (T.isCompositeType())
|
||||
return DICompositeType(T);
|
||||
|
Reference in New Issue
Block a user