diff options
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
| -rw-r--r-- | llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | 12 | 
1 files changed, 7 insertions, 5 deletions
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp index d16b5c7..9c21cc6 100644 --- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -336,8 +336,7 @@ private:                      unsigned Abbrev);    void writeDIMacroFile(const DIMacroFile *N, SmallVectorImpl<uint64_t> &Record,                          unsigned Abbrev); -  void writeDIArgList(const DIArgList *N, SmallVectorImpl<uint64_t> &Record, -                      unsigned Abbrev); +  void writeDIArgList(const DIArgList *N, SmallVectorImpl<uint64_t> &Record);    void writeDIModule(const DIModule *N, SmallVectorImpl<uint64_t> &Record,                       unsigned Abbrev);    void writeDIAssignID(const DIAssignID *N, SmallVectorImpl<uint64_t> &Record, @@ -1975,13 +1974,12 @@ void ModuleBitcodeWriter::writeDIMacroFile(const DIMacroFile *N,  }  void ModuleBitcodeWriter::writeDIArgList(const DIArgList *N, -                                         SmallVectorImpl<uint64_t> &Record, -                                         unsigned Abbrev) { +                                         SmallVectorImpl<uint64_t> &Record) {    Record.reserve(N->getArgs().size());    for (ValueAsMetadata *MD : N->getArgs())      Record.push_back(VE.getMetadataID(MD)); -  Stream.EmitRecord(bitc::METADATA_ARG_LIST, Record, Abbrev); +  Stream.EmitRecord(bitc::METADATA_ARG_LIST, Record);    Record.clear();  } @@ -2264,6 +2262,10 @@ void ModuleBitcodeWriter::writeMetadataRecords(  #include "llvm/IR/Metadata.def"        }      } +    if (auto *AL = dyn_cast<DIArgList>(MD)) { +      writeDIArgList(AL, Record); +      continue; +    }      writeValueAsMetadata(cast<ValueAsMetadata>(MD), Record);    }  }  | 
