svn commit: r321238 - in projects/clang500-import: contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/compiler-rt/lib/lsan contrib/compiler-rt/lib/msan contrib/compiler-rt/lib/sa...

Dimitry Andric dim at FreeBSD.org
Wed Jul 19 19:41:45 UTC 2017


Author: dim
Date: Wed Jul 19 19:41:41 2017
New Revision: 321238
URL: https://svnweb.freebsd.org/changeset/base/321238

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

Added:
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h
     - copied unchanged from r321217, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_checks.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/GUID.h
     - copied unchanged from r321217, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/GUID.h
  projects/clang500-import/contrib/llvm/include/llvm/ToolDrivers/llvm-dlltool/
     - copied from r321217, vendor/llvm/dist/include/llvm/ToolDrivers/llvm-dlltool/
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp
     - copied unchanged from r321217, vendor/llvm/dist/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ14.td
     - copied unchanged from r321217, vendor/llvm/dist/lib/Target/SystemZ/SystemZScheduleZ14.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86CmovConversion.cpp
     - copied unchanged from r321217, vendor/llvm/dist/lib/Target/X86/X86CmovConversion.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86ScheduleZnver1.td
     - copied unchanged from r321217, vendor/llvm/dist/lib/Target/X86/X86ScheduleZnver1.td
  projects/clang500-import/contrib/llvm/lib/ToolDrivers/llvm-dlltool/
     - copied from r321217, vendor/llvm/dist/lib/ToolDrivers/llvm-dlltool/
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h
     - copied unchanged from r321217, vendor/clang/dist/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h
Deleted:
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeServerHandler.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBTypeServerHandler.h
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PDBTypeServerHandler.cpp
  projects/clang500-import/contrib/llvm/lib/ToolDrivers/llvm-dlltool/CMakeLists.txt
  projects/clang500-import/contrib/llvm/lib/ToolDrivers/llvm-dlltool/LLVMBuild.txt
Modified:
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc
  projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c
  projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc
  projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc
  projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.h
  projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc
  projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc
  projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc
  projects/clang500-import/contrib/compiler-rt/lib/msan/msan.h
  projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc
  projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc
  projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
  projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp
  projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_allocator_combined.h
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.h
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_defs.h
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
  projects/clang500-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc
  projects/clang500-import/contrib/libc++/include/__config
  projects/clang500-import/contrib/libc++/include/algorithm
  projects/clang500-import/contrib/libc++/include/string
  projects/clang500-import/contrib/libc++/include/vector
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/DominanceFrontier.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/DominanceFrontierImpl.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/LoopInfo.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/LoopInfoImpl.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/PostDominators.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/CodeGen/BasicTTIImpl.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineDominators.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachinePostDominators.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.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/TypeRecord.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/GenericError.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/Formatters.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStream.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h
  projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
  projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/CallingConv.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Constants.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/DIBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/DebugInfoMetadata.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Dominators.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/IntrinsicsHexagon.td
  projects/clang500-import/contrib/llvm/include/llvm/IR/IntrinsicsSystemZ.td
  projects/clang500-import/contrib/llvm/include/llvm/MC/LaneBitmask.h
  projects/clang500-import/contrib/llvm/include/llvm/MC/MCFixup.h
  projects/clang500-import/contrib/llvm/include/llvm/MC/MCInstrDesc.h
  projects/clang500-import/contrib/llvm/include/llvm/Object/COFFImportFile.h
  projects/clang500-import/contrib/llvm/include/llvm/Object/COFFModuleDefinition.h
  projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/AArch64TargetParser.def
  projects/clang500-import/contrib/llvm/include/llvm/Support/BinaryItemStream.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/Format.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/GenericDomTree.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/TargetParser.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/YAMLTraits.h
  projects/clang500-import/contrib/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
  projects/clang500-import/contrib/llvm/include/llvm/Target/TargetLowering.h
  projects/clang500-import/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/DominanceFrontier.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/InstCount.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/IteratedDominanceFrontier.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/LazyCallGraph.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/LoopInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/MemorySSA.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/PostDominators.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/AsmParser/LLLexer.cpp
  projects/clang500-import/contrib/llvm/lib/AsmParser/LLParser.cpp
  projects/clang500-import/contrib/llvm/lib/AsmParser/LLToken.h
  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/DwarfCompileUnit.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/MachineCombiner.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineDominanceFrontier.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineDominators.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachinePostDominators.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/XRayInstrumentation.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/Formatters.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/CodeView/TypeStreamMerger.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/GenericError.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStream.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStreamBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/PDBExtras.cpp
  projects/clang500-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h
  projects/clang500-import/contrib/llvm/lib/IR/AsmWriter.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Constants.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Core.cpp
  projects/clang500-import/contrib/llvm/lib/IR/DIBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/IR/DebugInfoMetadata.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Dominators.cpp
  projects/clang500-import/contrib/llvm/lib/IR/LLVMContextImpl.h
  projects/clang500-import/contrib/llvm/lib/IR/LegacyPassManager.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Module.cpp
  projects/clang500-import/contrib/llvm/lib/Object/ArchiveWriter.cpp
  projects/clang500-import/contrib/llvm/lib/Object/COFFImportFile.cpp
  projects/clang500-import/contrib/llvm/lib/Object/COFFModuleDefinition.cpp
  projects/clang500-import/contrib/llvm/lib/Object/COFFObjectFile.cpp
  projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp
  projects/clang500-import/contrib/llvm/lib/Option/OptTable.cpp
  projects/clang500-import/contrib/llvm/lib/Support/ErrorHandling.cpp
  projects/clang500-import/contrib/llvm/lib/Support/Host.cpp
  projects/clang500-import/contrib/llvm/lib/Support/Path.cpp
  projects/clang500-import/contrib/llvm/lib/Support/TargetParser.cpp
  projects/clang500-import/contrib/llvm/lib/Support/YAMLTraits.cpp
  projects/clang500-import/contrib/llvm/lib/Support/raw_ostream.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64.h
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64.td
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrAtomics.td
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.h
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOP2Instructions.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOP3Instructions.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOP3PInstructions.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOPCInstructions.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOPInstructions.td
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARM.td
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMInstructionSelector.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMMCInstLower.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h
  projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsics.td
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonPatterns.td
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h
  projects/clang500-import/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/Mips.td
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsMTInstrFormats.td
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsMTInstrInfo.td
  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/MipsSchedule.td
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSubtarget.h
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsTargetStreamer.h
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
  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/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/PPCTargetMachine.h
  projects/clang500-import/contrib/llvm/lib/Target/Sparc/Sparc.td
  projects/clang500-import/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/Sparc/SparcSubtarget.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Sparc/SparcSubtarget.h
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZFeatures.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrFP.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrSystem.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrVector.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZOperators.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZPatterns.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZProcessors.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZSchedule.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZShortenInst.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.h
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
  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/X86/X86.h
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86CallingConv.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86FastISel.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86FixupBWInsts.cpp
  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/X86RegisterInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86Schedule.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86ScheduleBtVer2.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86Subtarget.h
  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/Transforms/IPO/GlobalOpt.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/Inliner.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/GVN.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
  projects/clang500-import/contrib/llvm/tools/clang/include/clang-c/Index.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/Type.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Dominators.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Attr.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsHexagon.def
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsSystemZ.def
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def
  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/DiagnosticSerializationKinds.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/Options.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/LangStandard.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Index/IndexingAction.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/DiagnosticsYaml.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRFinder.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/module.modulemap
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/OpenMPClause.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/StmtOpenMP.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/Type.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/Targets.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/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/CGOpenMPRuntime.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.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/MacroPPCallbacks.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/Driver.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.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/InitPreprocessor.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FrontendActions.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Headers/vecintrin.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexingAction.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPExpressions.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/Sema.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFinder.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Chunks.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Chunks.h
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Config.h
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Driver.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/PDB.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Arch/MipsArchTree.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Config.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Driver.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/EhFrame.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Filesystem.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/GdbIndex.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/ICF.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/InputFiles.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/LTO.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/LinkerScript.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/MapFile.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/MapFile.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Memory.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Options.td
  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/ScriptParser.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Strings.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Strings.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/SymbolTable.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/Target.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Target.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Threads.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Thunks.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Thunks.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Writer.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Writer.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/MainLoop.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/PosixApi.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/SocketAddress.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeThreadProtocol.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandInterpreter.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/DataExtractor.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/lldb-types.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/File.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/Host.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/NativeRegisterContext.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/SocketAddress.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/TCPSocket.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/FileSystem.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/HostProcessPosix.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/LockFilePosix.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Target/Target.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/tools/driver/Driver.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-server/lldb-gdbserver.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-ar/llvm-ar.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.h
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/PdbYaml.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/PdbYaml.h
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
  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-readobj/llvm-readobj.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenRegisters.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
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	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc	Wed Jul 19 19:41:41 2017	(r321238)
@@ -21,7 +21,9 @@
 #include "asan_report.h"
 #include "asan_stack.h"
 #include "asan_thread.h"
+#include "sanitizer_common/sanitizer_allocator_checks.h"
 #include "sanitizer_common/sanitizer_allocator_interface.h"
+#include "sanitizer_common/sanitizer_errno.h"
 #include "sanitizer_common/sanitizer_flags.h"
 #include "sanitizer_common/sanitizer_internal_defs.h"
 #include "sanitizer_common/sanitizer_list.h"
@@ -799,11 +801,6 @@ void PrintInternalAllocatorStats() {
   instance.PrintStats();
 }
 
-void *asan_memalign(uptr alignment, uptr size, BufferedStackTrace *stack,
-                    AllocType alloc_type) {
-  return instance.Allocate(size, alignment, stack, alloc_type, true);
-}
-
 void asan_free(void *ptr, BufferedStackTrace *stack, AllocType alloc_type) {
   instance.Deallocate(ptr, 0, stack, alloc_type);
 }
@@ -814,16 +811,16 @@ void asan_sized_free(void *ptr, uptr size, BufferedSta
 }
 
 void *asan_malloc(uptr size, BufferedStackTrace *stack) {
-  return instance.Allocate(size, 8, stack, FROM_MALLOC, true);
+  return SetErrnoOnNull(instance.Allocate(size, 8, stack, FROM_MALLOC, true));
 }
 
 void *asan_calloc(uptr nmemb, uptr size, BufferedStackTrace *stack) {
-  return instance.Calloc(nmemb, size, stack);
+  return SetErrnoOnNull(instance.Calloc(nmemb, size, stack));
 }
 
 void *asan_realloc(void *p, uptr size, BufferedStackTrace *stack) {
   if (!p)
-    return instance.Allocate(size, 8, stack, FROM_MALLOC, true);
+    return SetErrnoOnNull(instance.Allocate(size, 8, stack, FROM_MALLOC, true));
   if (size == 0) {
     if (flags()->allocator_frees_and_returns_null_on_realloc_zero) {
       instance.Deallocate(p, 0, stack, FROM_MALLOC);
@@ -832,26 +829,41 @@ void *asan_realloc(void *p, uptr size, BufferedStackTr
     // Allocate a size of 1 if we shouldn't free() on Realloc to 0
     size = 1;
   }
-  return instance.Reallocate(p, size, stack);
+  return SetErrnoOnNull(instance.Reallocate(p, size, stack));
 }
 
 void *asan_valloc(uptr size, BufferedStackTrace *stack) {
-  return instance.Allocate(size, GetPageSizeCached(), stack, FROM_MALLOC, true);
+  return SetErrnoOnNull(
+      instance.Allocate(size, GetPageSizeCached(), stack, FROM_MALLOC, true));
 }
 
 void *asan_pvalloc(uptr size, BufferedStackTrace *stack) {
   uptr PageSize = GetPageSizeCached();
-  size = RoundUpTo(size, PageSize);
-  if (size == 0) {
-    // pvalloc(0) should allocate one page.
-    size = PageSize;
+  // pvalloc(0) should allocate one page.
+  size = size ? RoundUpTo(size, PageSize) : PageSize;
+  return SetErrnoOnNull(
+      instance.Allocate(size, PageSize, stack, FROM_MALLOC, true));
+}
+
+void *asan_memalign(uptr alignment, uptr size, BufferedStackTrace *stack,
+                    AllocType alloc_type) {
+  if (UNLIKELY(!IsPowerOfTwo(alignment))) {
+    errno = errno_EINVAL;
+    return AsanAllocator::FailureHandler::OnBadRequest();
   }
-  return instance.Allocate(size, PageSize, stack, FROM_MALLOC, true);
+  return SetErrnoOnNull(
+      instance.Allocate(size, alignment, stack, alloc_type, true));
 }
 
 int asan_posix_memalign(void **memptr, uptr alignment, uptr size,
                         BufferedStackTrace *stack) {
+  if (UNLIKELY(!CheckPosixMemalignAlignment(alignment))) {
+    AsanAllocator::FailureHandler::OnBadRequest();
+    return errno_EINVAL;
+  }
   void *ptr = instance.Allocate(size, alignment, stack, FROM_MALLOC, true);
+  if (UNLIKELY(!ptr))
+    return errno_ENOMEM;
   CHECK(IsAligned((uptr)ptr, alignment));
   *memptr = ptr;
   return 0;

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc	Wed Jul 19 19:41:41 2017	(r321238)
@@ -178,6 +178,10 @@ void SetThreadName(const char *name) {
 }
 
 int OnExit() {
+  if (CAN_SANITIZE_LEAKS && common_flags()->detect_leaks &&
+      __lsan::HasReportedLeaks()) {
+    return common_flags()->exitcode;
+  }
   // FIXME: ask frontend whether we need to return failure.
   return 0;
 }

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c	Wed Jul 19 19:41:41 2017	(r321238)
@@ -190,8 +190,8 @@ static bool getX86CpuIDAndInfo(unsigned value, unsigne
 static bool getX86CpuIDAndInfoEx(unsigned value, unsigned subleaf,
                                  unsigned *rEAX, unsigned *rEBX, unsigned *rECX,
                                  unsigned *rEDX) {
-#if defined(__x86_64__) || defined(_M_X64)
 #if defined(__GNUC__) || defined(__clang__)
+#if defined(__x86_64__)
   // gcc doesn't know cpuid would clobber ebx/rbx. Preserve it manually.
   // FIXME: should we save this for Clang?
   __asm__("movq\t%%rbx, %%rsi\n\t"
@@ -200,43 +200,24 @@ static bool getX86CpuIDAndInfoEx(unsigned value, unsig
           : "=a"(*rEAX), "=S"(*rEBX), "=c"(*rECX), "=d"(*rEDX)
           : "a"(value), "c"(subleaf));
   return false;
-#elif defined(_MSC_VER)
-  int registers[4];
-  __cpuidex(registers, value, subleaf);
-  *rEAX = registers[0];
-  *rEBX = registers[1];
-  *rECX = registers[2];
-  *rEDX = registers[3];
-  return false;
-#else
-  return true;
-#endif
-#elif defined(__i386__) || defined(_M_IX86)
-#if defined(__GNUC__) || defined(__clang__)
+#elif defined(__i386__)
   __asm__("movl\t%%ebx, %%esi\n\t"
           "cpuid\n\t"
           "xchgl\t%%ebx, %%esi\n\t"
           : "=a"(*rEAX), "=S"(*rEBX), "=c"(*rECX), "=d"(*rEDX)
           : "a"(value), "c"(subleaf));
   return false;
-#elif defined(_MSC_VER)
-  __asm {
-      mov   eax,value
-      mov   ecx,subleaf
-      cpuid
-      mov   esi,rEAX
-      mov   dword ptr [esi],eax
-      mov   esi,rEBX
-      mov   dword ptr [esi],ebx
-      mov   esi,rECX
-      mov   dword ptr [esi],ecx
-      mov   esi,rEDX
-      mov   dword ptr [esi],edx
-  }
-  return false;
 #else
   return true;
 #endif
+#elif defined(_MSC_VER)
+  int registers[4];
+  __cpuidex(registers, value, subleaf);
+  *rEAX = registers[0];
+  *rEBX = registers[1];
+  *rECX = registers[2];
+  *rEDX = registers[3];
+  return false;
 #else
   return true;
 #endif

Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc	Wed Jul 19 19:41:41 2017	(r321238)
@@ -15,7 +15,9 @@
 #include "lsan_allocator.h"
 
 #include "sanitizer_common/sanitizer_allocator.h"
+#include "sanitizer_common/sanitizer_allocator_checks.h"
 #include "sanitizer_common/sanitizer_allocator_interface.h"
+#include "sanitizer_common/sanitizer_errno.h"
 #include "sanitizer_common/sanitizer_internal_defs.h"
 #include "sanitizer_common/sanitizer_stackdepot.h"
 #include "sanitizer_common/sanitizer_stacktrace.h"
@@ -86,6 +88,13 @@ void *Allocate(const StackTrace &stack, uptr size, upt
   return p;
 }
 
+static void *Calloc(uptr nmemb, uptr size, const StackTrace &stack) {
+  if (UNLIKELY(CheckForCallocOverflow(size, nmemb)))
+    return Allocator::FailureHandler::OnBadRequest();
+  size *= nmemb;
+  return Allocate(stack, size, 1, true);
+}
+
 void Deallocate(void *p) {
   if (&__sanitizer_free_hook) __sanitizer_free_hook(p);
   RunFreeHooks(p);
@@ -118,11 +127,15 @@ uptr GetMallocUsableSize(const void *p) {
 }
 
 void *lsan_memalign(uptr alignment, uptr size, const StackTrace &stack) {
-  return Allocate(stack, size, alignment, kAlwaysClearMemory);
+  if (UNLIKELY(!IsPowerOfTwo(alignment))) {
+    errno = errno_EINVAL;
+    return Allocator::FailureHandler::OnBadRequest();
+  }
+  return SetErrnoOnNull(Allocate(stack, size, alignment, kAlwaysClearMemory));
 }
 
 void *lsan_malloc(uptr size, const StackTrace &stack) {
-  return Allocate(stack, size, 1, kAlwaysClearMemory);
+  return SetErrnoOnNull(Allocate(stack, size, 1, kAlwaysClearMemory));
 }
 
 void lsan_free(void *p) {
@@ -130,20 +143,16 @@ void lsan_free(void *p) {
 }
 
 void *lsan_realloc(void *p, uptr size, const StackTrace &stack) {
-  return Reallocate(stack, p, size, 1);
+  return SetErrnoOnNull(Reallocate(stack, p, size, 1));
 }
 
 void *lsan_calloc(uptr nmemb, uptr size, const StackTrace &stack) {
-  if (CheckForCallocOverflow(size, nmemb))
-    return Allocator::FailureHandler::OnBadRequest();
-  size *= nmemb;
-  return Allocate(stack, size, 1, true);
+  return SetErrnoOnNull(Calloc(nmemb, size, stack));
 }
 
 void *lsan_valloc(uptr size, const StackTrace &stack) {
-  if (size == 0)
-    size = GetPageSizeCached();
-  return Allocate(stack, size, GetPageSizeCached(), kAlwaysClearMemory);
+  return SetErrnoOnNull(
+      Allocate(stack, size, GetPageSizeCached(), kAlwaysClearMemory));
 }
 
 uptr lsan_mz_size(const void *p) {

Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc	Wed Jul 19 19:41:41 2017	(r321238)
@@ -576,18 +576,16 @@ static bool CheckForLeaks() {
   return false;
 }
 
+static bool has_reported_leaks = false;
+bool HasReportedLeaks() { return has_reported_leaks; }
+
 void DoLeakCheck() {
   BlockingMutexLock l(&global_mutex);
   static bool already_done;
   if (already_done) return;
   already_done = true;
-  bool have_leaks = CheckForLeaks();
-  if (!have_leaks) {
-    return;
-  }
-  if (common_flags()->exitcode) {
-    Die();
-  }
+  has_reported_leaks = CheckForLeaks();
+  if (has_reported_leaks) HandleLeaks();
 }
 
 static int DoRecoverableLeakCheck() {

Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.h	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.h	Wed Jul 19 19:41:41 2017	(r321238)
@@ -226,6 +226,12 @@ IgnoreObjectResult IgnoreObjectLocked(const void *p);
 // Return the linker module, if valid for the platform.
 LoadedModule *GetLinker();
 
+// Return true if LSan has finished leak checking and reported leaks.
+bool HasReportedLeaks();
+
+// Run platform-specific leak handlers.
+void HandleLeaks();
+
 // Wrapper for chunk metadata operations.
 class LsanMetadata {
  public:

Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc	Wed Jul 19 19:41:41 2017	(r321238)
@@ -100,6 +100,13 @@ struct DoStopTheWorldParam {
   void *argument;
 };
 
+// While calling Die() here is undefined behavior and can potentially
+// cause race conditions, it isn't possible to intercept exit on linux,
+// so we have no choice but to call Die() from the atexit handler.
+void HandleLeaks() {
+  if (common_flags()->exitcode) Die();
+}
+
 static int DoStopTheWorldCallback(struct dl_phdr_info *info, size_t size,
                                   void *data) {
   DoStopTheWorldParam *param = reinterpret_cast<DoStopTheWorldParam *>(data);

Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc	Wed Jul 19 19:41:41 2017	(r321238)
@@ -164,6 +164,11 @@ void ProcessPlatformSpecificAllocations(Frontier *fron
   }
 }
 
+// On darwin, we can intercept _exit gracefully, and return a failing exit code
+// if required at that point. Calling Die() here is undefined behavior and
+// causes rare race conditions.
+void HandleLeaks() {}
+
 void DoStopTheWorld(StopTheWorldCallback callback, void *argument) {
   StopTheWorld(callback, argument);
 }

Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc	Wed Jul 19 19:41:41 2017	(r321238)
@@ -352,6 +352,11 @@ INTERCEPTOR(int, pthread_join, void *th, void **ret) {
   return res;
 }
 
+INTERCEPTOR(void, _exit, int status) {
+  if (status == 0 && HasReportedLeaks()) status = common_flags()->exitcode;
+  REAL(_exit)(status);
+}
+
 namespace __lsan {
 
 void InitializeInterceptors() {
@@ -371,6 +376,7 @@ void InitializeInterceptors() {
   LSAN_MAYBE_INTERCEPT_MALLOPT;
   INTERCEPT_FUNCTION(pthread_create);
   INTERCEPT_FUNCTION(pthread_join);
+  INTERCEPT_FUNCTION(_exit);
 
   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.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/msan/msan.h	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan.h	Wed Jul 19 19:41:41 2017	(r321238)
@@ -280,10 +280,18 @@ void InitializeInterceptors();
 
 void MsanAllocatorInit();
 void MsanAllocatorThreadFinish();
-void *MsanCalloc(StackTrace *stack, uptr nmemb, uptr size);
-void *MsanReallocate(StackTrace *stack, void *oldp, uptr size,
-                     uptr alignment, bool zeroise);
 void MsanDeallocate(StackTrace *stack, void *ptr);
+
+void *msan_malloc(uptr size, StackTrace *stack);
+void *msan_calloc(uptr nmemb, uptr size, StackTrace *stack);
+void *msan_realloc(void *ptr, uptr size, StackTrace *stack);
+void *msan_valloc(uptr size, StackTrace *stack);
+void *msan_pvalloc(uptr size, StackTrace *stack);
+void *msan_aligned_alloc(uptr alignment, uptr size, StackTrace *stack);
+void *msan_memalign(uptr alignment, uptr size, StackTrace *stack);
+int msan_posix_memalign(void **memptr, uptr alignment, uptr size,
+                        StackTrace *stack);
+
 void InstallTrapHandler();
 void InstallAtExitHandler();
 

Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc	Wed Jul 19 19:41:41 2017	(r321238)
@@ -13,7 +13,9 @@
 //===----------------------------------------------------------------------===//
 
 #include "sanitizer_common/sanitizer_allocator.h"
+#include "sanitizer_common/sanitizer_allocator_checks.h"
 #include "sanitizer_common/sanitizer_allocator_interface.h"
+#include "sanitizer_common/sanitizer_errno.h"
 #include "msan.h"
 #include "msan_allocator.h"
 #include "msan_origin.h"
@@ -194,20 +196,8 @@ void MsanDeallocate(StackTrace *stack, void *p) {
   }
 }
 
-void *MsanCalloc(StackTrace *stack, uptr nmemb, uptr size) {
-  if (CheckForCallocOverflow(size, nmemb))
-    return Allocator::FailureHandler::OnBadRequest();
-  return MsanReallocate(stack, nullptr, nmemb * size, sizeof(u64), true);
-}
-
 void *MsanReallocate(StackTrace *stack, void *old_p, uptr new_size,
-                     uptr alignment, bool zeroise) {
-  if (!old_p)
-    return MsanAllocate(stack, new_size, alignment, zeroise);
-  if (!new_size) {
-    MsanDeallocate(stack, old_p);
-    return nullptr;
-  }
+                     uptr alignment) {
   Metadata *meta = reinterpret_cast<Metadata*>(allocator.GetMetaData(old_p));
   uptr old_size = meta->requested_size;
   uptr actually_allocated_size = allocator.GetActuallyAllocatedSize(old_p);
@@ -215,10 +205,7 @@ void *MsanReallocate(StackTrace *stack, void *old_p, u
     // We are not reallocating here.
     meta->requested_size = new_size;
     if (new_size > old_size) {
-      if (zeroise) {
-        __msan_clear_and_unpoison((char *)old_p + old_size,
-                                  new_size - old_size);
-      } else if (flags()->poison_in_malloc) {
+      if (flags()->poison_in_malloc) {
         stack->tag = StackTrace::TAG_ALLOC;
         PoisonMemory((char *)old_p + old_size, new_size - old_size, stack);
       }
@@ -226,8 +213,7 @@ void *MsanReallocate(StackTrace *stack, void *old_p, u
     return old_p;
   }
   uptr memcpy_size = Min(new_size, old_size);
-  void *new_p = MsanAllocate(stack, new_size, alignment, zeroise);
-  // Printf("realloc: old_size %zd new_size %zd\n", old_size, new_size);
+  void *new_p = MsanAllocate(stack, new_size, alignment, false /*zeroise*/);
   if (new_p) {
     CopyMemory(new_p, old_p, memcpy_size, stack);
     MsanDeallocate(stack, old_p);
@@ -241,6 +227,67 @@ static uptr AllocationSize(const void *p) {
   if (beg != p) return 0;
   Metadata *b = (Metadata *)allocator.GetMetaData(p);
   return b->requested_size;
+}
+
+void *msan_malloc(uptr size, StackTrace *stack) {
+  return SetErrnoOnNull(MsanAllocate(stack, size, sizeof(u64), false));
+}
+
+void *msan_calloc(uptr nmemb, uptr size, StackTrace *stack) {
+  if (UNLIKELY(CheckForCallocOverflow(size, nmemb)))
+    return SetErrnoOnNull(Allocator::FailureHandler::OnBadRequest());
+  return SetErrnoOnNull(MsanAllocate(stack, nmemb * size, sizeof(u64), true));
+}
+
+void *msan_realloc(void *ptr, uptr size, StackTrace *stack) {
+  if (!ptr)
+    return SetErrnoOnNull(MsanAllocate(stack, size, sizeof(u64), false));
+  if (size == 0) {
+    MsanDeallocate(stack, ptr);
+    return nullptr;
+  }
+  return SetErrnoOnNull(MsanReallocate(stack, ptr, size, sizeof(u64)));
+}
+
+void *msan_valloc(uptr size, StackTrace *stack) {
+  return SetErrnoOnNull(MsanAllocate(stack, size, GetPageSizeCached(), false));
+}
+
+void *msan_pvalloc(uptr size, StackTrace *stack) {
+  uptr PageSize = GetPageSizeCached();
+  // pvalloc(0) should allocate one page.
+  size = size == 0 ? PageSize : RoundUpTo(size, PageSize);
+  return SetErrnoOnNull(MsanAllocate(stack, size, PageSize, false));
+}
+
+void *msan_aligned_alloc(uptr alignment, uptr size, StackTrace *stack) {
+  if (UNLIKELY(!CheckAlignedAllocAlignmentAndSize(alignment, size))) {
+    errno = errno_EINVAL;
+    return Allocator::FailureHandler::OnBadRequest();
+  }
+  return SetErrnoOnNull(MsanAllocate(stack, size, alignment, false));
+}
+
+void *msan_memalign(uptr alignment, uptr size, StackTrace *stack) {
+  if (UNLIKELY(!IsPowerOfTwo(alignment))) {
+    errno = errno_EINVAL;
+    return Allocator::FailureHandler::OnBadRequest();
+  }
+  return SetErrnoOnNull(MsanAllocate(stack, size, alignment, false));
+}
+
+int msan_posix_memalign(void **memptr, uptr alignment, uptr size,
+                        StackTrace *stack) {
+  if (UNLIKELY(!CheckPosixMemalignAlignment(alignment))) {
+    Allocator::FailureHandler::OnBadRequest();
+    return errno_EINVAL;
+  }
+  void *ptr = MsanAllocate(stack, size, alignment, false);
+  if (UNLIKELY(!ptr))
+    return errno_ENOMEM;
+  CHECK(IsAligned((uptr)ptr, alignment));
+  *memptr = ptr;
+  return 0;
 }
 
 } // namespace __msan

Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc	Wed Jul 19 19:41:41 2017	(r321238)
@@ -161,58 +161,45 @@ INTERCEPTOR(void *, bcopy, const void *src, void *dest
 
 INTERCEPTOR(int, posix_memalign, void **memptr, SIZE_T alignment, SIZE_T size) {
   GET_MALLOC_STACK_TRACE;
-  CHECK_EQ(alignment & (alignment - 1), 0);
   CHECK_NE(memptr, 0);
-  *memptr = MsanReallocate(&stack, nullptr, size, alignment, false);
-  CHECK_NE(*memptr, 0);
-  __msan_unpoison(memptr, sizeof(*memptr));
-  return 0;
+  int res = msan_posix_memalign(memptr, alignment, size, &stack);
+  if (!res)
+    __msan_unpoison(memptr, sizeof(*memptr));
+  return res;
 }
 
 #if !SANITIZER_FREEBSD
-INTERCEPTOR(void *, memalign, SIZE_T boundary, SIZE_T size) {
+INTERCEPTOR(void *, memalign, SIZE_T alignment, SIZE_T size) {
   GET_MALLOC_STACK_TRACE;
-  CHECK_EQ(boundary & (boundary - 1), 0);
-  void *ptr = MsanReallocate(&stack, nullptr, size, boundary, false);
-  return ptr;
+  return msan_memalign(alignment, size, &stack);
 }
 #define MSAN_MAYBE_INTERCEPT_MEMALIGN INTERCEPT_FUNCTION(memalign)
 #else
 #define MSAN_MAYBE_INTERCEPT_MEMALIGN
 #endif
 
-INTERCEPTOR(void *, aligned_alloc, SIZE_T boundary, SIZE_T size) {
+INTERCEPTOR(void *, aligned_alloc, SIZE_T alignment, SIZE_T size) {
   GET_MALLOC_STACK_TRACE;
-  CHECK_EQ(boundary & (boundary - 1), 0);
-  void *ptr = MsanReallocate(&stack, nullptr, size, boundary, false);
-  return ptr;
+  return msan_aligned_alloc(alignment, size, &stack);
 }
 
-INTERCEPTOR(void *, __libc_memalign, SIZE_T boundary, SIZE_T size) {
+INTERCEPTOR(void *, __libc_memalign, SIZE_T alignment, SIZE_T size) {
   GET_MALLOC_STACK_TRACE;
-  CHECK_EQ(boundary & (boundary - 1), 0);
-  void *ptr = MsanReallocate(&stack, nullptr, size, boundary, false);
-  DTLS_on_libc_memalign(ptr, size);
+  void *ptr = msan_memalign(alignment, size, &stack);
+  if (ptr)
+    DTLS_on_libc_memalign(ptr, size);
   return ptr;
 }
 
 INTERCEPTOR(void *, valloc, SIZE_T size) {
   GET_MALLOC_STACK_TRACE;
-  void *ptr = MsanReallocate(&stack, nullptr, size, GetPageSizeCached(), false);
-  return ptr;
+  return msan_valloc(size, &stack);
 }
 
 #if !SANITIZER_FREEBSD
 INTERCEPTOR(void *, pvalloc, SIZE_T size) {
   GET_MALLOC_STACK_TRACE;
-  uptr PageSize = GetPageSizeCached();
-  size = RoundUpTo(size, PageSize);
-  if (size == 0) {
-    // pvalloc(0) should allocate one page.
-    size = PageSize;
-  }
-  void *ptr = MsanReallocate(&stack, nullptr, size, PageSize, false);
-  return ptr;
+  return msan_pvalloc(size, &stack);
 }
 #define MSAN_MAYBE_INTERCEPT_PVALLOC INTERCEPT_FUNCTION(pvalloc)
 #else
@@ -853,7 +840,7 @@ INTERCEPTOR(void *, calloc, SIZE_T nmemb, SIZE_T size)
   if (UNLIKELY(!msan_inited))
     // Hack: dlsym calls calloc before REAL(calloc) is retrieved from dlsym.
     return AllocateFromLocalPool(nmemb * size);
-  return MsanCalloc(&stack, nmemb, size);
+  return msan_calloc(nmemb, size, &stack);
 }
 
 INTERCEPTOR(void *, realloc, void *ptr, SIZE_T size) {
@@ -866,12 +853,12 @@ INTERCEPTOR(void *, realloc, void *ptr, SIZE_T size) {
       new_ptr = AllocateFromLocalPool(copy_size);
     } else {
       copy_size = size;
-      new_ptr = MsanReallocate(&stack, nullptr, copy_size, sizeof(u64), false);
+      new_ptr = msan_malloc(copy_size, &stack);
     }
     internal_memcpy(new_ptr, ptr, copy_size);
     return new_ptr;
   }
-  return MsanReallocate(&stack, ptr, size, sizeof(u64), false);
+  return msan_realloc(ptr, size, &stack);
 }
 
 INTERCEPTOR(void *, malloc, SIZE_T size) {
@@ -879,7 +866,7 @@ INTERCEPTOR(void *, malloc, SIZE_T size) {
   if (UNLIKELY(!msan_inited))
     // Hack: dlsym calls malloc before REAL(malloc) is retrieved from dlsym.
     return AllocateFromLocalPool(size);
-  return MsanReallocate(&stack, nullptr, size, sizeof(u64), false);
+  return msan_malloc(size, &stack);
 }
 
 void __msan_allocated_memory(const void *data, uptr size) {

Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc	Wed Jul 19 19:41:41 2017	(r321238)
@@ -31,7 +31,7 @@ namespace std {
 // TODO(alekseys): throw std::bad_alloc instead of dying on OOM.
 #define OPERATOR_NEW_BODY(nothrow) \
   GET_MALLOC_STACK_TRACE; \
-  void *res = MsanReallocate(&stack, 0, size, sizeof(u64), false);\
+  void *res = msan_malloc(size, &stack);\
   if (!nothrow && UNLIKELY(!res)) DieOnFailure::OnOOM();\
   return res
 

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc	Wed Jul 19 19:41:41 2017	(r321238)
@@ -14,6 +14,7 @@
 
 #include "sanitizer_allocator.h"
 
+#include "sanitizer_allocator_checks.h"
 #include "sanitizer_allocator_internal.h"
 #include "sanitizer_atomic.h"
 #include "sanitizer_common.h"
@@ -160,7 +161,7 @@ void *InternalRealloc(void *addr, uptr size, InternalA
 }
 
 void *InternalCalloc(uptr count, uptr size, InternalAllocatorCache *cache) {
-  if (CheckForCallocOverflow(count, size))
+  if (UNLIKELY(CheckForCallocOverflow(count, size)))
     return InternalAllocator::FailureHandler::OnBadRequest();
   void *p = InternalAlloc(count * size, cache);
   if (p) internal_memset(p, 0, count * size);
@@ -200,12 +201,6 @@ void *LowLevelAllocator::Allocate(uptr size) {
 
 void SetLowLevelAllocateCallback(LowLevelAllocateCallback callback) {
   low_level_alloc_callback = callback;
-}
-
-bool CheckForCallocOverflow(uptr size, uptr n) {
-  if (!size) return false;
-  uptr max = (uptr)-1L;
-  return (max / size) < n;
 }
 
 static atomic_uint8_t allocator_out_of_memory = {0};

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h	Wed Jul 19 19:41:41 2017	(r321238)
@@ -56,11 +56,6 @@ struct NoOpMapUnmapCallback {
 // Callback type for iterating over chunks.
 typedef void (*ForEachChunkCallback)(uptr chunk, void *arg);
 
-// Returns true if calloc(size, n) call overflows on size*n calculation.
-// The caller should "return POLICY::OnBadRequest();" where POLICY is the
-// current allocator failure handling policy.
-bool CheckForCallocOverflow(uptr size, uptr n);
-
 #include "sanitizer_allocator_size_class_map.h"
 #include "sanitizer_allocator_stats.h"
 #include "sanitizer_allocator_primary64.h"

Copied: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h (from r321217, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_checks.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h	Wed Jul 19 19:41:41 2017	(r321238, copy of r321217, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_checks.h)
@@ -0,0 +1,64 @@
+//===-- sanitizer_allocator_checks.h ----------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// Various checks shared between ThreadSanitizer, MemorySanitizer, etc. memory
+// allocators.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef SANITIZER_ALLOCATOR_CHECKS_H
+#define SANITIZER_ALLOCATOR_CHECKS_H
+
+#include "sanitizer_errno.h"
+#include "sanitizer_internal_defs.h"
+#include "sanitizer_common.h"
+#include "sanitizer_platform.h"
+
+namespace __sanitizer {
+
+// A common errno setting logic shared by almost all sanitizer allocator APIs.
+INLINE void *SetErrnoOnNull(void *ptr) {
+  if (UNLIKELY(!ptr))
+    errno = errno_ENOMEM;
+  return ptr;
+}
+
+// In case of the check failure, the caller of the following Check... functions
+// should "return POLICY::OnBadRequest();" where POLICY is the current allocator
+// failure handling policy.
+
+// Checks aligned_alloc() parameters, verifies that the alignment is a power of
+// two and that the size is a multiple of alignment for POSIX implementation,
+// and a bit relaxed requirement for non-POSIX ones, that the size is a multiple
+// of alignment.
+INLINE bool CheckAlignedAllocAlignmentAndSize(uptr alignment, uptr size) {
+#if SANITIZER_POSIX
+  return IsPowerOfTwo(alignment) && (size & (alignment - 1)) == 0;
+#else
+  return size % alignment == 0;
+#endif
+}
+
+// Checks posix_memalign() parameters, verifies that alignment is a power of two
+// and a multiple of sizeof(void *).
+INLINE bool CheckPosixMemalignAlignment(uptr alignment) {
+  return IsPowerOfTwo(alignment) && (alignment % sizeof(void *)) == 0; // NOLINT
+}
+
+// Returns true if calloc(size, n) call overflows on size*n calculation.
+INLINE bool CheckForCallocOverflow(uptr size, uptr n) {
+  if (!size)
+    return false;
+  uptr max = (uptr)-1L;
+  return (max / size) < n;
+}
+
+} // namespace __sanitizer
+
+#endif  // SANITIZER_ALLOCATOR_CHECKS_H

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h	Wed Jul 19 19:41:41 2017	(r321238)
@@ -26,6 +26,8 @@
 #  define __errno_location __error
 #elif SANITIZER_ANDROID
 #  define __errno_location __errno
+#elif SANITIZER_WINDOWS
+#  define __errno_location _errno
 #endif
 
 extern "C" int *__errno_location();

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	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc	Wed Jul 19 19:41:41 2017	(r321238)
@@ -629,8 +629,7 @@ uptr internal_prctl(int option, uptr arg2, uptr arg3, 
 }
 #endif
 
-uptr internal_sigaltstack(const struct sigaltstack *ss,
-                         struct sigaltstack *oss) {
+uptr internal_sigaltstack(const void *ss, void *oss) {
   return internal_syscall(SYSCALL(sigaltstack), (uptr)ss, (uptr)oss);
 }
 

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h	Wed Jul 19 19:41:41 2017	(r321238)
@@ -21,7 +21,6 @@
 #include "sanitizer_platform_limits_posix.h"
 
 struct link_map;  // Opaque type returned by dlopen().
-struct sigaltstack;
 
 namespace __sanitizer {
 // Dirent structure for getdents(). Note that this structure is different from
@@ -30,8 +29,7 @@ struct linux_dirent;
 
 // Syscall wrappers.
 uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count);
-uptr internal_sigaltstack(const struct sigaltstack* ss,
-                          struct sigaltstack* oss);
+uptr internal_sigaltstack(const void* ss, void* oss);
 uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set,
     __sanitizer_sigset_t *oldset);
 

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	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc	Wed Jul 19 19:41:41 2017	(r321238)
@@ -805,14 +805,35 @@ char **GetArgv() {
 // fields only available in 10.12+. Declare the struct manually to be able to
 // build against older SDKs.
 struct __sanitizer_task_vm_info {
-  uptr _unused[(SANITIZER_WORDSIZE == 32) ? 20 : 19];
-  uptr min_address;
-  uptr max_address;
+  mach_vm_size_t virtual_size;
+  integer_t region_count;
+  integer_t page_size;
+  mach_vm_size_t resident_size;
+  mach_vm_size_t resident_size_peak;
+  mach_vm_size_t device;
+  mach_vm_size_t device_peak;
+  mach_vm_size_t internal;
+  mach_vm_size_t internal_peak;
+  mach_vm_size_t external;
+  mach_vm_size_t external_peak;
+  mach_vm_size_t reusable;
+  mach_vm_size_t reusable_peak;
+  mach_vm_size_t purgeable_volatile_pmap;
+  mach_vm_size_t purgeable_volatile_resident;
+  mach_vm_size_t purgeable_volatile_virtual;
+  mach_vm_size_t compressed;
+  mach_vm_size_t compressed_peak;
+  mach_vm_size_t compressed_lifetime;
+  mach_vm_size_t phys_footprint;
+  mach_vm_address_t min_address;
+  mach_vm_address_t max_address;
 };
+#define __SANITIZER_TASK_VM_INFO_COUNT ((mach_msg_type_number_t) \
+    (sizeof(__sanitizer_task_vm_info) / sizeof(natural_t)))
 
 uptr GetTaskInfoMaxAddress() {
-  __sanitizer_task_vm_info vm_info = {{0}, 0, 0};
-  mach_msg_type_number_t count = sizeof(vm_info) / sizeof(int);
+  __sanitizer_task_vm_info vm_info = {};
+  mach_msg_type_number_t count = __SANITIZER_TASK_VM_INFO_COUNT;
   int err = task_info(mach_task_self(), TASK_VM_INFO, (int *)&vm_info, &count);
   if (err == 0) {
     return vm_info.max_address - 1;

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h	Wed Jul 19 19:41:41 2017	(r321238)
@@ -13,7 +13,7 @@
 #ifndef SANITIZER_PLATFORM_H
 #define SANITIZER_PLATFORM_H
 
-#if !defined(__linux__) && !defined(__FreeBSD__) && \
+#if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && \
   !defined(__APPLE__) && !defined(_WIN32)
 # error "This operating system is not supported"
 #endif
@@ -30,6 +30,12 @@
 # define SANITIZER_FREEBSD 0
 #endif
 
+#if defined(__NetBSD__)
+# define SANITIZER_NETBSD 1
+#else
+# define SANITIZER_NETBSD 0
+#endif
+
 #if defined(__APPLE__)
 # define SANITIZER_MAC     1
 # include <TargetConditionals.h>
@@ -79,7 +85,8 @@
 # define SANITIZER_ANDROID 0
 #endif
 
-#define SANITIZER_POSIX (SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC)
+#define SANITIZER_POSIX \
+  (SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC || SANITIZER_NETBSD)
 
 #if __LP64__ || defined(_WIN64)
 #  define SANITIZER_WORDSIZE 64

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	Wed Jul 19 19:41:13 2017	(r321237)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h	Wed Jul 19 19:41:41 2017	(r321238)
@@ -49,6 +49,12 @@
 # define SI_FREEBSD 0
 #endif
 
+#if SANITIZER_NETBSD
+# define SI_NETBSD 1
+#else
+# define SI_NETBSD 0
+#endif
+
 #if SANITIZER_LINUX
 # define SI_LINUX 1
 #else
@@ -109,9 +115,9 @@
 // memmem on Darwin doesn't exist on 10.6
 // FIXME: enable memmem on Windows.
 #define SANITIZER_INTERCEPT_MEMMEM \
-  SI_NOT_WINDOWS && !SI_MAC_DEPLOYMENT_BELOW_10_7
+  (SI_NOT_WINDOWS && !SI_MAC_DEPLOYMENT_BELOW_10_7)
 #define SANITIZER_INTERCEPT_MEMCHR 1
-#define SANITIZER_INTERCEPT_MEMRCHR SI_FREEBSD || SI_LINUX
+#define SANITIZER_INTERCEPT_MEMRCHR (SI_FREEBSD || SI_LINUX || SI_NETBSD)
 
 #define SANITIZER_INTERCEPT_READ   SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_PREAD  SI_NOT_WINDOWS
@@ -127,7 +133,8 @@
 #define SANITIZER_INTERCEPT_READV SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_WRITEV SI_NOT_WINDOWS
 
-#define SANITIZER_INTERCEPT_PREADV SI_FREEBSD || SI_LINUX_NOT_ANDROID
+#define SANITIZER_INTERCEPT_PREADV \
+  (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_PWRITEV SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_PREADV64 SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_PWRITEV64 SI_LINUX_NOT_ANDROID
@@ -142,7 +149,7 @@
 
 #ifndef SANITIZER_INTERCEPT_PRINTF
 # define SANITIZER_INTERCEPT_PRINTF SI_NOT_WINDOWS
-# define SANITIZER_INTERCEPT_PRINTF_L SI_FREEBSD
+# define SANITIZER_INTERCEPT_PRINTF_L (SI_FREEBSD || SI_NETBSD)
 # define SANITIZER_INTERCEPT_ISOC99_PRINTF SI_LINUX_NOT_ANDROID
 #endif
 
@@ -151,13 +158,14 @@
 
 #define SANITIZER_INTERCEPT_GETPWNAM_AND_FRIENDS SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_GETPWNAM_R_AND_FRIENDS \
-  SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID
+  (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_GETPWENT \
-  SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID
+  (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_FGETPWENT SI_LINUX_NOT_ANDROID
-#define SANITIZER_INTERCEPT_GETPWENT_R SI_FREEBSD || SI_LINUX_NOT_ANDROID
-#define SANITIZER_INTERCEPT_SETPWENT SI_MAC || SI_LINUX_NOT_ANDROID
-#define SANITIZER_INTERCEPT_CLOCK_GETTIME SI_FREEBSD || SI_LINUX
+#define SANITIZER_INTERCEPT_GETPWENT_R \
+  (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID)
+#define SANITIZER_INTERCEPT_SETPWENT (SI_MAC || SI_LINUX_NOT_ANDROID)
+#define SANITIZER_INTERCEPT_CLOCK_GETTIME (SI_FREEBSD || SI_NETBSD || SI_LINUX)
 #define SANITIZER_INTERCEPT_GETITIMER SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_TIME SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_GLOB SI_LINUX_NOT_ANDROID
@@ -168,10 +176,11 @@
 #define SANITIZER_INTERCEPT_GETNAMEINFO SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_GETSOCKNAME SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_GETHOSTBYNAME SI_NOT_WINDOWS
-#define SANITIZER_INTERCEPT_GETHOSTBYNAME_R SI_FREEBSD || SI_LINUX
-#define SANITIZER_INTERCEPT_GETHOSTBYNAME2_R SI_FREEBSD || SI_LINUX_NOT_ANDROID
-#define SANITIZER_INTERCEPT_GETHOSTBYADDR_R SI_FREEBSD || SI_LINUX_NOT_ANDROID
-#define SANITIZER_INTERCEPT_GETHOSTENT_R SI_FREEBSD || SI_LINUX_NOT_ANDROID
+#define SANITIZER_INTERCEPT_GETHOSTBYNAME_R (SI_FREEBSD || SI_LINUX)
+#define SANITIZER_INTERCEPT_GETHOSTBYNAME2_R \
+  (SI_FREEBSD || SI_LINUX_NOT_ANDROID)
+#define SANITIZER_INTERCEPT_GETHOSTBYADDR_R (SI_FREEBSD || SI_LINUX_NOT_ANDROID)
+#define SANITIZER_INTERCEPT_GETHOSTENT_R (SI_FREEBSD || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_GETSOCKOPT SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_ACCEPT SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_ACCEPT4 SI_LINUX_NOT_ANDROID
@@ -197,63 +206,67 @@
 #define SANITIZER_INTERCEPT_GET_CURRENT_DIR_NAME SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_STRTOIMAX SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_MBSTOWCS SI_NOT_WINDOWS
-#define SANITIZER_INTERCEPT_MBSNRTOWCS SI_MAC || SI_LINUX_NOT_ANDROID
+#define SANITIZER_INTERCEPT_MBSNRTOWCS (SI_MAC || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_WCSTOMBS SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_WCSNRTOMBS \
-  SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID
+  (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_WCRTOMB \
-  SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID
+  (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_TCGETATTR SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_REALPATH SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_CANONICALIZE_FILE_NAME SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_CONFSTR \
-  SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID
+  (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_SCHED_GETAFFINITY SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_SCHED_GETPARAM SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_STRERROR SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_STRERROR_R SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_XPG_STRERROR_R SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_SCANDIR \
-  SI_FREEBSD || SI_LINUX_NOT_ANDROID
+  (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_SCANDIR64 SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_GETGROUPS SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_POLL SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_PPOLL SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_WORDEXP \
-  SI_FREEBSD || (SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID
+  (SI_FREEBSD || SI_NETBSD || (SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_SIGWAIT SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_SIGWAITINFO SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_SIGTIMEDWAIT SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_SIGSETOPS \
-  SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID
+  (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_SIGPENDING SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_SIGPROCMASK SI_NOT_WINDOWS
-#define SANITIZER_INTERCEPT_BACKTRACE SI_FREEBSD || SI_LINUX_NOT_ANDROID
+#define SANITIZER_INTERCEPT_BACKTRACE \
+  (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_GETMNTENT SI_LINUX
 #define SANITIZER_INTERCEPT_GETMNTENT_R SI_LINUX_NOT_ANDROID
-#define SANITIZER_INTERCEPT_STATFS SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID
+#define SANITIZER_INTERCEPT_STATFS \
+  (SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_STATFS64 \
-  (SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID
-#define SANITIZER_INTERCEPT_STATVFS SI_FREEBSD || SI_LINUX_NOT_ANDROID
+  ((SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID)
+#define SANITIZER_INTERCEPT_STATVFS \
+  (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_STATVFS64 SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_INITGROUPS SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_ETHER_NTOA_ATON SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_ETHER_HOST \
-  SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID
-#define SANITIZER_INTERCEPT_ETHER_R SI_FREEBSD || SI_LINUX_NOT_ANDROID
-#define SANITIZER_INTERCEPT_SHMCTL \
-  ((SI_FREEBSD || SI_LINUX_NOT_ANDROID) && SANITIZER_WORDSIZE == 64)
+  (SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID)
+#define SANITIZER_INTERCEPT_ETHER_R (SI_FREEBSD || SI_LINUX_NOT_ANDROID)
+#define SANITIZER_INTERCEPT_SHMCTL                       \
+  (SI_NETBSD || ((SI_FREEBSD || SI_LINUX_NOT_ANDROID) && \
+                 SANITIZER_WORDSIZE == 64))  // NOLINT
 #define SANITIZER_INTERCEPT_RANDOM_R SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GET SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GETINHERITSCHED \
-  SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID
+  (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GETAFFINITY_NP SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETPSHARED SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETTYPE SI_NOT_WINDOWS
 #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETPROTOCOL \
-  SI_MAC || SI_LINUX_NOT_ANDROID
+  (SI_MAC || SI_NETBSD || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETPRIOCEILING \
-  SI_MAC || SI_LINUX_NOT_ANDROID
+  (SI_MAC || SI_NETBSD || SI_LINUX_NOT_ANDROID)
 #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETROBUST SI_LINUX_NOT_ANDROID
 #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETROBUST_NP SI_LINUX_NOT_ANDROID

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


More information about the svn-src-projects mailing list