Author: rsmith Date: Mon Mar 21 17:33:02 2016 New Revision: 263996 URL: http://llvm.org/viewvc/llvm-project?rev=263996&view=rev Log: [modules] Store mangling numbers in a deterministic order so they don't cause the resulting .pcm files to be nondeterministic.
Modified: cfe/trunk/include/clang/AST/ASTContext.h cfe/trunk/lib/AST/ASTContext.cpp Modified: cfe/trunk/include/clang/AST/ASTContext.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/ASTContext.h?rev=263996&r1=263995&r2=263996&view=diff ============================================================================== --- cfe/trunk/include/clang/AST/ASTContext.h (original) +++ cfe/trunk/include/clang/AST/ASTContext.h Mon Mar 21 17:33:02 2016 @@ -36,6 +36,7 @@ #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/FoldingSet.h" #include "llvm/ADT/IntrusiveRefCntPtr.h" +#include "llvm/ADT/MapVector.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/TinyPtrVector.h" #include "llvm/Support/Allocator.h" @@ -393,8 +394,8 @@ private: /// \brief Side-table of mangling numbers for declarations which rarely /// need them (like static local vars). - llvm::DenseMap<const NamedDecl *, unsigned> MangleNumbers; - llvm::DenseMap<const VarDecl *, unsigned> StaticLocalNumbers; + llvm::MapVector<const NamedDecl *, unsigned> MangleNumbers; + llvm::MapVector<const VarDecl *, unsigned> StaticLocalNumbers; /// \brief Mapping that stores parameterIndex values for ParmVarDecls when /// that value exceeds the bitfield size of ParmVarDeclBits.ParameterIndex. Modified: cfe/trunk/lib/AST/ASTContext.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTContext.cpp?rev=263996&r1=263995&r2=263996&view=diff ============================================================================== --- cfe/trunk/lib/AST/ASTContext.cpp (original) +++ cfe/trunk/lib/AST/ASTContext.cpp Mon Mar 21 17:33:02 2016 @@ -8684,8 +8684,7 @@ void ASTContext::setManglingNumber(const } unsigned ASTContext::getManglingNumber(const NamedDecl *ND) const { - llvm::DenseMap<const NamedDecl *, unsigned>::const_iterator I = - MangleNumbers.find(ND); + auto I = MangleNumbers.find(ND); return I != MangleNumbers.end() ? I->second : 1; } @@ -8695,8 +8694,7 @@ void ASTContext::setStaticLocalNumber(co } unsigned ASTContext::getStaticLocalNumber(const VarDecl *VD) const { - llvm::DenseMap<const VarDecl *, unsigned>::const_iterator I = - StaticLocalNumbers.find(VD); + auto I = StaticLocalNumbers.find(VD); return I != StaticLocalNumbers.end() ? I->second : 1; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits