Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Jun 2017 00:09:35 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r320041 - in projects/clang500-import: contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/sanitizer_common contrib/compiler-rt/lib/tsan/rtl contrib/compiler-rt/lib/ubsan contrib/libc+...
Message-ID:  <201706170009.v5H09ZWa037366@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Sat Jun 17 00:09:34 2017
New Revision: 320041
URL: https://svnweb.freebsd.org/changeset/base/320041

Log:
  Merge llvm, clang, lld, lldb, compiler-rt and libc++ r305575, and update
  build glue.

Added:
  projects/clang500-import/contrib/libc++/src/vector.cpp
     - copied unchanged from r320030, vendor/libc++/dist/src/vector.cpp
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h
     - copied unchanged from r320028, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h
  projects/clang500-import/contrib/llvm/include/llvm/Testing/
     - copied from r320028, vendor/llvm/dist/include/llvm/Testing/
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp
     - copied unchanged from r320028, vendor/llvm/dist/lib/DebugInfo/CodeView/StringsAndChecksums.cpp
  projects/clang500-import/contrib/llvm/lib/Testing/
     - copied from r320028, vendor/llvm/dist/lib/Testing/
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp
     - copied unchanged from r320028, vendor/llvm/dist/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Arch/
     - copied from r320029, vendor/lld/dist/ELF/Arch/
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/FormatUtil.cpp
     - copied unchanged from r320028, vendor/llvm/dist/tools/llvm-pdbutil/FormatUtil.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/FormatUtil.h
     - copied unchanged from r320028, vendor/llvm/dist/tools/llvm-pdbutil/FormatUtil.h
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp
     - copied unchanged from r320028, vendor/llvm/dist/tools/llvm-pdbutil/MinimalSymbolDumper.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.h
     - copied unchanged from r320028, vendor/llvm/dist/tools/llvm-pdbutil/MinimalSymbolDumper.h
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp
     - copied unchanged from r320028, vendor/llvm/dist/tools/llvm-pdbutil/MinimalTypeDumper.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.h
     - copied unchanged from r320028, vendor/llvm/dist/tools/llvm-pdbutil/MinimalTypeDumper.h
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/RawOutputStyle.cpp
     - copied unchanged from r320028, vendor/llvm/dist/tools/llvm-pdbutil/RawOutputStyle.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/RawOutputStyle.h
     - copied unchanged from r320028, vendor/llvm/dist/tools/llvm-pdbutil/RawOutputStyle.h
Deleted:
  projects/clang500-import/contrib/llvm/lib/Testing/CMakeLists.txt
  projects/clang500-import/contrib/llvm/lib/Testing/LLVMBuild.txt
  projects/clang500-import/contrib/llvm/lib/Testing/Support/CMakeLists.txt
  projects/clang500-import/contrib/llvm/lib/Testing/Support/LLVMBuild.txt
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/LLVMOutputStyle.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/LLVMOutputStyle.h
Modified:
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_combined.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_secondary.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.h
  projects/clang500-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc
  projects/clang500-import/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc
  projects/clang500-import/contrib/libc++/include/__bsd_locale_fallbacks.h
  projects/clang500-import/contrib/libc++/include/__config
  projects/clang500-import/contrib/libc++/include/__functional_03
  projects/clang500-import/contrib/libc++/include/__functional_base
  projects/clang500-import/contrib/libc++/include/array
  projects/clang500-import/contrib/libc++/include/experimental/coroutine
  projects/clang500-import/contrib/libc++/include/fstream
  projects/clang500-import/contrib/libc++/include/functional
  projects/clang500-import/contrib/libc++/include/locale
  projects/clang500-import/contrib/libc++/include/memory
  projects/clang500-import/contrib/libc++/include/numeric
  projects/clang500-import/contrib/libc++/include/utility
  projects/clang500-import/contrib/libc++/include/variant
  projects/clang500-import/contrib/libc++/src/experimental/filesystem/operations.cpp
  projects/clang500-import/contrib/libc++/src/locale.cpp
  projects/clang500-import/contrib/llvm/include/llvm/ADT/AllocatorList.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/ArrayRef.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/BreadthFirstIterator.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/DAGDeltaAlgorithm.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/DeltaAlgorithm.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/DenseMap.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/DenseMapInfo.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/DenseSet.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/DepthFirstIterator.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/EquivalenceClasses.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/FoldingSet.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/GraphTraits.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/ImmutableList.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/ImmutableMap.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/ImmutableSet.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/IndexedMap.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/IntervalMap.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/MapVector.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/Optional.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/PackedVector.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/PointerEmbeddedInt.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/PointerUnion.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/ScopedHashTable.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/SmallBitVector.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/SmallSet.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/StringExtras.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/Triple.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/ilist_base.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/ilist_iterator.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/ilist_node.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/iterator.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/simple_ilist.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/MemorySSA.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/TypeMetadataUtils.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/ValueTracking.h
  projects/clang500-import/contrib/llvm/include/llvm/BinaryFormat/ELF.h
  projects/clang500-import/contrib/llvm/include/llvm/Bitcode/BitcodeReader.h
  projects/clang500-import/contrib/llvm/include/llvm/Bitcode/BitcodeWriter.h
  projects/clang500-import/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeView.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/Formatters.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStream.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStream.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/SymbolStream.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Constants.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/DebugInfoMetadata.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/GlobalVariable.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/IRBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/InstrTypes.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Instructions.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/IntrinsicInst.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Intrinsics.td
  projects/clang500-import/contrib/llvm/include/llvm/IR/ModuleSummaryIndex.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Operator.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/PatternMatch.h
  projects/clang500-import/contrib/llvm/include/llvm/LTO/LTO.h
  projects/clang500-import/contrib/llvm/include/llvm/LTO/legacy/LTOModule.h
  projects/clang500-import/contrib/llvm/include/llvm/MC/MCSymbolWasm.h
  projects/clang500-import/contrib/llvm/include/llvm/MC/MCWasmObjectWriter.h
  projects/clang500-import/contrib/llvm/include/llvm/Object/ArchiveWriter.h
  projects/clang500-import/contrib/llvm/include/llvm/Object/WindowsResource.h
  projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/COFFYAML.h
  projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h
  projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
  projects/clang500-import/contrib/llvm/include/llvm/Option/Arg.h
  projects/clang500-import/contrib/llvm/include/llvm/Option/ArgList.h
  projects/clang500-import/contrib/llvm/include/llvm/Option/OptSpecifier.h
  projects/clang500-import/contrib/llvm/include/llvm/Option/OptTable.h
  projects/clang500-import/contrib/llvm/include/llvm/Option/Option.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/BinaryStreamArray.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/DebugCounter.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/FormatAdapters.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/FormatCommon.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/MathExtras.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/ThreadPool.h
  projects/clang500-import/contrib/llvm/include/llvm/TableGen/Main.h
  projects/clang500-import/contrib/llvm/include/llvm/TableGen/Record.h
  projects/clang500-import/contrib/llvm/include/llvm/TableGen/SetTheory.h
  projects/clang500-import/contrib/llvm/include/llvm/TableGen/StringMatcher.h
  projects/clang500-import/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h
  projects/clang500-import/contrib/llvm/include/llvm/Target/TargetRegisterInfo.h
  projects/clang500-import/contrib/llvm/include/llvm/Transforms/Scalar/GVNExpression.h
  projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/CodeExtractor.h
  projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/Mem2Reg.h
  projects/clang500-import/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/CallGraphSCCPass.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/DivergenceAnalysis.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/MemorySSA.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/ValueTracking.cpp
  projects/clang500-import/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
  projects/clang500-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
  projects/clang500-import/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineLICM.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SplitKit.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/StackColoring.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeDatabase.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeIndex.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStream.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTable.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTableBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PublicsStream.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/UDTLayout.cpp
  projects/clang500-import/contrib/llvm/lib/IR/ConstantFold.cpp
  projects/clang500-import/contrib/llvm/lib/IR/ConstantsContext.h
  projects/clang500-import/contrib/llvm/lib/IR/DebugInfoMetadata.cpp
  projects/clang500-import/contrib/llvm/lib/IR/IRBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Metadata.cpp
  projects/clang500-import/contrib/llvm/lib/IR/ModuleSummaryIndex.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Verifier.cpp
  projects/clang500-import/contrib/llvm/lib/LTO/LTO.cpp
  projects/clang500-import/contrib/llvm/lib/LTO/LTOModule.cpp
  projects/clang500-import/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/MC/MCSectionELF.cpp
  projects/clang500-import/contrib/llvm/lib/MC/WasmObjectWriter.cpp
  projects/clang500-import/contrib/llvm/lib/Object/ArchiveWriter.cpp
  projects/clang500-import/contrib/llvm/lib/Object/ELF.cpp
  projects/clang500-import/contrib/llvm/lib/Object/IRSymtab.cpp
  projects/clang500-import/contrib/llvm/lib/Object/WindowsResource.cpp
  projects/clang500-import/contrib/llvm/lib/ObjectYAML/COFFYAML.cpp
  projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp
  projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
  projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp
  projects/clang500-import/contrib/llvm/lib/ObjectYAML/ELFYAML.cpp
  projects/clang500-import/contrib/llvm/lib/Option/Arg.cpp
  projects/clang500-import/contrib/llvm/lib/Option/ArgList.cpp
  projects/clang500-import/contrib/llvm/lib/Option/OptTable.cpp
  projects/clang500-import/contrib/llvm/lib/Option/Option.cpp
  projects/clang500-import/contrib/llvm/lib/Passes/PassBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/Support/BinaryStreamWriter.cpp
  projects/clang500-import/contrib/llvm/lib/Support/DebugCounter.cpp
  projects/clang500-import/contrib/llvm/lib/Support/FoldingSet.cpp
  projects/clang500-import/contrib/llvm/lib/Support/ThreadPool.cpp
  projects/clang500-import/contrib/llvm/lib/Support/Unix/Program.inc
  projects/clang500-import/contrib/llvm/lib/TableGen/Record.cpp
  projects/clang500-import/contrib/llvm/lib/TableGen/SetTheory.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64.td
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkorDetails.td
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/FLATInstructions.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMCallLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFAsmPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp
  projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonGenMux.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonPatterns.td
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsLongBranch.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSubtarget.h
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h
  projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp
  projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrAVX512.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/Inliner.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/LowerTypeTests.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/GVNSink.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/PredicateInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/AllDiagnostics.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsPPC.def
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Format/Format.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/MacroArgs.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGCoroutine.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/Format.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexDecl.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexSymbol.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Driver.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/DriverUtils.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/InputFiles.h
  projects/clang500-import/contrib/llvm/tools/lld/COFF/PDB.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/CMakeLists.txt
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Driver.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/ICF.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/InputFiles.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/InputFiles.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/InputSection.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/LinkerScript.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/LinkerScript.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/MarkLive.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/OutputSections.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/OutputSections.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Relocations.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Relocations.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Strings.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/SyntheticSections.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Target.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Target.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Writer.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/Debugger.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/StackFrame.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/StackFrameList.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/Thread.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/Status.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Core/Debugger.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/Symbols.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Target/StackFrame.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Target/Thread.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/Status.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-ar/llvm-ar.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/LinePrinter.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/LinePrinter.h
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/PrettyClassLayoutGraphicalDumper.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.h
  projects/clang500-import/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-stress/llvm-stress.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
  projects/clang500-import/lib/clang/include/clang/Basic/Version.inc
  projects/clang500-import/lib/clang/include/lld/Config/Version.inc
  projects/clang500-import/lib/clang/include/llvm/Support/VCSRevision.h
  projects/clang500-import/lib/clang/libllvm/Makefile
  projects/clang500-import/lib/libc++/Makefile
  projects/clang500-import/usr.bin/clang/lld/Makefile
  projects/clang500-import/usr.bin/clang/llvm-pdbutil/Makefile
Directory Properties:
  projects/clang500-import/contrib/compiler-rt/   (props changed)
  projects/clang500-import/contrib/libc++/   (props changed)
  projects/clang500-import/contrib/llvm/   (props changed)
  projects/clang500-import/contrib/llvm/tools/clang/   (props changed)
  projects/clang500-import/contrib/llvm/tools/lld/   (props changed)
  projects/clang500-import/contrib/llvm/tools/lldb/   (props changed)

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc	Sat Jun 17 00:09:34 2017	(r320041)
@@ -235,6 +235,8 @@ struct Allocator {
   AllocatorCache fallback_allocator_cache;
   QuarantineCache fallback_quarantine_cache;
 
+  atomic_uint8_t rss_limit_exceeded;
+
   // ------------------- Options --------------------------
   atomic_uint16_t min_redzone;
   atomic_uint16_t max_redzone;
@@ -268,6 +270,14 @@ struct Allocator {
     SharedInitCode(options);
   }
 
+  bool RssLimitExceeded() {
+    return atomic_load(&rss_limit_exceeded, memory_order_relaxed);
+  }
+
+  void SetRssLimitExceeded(bool limit_exceeded) {
+    atomic_store(&rss_limit_exceeded, limit_exceeded, memory_order_relaxed);
+  }
+
   void RePoisonChunk(uptr chunk) {
     // This could be a user-facing chunk (with redzones), or some internal
     // housekeeping chunk, like TransferBatch. Start by assuming the former.
@@ -363,6 +373,8 @@ struct Allocator {
                  AllocType alloc_type, bool can_fill) {
     if (UNLIKELY(!asan_inited))
       AsanInitFromRtl();
+    if (RssLimitExceeded())
+      return allocator.ReturnNullOrDieOnOOM();
     Flags &fl = *flags();
     CHECK(stack);
     const uptr min_alignment = SHADOW_GRANULARITY;
@@ -400,16 +412,15 @@ struct Allocator {
 
     AsanThread *t = GetCurrentThread();
     void *allocated;
-    bool check_rss_limit = true;
     if (t) {
       AllocatorCache *cache = GetAllocatorCache(&t->malloc_storage());
       allocated =
-          allocator.Allocate(cache, needed_size, 8, false, check_rss_limit);
+          allocator.Allocate(cache, needed_size, 8, false);
     } else {
       SpinMutexLock l(&fallback_mutex);
       AllocatorCache *cache = &fallback_allocator_cache;
       allocated =
-          allocator.Allocate(cache, needed_size, 8, false, check_rss_limit);
+          allocator.Allocate(cache, needed_size, 8, false);
     }
 
     if (!allocated) return allocator.ReturnNullOrDieOnOOM();
@@ -866,8 +877,8 @@ void asan_mz_force_unlock() {
   instance.ForceUnlock();
 }
 
-void AsanSoftRssLimitExceededCallback(bool exceeded) {
-  instance.allocator.SetRssLimitIsExceeded(exceeded);
+void AsanSoftRssLimitExceededCallback(bool limit_exceeded) {
+  instance.SetRssLimitExceeded(limit_exceeded);
 }
 
 } // namespace __asan

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_combined.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_combined.h	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_combined.h	Sat Jun 17 00:09:34 2017	(r320041)
@@ -43,12 +43,12 @@ class CombinedAllocator {
   }
 
   void *Allocate(AllocatorCache *cache, uptr size, uptr alignment,
-                 bool cleared = false, bool check_rss_limit = false) {
+                 bool cleared = false) {
     // Returning 0 on malloc(0) may break a lot of code.
     if (size == 0)
       size = 1;
-    if (size + alignment < size) return ReturnNullOrDieOnBadRequest();
-    if (check_rss_limit && RssLimitIsExceeded()) return ReturnNullOrDieOnOOM();
+    if (size + alignment < size)
+      return ReturnNullOrDieOnBadRequest();
     uptr original_size = size;
     // If alignment requirements are to be fulfilled by the frontend allocator
     // rather than by the primary or secondary, passing an alignment lower than
@@ -89,7 +89,8 @@ class CombinedAllocator {
   }
 
   void *ReturnNullOrDieOnOOM() {
-    if (MayReturnNull()) return nullptr;
+    if (MayReturnNull())
+      return nullptr;
     ReportAllocatorCannotReturnNull(true);
   }
 
@@ -106,15 +107,6 @@ class CombinedAllocator {
     primary_.SetReleaseToOSIntervalMs(release_to_os_interval_ms);
   }
 
-  bool RssLimitIsExceeded() {
-    return atomic_load(&rss_limit_is_exceeded_, memory_order_acquire);
-  }
-
-  void SetRssLimitIsExceeded(bool rss_limit_is_exceeded) {
-    atomic_store(&rss_limit_is_exceeded_, rss_limit_is_exceeded,
-                 memory_order_release);
-  }
-
   void Deallocate(AllocatorCache *cache, void *p) {
     if (!p) return;
     if (primary_.PointerIsMine(p))
@@ -228,6 +220,5 @@ class CombinedAllocator {
   SecondaryAllocator secondary_;
   AllocatorGlobalStats stats_;
   atomic_uint8_t may_return_null_;
-  atomic_uint8_t rss_limit_is_exceeded_;
 };
 

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_secondary.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_secondary.h	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_secondary.h	Sat Jun 17 00:09:34 2017	(r320041)
@@ -36,9 +36,12 @@ class LargeMmapAllocator {
     if (alignment > page_size_)
       map_size += alignment;
     // Overflow.
-    if (map_size < size) return ReturnNullOrDieOnBadRequest();
+    if (map_size < size)
+      return ReturnNullOrDieOnBadRequest();
     uptr map_beg = reinterpret_cast<uptr>(
-        MmapOrDie(map_size, "LargeMmapAllocator"));
+        MmapOrDieOnFatalError(map_size, "LargeMmapAllocator"));
+    if (!map_beg)
+      return ReturnNullOrDieOnOOM();
     CHECK(IsAligned(map_beg, page_size_));
     MapUnmapCallback().OnMap(map_beg, map_size);
     uptr map_end = map_beg + map_size;

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h	Sat Jun 17 00:09:34 2017	(r320041)
@@ -85,6 +85,9 @@ INLINE void *MmapOrDieQuietly(uptr size, const char *m
   return MmapOrDie(size, mem_type, /*raw_report*/ true);
 }
 void UnmapOrDie(void *addr, uptr size);
+// Behaves just like MmapOrDie, but tolerates out of memory condition, in that
+// case returns nullptr.
+void *MmapOrDieOnFatalError(uptr size, const char *mem_type);
 void *MmapFixedNoReserve(uptr fixed_addr, uptr size,
                          const char *name = nullptr);
 void *MmapNoReserveOrDie(uptr size, const char *mem_type);

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc	Sat Jun 17 00:09:34 2017	(r320041)
@@ -93,6 +93,9 @@ COMMON_FLAG(HandleSignalMode, handle_sigill, kHandleSi
 COMMON_FLAG(HandleSignalMode, handle_sigfpe, kHandleSignalYes,
             COMMON_FLAG_HANDLE_SIGNAL_HELP(SIGFPE))
 #undef COMMON_FLAG_HANDLE_SIGNAL_HELP
+COMMON_FLAG(bool, allow_user_segv_handler, true,
+            "Deprecated. True has no effect, use handle_sigbus=1. If false, "
+            "handle_*=1 will be upgraded to handle_*=2.")
 COMMON_FLAG(bool, use_sigaltstack, true,
             "If set, uses alternate stack for signal handling.")
 COMMON_FLAG(bool, detect_deadlocks, false,

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc	Sat Jun 17 00:09:34 2017	(r320041)
@@ -1396,7 +1396,7 @@ AndroidApiLevel AndroidGetApiLevel() {
 
 #endif
 
-HandleSignalMode GetHandleSignalMode(int signum) {
+static HandleSignalMode GetHandleSignalModeImpl(int signum) {
   switch (signum) {
     case SIGABRT:
       return common_flags()->handle_abort;
@@ -1410,6 +1410,13 @@ HandleSignalMode GetHandleSignalMode(int signum) {
       return common_flags()->handle_sigbus;
   }
   return kHandleSignalNo;
+}
+
+HandleSignalMode GetHandleSignalMode(int signum) {
+  HandleSignalMode result = GetHandleSignalModeImpl(signum);
+  if (result == kHandleSignalYes && !common_flags()->allow_user_segv_handler)
+    return kHandleSignalExclusive;
+  return result;
 }
 
 #if !SANITIZER_GO

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc	Sat Jun 17 00:09:34 2017	(r320041)
@@ -113,7 +113,6 @@ void GetThreadStackTopAndBottom(bool at_initialization
   my_pthread_attr_getstack(&attr, &stackaddr, &stacksize);
   pthread_attr_destroy(&attr);
 
-  CHECK_LE(stacksize, kMaxThreadStackSize);  // Sanity check.
   *stack_top = (uptr)stackaddr + stacksize;
   *stack_bottom = (uptr)stackaddr;
 }

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc	Sat Jun 17 00:09:34 2017	(r320041)
@@ -414,10 +414,7 @@ void ListOfModules::init() {
   memory_mapping.DumpListOfModules(&modules_);
 }
 
-HandleSignalMode GetHandleSignalMode(int signum) {
-  // Handling fatal signals on watchOS and tvOS devices is disallowed.
-  if ((SANITIZER_WATCHOS || SANITIZER_TVOS) && !(SANITIZER_IOSSIM))
-    return kHandleSignalNo;
+static HandleSignalMode GetHandleSignalModeImpl(int signum) {
   switch (signum) {
     case SIGABRT:
       return common_flags()->handle_abort;
@@ -431,6 +428,16 @@ HandleSignalMode GetHandleSignalMode(int signum) {
       return common_flags()->handle_sigbus;
   }
   return kHandleSignalNo;
+}
+
+HandleSignalMode GetHandleSignalMode(int signum) {
+  // Handling fatal signals on watchOS and tvOS devices is disallowed.
+  if ((SANITIZER_WATCHOS || SANITIZER_TVOS) && !(SANITIZER_IOSSIM))
+    return kHandleSignalNo;
+  HandleSignalMode result = GetHandleSignalModeImpl(signum);
+  if (result == kHandleSignalYes && !common_flags()->allow_user_segv_handler)
+    return kHandleSignalExclusive;
+  return result;
 }
 
 MacosVersion cached_macos_version = MACOS_VERSION_UNINITIALIZED;

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc	Sat Jun 17 00:09:34 2017	(r320041)
@@ -22,6 +22,7 @@
 #include "sanitizer_procmaps.h"
 #include "sanitizer_stacktrace.h"
 
+#include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
 #include <sys/mman.h>
@@ -143,6 +144,21 @@ void UnmapOrDie(void *addr, uptr size) {
     CHECK("unable to unmap" && 0);
   }
   DecreaseTotalMmap(size);
+}
+
+void *MmapOrDieOnFatalError(uptr size, const char *mem_type) {
+  size = RoundUpTo(size, GetPageSizeCached());
+  uptr res = internal_mmap(nullptr, size,
+                           PROT_READ | PROT_WRITE,
+                           MAP_PRIVATE | MAP_ANON, -1, 0);
+  int reserrno;
+  if (internal_iserror(res, &reserrno)) {
+    if (reserrno == ENOMEM)
+      return nullptr;
+    ReportMmapFailureAndDie(size, mem_type, "allocate", reserrno);
+  }
+  IncreaseTotalMmap(size);
+  return (void *)res;
 }
 
 // We want to map a chunk of address space aligned to 'alignment'.

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc	Sat Jun 17 00:09:34 2017	(r320041)
@@ -131,6 +131,16 @@ void UnmapOrDie(void *addr, uptr size) {
   }
 }
 
+void *MmapOrDieOnFatalError(uptr size, const char *mem_type) {
+  void *rv = VirtualAlloc(0, size, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
+  if (rv == 0) {
+    error_t last_error = GetLastError();
+    if (last_error != ERROR_NOT_ENOUGH_MEMORY)
+      ReportMmapFailureAndDie(size, mem_type, "allocate", last_error);
+  }
+  return rv;
+}
+
 // We want to map a chunk of address space aligned to 'alignment'.
 void *MmapAlignedOrDie(uptr size, uptr alignment, const char *mem_type) {
   CHECK(IsPowerOfTwo(size));

Modified: projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc	Sat Jun 17 00:09:34 2017	(r320041)
@@ -92,7 +92,8 @@ static const char *ReportTypeString(ReportType typ, up
   if (typ == ReportTypeVptrUseAfterFree)
     return "heap-use-after-free (virtual call vs free)";
   if (typ == ReportTypeExternalRace) {
-    return GetReportHeaderFromTag(tag) ?: "race on external object";
+    const char *str = GetReportHeaderFromTag(tag);
+    return str ? str : "race on external object";
   }
   if (typ == ReportTypeThreadLeak)
     return "thread leak";
@@ -170,8 +171,9 @@ static void PrintMop(const ReportMop *mop, bool first)
            MopDesc(first, mop->write, mop->atomic), mop->size,
            (void *)mop->addr, thread_name(thrbuf, mop->tid));
   } else {
-    const char *object_type =
-        GetObjectTypeFromTag(mop->external_tag) ?: "external object";
+    const char *object_type = GetObjectTypeFromTag(mop->external_tag);
+    if (object_type == nullptr)
+        object_type = "external object";
     Printf("  %s access of %s at %p by %s",
            ExternalMopDesc(first, mop->write), object_type,
            (void *)mop->addr, thread_name(thrbuf, mop->tid));

Modified: projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.h	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.h	Sat Jun 17 00:09:34 2017	(r320041)
@@ -83,7 +83,7 @@ struct SyncVar {
   }
 
   bool IsFlagSet(u32 f) const {
-    return atomic_load_relaxed(&flags);
+    return atomic_load_relaxed(&flags) & f;
   }
 
   void SetFlags(u32 f) {

Modified: projects/clang500-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc	Sat Jun 17 00:09:34 2017	(r320041)
@@ -566,8 +566,14 @@ static void handlePointerOverflowImpl(PointerOverflowD
 
   ScopedReport R(Opts, Loc, ET);
 
-  Diag(Loc, DL_Error, "pointer index expression with base %0 overflowed to %1")
-    << (void *)Base << (void*)Result;
+  if ((sptr(Base) >= 0) == (sptr(Result) >= 0))
+    Diag(Loc, DL_Error, "unsigned pointer index expression result is %0, "
+                        "preceding its base %1")
+        << (void *)Result << (void *)Base;
+  else
+    Diag(Loc, DL_Error,
+         "pointer index expression with base %0 overflowed to %1")
+        << (void *)Base << (void *)Result;
 }
 
 void __ubsan::__ubsan_handle_pointer_overflow(PointerOverflowData *Data,

Modified: projects/clang500-import/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc	Sat Jun 17 00:09:34 2017	(r320041)
@@ -197,9 +197,9 @@ struct VtablePrefix {
 };
 VtablePrefix *getVtablePrefix(void *Vtable) {
   VtablePrefix *Vptr = reinterpret_cast<VtablePrefix*>(Vtable);
-  if (!IsAccessibleMemoryRange((uptr)Vptr, sizeof(VtablePrefix)))
-    return nullptr;
   VtablePrefix *Prefix = Vptr - 1;
+  if (!IsAccessibleMemoryRange((uptr)Prefix, sizeof(VtablePrefix)))
+    return nullptr;
   if (!Prefix->TypeInfo)
     // This can't possibly be a valid vtable.
     return nullptr;

Modified: projects/clang500-import/contrib/libc++/include/__bsd_locale_fallbacks.h
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__bsd_locale_fallbacks.h	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/libc++/include/__bsd_locale_fallbacks.h	Sat Jun 17 00:09:34 2017	(r320041)
@@ -15,6 +15,7 @@
 #define _LIBCPP_BSD_LOCALE_FALLBACKS_DEFAULTS_H
 
 #include <stdlib.h>
+#include <stdarg.h>
 #include <memory>
 
 _LIBCPP_BEGIN_NAMESPACE_STD

Modified: projects/clang500-import/contrib/libc++/include/__config
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__config	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/libc++/include/__config	Sat Jun 17 00:09:34 2017	(r320041)
@@ -76,6 +76,9 @@
 // its vtable and typeinfo to libc++ rather than having all other libraries
 // using that class define their own copies.
 #define _LIBCPP_ABI_BAD_FUNCTION_CALL_KEY_FUNCTION
+
+// Enable optimized version of __do_get_(un)signed which avoids redundant copies.
+#define _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET
 #elif _LIBCPP_ABI_VERSION == 1
 #if !defined(_LIBCPP_OBJECT_FORMAT_COFF)
 // Enable compiling copies of now inline methods into the dylib to support
@@ -289,7 +292,7 @@
 # endif
 #endif  // !defined(_LIBCPP_LITTLE_ENDIAN) || !defined(_LIBCPP_BIG_ENDIAN)
 
-#if __has_attribute(__no_sanitize__)
+#if __has_attribute(__no_sanitize__) && !defined(_LIBCPP_COMPILER_GCC)
 #define _LIBCPP_NO_CFI __attribute__((__no_sanitize__("cfi")))
 #else
 #define _LIBCPP_NO_CFI
@@ -1132,8 +1135,6 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
 # define _LIBCPP_HAS_NO_COROUTINES
 #endif
 
-#endif // __cplusplus
-
 // Decide whether to use availability macros.
 #if !defined(_LIBCPP_BUILDING_LIBRARY) &&                                      \
     !defined(_LIBCPP_DISABLE_AVAILABILITY) &&                                  \
@@ -1236,5 +1237,8 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
       _Pragma("pop_macro(\"max\")")
 # endif
 #endif // defined(_LIBCPP_HAS_NO_PRAGMA_PUSH_POP_MACRO)
+
+
+#endif // __cplusplus
 
 #endif // _LIBCPP_CONFIG

Modified: projects/clang500-import/contrib/libc++/include/__functional_03
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__functional_03	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/libc++/include/__functional_03	Sat Jun 17 00:09:34 2017	(r320041)
@@ -704,7 +704,7 @@ function<_Rp()>::target()
 {
     if (__f_ == 0)
         return (_Tp*)0;
-    return (_Tp*)__f_->target(typeid(_Tp));
+    return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));
 }
 
 template<class _Rp>
@@ -980,7 +980,7 @@ function<_Rp(_A0)>::target()
 {
     if (__f_ == 0)
         return (_Tp*)0;
-    return (_Tp*)__f_->target(typeid(_Tp));
+    return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));
 }
 
 template<class _Rp, class _A0>
@@ -1256,7 +1256,7 @@ function<_Rp(_A0, _A1)>::target()
 {
     if (__f_ == 0)
         return (_Tp*)0;
-    return (_Tp*)__f_->target(typeid(_Tp));
+    return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));
 }
 
 template<class _Rp, class _A0, class _A1>
@@ -1532,7 +1532,7 @@ function<_Rp(_A0, _A1, _A2)>::target()
 {
     if (__f_ == 0)
         return (_Tp*)0;
-    return (_Tp*)__f_->target(typeid(_Tp));
+    return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));
 }
 
 template<class _Rp, class _A0, class _A1, class _A2>

Modified: projects/clang500-import/contrib/libc++/include/__functional_base
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__functional_base	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/libc++/include/__functional_base	Sat Jun 17 00:09:34 2017	(r320041)
@@ -548,16 +548,13 @@ template <class _Tp> void cref(const _Tp&&) = delete;
 #endif
 
 #if _LIBCPP_STD_VER > 11
-template <class _Tp1, class _Tp2 = void>
-struct __is_transparent
-{
-private:
-    struct __two {char __lx; char __lxx;};
-    template <class _Up> static __two __test(...);
-    template <class _Up> static char __test(typename _Up::is_transparent* = 0);
-public:
-    static const bool value = sizeof(__test<_Tp1>(0)) == 1;
-};
+template <class _Tp, class, class = void>
+struct __is_transparent : false_type {};
+
+template <class _Tp, class _Up>
+struct __is_transparent<_Tp, _Up,  
+                        typename __void_t<typename _Tp::is_transparent>::type>
+   : true_type {};
 #endif
 
 // allocator_arg_t

Modified: projects/clang500-import/contrib/libc++/include/array
==============================================================================
--- projects/clang500-import/contrib/libc++/include/array	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/libc++/include/array	Sat Jun 17 00:09:34 2017	(r320041)
@@ -296,6 +296,7 @@ class _LIBCPP_TEMPLATE_VIS tuple_size<array<_Tp, _Size
 template <size_t _Ip, class _Tp, size_t _Size>
 class _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, array<_Tp, _Size> >
 {
+    static_assert(_Ip < _Size, "Index out of bounds in std::tuple_element<> (std::array)");
 public:
     typedef _Tp type;
 };

Modified: projects/clang500-import/contrib/libc++/include/experimental/coroutine
==============================================================================
--- projects/clang500-import/contrib/libc++/include/experimental/coroutine	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/libc++/include/experimental/coroutine	Sat Jun 17 00:09:34 2017	(r320041)
@@ -250,9 +250,11 @@ class _LIBCPP_TEMPLATE_VIS coroutine_handle : public c
 
     _LIBCPP_ALWAYS_INLINE
     static coroutine_handle from_promise(_Promise& __promise) _NOEXCEPT {
+        typedef typename remove_cv<_Promise>::type _RawPromise;
         coroutine_handle __tmp;
-        __tmp.__handle_ = __builtin_coro_promise(_VSTD::addressof(__promise),
-                                                 __alignof(_Promise), true);
+        __tmp.__handle_ = __builtin_coro_promise(
+            _VSTD::addressof(const_cast<_RawPromise&>(__promise)),
+             __alignof(_Promise), true);
         return __tmp;
     }
 };

Modified: projects/clang500-import/contrib/libc++/include/fstream
==============================================================================
--- projects/clang500-import/contrib/libc++/include/fstream	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/libc++/include/fstream	Sat Jun 17 00:09:34 2017	(r320041)
@@ -617,7 +617,7 @@ basic_filebuf<_CharT, _Traits>::underflow()
                                  static_cast<size_t>(__extbufend_ - __extbufnext_));
             codecvt_base::result __r;
             __st_last_ = __st_;
-            size_t __nr = fread((void*)__extbufnext_, 1, __nmemb, __file_);
+            size_t __nr = fread((void*) const_cast<char *>(__extbufnext_), 1, __nmemb, __file_);
             if (__nr != 0)
             {
                 if (!__cv_)
@@ -630,7 +630,8 @@ basic_filebuf<_CharT, _Traits>::underflow()
                                        this->eback() + __ibs_, __inext);
                 if (__r == codecvt_base::noconv)
                 {
-                    this->setg((char_type*)__extbuf_, (char_type*)__extbuf_, (char_type*)__extbufend_);
+                    this->setg((char_type*)__extbuf_, (char_type*)__extbuf_, 
+                                          (char_type*)const_cast<char *>(__extbufend_));
                     __c = traits_type::to_int_type(*this->gptr());
                 }
                 else if (__inext != this->eback() + __unget_sz)
@@ -722,7 +723,7 @@ basic_filebuf<_CharT, _Traits>::overflow(int_type __c)
                         return traits_type::eof();
                     if (__r == codecvt_base::partial)
                     {
-                        this->setp((char_type*)__e, this->pptr());
+                        this->setp(const_cast<char_type*>(__e), this->pptr());
                         this->pbump(this->epptr() - this->pbase());
                     }
                 }

Modified: projects/clang500-import/contrib/libc++/include/functional
==============================================================================
--- projects/clang500-import/contrib/libc++/include/functional	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/libc++/include/functional	Sat Jun 17 00:09:34 2017	(r320041)
@@ -1941,8 +1941,8 @@ _Tp*
 function<_Rp(_ArgTypes...)>::target() _NOEXCEPT
 {
     if (__f_ == 0)
-        return (_Tp*)0;
-    return (_Tp*)__f_->target(typeid(_Tp));
+        return nullptr;
+    return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));
 }
 
 template<class _Rp, class ..._ArgTypes>
@@ -1951,7 +1951,7 @@ const _Tp*
 function<_Rp(_ArgTypes...)>::target() const _NOEXCEPT
 {
     if (__f_ == 0)
-        return (const _Tp*)0;
+        return nullptr;
     return (const _Tp*)__f_->target(typeid(_Tp));
 }
 

Modified: projects/clang500-import/contrib/libc++/include/locale
==============================================================================
--- projects/clang500-import/contrib/libc++/include/locale	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/libc++/include/locale	Sat Jun 17 00:09:34 2017	(r320041)
@@ -372,19 +372,57 @@ template <class _CharT>
 struct __num_get
     : protected __num_get_base
 {
-    static string __stage2_int_prep(ios_base& __iob, _CharT* __atoms, _CharT& __thousands_sep);
     static string __stage2_float_prep(ios_base& __iob, _CharT* __atoms, _CharT& __decimal_point,
                                       _CharT& __thousands_sep);
-    static int __stage2_int_loop(_CharT __ct, int __base, char* __a, char*& __a_end,
-                  unsigned& __dc, _CharT __thousands_sep, const string& __grouping,
-                  unsigned* __g, unsigned*& __g_end, _CharT* __atoms);
+
     static int __stage2_float_loop(_CharT __ct, bool& __in_units, char& __exp,
                                    char* __a, char*& __a_end,
                                    _CharT __decimal_point, _CharT __thousands_sep,
                                    const string& __grouping, unsigned* __g,
                                    unsigned*& __g_end, unsigned& __dc, _CharT* __atoms);
+#ifndef _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET
+    static string __stage2_int_prep(ios_base& __iob, _CharT* __atoms, _CharT& __thousands_sep);
+    static int __stage2_int_loop(_CharT __ct, int __base, char* __a, char*& __a_end,
+                  unsigned& __dc, _CharT __thousands_sep, const string& __grouping,
+                  unsigned* __g, unsigned*& __g_end, _CharT* __atoms);
+
+#else
+    static string __stage2_int_prep(ios_base& __iob, _CharT& __thousands_sep)
+    {
+        locale __loc = __iob.getloc();
+        const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
+        __thousands_sep = __np.thousands_sep();
+        return __np.grouping();
+    }
+
+    const _CharT* __do_widen(ios_base& __iob, _CharT* __atoms) const
+    {
+      return __do_widen_p(__iob, __atoms);
+    }
+
+
+    static int __stage2_int_loop(_CharT __ct, int __base, char* __a, char*& __a_end,
+                  unsigned& __dc, _CharT __thousands_sep, const string& __grouping,
+                  unsigned* __g, unsigned*& __g_end, const _CharT* __atoms);
+private:
+    template<typename T>
+    const T* __do_widen_p(ios_base& __iob, T* __atoms) const
+    {
+      locale __loc = __iob.getloc();
+      use_facet<ctype<T> >(__loc).widen(__src, __src + 26, __atoms);
+      return __atoms;
+    }
+
+    const char* __do_widen_p(ios_base& __iob, char* __atoms) const
+    {
+      (void)__iob;
+      (void)__atoms;
+      return __src;
+    }
+#endif
 };
 
+#ifndef _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET
 template <class _CharT>
 string
 __num_get<_CharT>::__stage2_int_prep(ios_base& __iob, _CharT* __atoms, _CharT& __thousands_sep)
@@ -395,6 +433,7 @@ __num_get<_CharT>::__stage2_int_prep(ios_base& __iob, 
     __thousands_sep = __np.thousands_sep();
     return __np.grouping();
 }
+#endif
 
 template <class _CharT>
 string
@@ -411,9 +450,16 @@ __num_get<_CharT>::__stage2_float_prep(ios_base& __iob
 
 template <class _CharT>
 int
+#ifndef _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET
 __num_get<_CharT>::__stage2_int_loop(_CharT __ct, int __base, char* __a, char*& __a_end,
                   unsigned& __dc, _CharT __thousands_sep, const string& __grouping,
                   unsigned* __g, unsigned*& __g_end, _CharT* __atoms)
+#else
+__num_get<_CharT>::__stage2_int_loop(_CharT __ct, int __base, char* __a, char*& __a_end,
+                  unsigned& __dc, _CharT __thousands_sep, const string& __grouping,
+                  unsigned* __g, unsigned*& __g_end, const _CharT* __atoms)
+
+#endif
 {
     if (__a_end == __a && (__ct == __atoms[24] || __ct == __atoms[25]))
     {
@@ -849,9 +895,16 @@ num_get<_CharT, _InputIterator>::__do_get_signed(iter_
     // Stage 1
     int __base = this->__get_base(__iob);
     // Stage 2
-    char_type __atoms[26];
     char_type __thousands_sep;
+    const int __atoms_size = 26;
+#ifdef _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET
+    char_type __atoms1[__atoms_size];
+    const char_type *__atoms = this->__do_widen(__iob, __atoms1);
+    string __grouping = this->__stage2_int_prep(__iob, __thousands_sep);
+#else
+    char_type __atoms[__atoms_size];
     string __grouping = this->__stage2_int_prep(__iob, __atoms, __thousands_sep);
+#endif
     string __buf;
     __buf.resize(__buf.capacity());
     char* __a = &__buf[0];
@@ -899,9 +952,16 @@ num_get<_CharT, _InputIterator>::__do_get_unsigned(ite
     // Stage 1
     int __base = this->__get_base(__iob);
     // Stage 2
-    char_type __atoms[26];
     char_type __thousands_sep;
+    const int __atoms_size = 26;
+#ifdef _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET
+    char_type __atoms1[__atoms_size];
+    const char_type *__atoms = this->__do_widen(__iob, __atoms1);
+    string __grouping = this->__stage2_int_prep(__iob, __thousands_sep);
+#else
+    char_type __atoms[__atoms_size];
     string __grouping = this->__stage2_int_prep(__iob, __atoms, __thousands_sep);
+#endif
     string __buf;
     __buf.resize(__buf.capacity());
     char* __a = &__buf[0];
@@ -3960,7 +4020,8 @@ wbuffer_convert<_Codecvt, _Elem, _Tr>::underflow()
                                        this->egptr(), __inext);
                 if (__r == codecvt_base::noconv)
                 {
-                    this->setg((char_type*)__extbuf_, (char_type*)__extbuf_, (char_type*)__extbufend_);
+                    this->setg((char_type*)__extbuf_, (char_type*)__extbuf_, 
+                               (char_type*) const_cast<char *>(__extbufend_));
                     __c = *this->gptr();
                 }
                 else if (__inext != this->eback() + __unget_sz)
@@ -4048,7 +4109,7 @@ wbuffer_convert<_Codecvt, _Elem, _Tr>::overflow(int_ty
                         return traits_type::eof();
                     if (__r == codecvt_base::partial)
                     {
-                        this->setp((char_type*)__e, this->pptr());
+                        this->setp(const_cast<char_type *>(__e), this->pptr());
                         this->pbump(this->epptr() - this->pbase());
                     }
                 }

Modified: projects/clang500-import/contrib/libc++/include/memory
==============================================================================
--- projects/clang500-import/contrib/libc++/include/memory	Fri Jun 16 23:43:05 2017	(r320040)
+++ projects/clang500-import/contrib/libc++/include/memory	Sat Jun 17 00:09:34 2017	(r320041)
@@ -720,16 +720,12 @@ class _LIBCPP_TEMPLATE_VIS allocator<const void> (publ
 
 // pointer_traits
 
+template <class _Tp, class = void>
+struct __has_element_type : false_type {};
+
 template <class _Tp>
-struct __has_element_type
-{
-private:
-    struct __two {char __lx; char __lxx;};
-    template <class _Up> static __two __test(...);
-    template <class _Up> static char __test(typename _Up::element_type* = 0);
-public:
-    static const bool value = sizeof(__test<_Tp>(0)) == 1;
-};
+struct __has_element_type<_Tp, 
+              typename __void_t<typename _Tp::element_type>::type> : true_type {};
 
 template <class _Ptr, bool = __has_element_type<_Ptr>::value>
 struct __pointer_traits_element_type;
@@ -808,16 +804,12 @@ struct __pointer_traits_element_type<_Sp<_Tp, _A0, _A1
 
 #endif  // _LIBCPP_HAS_NO_VARIADICS
 
+template <class _Tp, class = void>
+struct __has_difference_type : false_type {};
+
 template <class _Tp>
-struct __has_difference_type
-{
-private:
-    struct __two {char __lx; char __lxx;};
-    template <class _Up> static __two __test(...);
-    template <class _Up> static char __test(typename _Up::difference_type* = 0);
-public:
-    static const bool value = sizeof(__test<_Tp>(0)) == 1;
-};
+struct __has_difference_type<_Tp, 
+            typename __void_t<typename _Tp::difference_type>::type> : true_type {};
 
 template <class _Ptr, bool = __has_difference_type<_Ptr>::value>
 struct __pointer_traits_difference_type
@@ -998,17 +990,12 @@ struct __rebind_pointer {
 
 // allocator_traits
 
-struct __has_pointer_type_imp
-{
-    template <class _Up> static __two __test(...);
-    template <class _Up> static char __test(typename _Up::pointer* = 0);
-};
+template <class _Tp, class = void>
+struct __has_pointer_type : false_type {};
 
 template <class _Tp>
-struct __has_pointer_type
-    : public integral_constant<bool, sizeof(__has_pointer_type_imp::__test<_Tp>(0)) == 1>
-{
-};
+struct __has_pointer_type<_Tp, 
+          typename __void_t<typename _Tp::pointer>::type> : true_type {};
 
 namespace __pointer_type_imp
 {
@@ -1033,16 +1020,12 @@ struct __pointer_type
     typedef typename __pointer_type_imp::__pointer_type<_Tp, typename remove_reference<_Dp>::type>::type type;
 };
 
+template <class _Tp, class = void>
+struct __has_const_pointer : false_type {};
+
 template <class _Tp>
-struct __has_const_pointer
-{
-private:
-    struct __two {char __lx; char __lxx;};
-    template <class _Up> static __two __test(...);
-    template <class _Up> static char __test(typename _Up::const_pointer* = 0);
-public:
-    static const bool value = sizeof(__test<_Tp>(0)) == 1;
-};
+struct __has_const_pointer<_Tp, 
+            typename __void_t<typename _Tp::const_pointer>::type> : true_type {};
 
 template <class _Tp, class _Ptr, class _Alloc, bool = __has_const_pointer<_Alloc>::value>
 struct __const_pointer
@@ -1060,16 +1043,12 @@ struct __const_pointer<_Tp, _Ptr, _Alloc, false>
 #endif
 };
 
+template <class _Tp, class = void>
+struct __has_void_pointer : false_type {};
+
 template <class _Tp>
-struct __has_void_pointer
-{
-private:
-    struct __two {char __lx; char __lxx;};
-    template <class _Up> static __two __test(...);
-    template <class _Up> static char __test(typename _Up::void_pointer* = 0);
-public:
-    static const bool value = sizeof(__test<_Tp>(0)) == 1;
-};
+struct __has_void_pointer<_Tp, 
+               typename __void_t<typename _Tp::void_pointer>::type> : true_type {};
 
 template <class _Ptr, class _Alloc, bool = __has_void_pointer<_Alloc>::value>
 struct __void_pointer
@@ -1087,16 +1066,12 @@ struct __void_pointer<_Ptr, _Alloc, false>
 #endif
 };
 
+template <class _Tp, class = void>
+struct __has_const_void_pointer : false_type {};
+
 template <class _Tp>
-struct __has_const_void_pointer
-{
-private:
-    struct __two {char __lx; char __lxx;};
-    template <class _Up> static __two __test(...);
-    template <class _Up> static char __test(typename _Up::const_void_pointer* = 0);
-public:
-    static const bool value = sizeof(__test<_Tp>(0)) == 1;
-};
+struct __has_const_void_pointer<_Tp, 
+            typename __void_t<typename _Tp::const_void_pointer>::type> : true_type {};
 
 template <class _Ptr, class _Alloc, bool = __has_const_void_pointer<_Alloc>::value>
 struct __const_void_pointer
@@ -1130,16 +1105,12 @@ __to_raw_pointer(_Pointer __p) _NOEXCEPT
     return _VSTD::__to_raw_pointer(__p.operator->());
 }
 
+template <class _Tp, class = void>
+struct __has_size_type : false_type {};
+
 template <class _Tp>
-struct __has_size_type
-{
-private:
-    struct __two {char __lx; char __lxx;};
-    template <class _Up> static __two __test(...);
-    template <class _Up> static char __test(typename _Up::size_type* = 0);
-public:
-    static const bool value = sizeof(__test<_Tp>(0)) == 1;
-};
+struct __has_size_type<_Tp,
+               typename __void_t<typename _Tp::size_type>::type> : true_type {};
 
 template <class _Alloc, class _DiffType, bool = __has_size_type<_Alloc>::value>
 struct __size_type
@@ -1153,16 +1124,13 @@ struct __size_type<_Alloc, _DiffType, true>
     typedef typename _Alloc::size_type type;
 };
 
+template <class _Tp, class = void>
+struct __has_propagate_on_container_copy_assignment : false_type {};
+
 template <class _Tp>
-struct __has_propagate_on_container_copy_assignment
-{
-private:
-    struct __two {char __lx; char __lxx;};
-    template <class _Up> static __two __test(...);
-    template <class _Up> static char __test(typename _Up::propagate_on_container_copy_assignment* = 0);
-public:
-    static const bool value = sizeof(__test<_Tp>(0)) == 1;
-};
+struct __has_propagate_on_container_copy_assignment<_Tp,
+    typename __void_t<typename _Tp::propagate_on_container_copy_assignment>::type>
+        : true_type {};
 
 template <class _Alloc, bool = __has_propagate_on_container_copy_assignment<_Alloc>::value>
 struct __propagate_on_container_copy_assignment
@@ -1176,16 +1144,13 @@ struct __propagate_on_container_copy_assignment<_Alloc
     typedef typename _Alloc::propagate_on_container_copy_assignment type;
 };
 
+template <class _Tp, class = void>
+struct __has_propagate_on_container_move_assignment : false_type {};
+
 template <class _Tp>
-struct __has_propagate_on_container_move_assignment
-{
-private:
-    struct __two {char __lx; char __lxx;};
-    template <class _Up> static __two __test(...);
-    template <class _Up> static char __test(typename _Up::propagate_on_container_move_assignment* = 0);
-public:
-    static const bool value = sizeof(__test<_Tp>(0)) == 1;
-};
+struct __has_propagate_on_container_move_assignment<_Tp, 
+           typename __void_t<typename _Tp::propagate_on_container_move_assignment>::type>
+               : true_type {};
 
 template <class _Alloc, bool = __has_propagate_on_container_move_assignment<_Alloc>::value>
 struct __propagate_on_container_move_assignment
@@ -1199,16 +1164,13 @@ struct __propagate_on_container_move_assignment<_Alloc
     typedef typename _Alloc::propagate_on_container_move_assignment type;
 };
 
+template <class _Tp, class = void>
+struct __has_propagate_on_container_swap : false_type {};
+
 template <class _Tp>
-struct __has_propagate_on_container_swap
-{
-private:
-    struct __two {char __lx; char __lxx;};
-    template <class _Up> static __two __test(...);
-    template <class _Up> static char __test(typename _Up::propagate_on_container_swap* = 0);
-public:
-    static const bool value = sizeof(__test<_Tp>(0)) == 1;
-};
+struct __has_propagate_on_container_swap<_Tp, 
+           typename __void_t<typename _Tp::propagate_on_container_swap>::type>
+               : true_type {};
 
 template <class _Alloc, bool = __has_propagate_on_container_swap<_Alloc>::value>
 struct __propagate_on_container_swap
@@ -1222,16 +1184,13 @@ struct __propagate_on_container_swap<_Alloc, true>
     typedef typename _Alloc::propagate_on_container_swap type;
 };
 
+template <class _Tp, class = void>
+struct __has_is_always_equal : false_type {};
+
 template <class _Tp>
-struct __has_is_always_equal
-{
-private:
-    struct __two {char __lx; char __lxx;};
-    template <class _Up> static __two __test(...);
-    template <class _Up> static char __test(typename _Up::is_always_equal* = 0);
-public:
-    static const bool value = sizeof(__test<_Tp>(0)) == 1;
-};
+struct __has_is_always_equal<_Tp, 
+           typename __void_t<typename _Tp::is_always_equal>::type>
+               : true_type {};
 
 template <class _Alloc, bool = __has_is_always_equal<_Alloc>::value>
 struct __is_always_equal
@@ -1884,7 +1843,7 @@ class _LIBCPP_TEMPLATE_VIS allocator<const _Tp> (publi
         return static_cast<pointer>(_VSTD::__allocate(__n * sizeof(_Tp)));
     }
     _LIBCPP_INLINE_VISIBILITY void deallocate(pointer __p, size_type) _NOEXCEPT
-        {_VSTD::__libcpp_deallocate((void*)__p);}
+        {_VSTD::__libcpp_deallocate((void*) const_cast<_Tp *>(__p));}
     _LIBCPP_INLINE_VISIBILITY size_type max_size() const _NOEXCEPT
         {return size_type(~0) / sizeof(_Tp);}
 #if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)
@@ -1900,7 +1859,7 @@ class _LIBCPP_TEMPLATE_VIS allocator<const _Tp> (publi
         void
         construct(pointer __p)
         {
-            ::new((void*)__p) _Tp();
+            ::new((void*) const_cast<_Tp *>(__p)) _Tp();
         }
 # if defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)
 
@@ -1909,14 +1868,14 @@ class _LIBCPP_TEMPLATE_VIS allocator<const _Tp> (publi
         void
         construct(pointer __p, _A0& __a0)
         {
-            ::new((void*)__p) _Tp(__a0);
+            ::new((void*) const_cast<_Tp *>(__p)) _Tp(__a0);
         }
     template <class _A0>
         _LIBCPP_INLINE_VISIBILITY
         void
         construct(pointer __p, const _A0& __a0)
         {
-            ::new((void*)__p) _Tp(__a0);
+            ::new((void*) const_cast<_Tp *>(__p)) _Tp(__a0);
         }
 # endif  // defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)
     template <class _A0, class _A1>
@@ -1924,28 +1883,28 @@ class _LIBCPP_TEMPLATE_VIS allocator<const _Tp> (publi
         void
         construct(pointer __p, _A0& __a0, _A1& __a1)
         {
-            ::new((void*)__p) _Tp(__a0, __a1);
+            ::new((void*) const_cast<_Tp *>(__p)) _Tp(__a0, __a1);
         }
     template <class _A0, class _A1>
         _LIBCPP_INLINE_VISIBILITY
         void
         construct(pointer __p, const _A0& __a0, _A1& __a1)
         {
-            ::new((void*)__p) _Tp(__a0, __a1);
+            ::new((void*) const_cast<_Tp *>(__p)) _Tp(__a0, __a1);
         }
     template <class _A0, class _A1>
         _LIBCPP_INLINE_VISIBILITY
         void
         construct(pointer __p, _A0& __a0, const _A1& __a1)
         {
-            ::new((void*)__p) _Tp(__a0, __a1);
+            ::new((void*) const_cast<_Tp *>(__p)) _Tp(__a0, __a1);
         }
     template <class _A0, class _A1>
         _LIBCPP_INLINE_VISIBILITY
         void
         construct(pointer __p, const _A0& __a0, const _A1& __a1)
         {
-            ::new((void*)__p) _Tp(__a0, __a1);
+            ::new((void*) const_cast<_Tp *>(__p)) _Tp(__a0, __a1);
         }
 #endif  // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)
     _LIBCPP_INLINE_VISIBILITY void destroy(pointer __p) {__p->~_Tp();}
@@ -3890,7 +3849,9 @@ class _LIBCPP_TEMPLATE_VIS shared_ptr (public)
     template <class _Dp>
         _LIBCPP_INLINE_VISIBILITY
         _Dp* __get_deleter() const _NOEXCEPT
-            {return (_Dp*)(__cntrl_ ? __cntrl_->__get_deleter(typeid(_Dp)) : 0);}
+            {return static_cast<_Dp*>(__cntrl_
+                    ? const_cast<void *>(__cntrl_->__get_deleter(typeid(_Dp))) 

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201706170009.v5H09ZWa037366>