From: LLVM Packaging Team Date: Thu, 19 Mar 2020 08:50:20 +0000 (+0000) Subject: Make ordering of OPENCL_EXTENSION_TYPES reproducible X-Git-Tag: archive/raspbian/1%8.0.1-9+rpi1^2~34 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=ded9e41dc78a62cf5630fb4d711e9ed185bab220;p=llvm-toolchain-8.git Make ordering of OPENCL_EXTENSION_TYPES reproducible Author: Rebecca N. Palmer Bug-Debian: https://bugs.debian.org/877359 Forwarded: no Gbp-Pq: Name reproducible-pch.diff --- diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index 37adcb706..9124ab4af 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -4279,9 +4279,13 @@ void ASTWriter::WriteOpenCLExtensionTypes(Sema &SemaRef) { return; RecordData Record; + // Sort to allow reproducible .pch files - https://bugs.debian.org/877359 + std::map> sortedOpenCLTypeExtMap; for (const auto &I : SemaRef.OpenCLTypeExtMap) { - Record.push_back( - static_cast(getTypeID(I.first->getCanonicalTypeInternal()))); + sortedOpenCLTypeExtMap[getTypeID(I.first->getCanonicalTypeInternal())]=I.second; + } + for (const auto &I : sortedOpenCLTypeExtMap) { + Record.push_back(static_cast(I.first)); Record.push_back(I.second.size()); for (auto Ext : I.second) AddString(Ext, Record); @@ -4294,8 +4298,12 @@ void ASTWriter::WriteOpenCLExtensionDecls(Sema &SemaRef) { return; RecordData Record; + std::map> sortedOpenCLDeclExtMap; for (const auto &I : SemaRef.OpenCLDeclExtMap) { - Record.push_back(getDeclID(I.first)); + sortedOpenCLDeclExtMap[getDeclID(I.first)]=I.second; + } + for (const auto &I : sortedOpenCLDeclExtMap) { + Record.push_back(I.first); Record.push_back(static_cast(I.second.size())); for (auto Ext : I.second) AddString(Ext, Record);