Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Jun 2017 22:47:02 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r319479 - in projects/clang500-import: contrib/compiler-rt/include/sanitizer contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/dfsan contrib/compiler-rt/lib/lsan contrib/compiler-rt/...
Message-ID:  <201706012247.v51Ml2xB080258@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Thu Jun  1 22:47:02 2017
New Revision: 319479
URL: https://svnweb.freebsd.org/changeset/base/319479

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

Added:
  projects/clang500-import/contrib/libc++/include/__undef_macros
     - copied unchanged from r319475, vendor/libc++/dist/include/__undef_macros
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def
     - copied unchanged from r319475, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewTypes.def
     - copied unchanged from r319475, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewTypes.def
  projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h
     - copied unchanged from r319475, vendor/llvm/dist/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h
  projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h
     - copied unchanged from r319475, vendor/llvm/dist/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h
  projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
     - copied unchanged from r319475, vendor/llvm/dist/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
  projects/clang500-import/contrib/llvm/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h
     - copied unchanged from r319475, vendor/llvm/dist/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h
  projects/clang500-import/contrib/llvm/lib/CodeGen/LiveRangeShrink.cpp
     - copied unchanged from r319475, vendor/llvm/dist/lib/CodeGen/LiveRangeShrink.cpp
  projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp
     - copied unchanged from r319475, vendor/llvm/dist/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp
  projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
     - copied unchanged from r319475, vendor/llvm/dist/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
  projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp
     - copied unchanged from r319475, vendor/llvm/dist/lib/ObjectYAML/CodeViewYAMLTypes.cpp
Deleted:
  projects/clang500-import/contrib/libc++/include/__undef_min_max
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CVSymbolTypes.def
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecords.def
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/YamlSerializationContext.h
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/YamlSymbolDumper.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/YamlSymbolDumper.h
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/YamlTypeDumper.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/YamlTypeDumper.h
Modified:
  projects/clang500-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.h
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_flags.cc
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc
  projects/clang500-import/contrib/compiler-rt/lib/dfsan/done_abilist.txt
  projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc
  projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc
  projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.h
  projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_interface.inc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt
  projects/clang500-import/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc
  projects/clang500-import/contrib/libc++/include/__bit_reference
  projects/clang500-import/contrib/libc++/include/__config
  projects/clang500-import/contrib/libc++/include/__hash_table
  projects/clang500-import/contrib/libc++/include/__locale
  projects/clang500-import/contrib/libc++/include/__mutex_base
  projects/clang500-import/contrib/libc++/include/__split_buffer
  projects/clang500-import/contrib/libc++/include/__std_stream
  projects/clang500-import/contrib/libc++/include/__string
  projects/clang500-import/contrib/libc++/include/__threading_support
  projects/clang500-import/contrib/libc++/include/__tree
  projects/clang500-import/contrib/libc++/include/algorithm
  projects/clang500-import/contrib/libc++/include/array
  projects/clang500-import/contrib/libc++/include/bitset
  projects/clang500-import/contrib/libc++/include/chrono
  projects/clang500-import/contrib/libc++/include/deque
  projects/clang500-import/contrib/libc++/include/experimental/algorithm
  projects/clang500-import/contrib/libc++/include/experimental/dynarray
  projects/clang500-import/contrib/libc++/include/experimental/functional
  projects/clang500-import/contrib/libc++/include/experimental/memory_resource
  projects/clang500-import/contrib/libc++/include/experimental/numeric
  projects/clang500-import/contrib/libc++/include/experimental/optional
  projects/clang500-import/contrib/libc++/include/experimental/string_view
  projects/clang500-import/contrib/libc++/include/forward_list
  projects/clang500-import/contrib/libc++/include/fstream
  projects/clang500-import/contrib/libc++/include/istream
  projects/clang500-import/contrib/libc++/include/limits
  projects/clang500-import/contrib/libc++/include/list
  projects/clang500-import/contrib/libc++/include/locale
  projects/clang500-import/contrib/libc++/include/memory
  projects/clang500-import/contrib/libc++/include/module.modulemap
  projects/clang500-import/contrib/libc++/include/mutex
  projects/clang500-import/contrib/libc++/include/numeric
  projects/clang500-import/contrib/libc++/include/optional
  projects/clang500-import/contrib/libc++/include/random
  projects/clang500-import/contrib/libc++/include/ratio
  projects/clang500-import/contrib/libc++/include/regex
  projects/clang500-import/contrib/libc++/include/shared_mutex
  projects/clang500-import/contrib/libc++/include/sstream
  projects/clang500-import/contrib/libc++/include/stdexcept
  projects/clang500-import/contrib/libc++/include/stdio.h
  projects/clang500-import/contrib/libc++/include/streambuf
  projects/clang500-import/contrib/libc++/include/string
  projects/clang500-import/contrib/libc++/include/string_view
  projects/clang500-import/contrib/libc++/include/thread
  projects/clang500-import/contrib/libc++/include/tuple
  projects/clang500-import/contrib/libc++/include/valarray
  projects/clang500-import/contrib/libc++/include/vector
  projects/clang500-import/contrib/libc++/include/wchar.h
  projects/clang500-import/contrib/libc++/src/chrono.cpp
  projects/clang500-import/contrib/libc++/src/condition_variable.cpp
  projects/clang500-import/contrib/libc++/src/ios.cpp
  projects/clang500-import/contrib/libc++/src/locale.cpp
  projects/clang500-import/contrib/libc++/src/mutex.cpp
  projects/clang500-import/contrib/libc++/src/new.cpp
  projects/clang500-import/contrib/libc++/src/strstream.cpp
  projects/clang500-import/contrib/libc++/src/system_error.cpp
  projects/clang500-import/contrib/libc++/src/thread.cpp
  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/ValueTracking.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MIRYamlMapping.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineConstantPool.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineFunction.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineFunctionInitializer.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineInstr.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineLoopInfo.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/Passes.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeView.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolSerializer.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeSerializer.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DIContext.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/PDBContext.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Attributes.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Function.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Instructions.h
  projects/clang500-import/contrib/llvm/include/llvm/InitializePasses.h
  projects/clang500-import/contrib/llvm/include/llvm/Object/WindowsResource.h
  projects/clang500-import/contrib/llvm/include/llvm/Passes/PassBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/ARMTargetParser.def
  projects/clang500-import/contrib/llvm/include/llvm/Support/BinaryStreamReader.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/YAMLTraits.h
  projects/clang500-import/contrib/llvm/include/llvm/TableGen/Record.h
  projects/clang500-import/contrib/llvm/include/llvm/Target/TargetLowering.h
  projects/clang500-import/contrib/llvm/include/llvm/Target/TargetMachine.h
  projects/clang500-import/contrib/llvm/include/llvm/Transforms/Scalar/GVN.h
  projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/CodeExtractor.h
  projects/clang500-import/contrib/llvm/include/llvm/module.modulemap
  projects/clang500-import/contrib/llvm/lib/Analysis/CFLGraph.h
  projects/clang500-import/contrib/llvm/lib/Analysis/ConstantFolding.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/EHPersonalities.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.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/Writer/BitcodeWriter.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/CodeGen.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/Localizer.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/ImplicitNullChecks.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MIRParser/MIRParser.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MIRPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineInstr.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/TargetPassConfig.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/EnumTables.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStream.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/PDBContext.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Attributes.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Function.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Instructions.cpp
  projects/clang500-import/contrib/llvm/lib/LTO/LTOBackend.cpp
  projects/clang500-import/contrib/llvm/lib/MC/MCCodeView.cpp
  projects/clang500-import/contrib/llvm/lib/Object/MachOObjectFile.cpp
  projects/clang500-import/contrib/llvm/lib/Object/WindowsResource.cpp
  projects/clang500-import/contrib/llvm/lib/Passes/PassBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/Support/BinaryStreamReader.cpp
  projects/clang500-import/contrib/llvm/lib/Support/Unix/Path.inc
  projects/clang500-import/contrib/llvm/lib/TableGen/Record.cpp
  projects/clang500-import/contrib/llvm/lib/TableGen/TGParser.cpp
  projects/clang500-import/contrib/llvm/lib/TableGen/TGParser.h
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64.td
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64SchedM1.td
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/DSInstructions.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIDefines.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.h
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h
  projects/clang500-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRTargetMachine.h
  projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.h
  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/Hexagon/HexagonVLIWPacketizer.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.h
  projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsTargetMachine.h
  projects/clang500-import/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.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.h
  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/PPCTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.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/RISCV/RISCVTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.h
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.h
  projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86ISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86TargetMachine.h
  projects/clang500-import/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Coroutines/CoroCleanup.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Coroutines/CoroEarly.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Coroutines/CoroElide.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.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/GVN.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.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/SimplifyLibCalls.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  projects/clang500-import/contrib/llvm/tools/bugpoint/OptimizerDriver.cpp
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/VTableBuilder.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Module.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.def
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/TypeTraits.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/Options.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/Targets.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/ABIInfo.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.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/CGObjCRuntime.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.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/CodeGen/ItaniumCXXABI.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp
  projects/clang500-import/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp
  projects/clang500-import/contrib/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
  projects/clang500-import/contrib/llvm/tools/clang/utils/TableGen/ClangOptionDocEmitter.cpp
  projects/clang500-import/contrib/llvm/tools/clang/utils/TableGen/ClangSACheckersEmitter.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/InputSection.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/InputSection.h
  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/ScriptParser.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Symbols.cpp
  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/Writer.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-objdump/MachODump.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/Analyze.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/CompactTypeDumpVisitor.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/PdbYaml.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/PdbYaml.h
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/YAMLOutputStyle.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/YAMLOutputStyle.h
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp
  projects/clang500-import/contrib/llvm/tools/opt/NewPMDriver.cpp
  projects/clang500-import/contrib/llvm/tools/opt/NewPMDriver.h
  projects/clang500-import/contrib/llvm/tools/opt/opt.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/Attributes.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/CodeEmitterGen.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h
  projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenRegisters.h
  projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenSchedule.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/OptParserEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/RegisterBankEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/SearchableTableEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/X86FoldTablesEmitter.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/tools/build/mk/OptionalObsoleteFiles.inc
  projects/clang500-import/usr.bin/clang/llvm-pdbdump/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/include/sanitizer/coverage_interface.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h	Thu Jun  1 22:47:02 2017	(r319479)
@@ -32,9 +32,6 @@ extern "C" {
   // descriptor. Returns -1 on failure, or if coverage dumping is disabled.
   // This is intended for use by sandboxing code.
   intptr_t __sanitizer_maybe_open_cov_file(const char *name);
-  // Get the number of unique covered blocks (or edges).
-  // This can be useful for coverage-directed in-process fuzzers.
-  uintptr_t __sanitizer_get_total_unique_coverage();
 #ifdef __cplusplus
 }  // extern "C"
 #endif

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc	Thu Jun  1 22:47:02 2017	(r319479)
@@ -47,8 +47,6 @@ static u32 RZSize2Log(u32 rz_size) {
   return res;
 }
 
-static AsanAllocator &get_allocator();
-
 // The memory chunk allocated from the underlying allocator looks like this:
 // L L L L L L H H U U U U U U R R
 //   L -- left redzone words (0 or more bytes)
@@ -719,7 +717,7 @@ struct Allocator {
 
 static Allocator instance(LINKER_INITIALIZED);
 
-static AsanAllocator &get_allocator() {
+AsanAllocator &get_allocator() {
   return instance.allocator;
 }
 

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.h	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.h	Thu Jun  1 22:47:02 2017	(r319479)
@@ -213,5 +213,7 @@ void asan_mz_force_unlock();
 void PrintInternalAllocatorStats();
 void AsanSoftRssLimitExceededCallback(bool exceeded);
 
+AsanAllocator &get_allocator();
+
 }  // namespace __asan
 #endif  // ASAN_ALLOCATOR_H

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_flags.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_flags.cc	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_flags.cc	Thu Jun  1 22:47:02 2017	(r319479)
@@ -194,6 +194,10 @@ void InitializeFlags() {
     Report("WARNING: strchr* interceptors are enabled even though "
            "replace_str=0. Use intercept_strchr=0 to disable them.");
   }
+  if (!f->replace_str && common_flags()->intercept_strndup) {
+    Report("WARNING: strndup* interceptors are enabled even though "
+           "replace_str=0. Use intercept_strndup=0 to disable them.");
+  }
 }
 
 }  // namespace __asan

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc	Thu Jun  1 22:47:02 2017	(r319479)
@@ -22,6 +22,7 @@
 #include "asan_stats.h"
 #include "asan_suppressions.h"
 #include "lsan/lsan_common.h"
+#include "sanitizer_common/sanitizer_stackdepot.h"
 #include "sanitizer_common/sanitizer_libc.h"
 
 #if SANITIZER_POSIX
@@ -705,11 +706,27 @@ INTERCEPTOR(int, __cxa_atexit, void (*func)(void *), v
 #endif  // ASAN_INTERCEPT___CXA_ATEXIT
 
 #if ASAN_INTERCEPT_FORK
+static void BeforeFork() {
+  if (SANITIZER_LINUX) {
+    get_allocator().ForceLock();
+    StackDepotLockAll();
+  }
+}
+
+static void AfterFork() {
+  if (SANITIZER_LINUX) {
+    StackDepotUnlockAll();
+    get_allocator().ForceUnlock();
+  }
+}
+
 INTERCEPTOR(int, fork, void) {
   ENSURE_ASAN_INITED();
+  BeforeFork();
   if (common_flags()->coverage) CovBeforeFork();
   int pid = REAL(fork)();
   if (common_flags()->coverage) CovAfterFork(pid);
+  AfterFork();
   return pid;
 }
 #endif  // ASAN_INTERCEPT_FORK

Modified: projects/clang500-import/contrib/compiler-rt/lib/dfsan/done_abilist.txt
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/dfsan/done_abilist.txt	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/dfsan/done_abilist.txt	Thu Jun  1 22:47:02 2017	(r319479)
@@ -287,8 +287,6 @@ fun:__sanitizer_cov_with_check=uninstrumented
 fun:__sanitizer_cov_with_check=discard
 fun:__sanitizer_set_death_callback=uninstrumented
 fun:__sanitizer_set_death_callback=discard
-fun:__sanitizer_get_total_unique_coverage=uninstrumented
-fun:__sanitizer_get_total_unique_coverage=discard
 fun:__sanitizer_update_counter_bitset_and_clear_counters=uninstrumented
 fun:__sanitizer_update_counter_bitset_and_clear_counters=discard
 

Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc	Thu Jun  1 22:47:02 2017	(r319479)
@@ -22,6 +22,7 @@
 #include "sanitizer_common/sanitizer_platform_interceptors.h"
 #include "sanitizer_common/sanitizer_platform_limits_posix.h"
 #include "sanitizer_common/sanitizer_posix.h"
+#include "sanitizer_common/sanitizer_stackdepot.h"
 #include "sanitizer_common/sanitizer_tls_get_addr.h"
 #include "lsan.h"
 #include "lsan_allocator.h"
@@ -97,6 +98,28 @@ INTERCEPTOR(void*, valloc, uptr size) {
 }
 #endif
 
+static void BeforeFork() {
+  if (SANITIZER_LINUX) {
+    LockAllocator();
+    StackDepotLockAll();
+  }
+}
+
+static void AfterFork() {
+  if (SANITIZER_LINUX) {
+    StackDepotUnlockAll();
+    UnlockAllocator();
+  }
+}
+
+INTERCEPTOR(int, fork, void) {
+  ENSURE_LSAN_INITED;
+  BeforeFork();
+  int pid = REAL(fork)();
+  AfterFork();
+  return pid;
+}
+
 #if SANITIZER_INTERCEPT_MEMALIGN
 INTERCEPTOR(void*, memalign, uptr alignment, uptr size) {
   ENSURE_LSAN_INITED;
@@ -336,6 +359,7 @@ void InitializeInterceptors() {
   LSAN_MAYBE_INTERCEPT_MALLOPT;
   INTERCEPT_FUNCTION(pthread_create);
   INTERCEPT_FUNCTION(pthread_join);
+  INTERCEPT_FUNCTION(fork);
 
   if (pthread_key_create(&g_thread_finalize_key, &thread_finalize)) {
     Report("LeakSanitizer: failed to create thread key.\n");

Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc	Thu Jun  1 22:47:02 2017	(r319479)
@@ -12,8 +12,6 @@
 // MemorySanitizer allocator.
 //===----------------------------------------------------------------------===//
 
-#include "sanitizer_common/sanitizer_allocator.h"
-#include "sanitizer_common/sanitizer_allocator_interface.h"
 #include "msan.h"
 #include "msan_allocator.h"
 #include "msan_origin.h"
@@ -22,101 +20,11 @@
 
 namespace __msan {
 
-struct Metadata {
-  uptr requested_size;
-};
-
-struct MsanMapUnmapCallback {
-  void OnMap(uptr p, uptr size) const {}
-  void OnUnmap(uptr p, uptr size) const {
-    __msan_unpoison((void *)p, size);
-
-    // We are about to unmap a chunk of user memory.
-    // Mark the corresponding shadow memory as not needed.
-    uptr shadow_p = MEM_TO_SHADOW(p);
-    ReleaseMemoryPagesToOS(shadow_p, shadow_p + size);
-    if (__msan_get_track_origins()) {
-      uptr origin_p = MEM_TO_ORIGIN(p);
-      ReleaseMemoryPagesToOS(origin_p, origin_p + size);
-    }
-  }
-};
-
-#if defined(__mips64)
-  static const uptr kMaxAllowedMallocSize = 2UL << 30;
-  static const uptr kRegionSizeLog = 20;
-  static const uptr kNumRegions = SANITIZER_MMAP_RANGE_SIZE >> kRegionSizeLog;
-  typedef TwoLevelByteMap<(kNumRegions >> 12), 1 << 12> ByteMap;
-
-  struct AP32 {
-    static const uptr kSpaceBeg = 0;
-    static const u64 kSpaceSize = SANITIZER_MMAP_RANGE_SIZE;
-    static const uptr kMetadataSize = sizeof(Metadata);
-    typedef __sanitizer::CompactSizeClassMap SizeClassMap;
-    static const uptr kRegionSizeLog = __msan::kRegionSizeLog;
-    typedef __msan::ByteMap ByteMap;
-    typedef MsanMapUnmapCallback MapUnmapCallback;
-    static const uptr kFlags = 0;
-  };
-  typedef SizeClassAllocator32<AP32> PrimaryAllocator;
-#elif defined(__x86_64__)
-#if SANITIZER_LINUX && !defined(MSAN_LINUX_X86_64_OLD_MAPPING)
-  static const uptr kAllocatorSpace = 0x700000000000ULL;
-#else
-  static const uptr kAllocatorSpace = 0x600000000000ULL;
-#endif
-  static const uptr kMaxAllowedMallocSize = 8UL << 30;
-
-  struct AP64 {  // Allocator64 parameters. Deliberately using a short name.
-    static const uptr kSpaceBeg = kAllocatorSpace;
-    static const uptr kSpaceSize = 0x40000000000; // 4T.
-    static const uptr kMetadataSize = sizeof(Metadata);
-    typedef DefaultSizeClassMap SizeClassMap;
-    typedef MsanMapUnmapCallback MapUnmapCallback;
-    static const uptr kFlags = 0;
-  };
-
-  typedef SizeClassAllocator64<AP64> PrimaryAllocator;
-
-#elif defined(__powerpc64__)
-  static const uptr kMaxAllowedMallocSize = 2UL << 30;  // 2G
-
-  struct AP64 {  // Allocator64 parameters. Deliberately using a short name.
-    static const uptr kSpaceBeg = 0x300000000000;
-    static const uptr kSpaceSize = 0x020000000000; // 2T.
-    static const uptr kMetadataSize = sizeof(Metadata);
-    typedef DefaultSizeClassMap SizeClassMap;
-    typedef MsanMapUnmapCallback MapUnmapCallback;
-    static const uptr kFlags = 0;
-  };
-
-  typedef SizeClassAllocator64<AP64> PrimaryAllocator;
-#elif defined(__aarch64__)
-  static const uptr kMaxAllowedMallocSize = 2UL << 30;  // 2G
-  static const uptr kRegionSizeLog = 20;
-  static const uptr kNumRegions = SANITIZER_MMAP_RANGE_SIZE >> kRegionSizeLog;
-  typedef TwoLevelByteMap<(kNumRegions >> 12), 1 << 12> ByteMap;
-
-  struct AP32 {
-    static const uptr kSpaceBeg = 0;
-    static const u64 kSpaceSize = SANITIZER_MMAP_RANGE_SIZE;
-    static const uptr kMetadataSize = sizeof(Metadata);
-    typedef __sanitizer::CompactSizeClassMap SizeClassMap;
-    static const uptr kRegionSizeLog = __msan::kRegionSizeLog;
-    typedef __msan::ByteMap ByteMap;
-    typedef MsanMapUnmapCallback MapUnmapCallback;
-    static const uptr kFlags = 0;
-  };
-  typedef SizeClassAllocator32<AP32> PrimaryAllocator;
-#endif
-typedef SizeClassAllocatorLocalCache<PrimaryAllocator> AllocatorCache;
-typedef LargeMmapAllocator<MsanMapUnmapCallback> SecondaryAllocator;
-typedef CombinedAllocator<PrimaryAllocator, AllocatorCache,
-                          SecondaryAllocator> Allocator;
-
 static Allocator allocator;
 static AllocatorCache fallback_allocator_cache;
 static SpinMutex fallback_mutex;
+
+Allocator &get_allocator() { return allocator; }
 
 void MsanAllocatorInit() {
   allocator.Init(

Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.h	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.h	Thu Jun  1 22:47:02 2017	(r319479)
@@ -15,8 +15,105 @@
 #define MSAN_ALLOCATOR_H
 
 #include "sanitizer_common/sanitizer_common.h"
+#include "sanitizer_common/sanitizer_allocator.h"
+#include "sanitizer_common/sanitizer_allocator_interface.h"
 
 namespace __msan {
+
+struct Metadata {
+  uptr requested_size;
+};
+
+struct MsanMapUnmapCallback {
+  void OnMap(uptr p, uptr size) const {}
+  void OnUnmap(uptr p, uptr size) const {
+    __msan_unpoison((void *)p, size);
+
+    // We are about to unmap a chunk of user memory.
+    // Mark the corresponding shadow memory as not needed.
+    uptr shadow_p = MEM_TO_SHADOW(p);
+    ReleaseMemoryPagesToOS(shadow_p, shadow_p + size);
+    if (__msan_get_track_origins()) {
+      uptr origin_p = MEM_TO_ORIGIN(p);
+      ReleaseMemoryPagesToOS(origin_p, origin_p + size);
+    }
+  }
+};
+
+#if defined(__mips64)
+  static const uptr kMaxAllowedMallocSize = 2UL << 30;
+  static const uptr kRegionSizeLog = 20;
+  static const uptr kNumRegions = SANITIZER_MMAP_RANGE_SIZE >> kRegionSizeLog;
+  typedef TwoLevelByteMap<(kNumRegions >> 12), 1 << 12> ByteMap;
+
+  struct AP32 {
+    static const uptr kSpaceBeg = 0;
+    static const u64 kSpaceSize = SANITIZER_MMAP_RANGE_SIZE;
+    static const uptr kMetadataSize = sizeof(Metadata);
+    typedef __sanitizer::CompactSizeClassMap SizeClassMap;
+    static const uptr kRegionSizeLog = __msan::kRegionSizeLog;
+    typedef __msan::ByteMap ByteMap;
+    typedef MsanMapUnmapCallback MapUnmapCallback;
+    static const uptr kFlags = 0;
+  };
+  typedef SizeClassAllocator32<AP32> PrimaryAllocator;
+#elif defined(__x86_64__)
+#if SANITIZER_LINUX && !defined(MSAN_LINUX_X86_64_OLD_MAPPING)
+  static const uptr kAllocatorSpace = 0x700000000000ULL;
+#else
+  static const uptr kAllocatorSpace = 0x600000000000ULL;
+#endif
+  static const uptr kMaxAllowedMallocSize = 8UL << 30;
+
+  struct AP64 {  // Allocator64 parameters. Deliberately using a short name.
+    static const uptr kSpaceBeg = kAllocatorSpace;
+    static const uptr kSpaceSize = 0x40000000000; // 4T.
+    static const uptr kMetadataSize = sizeof(Metadata);
+    typedef DefaultSizeClassMap SizeClassMap;
+    typedef MsanMapUnmapCallback MapUnmapCallback;
+    static const uptr kFlags = 0;
+  };
+
+  typedef SizeClassAllocator64<AP64> PrimaryAllocator;
+
+#elif defined(__powerpc64__)
+  static const uptr kMaxAllowedMallocSize = 2UL << 30;  // 2G
+
+  struct AP64 {  // Allocator64 parameters. Deliberately using a short name.
+    static const uptr kSpaceBeg = 0x300000000000;
+    static const uptr kSpaceSize = 0x020000000000; // 2T.
+    static const uptr kMetadataSize = sizeof(Metadata);
+    typedef DefaultSizeClassMap SizeClassMap;
+    typedef MsanMapUnmapCallback MapUnmapCallback;
+    static const uptr kFlags = 0;
+  };
+
+  typedef SizeClassAllocator64<AP64> PrimaryAllocator;
+#elif defined(__aarch64__)
+  static const uptr kMaxAllowedMallocSize = 2UL << 30;  // 2G
+  static const uptr kRegionSizeLog = 20;
+  static const uptr kNumRegions = SANITIZER_MMAP_RANGE_SIZE >> kRegionSizeLog;
+  typedef TwoLevelByteMap<(kNumRegions >> 12), 1 << 12> ByteMap;
+
+  struct AP32 {
+    static const uptr kSpaceBeg = 0;
+    static const u64 kSpaceSize = SANITIZER_MMAP_RANGE_SIZE;
+    static const uptr kMetadataSize = sizeof(Metadata);
+    typedef __sanitizer::CompactSizeClassMap SizeClassMap;
+    static const uptr kRegionSizeLog = __msan::kRegionSizeLog;
+    typedef __msan::ByteMap ByteMap;
+    typedef MsanMapUnmapCallback MapUnmapCallback;
+    static const uptr kFlags = 0;
+  };
+  typedef SizeClassAllocator32<AP32> PrimaryAllocator;
+#endif
+typedef SizeClassAllocatorLocalCache<PrimaryAllocator> AllocatorCache;
+typedef LargeMmapAllocator<MsanMapUnmapCallback> SecondaryAllocator;
+typedef CombinedAllocator<PrimaryAllocator, AllocatorCache,
+                          SecondaryAllocator> Allocator;
+
+
+Allocator &get_allocator();
 
 struct MsanThreadLocalMallocStorage {
   uptr quarantine_cache[16];

Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc	Thu Jun  1 22:47:02 2017	(r319479)
@@ -341,33 +341,6 @@ INTERCEPTOR(char *, __strdup, char *src) {
 #define MSAN_MAYBE_INTERCEPT___STRDUP
 #endif
 
-INTERCEPTOR(char *, strndup, char *src, SIZE_T n) {
-  ENSURE_MSAN_INITED();
-  GET_STORE_STACK_TRACE;
-  // On FreeBSD strndup() leverages strnlen().
-  InterceptorScope interceptor_scope;
-  SIZE_T copy_size = REAL(strnlen)(src, n);
-  char *res = REAL(strndup)(src, n);
-  CopyShadowAndOrigin(res, src, copy_size, &stack);
-  __msan_unpoison(res + copy_size, 1); // \0
-  return res;
-}
-
-#if !SANITIZER_FREEBSD
-INTERCEPTOR(char *, __strndup, char *src, SIZE_T n) {
-  ENSURE_MSAN_INITED();
-  GET_STORE_STACK_TRACE;
-  SIZE_T copy_size = REAL(strnlen)(src, n);
-  char *res = REAL(__strndup)(src, n);
-  CopyShadowAndOrigin(res, src, copy_size, &stack);
-  __msan_unpoison(res + copy_size, 1); // \0
-  return res;
-}
-#define MSAN_MAYBE_INTERCEPT___STRNDUP INTERCEPT_FUNCTION(__strndup)
-#else
-#define MSAN_MAYBE_INTERCEPT___STRNDUP
-#endif
-
 INTERCEPTOR(char *, gcvt, double number, SIZE_T ndigit, char *buf) {
   ENSURE_MSAN_INITED();
   char *res = REAL(gcvt)(number, ndigit, buf);
@@ -1228,6 +1201,7 @@ INTERCEPTOR(void *, shmat, int shmid, const void *shma
 }
 
 static void BeforeFork() {
+  get_allocator().ForceLock();
   StackDepotLockAll();
   ChainedOriginDepotLockAll();
 }
@@ -1235,6 +1209,7 @@ static void BeforeFork() {
 static void AfterFork() {
   ChainedOriginDepotUnlockAll();
   StackDepotUnlockAll();
+  get_allocator().ForceUnlock();
 }
 
 INTERCEPTOR(int, fork, void) {
@@ -1371,6 +1346,13 @@ int OnExit() {
     return __msan_memcpy(to, from, size);                   \
   }
 
+#define COMMON_INTERCEPTOR_COPY_STRING(ctx, to, from, size)                    \
+  do {                                                                         \
+    GET_STORE_STACK_TRACE;                                                     \
+    CopyShadowAndOrigin(to, from, size, &stack);                               \
+    __msan_unpoison(to + size, 1);                                             \
+  } while (false)
+
 #include "sanitizer_common/sanitizer_platform_interceptors.h"
 #include "sanitizer_common/sanitizer_common_interceptors.inc"
 
@@ -1538,8 +1520,6 @@ void InitializeInterceptors() {
   INTERCEPT_FUNCTION(stpcpy);  // NOLINT
   INTERCEPT_FUNCTION(strdup);
   MSAN_MAYBE_INTERCEPT___STRDUP;
-  INTERCEPT_FUNCTION(strndup);
-  MSAN_MAYBE_INTERCEPT___STRNDUP;
   INTERCEPT_FUNCTION(strncpy);  // NOLINT
   INTERCEPT_FUNCTION(gcvt);
   INTERCEPT_FUNCTION(strcat);  // NOLINT

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc	Thu Jun  1 22:47:02 2017	(r319479)
@@ -34,6 +34,8 @@
 //   COMMON_INTERCEPTOR_MEMSET_IMPL
 //   COMMON_INTERCEPTOR_MEMMOVE_IMPL
 //   COMMON_INTERCEPTOR_MEMCPY_IMPL
+//   COMMON_INTERCEPTOR_COPY_STRING
+//   COMMON_INTERCEPTOR_STRNDUP_IMPL
 //===----------------------------------------------------------------------===//
 
 #include "interception/interception.h"
@@ -217,6 +219,24 @@ bool PlatformHasDifferentMemcpyAndMemmove();
   }
 #endif
 
+#ifndef COMMON_INTERCEPTOR_COPY_STRING
+#define COMMON_INTERCEPTOR_COPY_STRING(ctx, to, from, size) {}
+#endif
+
+#ifndef COMMON_INTERCEPTOR_STRNDUP_IMPL
+#define COMMON_INTERCEPTOR_STRNDUP_IMPL(ctx, s, size)                          \
+  COMMON_INTERCEPTOR_ENTER(ctx, strndup, s, size);                             \
+  uptr copy_length = internal_strnlen(s, size);                                \
+  char *new_mem = (char *)WRAP(malloc)(copy_length + 1);                       \
+  if (common_flags()->intercept_strndup) {                                     \
+    COMMON_INTERCEPTOR_READ_STRING(ctx, s, Min(size, copy_length + 1));        \
+  }                                                                            \
+  COMMON_INTERCEPTOR_COPY_STRING(ctx, new_mem, s, copy_length);                \
+  internal_memcpy(new_mem, s, copy_length);                                    \
+  new_mem[copy_length] = '\0';                                                 \
+  return new_mem;
+#endif
+
 struct FileMetadata {
   // For open_memstream().
   char **addr;
@@ -300,6 +320,26 @@ INTERCEPTOR(SIZE_T, strnlen, const char *s, SIZE_T max
 #define INIT_STRNLEN
 #endif
 
+#if SANITIZER_INTERCEPT_STRNDUP
+INTERCEPTOR(char*, strndup, const char *s, uptr size) {
+  void *ctx;
+  COMMON_INTERCEPTOR_STRNDUP_IMPL(ctx, s, size);
+}
+#define INIT_STRNDUP COMMON_INTERCEPT_FUNCTION(strndup)
+#else
+#define INIT_STRNDUP
+#endif // SANITIZER_INTERCEPT_STRNDUP
+
+#if SANITIZER_INTERCEPT___STRNDUP
+INTERCEPTOR(char*, __strndup, const char *s, uptr size) {
+  void *ctx;
+  COMMON_INTERCEPTOR_STRNDUP_IMPL(ctx, s, size);
+}
+#define INIT___STRNDUP COMMON_INTERCEPT_FUNCTION(__strndup)
+#else
+#define INIT___STRNDUP
+#endif // SANITIZER_INTERCEPT___STRNDUP
+
 #if SANITIZER_INTERCEPT_TEXTDOMAIN
 INTERCEPTOR(char*, textdomain, const char *domainname) {
   void *ctx;
@@ -6163,6 +6203,8 @@ static void InitializeCommonInterceptors() {
   INIT_TEXTDOMAIN;
   INIT_STRLEN;
   INIT_STRNLEN;
+  INIT_STRNDUP;
+  INIT___STRNDUP;
   INIT_STRCMP;
   INIT_STRNCMP;
   INIT_STRCASECMP;

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_interface.inc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_interface.inc	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_interface.inc	Thu Jun  1 22:47:02 2017	(r319479)
@@ -8,14 +8,9 @@
 //===----------------------------------------------------------------------===//
 // Sanitizer Coverage interface list.
 //===----------------------------------------------------------------------===//
-INTERFACE_FUNCTION(__sanitizer_cov)
 INTERFACE_FUNCTION(__sanitizer_cov_dump)
-INTERFACE_FUNCTION(__sanitizer_cov_init)
-INTERFACE_FUNCTION(__sanitizer_cov_module_init)
-INTERFACE_FUNCTION(__sanitizer_cov_with_check)
 INTERFACE_FUNCTION(__sanitizer_dump_coverage)
 INTERFACE_FUNCTION(__sanitizer_dump_trace_pc_guard_coverage)
-INTERFACE_FUNCTION(__sanitizer_get_total_unique_coverage)
 INTERFACE_FUNCTION(__sanitizer_maybe_open_cov_file)
 INTERFACE_WEAK_FUNCTION(__sancov_default_options)
 INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_cmp)

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc	Thu Jun  1 22:47:02 2017	(r319479)
@@ -155,13 +155,6 @@ void CoverageData::DirectOpen() {
 
 void CoverageData::Init() {
   pc_fd = kInvalidFd;
-
-  if (!common_flags()->coverage) return;
-  Printf("**\n***\n***\n");
-  Printf("**WARNING: this implementation of SanitizerCoverage is deprecated\n");
-  Printf("**WARNING: and will be removed in future versions\n");
-  Printf("**WARNING: See https://clang.llvm.org/docs/SanitizerCoverage.html\n");
-  Printf("**\n***\n***\n");
 }
 
 void CoverageData::Enable() {
@@ -495,6 +488,12 @@ static void GenerateHtmlReport(const InternalMmapVecto
 void CoverageData::DumpOffsets() {
   auto sym = Symbolizer::GetOrInit();
   if (!common_flags()->coverage_pcs) return;
+  Printf("**\n***\n***\n");
+  Printf("**WARNING: this implementation of SanitizerCoverage is deprecated\n");
+  Printf("**WARNING: and will be removed in future versions\n");
+  Printf("**WARNING: See https://clang.llvm.org/docs/SanitizerCoverage.html\n");
+  Printf("**\n***\n***\n");
+
   CHECK_NE(sym, nullptr);
   InternalMmapVector<uptr> offsets(0);
   InternalScopedString path(kMaxPathLength);
@@ -607,47 +606,13 @@ void CoverageUpdateMapping() {
 } // namespace __sanitizer
 
 extern "C" {
-SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov(u32 *guard) {
-  coverage_data.Add(StackTrace::GetPreviousInstructionPc(GET_CALLER_PC()),
-                    guard);
-}
-SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_with_check(u32 *guard) {
-  atomic_uint32_t *atomic_guard = reinterpret_cast<atomic_uint32_t*>(guard);
-  if (static_cast<s32>(
-          __sanitizer::atomic_load(atomic_guard, memory_order_relaxed)) < 0)
-  coverage_data.Add(StackTrace::GetPreviousInstructionPc(GET_CALLER_PC()),
-                    guard);
-}
-SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_init() {
-  coverage_enabled = true;
-  coverage_dir = common_flags()->coverage_dir;
-  coverage_data.Init();
-}
 SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_dump() {
-  coverage_data.DumpAll();
   __sanitizer_dump_trace_pc_guard_coverage();
 }
-SANITIZER_INTERFACE_ATTRIBUTE void
-__sanitizer_cov_module_init(s32 *guards, uptr npcs, u8 *counters,
-                            const char *comp_unit_name) {
-  coverage_data.InitializeGuards(guards, npcs, comp_unit_name, GET_CALLER_PC());
-  if (!common_flags()->coverage_direct) return;
-  if (SANITIZER_ANDROID && coverage_enabled) {
-    // dlopen/dlclose interceptors do not work on Android, so we rely on
-    // Extend() calls to update .sancov.map.
-    CovUpdateMapping(coverage_dir, GET_CALLER_PC());
-  }
-  coverage_data.Extend(npcs);
-}
 SANITIZER_INTERFACE_ATTRIBUTE
 sptr __sanitizer_maybe_open_cov_file(const char *name) {
   return (sptr)MaybeOpenCovFile(name);
 }
-SANITIZER_INTERFACE_ATTRIBUTE
-uptr __sanitizer_get_total_unique_coverage() {
-  return atomic_load(&coverage_counter, memory_order_relaxed);
-}
-
 // Default empty implementations (weak). Users should redefine them.
 SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_cmp, void) {}
 SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_cmp1, void) {}

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc	Thu Jun  1 22:47:02 2017	(r319479)
@@ -49,7 +49,7 @@ static void WriteModuleCoverage(char* file_path, const
   WriteToFile(fd, &Magic, sizeof(Magic));
   WriteToFile(fd, pcs, len * sizeof(*pcs));
   CloseFile(fd);
-  Printf("SanitizerCoverage: %s %zd PCs written\n", file_path, len);
+  Printf("SanitizerCoverage: %s: %zd PCs written\n", file_path, len);
 }
 
 static void SanitizerDumpCoverage(const uptr* unsorted_pcs, uptr len) {
@@ -71,7 +71,7 @@ static void SanitizerDumpCoverage(const uptr* unsorted
     if (!pc) continue;
 
     if (!__sanitizer_get_module_and_offset_for_pc(pc, nullptr, 0, &pcs[i])) {
-      Printf("ERROR: bad pc %x\n", pc);
+      Printf("ERROR: unknown pc 0x%x (may happen if dlclose is used)\n", pc);
       continue;
     }
     uptr module_base = pc - pcs[i];

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	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc	Thu Jun  1 22:47:02 2017	(r319479)
@@ -197,6 +197,9 @@ COMMON_FLAG(bool, intercept_strpbrk, true,
 COMMON_FLAG(bool, intercept_strlen, true,
             "If set, uses custom wrappers for strlen and strnlen functions "
             "to find more errors.")
+COMMON_FLAG(bool, intercept_strndup, true,
+            "If set, uses custom wrappers for strndup functions "
+            "to find more errors.")
 COMMON_FLAG(bool, intercept_strchr, true,
             "If set, uses custom wrappers for strchr, strchrnul, and strrchr "
             "functions to find more errors.")

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h	Thu Jun  1 22:47:02 2017	(r319479)
@@ -25,6 +25,12 @@
 # define SI_NOT_WINDOWS 0
 #endif
 
+#if SANITIZER_POSIX
+# define SI_POSIX 1
+#else
+# define SI_POSIX 0
+#endif
+
 #if SANITIZER_LINUX && !SANITIZER_ANDROID
 # define SI_LINUX_NOT_ANDROID 1
 #else
@@ -69,6 +75,12 @@
 # define SI_UNIX_NOT_MAC 0
 #endif
 
+#if SANITIZER_LINUX && !SANITIZER_FREEBSD
+# define SI_LINUX_NOT_FREEBSD 1
+# else
+# define SI_LINUX_NOT_FREEBSD 0
+#endif
+
 #define SANITIZER_INTERCEPT_STRLEN 1
 #define SANITIZER_INTERCEPT_STRNLEN SI_NOT_MAC
 #define SANITIZER_INTERCEPT_STRCMP 1
@@ -86,6 +98,8 @@
 #define SANITIZER_INTERCEPT_MEMMOVE 1
 #define SANITIZER_INTERCEPT_MEMCPY 1
 #define SANITIZER_INTERCEPT_MEMCMP 1
+#define SANITIZER_INTERCEPT_STRNDUP SI_POSIX
+#define SANITIZER_INTERCEPT___STRNDUP SI_LINUX_NOT_FREEBSD
 #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \
     __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070
 # define SI_MAC_DEPLOYMENT_BELOW_10_7 1

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt	Thu Jun  1 22:47:02 2017	(r319479)
@@ -59,6 +59,7 @@ getpagesize U
 getpid U
 gettimeofday U
 ioctl U
+isalpha U
 isatty U
 isprint U
 isupper U

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	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc	Thu Jun  1 22:47:02 2017	(r319479)
@@ -197,7 +197,7 @@ struct VtablePrefix {
 };
 VtablePrefix *getVtablePrefix(void *Vtable) {
   VtablePrefix *Vptr = reinterpret_cast<VtablePrefix*>(Vtable);
-  if (!Vptr)
+  if (!IsAccessibleMemoryRange((uptr)Vptr, sizeof(VtablePrefix)))
     return nullptr;
   VtablePrefix *Prefix = Vptr - 1;
   if (!Prefix->TypeInfo)

Modified: projects/clang500-import/contrib/libc++/include/__bit_reference
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__bit_reference	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/libc++/include/__bit_reference	Thu Jun  1 22:47:02 2017	(r319479)
@@ -14,12 +14,14 @@
 #include <__config>
 #include <algorithm>
 
-#include <__undef_min_max>
-
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
+_LIBCPP_PUSH_MACROS
+#include <__undef_macros>
+
+
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 template <class _Cp, bool _IsConst, typename _Cp::__storage_type = 0> class __bit_iterator;
@@ -1272,5 +1274,7 @@ class __bit_iterator (private)
 };
 
 _LIBCPP_END_NAMESPACE_STD
+
+_LIBCPP_POP_MACROS
 
 #endif  // _LIBCPP___BIT_REFERENCE

Modified: projects/clang500-import/contrib/libc++/include/__config
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__config	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/libc++/include/__config	Thu Jun  1 22:47:02 2017	(r319479)
@@ -220,10 +220,12 @@
 #endif  // __NetBSD__
 
 #if defined(_WIN32)
-#  define _LIBCPP_WIN32API      1
+#  define _LIBCPP_WIN32API
 #  define _LIBCPP_LITTLE_ENDIAN 1
 #  define _LIBCPP_BIG_ENDIAN    0
 #  define _LIBCPP_SHORT_WCHAR   1
+// Both MinGW and native MSVC provide a "MSVC"-like enviroment
+#  define _LIBCPP_MSVCRT_LIKE
 // If mingw not explicitly detected, assume using MS C runtime only.
 #  ifndef __MINGW32__
 #    define _LIBCPP_MSVCRT // Using Microsoft's C Runtime library
@@ -1204,5 +1206,35 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
       __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ <= 70000))
 #define _LIBCPP_AVAILABILITY_NO_STREAMS_EXTERN_TEMPLATE
 #endif
+
+#if defined(_LIBCPP_COMPILER_IBM)
+#define _LIBCPP_HAS_NO_PRAGMA_PUSH_POP_MACRO
+#endif
+
+#if defined(_LIBCPP_HAS_NO_PRAGMA_PUSH_POP_MACRO)
+# define _LIBCPP_PUSH_MACROS
+# define _LIBCPP_POP_MACROS
+#else
+  // Don't warn about macro conflicts when we can restore them at the
+  // end of the header.
+# ifndef _LIBCPP_DISABLE_MACRO_CONFLICT_WARNINGS
+#   define _LIBCPP_DISABLE_MACRO_CONFLICT_WARNINGS
+# endif
+# if defined(_LIBCPP_COMPILER_MSVC)
+#   define _LIBCPP_PUSH_MACROS    \
+      __pragma(push_macro("min")) \
+      __pragma(push_macro("max"))
+#   define _LIBCPP_POP_MACROS     \
+      __pragma(pop_macro("min"))  \
+      __pragma(pop_macro("max"))
+# else
+#   define _LIBCPP_PUSH_MACROS        \
+      _Pragma("push_macro(\"min\")")  \
+      _Pragma("push_macro(\"max\")")
+#   define _LIBCPP_POP_MACROS         \
+      _Pragma("pop_macro(\"min\")")   \
+      _Pragma("pop_macro(\"max\")")
+# endif
+#endif // defined(_LIBCPP_HAS_NO_PRAGMA_PUSH_POP_MACRO)
 
 #endif // _LIBCPP_CONFIG

Modified: projects/clang500-import/contrib/libc++/include/__hash_table
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__hash_table	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/libc++/include/__hash_table	Thu Jun  1 22:47:02 2017	(r319479)
@@ -20,17 +20,18 @@
 #include <utility>
 #include <type_traits>
 
-#include <__undef_min_max>
-
 #include <__debug>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
-_LIBCPP_BEGIN_NAMESPACE_STD
+_LIBCPP_PUSH_MACROS
+#include <__undef_macros>
 
 
+_LIBCPP_BEGIN_NAMESPACE_STD
+
 #ifndef _LIBCPP_CXX03_LANG
 template <class _Key, class _Tp>
 union __hash_value_type;
@@ -2667,6 +2668,9 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__subscripta
 }
 
 #endif  // _LIBCPP_DEBUG_LEVEL >= 2
+
 _LIBCPP_END_NAMESPACE_STD
+
+_LIBCPP_POP_MACROS
 
 #endif  // _LIBCPP__HASH_TABLE

Modified: projects/clang500-import/contrib/libc++/include/__locale
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__locale	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/libc++/include/__locale	Thu Jun  1 22:47:02 2017	(r319479)
@@ -19,7 +19,7 @@
 #include <cstdint>
 #include <cctype>
 #include <locale.h>
-#if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
+#if defined(_LIBCPP_MSVCRT_LIKE)
 # include <support/win32/locale_win32.h>
 #elif defined(_AIX)
 # include <support/ibm/xlocale.h>
@@ -367,7 +367,7 @@ class _LIBCPP_TYPE_VIS ctype_base (public)
     static const mask punct  = _ISpunct;
     static const mask xdigit = _ISxdigit;
     static const mask blank  = _ISblank;
-#elif defined(_LIBCPP_MSVCRT)
+#elif defined(_LIBCPP_MSVCRT_LIKE)
     typedef unsigned short mask;
     static const mask space  = _SPACE;
     static const mask print  = _BLANK|_PUNCT|_ALPHA|_DIGIT;

Modified: projects/clang500-import/contrib/libc++/include/__mutex_base
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__mutex_base	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/libc++/include/__mutex_base	Thu Jun  1 22:47:02 2017	(r319479)
@@ -15,12 +15,16 @@
 #include <chrono>
 #include <system_error>
 #include <__threading_support>
-#include <__undef_min_max>
 
+
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
+_LIBCPP_PUSH_MACROS
+#include <__undef_macros>
+
+
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 #ifndef _LIBCPP_HAS_NO_THREADS
@@ -427,5 +431,7 @@ condition_variable::wait_for(unique_lock<mutex>& __lk,
 #endif // !_LIBCPP_HAS_NO_THREADS
 
 _LIBCPP_END_NAMESPACE_STD
+
+_LIBCPP_POP_MACROS
 
 #endif  // _LIBCPP___MUTEX_BASE

Modified: projects/clang500-import/contrib/libc++/include/__split_buffer
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__split_buffer	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/libc++/include/__split_buffer	Thu Jun  1 22:47:02 2017	(r319479)
@@ -6,12 +6,14 @@
 #include <type_traits>
 #include <algorithm>
 
-#include <__undef_min_max>
-
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
+_LIBCPP_PUSH_MACROS
+#include <__undef_macros>
+
+
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 template <bool>
@@ -628,7 +630,8 @@ swap(__split_buffer<_Tp, _Allocator>& __x, __split_buf
     __x.swap(__y);
 }
 
-
 _LIBCPP_END_NAMESPACE_STD
+
+_LIBCPP_POP_MACROS
 
 #endif  // _LIBCPP_SPLIT_BUFFER

Modified: projects/clang500-import/contrib/libc++/include/__std_stream
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__std_stream	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/libc++/include/__std_stream	Thu Jun  1 22:47:02 2017	(r319479)
@@ -17,12 +17,14 @@
 #include <__locale>
 #include <cstdio>
 
-#include <__undef_min_max>
-
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
+_LIBCPP_PUSH_MACROS
+#include <__undef_macros>
+
+
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 static const int __limit = 8;
@@ -354,5 +356,7 @@ __stdoutbuf<_CharT>::imbue(const locale& __loc)
 }
 
 _LIBCPP_END_NAMESPACE_STD
+
+_LIBCPP_POP_MACROS
 
 #endif  // _LIBCPP___STD_STREAM

Modified: projects/clang500-import/contrib/libc++/include/__string
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__string	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/libc++/include/__string	Thu Jun  1 22:47:02 2017	(r319479)
@@ -57,14 +57,16 @@ template <> struct char_traits<wchar_t>;
 #include <cstdio>     // For EOF.
 #include <memory>     // for __murmur2_or_cityhash
 
-#include <__undef_min_max>
-
 #include <__debug>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
+_LIBCPP_PUSH_MACROS
+#include <__undef_macros>
+
+
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 // char_traits
@@ -869,5 +871,7 @@ struct __quoted_output_proxy
 };
 
 _LIBCPP_END_NAMESPACE_STD
+
+_LIBCPP_POP_MACROS
 
 #endif  // _LIBCPP___STRING

Modified: projects/clang500-import/contrib/libc++/include/__threading_support
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__threading_support	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/libc++/include/__threading_support	Thu Jun  1 22:47:02 2017	(r319479)
@@ -30,9 +30,12 @@
 #include <windows.h>
 #include <process.h>
 #include <fibersapi.h>
-#include <__undef_min_max>
 #endif
 
+_LIBCPP_PUSH_MACROS
+#include <__undef_macros>
+
+
 #if defined(_LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL) || \
     defined(_LIBCPP_BUILDING_THREAD_LIBRARY_EXTERNAL)
 #define _LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_FUNC_VIS
@@ -628,6 +631,8 @@ int __libcpp_tls_set(__libcpp_tls_key __key, void *__p
 #endif // !_LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL || _LIBCPP_BUILDING_THREAD_LIBRARY_EXTERNAL
 
 _LIBCPP_END_NAMESPACE_STD
+
+_LIBCPP_POP_MACROS
 
 #endif // !_LIBCPP_HAS_NO_THREADS
 

Modified: projects/clang500-import/contrib/libc++/include/__tree
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__tree	Thu Jun  1 22:13:46 2017	(r319478)
+++ projects/clang500-import/contrib/libc++/include/__tree	Thu Jun  1 22:47:02 2017	(r319479)
@@ -17,12 +17,14 @@
 #include <stdexcept>
 #include <algorithm>
 
-#include <__undef_min_max>
-
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
+_LIBCPP_PUSH_MACROS
+#include <__undef_macros>
+
+
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 template <class _Tp, class _Compare, class _Allocator> class __tree;
@@ -2684,5 +2686,7 @@ swap(__tree<_Tp, _Compare, _Allocator>& __x,
 }
 
 _LIBCPP_END_NAMESPACE_STD
+

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



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