// Simple Descriptor Constructors and other Methods
//===----------------------------------------------------------------------===//
-unsigned DIArray::getNumElements() const {
- if (!DbgNode)
- return 0;
- return DbgNode->getNumOperands();
-}
-
/// replaceAllUsesWith - Replace all uses of the MDNode used by this
/// type with the one in the passed descriptor.
void DIType::replaceAllUsesWith(LLVMContext &VMContext, DIDescriptor D) {
#endif
/// \brief Set the array of member DITypes.
-void DICompositeType::setTypeArray(DIArray Elements, DIArray TParams) {
- assert((!TParams || DbgNode->getNumOperands() == 15) &&
- "If you're setting the template parameters this should include a slot "
- "for that!");
+void DICompositeType::setArraysHelper(MDNode *Elements, MDNode *TParams) {
TrackingVH<MDNode> N(*this);
if (Elements) {
#ifndef NDEBUG
if (DT.isCompositeType()) {
DICompositeType DCT(DT);
processType(DCT.getTypeDerivedFrom().resolve(TypeIdentifierMap));
- DIArray DA = DCT.getTypeArray();
+ DIArray DA = DCT.getElements();
for (unsigned i = 0, e = DA.getNumElements(); i != e; ++i) {
DIDescriptor D = DA.getElement(i);
if (D.isType())
void DICompositeType::printInternal(raw_ostream &OS) const {
DIType::printInternal(OS);
- DIArray A = getTypeArray();
+ DIArray A = getElements();
OS << " [" << A.getNumElements() << " elements]";
}