Index: llvm/include/llvm/IR/DIBuilder.h =================================================================== --- llvm/include/llvm/IR/DIBuilder.h +++ llvm/include/llvm/IR/DIBuilder.h @@ -494,8 +494,14 @@ /// \param AlignInBits Alignment. /// \param Ty Element type. /// \param Subscripts Subscripts. + /// \param DataLocation Where to find the raw data of a Fortran array + /// \param Associated Where to find the associated attribute of a Fortran array. + /// \param Allocated Where to find the allocated attribute of a Fortran array. DICompositeType *createArrayType(uint64_t Size, uint32_t AlignInBits, - DIType *Ty, DINodeArray Subscripts); + DIType *Ty, DINodeArray Subscripts, + Metadata *DataLocation = nullptr, + Metadata *Associated = nullptr, + Metadata *Allocated = nullptr); /// Create debugging information entry for a vector type. /// \param Size Array size. Index: llvm/lib/IR/DIBuilder.cpp =================================================================== --- llvm/lib/IR/DIBuilder.cpp +++ llvm/lib/IR/DIBuilder.cpp @@ -527,10 +527,15 @@ DICompositeType *DIBuilder::createArrayType(uint64_t Size, uint32_t AlignInBits, DIType *Ty, - DINodeArray Subscripts) { + DINodeArray Subscripts, + Metadata *DataLocation, + Metadata *Associated, + Metadata *Allocated) { auto *R = DICompositeType::get(VMContext, dwarf::DW_TAG_array_type, "", nullptr, 0, nullptr, Ty, Size, AlignInBits, 0, - DINode::FlagZero, Subscripts, 0, nullptr); + DINode::FlagZero, Subscripts, 0, nullptr, + nullptr, "", nullptr, DataLocation, + Associated, Allocated); trackIfUnresolved(R); return R; }