From af5b6bb6a539f1d4cc3b0f0e10b3c3c9267bbfd1 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Wed, 15 Apr 2009 00:06:07 +0000 Subject: [PATCH] Add a method to check that the subprogram holds debug info for the given Function or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69113 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/DebugInfo.h | 4 ++++ lib/Analysis/DebugInfo.cpp | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/llvm/Analysis/DebugInfo.h b/include/llvm/Analysis/DebugInfo.h index c6f09283bd3..a8e124c6f09 100644 --- a/include/llvm/Analysis/DebugInfo.h +++ b/include/llvm/Analysis/DebugInfo.h @@ -309,6 +309,10 @@ namespace llvm { /// dump - print subprogram. void dump() const; + + /// describes - Return true if this subprogram provides debugging + /// information for the function F. + bool describes(const Function *F); }; /// DIGlobalVariable - This is a wrapper for a global variable. diff --git a/lib/Analysis/DebugInfo.cpp b/lib/Analysis/DebugInfo.cpp index 5a8e5cb90b2..7db9b2f3bc4 100644 --- a/lib/Analysis/DebugInfo.cpp +++ b/lib/Analysis/DebugInfo.cpp @@ -291,6 +291,19 @@ uint64_t DIDerivedType::getOriginalTypeSize() const { return BT.getSizeInBits(); } +/// describes - Return true if this subprogram provides debugging +/// information for the function F. +bool DISubprogram::describes(const Function *F) { + assert (F && "Invalid function"); + std::string Name; + getLinkageName(Name); + if (Name.empty()) + getName(Name); + if (!Name.empty() && (strcmp(Name.c_str(), F->getNameStart()) == false)) + return true; + return false; +} + //===----------------------------------------------------------------------===// // DIFactory: Basic Helpers //===----------------------------------------------------------------------===// -- 2.34.1