From d48d32bba960d249d8f1784d5649f7b18d357244 Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Tue, 14 Apr 2015 00:57:50 +0000 Subject: [PATCH] DebugInfo: Move an assertion into MDCompositeTypeBase In the name of gutting the `DIDescriptor` hierarchy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234829 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/IR/DebugInfo.h | 5 +---- include/llvm/IR/DebugInfoMetadata.h | 6 ++++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/include/llvm/IR/DebugInfo.h b/include/llvm/IR/DebugInfo.h index 6fcf1ee65cd..d467b5abe0e 100644 --- a/include/llvm/IR/DebugInfo.h +++ b/include/llvm/IR/DebugInfo.h @@ -350,10 +350,7 @@ public: MDCompositeTypeBase *operator->() const { return get(); } MDCompositeTypeBase &operator*() const { return *get(); } - DIArray getElements() const { - assert(!isa(*this) && "no elements for DISubroutineType"); - return DIArray(get()->getElements()); - } + DIArray getElements() const { return get()->getElements(); } unsigned getRunTimeLang() const { return get()->getRuntimeLang(); } DITypeRef getContainingType() const { return get()->getVTableHolder(); } diff --git a/include/llvm/IR/DebugInfoMetadata.h b/include/llvm/IR/DebugInfoMetadata.h index 48fc8bbb951..9e6117c9521 100644 --- a/include/llvm/IR/DebugInfoMetadata.h +++ b/include/llvm/IR/DebugInfoMetadata.h @@ -786,7 +786,13 @@ protected: ~MDCompositeTypeBase() = default; public: + /// \brief Get the elements of the composite type. + /// + /// \note Calling this is only valid for \a MDCompositeType. This assertion + /// can be removed once \a MDSubroutineType has been separated from + /// "composite types". DebugNodeArray getElements() const { + assert(!isa(this) && "no elements for DISubroutineType"); return cast_or_null(getRawElements()); } MDTypeRef getVTableHolder() const { return MDTypeRef(getRawVTableHolder()); } -- 2.11.0