From cf0d94f4624603fbd817960fab3547b40ff7562b Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Mon, 6 Apr 2015 22:07:46 +0000 Subject: [PATCH] DebugInfo: Drop confusing forwarding API from DILexicalBlockFile Remove `DILexicalBlockFile::getScope()` (whose last use was removed from clang in r234245), which illegally returned a `DILexicalBlock` despite its scope sometimes being an `MDSubprogram`. Also remove the `getLineNumber()` and `getColumnNumber()` methods that just forwarded to `DILexicalBlock`'s versions, since there don't seem to be any callers. Note that the block of code removed from `DebugInfo.cpp` was actually dead code, since `isLexicalBlock()` (the previous branch) always returns true when `isLexicalBlockFile()` returns true. An earlier (broken and untested) version of this was squashed into r234222 and reverted in r234225. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234246 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/IR/DebugInfo.h | 13 ++++--------- lib/IR/DebugInfo.cpp | 3 --- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/include/llvm/IR/DebugInfo.h b/include/llvm/IR/DebugInfo.h index c2040587633..f851be737df 100644 --- a/include/llvm/IR/DebugInfo.h +++ b/include/llvm/IR/DebugInfo.h @@ -745,10 +745,7 @@ public: return *get(); } - DIScope getContext() const { return getScope(); } - unsigned getLineNumber() const { return getScope().getLineNumber(); } - unsigned getColumnNumber() const { return getScope().getColumnNumber(); } - DILexicalBlock getScope() const { return DILexicalBlock(get()->getScope()); } + DIScope getContext() const { return get()->getScope(); } unsigned getDiscriminator() const { return get()->getDiscriminator(); } }; @@ -1050,11 +1047,9 @@ public: // Since discriminators are associated with lexical blocks, make // sure this location is a lexical block before retrieving its // value. - return getScope().isLexicalBlockFile() - ? DILexicalBlockFile( - cast(cast(DbgNode)->getScope())) - .getDiscriminator() - : 0; + if (auto *F = dyn_cast(get()->getScope())) + return F->getDiscriminator(); + return 0; } /// \brief Generate a new discriminator value for this location. diff --git a/lib/IR/DebugInfo.cpp b/lib/IR/DebugInfo.cpp index 1ad9dcae3ad..8ae2bcb8485 100644 --- a/lib/IR/DebugInfo.cpp +++ b/lib/IR/DebugInfo.cpp @@ -498,9 +498,6 @@ void DebugInfoFinder::processScope(DIScope Scope) { if (Scope.isLexicalBlock()) { DILexicalBlock LB(Scope); processScope(LB.getContext()); - } else if (Scope.isLexicalBlockFile()) { - DILexicalBlockFile LBF = DILexicalBlockFile(Scope); - processScope(LBF.getScope()); } else if (Scope.isNameSpace()) { DINameSpace NS(Scope); processScope(NS.getContext());