aprantl added a comment. Just one final question: Why is replaceArrays() necessary? We need it for DICompositeType because composite types may be recursive. Is that also the case for DIMacroNodeArray? http://reviews.llvm.org/D16077