DebugInfo: Move an assertion into MDCompositeTypeBase
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 14 Apr 2015 00:57:50 +0000 (00:57 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 14 Apr 2015 00:57:50 +0000 (00:57 +0000)
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
include/llvm/IR/DebugInfoMetadata.h

index 6fcf1ee65cd3943b7e6585e571ed61ef2109a680..d467b5abe0ea20e15c39c9492d22c33b59226f0e 100644 (file)
@@ -350,10 +350,7 @@ public:
   MDCompositeTypeBase *operator->() const { return get(); }
   MDCompositeTypeBase &operator*() const { return *get(); }
 
-  DIArray getElements() const {
-    assert(!isa<MDSubroutineType>(*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(); }
index 48fc8bbb951dd5a22116842e74fe30c5653a36f9..9e6117c9521440808eb42c30e903082e71c5b2d1 100644 (file)
@@ -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<MDSubroutineType>(this) && "no elements for DISubroutineType");
     return cast_or_null<MDTuple>(getRawElements());
   }
   MDTypeRef getVTableHolder() const { return MDTypeRef(getRawVTableHolder()); }