Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 May 2017 22:09:24 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r319164 - in projects/clang500-import: contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/compiler-rt/lib/builtins/arm contrib/compiler-rt/lib/lsan contrib/compiler-r...
Message-ID:  <201705292209.v4TM9OrB023814@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Mon May 29 22:09:23 2017
New Revision: 319164
URL: https://svnweb.freebsd.org/changeset/base/319164

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

Added:
  projects/clang500-import/contrib/libc++/include/experimental/coroutine
     - copied unchanged from r319151, vendor/libc++/dist/include/experimental/coroutine
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/Localizer.h
     - copied unchanged from r319151, vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/Localizer.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h
     - copied unchanged from r319151, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHashAttributes.def
     - copied unchanged from r319151, vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIEHashAttributes.def
  projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/Localizer.cpp
     - copied unchanged from r319151, vendor/llvm/dist/lib/CodeGen/GlobalISel/Localizer.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
     - copied unchanged from r319151, vendor/llvm/dist/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Nios2/
     - copied from r319151, vendor/llvm/dist/lib/Target/Nios2/
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/GVNSink.cpp
     - copied unchanged from r319151, vendor/llvm/dist/lib/Transforms/Scalar/GVNSink.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.cpp
     - copied unchanged from r319151, vendor/clang/dist/lib/Driver/ToolChains/BareMetal.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.h
     - copied unchanged from r319151, vendor/clang/dist/lib/Driver/ToolChains/BareMetal.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Headers/avx512vpopcntdqintrin.h
     - copied unchanged from r319151, vendor/clang/dist/lib/Headers/avx512vpopcntdqintrin.h
  projects/clang500-import/contrib/llvm/utils/TableGen/X86FoldTablesEmitter.cpp
     - copied unchanged from r319151, vendor/llvm/dist/utils/TableGen/X86FoldTablesEmitter.cpp
Deleted:
  projects/clang500-import/contrib/llvm/lib/LibDriver/
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkorWriteRes.td
Modified:
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win.cc
  projects/clang500-import/contrib/compiler-rt/lib/builtins/README.txt
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S
  projects/clang500-import/contrib/compiler-rt/lib/builtins/assembly.h
  projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapdi2.c
  projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapsi2.c
  projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc
  projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc
  projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_flags.inc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
  projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_tls_linux.cpp
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
  projects/clang500-import/contrib/libc++/include/__config
  projects/clang500-import/contrib/libc++/include/__threading_support
  projects/clang500-import/contrib/libc++/include/algorithm
  projects/clang500-import/contrib/libc++/include/experimental/__config
  projects/clang500-import/contrib/libc++/include/iterator
  projects/clang500-import/contrib/libc++/include/memory
  projects/clang500-import/contrib/libc++/include/module.modulemap
  projects/clang500-import/contrib/llvm/include/llvm/ADT/Triple.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/LoopPass.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/ValueTracking.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/AtomicExpandUtils.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/DIE.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/FaultMaps.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/LiveInterval.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/LiveIntervalUnion.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/LiveRangeEdit.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/LiveStackAnalysis.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.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/MachineInstr.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineValueType.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CVRecord.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeSerializer.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeTableCollection.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/MSF/MappedBlockStream.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBTypeServerHandler.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Attributes.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/BasicBlock.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/IntrinsicInst.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Intrinsics.td
  projects/clang500-import/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td
  projects/clang500-import/contrib/llvm/include/llvm/IR/Metadata.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Module.h
  projects/clang500-import/contrib/llvm/include/llvm/InitializePasses.h
  projects/clang500-import/contrib/llvm/include/llvm/LTO/Config.h
  projects/clang500-import/contrib/llvm/include/llvm/Object/Binary.h
  projects/clang500-import/contrib/llvm/include/llvm/Object/COFF.h
  projects/clang500-import/contrib/llvm/include/llvm/Object/ELFObjectFile.h
  projects/clang500-import/contrib/llvm/include/llvm/Object/MachO.h
  projects/clang500-import/contrib/llvm/include/llvm/Object/ObjectFile.h
  projects/clang500-import/contrib/llvm/include/llvm/Object/RelocVisitor.h
  projects/clang500-import/contrib/llvm/include/llvm/Object/Wasm.h
  projects/clang500-import/contrib/llvm/include/llvm/Option/OptTable.h
  projects/clang500-import/contrib/llvm/include/llvm/ProfileData/InstrProf.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/Transforms/Scalar.h
  projects/clang500-import/contrib/llvm/include/llvm/Transforms/Scalar/GVN.h
  projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/Local.h
  projects/clang500-import/contrib/llvm/lib/Analysis/ConstantFolding.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/Lint.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/LoopPass.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.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/Bitcode/Writer/ValueEnumerator.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.h
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
  projects/clang500-import/contrib/llvm/lib/CodeGen/AtomicExpandPass.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/BranchCoalescing.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/BranchFolding.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/BranchFolding.h
  projects/clang500-import/contrib/llvm/lib/CodeGen/BranchRelaxation.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/DetectDeadLanes.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/EarlyIfConversion.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/ExpandISelPseudos.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/FuncletLayout.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalMerge.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/IfConversion.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/ImplicitNullChecks.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/InterleavedAccessPass.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/LexicalScopes.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/LiveDebugValues.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/LiveStackAnalysis.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/LowerEmuTLS.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineCSE.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineCombiner.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineLICM.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineOutliner.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachinePipeliner.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineScheduler.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineSink.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineVerifier.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/OptimizePHIs.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/PHIElimination.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/ProcessImplicitDefs.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/RenameIndependentSubregs.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SafeStack.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/ShadowStackGCLowering.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/ShrinkWrap.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SjLjEHPrepare.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SlotIndexes.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SpillPlacement.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/StackColoring.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/StackProtector.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/TailDuplication.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/TailDuplicator.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/WinEHPrepare.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeSerializer.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeTableCollection.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/MSF/MappedBlockStream.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PDBTypeServerHandler.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp
  projects/clang500-import/contrib/llvm/lib/Demangle/ItaniumDemangle.cpp
  projects/clang500-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
  projects/clang500-import/contrib/llvm/lib/IR/AttributeImpl.h
  projects/clang500-import/contrib/llvm/lib/IR/Attributes.cpp
  projects/clang500-import/contrib/llvm/lib/IR/BasicBlock.cpp
  projects/clang500-import/contrib/llvm/lib/IR/DebugLoc.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Instructions.cpp
  projects/clang500-import/contrib/llvm/lib/IR/IntrinsicInst.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Module.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Verifier.cpp
  projects/clang500-import/contrib/llvm/lib/LTO/LTO.cpp
  projects/clang500-import/contrib/llvm/lib/LTO/LTOBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Linker/IRMover.cpp
  projects/clang500-import/contrib/llvm/lib/MC/WasmObjectWriter.cpp
  projects/clang500-import/contrib/llvm/lib/Object/COFFObjectFile.cpp
  projects/clang500-import/contrib/llvm/lib/Object/MachOObjectFile.cpp
  projects/clang500-import/contrib/llvm/lib/Object/WasmObjectFile.cpp
  projects/clang500-import/contrib/llvm/lib/Option/OptTable.cpp
  projects/clang500-import/contrib/llvm/lib/Passes/PassBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/ProfileData/InstrProf.cpp
  projects/clang500-import/contrib/llvm/lib/Support/APInt.cpp
  projects/clang500-import/contrib/llvm/lib/Support/BinaryStreamReader.cpp
  projects/clang500-import/contrib/llvm/lib/Support/ConvertUTF.cpp
  projects/clang500-import/contrib/llvm/lib/Support/DebugCounter.cpp
  projects/clang500-import/contrib/llvm/lib/Support/DynamicLibrary.cpp
  projects/clang500-import/contrib/llvm/lib/Support/GraphWriter.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/Triple.cpp
  projects/clang500-import/contrib/llvm/lib/Support/YAMLParser.cpp
  projects/clang500-import/contrib/llvm/lib/TableGen/Record.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  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/AArch64MacroFusion.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkor.td
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkorDetails.td
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td
  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/AMDGPULegalizerInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.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/GCNIterativeScheduler.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/GCNMinRegStrategy.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/R600RegisterInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIDefines.h
  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.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SOPInstructions.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOP1Instructions.td
  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/VOPCInstructions.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOPInstructions.td
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMCallLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMCallLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMSchedule.td
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMScheduleA9.td
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMScheduleR52.td
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMScheduleSwift.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/ARMTargetObjectFile.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonPseudo.td
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
  projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430.td
  projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
  projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.cpp
  projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.h
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSubtarget.h
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCExpandISEL.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZExpandPseudo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86FloatingPoint.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/X86InstrArithmetic.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrFMA.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrFormats.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrMMX.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrSSE.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrXOP.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstructionSelector.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86LegalizerInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86LegalizerInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86Subtarget.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86Subtarget.h
  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/CoroFrame.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/PassManagerBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.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/PGOInstrumentation.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/GVN.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/GuardWidening.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/LoopIdiomRecognize.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/SROA.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/FunctionComparator.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/Local.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.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/clang/include/clang-c/Index.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/Expr.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/StmtCXX.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Attr.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAMDGPU.def
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsPPC.def
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.def
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/SourceManagerInternals.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/TemplateKinds.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/XRayLists.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/Options.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Format/Format.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.def
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInvocation.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/AttributeList.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/ParsedTemplate.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/StmtCXX.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/Module.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/Targets.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/XRayLists.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGCoroutine.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.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/Gnu.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Myriad.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/Format.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Headers/altivec.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Headers/immintrin.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexBody.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/CoroutineStmtBuilder.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaChecking.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/SemaDeclAttr.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/CommonOptionsParser.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp
  projects/clang500-import/contrib/llvm/tools/clang/tools/driver/driver.cpp
  projects/clang500-import/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/ICF.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/InputFiles.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/InputFiles.h
  projects/clang500-import/contrib/llvm/tools/lld/COFF/MarkLive.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/PDB.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Symbols.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Symbols.h
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Writer.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/ICF.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/InputFiles.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/LTO.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/LinkerScript.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/LinkerScript.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/MapFile.cpp
  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/SyntheticSections.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/SyntheticSections.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/API/SBStructuredData.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/API/SBTrace.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/StructuredData.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/StructuredDataImpl.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/TraceOptions.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/Editline.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/Process.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractor.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBProcess.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBStructuredData.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBThread.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBTrace.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Core/FormatEntity.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Core/StructuredData.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/Editline.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.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/gdb-remote/GDBRemoteCommunicationClient.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.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/Plugins/Process/gdb-remote/ProcessGDBRemote.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Target/Process.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Target/Thread.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/StringExtractor.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.h
  projects/clang500-import/contrib/llvm/tools/llvm-nm/llvm-nm.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/PrettyClassLayoutGraphicalDumper.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/YAMLOutputStyle.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/llvm-pdbdump.h
  projects/clang500-import/contrib/llvm/tools/llvm-profdata/llvm-profdata.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/TableGen.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/TableGenBackends.h
  projects/clang500-import/lib/clang/headers/Makefile
  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/libclang/Makefile
  projects/clang500-import/lib/clang/libllvm/Makefile
  projects/clang500-import/lib/libc++/Makefile
  projects/clang500-import/usr.bin/clang/llvm-tblgen/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_interceptors.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc	Mon May 29 22:09:23 2017	(r319164)
@@ -357,28 +357,22 @@ DEFINE_REAL_PTHREAD_FUNCTIONS
 
 #if SANITIZER_ANDROID
 INTERCEPTOR(void*, bsd_signal, int signum, void *handler) {
-  if (!IsHandledDeadlySignal(signum) ||
-      common_flags()->allow_user_segv_handler) {
+  if (GetHandleSignalMode(signum) != kHandleSignalExclusive)
     return REAL(bsd_signal)(signum, handler);
-  }
   return 0;
 }
 #endif
 
 INTERCEPTOR(void*, signal, int signum, void *handler) {
-  if (!IsHandledDeadlySignal(signum) ||
-      common_flags()->allow_user_segv_handler) {
+  if (GetHandleSignalMode(signum) != kHandleSignalExclusive)
     return REAL(signal)(signum, handler);
-  }
   return nullptr;
 }
 
 INTERCEPTOR(int, sigaction, int signum, const struct sigaction *act,
                             struct sigaction *oldact) {
-  if (!IsHandledDeadlySignal(signum) ||
-      common_flags()->allow_user_segv_handler) {
+  if (GetHandleSignalMode(signum) != kHandleSignalExclusive)
     return REAL(sigaction)(signum, act, oldact);
-  }
   return 0;
 }
 

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win.cc	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win.cc	Mon May 29 22:09:23 2017	(r319164)
@@ -80,7 +80,7 @@ static long WINAPI SEHHandler(EXCEPTION_
 INTERCEPTOR_WINAPI(LPTOP_LEVEL_EXCEPTION_FILTER, SetUnhandledExceptionFilter,
     LPTOP_LEVEL_EXCEPTION_FILTER ExceptionFilter) {
   CHECK(REAL(SetUnhandledExceptionFilter));
-  if (ExceptionFilter == &SEHHandler || common_flags()->allow_user_segv_handler)
+  if (ExceptionFilter == &SEHHandler)
     return REAL(SetUnhandledExceptionFilter)(ExceptionFilter);
   // We record the user provided exception handler to be called for all the
   // exceptions unhandled by asan.

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/README.txt
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/README.txt	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/README.txt	Mon May 29 22:09:23 2017	(r319164)
@@ -57,8 +57,8 @@ si_int __popcountsi2(si_int a);  // bit 
 si_int __popcountdi2(di_int a);  // bit population
 si_int __popcountti2(ti_int a);  // bit population
 
-uint32_t __bswapsi2(uint32_t a);   // a byteswapped, arm/mips only
-uint64_t __bswapdi2(uint64_t a);   // a byteswapped, arm/mips only
+uint32_t __bswapsi2(uint32_t a);   // a byteswapped
+uint64_t __bswapdi2(uint64_t a);   // a byteswapped
 
 // Integral arithmetic
 

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -48,7 +48,12 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cdcmp
         // NaN has been ruled out, so __aeabi_cdcmple can't trap
         bne __aeabi_cdcmple
 
+#if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
+        mov ip, #APSR_C
+        msr APSR_nzcvq, ip
+#else
         msr CPSR_f, #APSR_C
+#endif
         JMP(lr)
 #endif
 END_COMPILERRT_FUNCTION(__aeabi_cdcmpeq)
@@ -95,17 +100,23 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cdcmp
         lsls r0, r0, #31
         pop {r0-r3, pc}
 #else
+        ITT(eq)
         moveq ip, #0
         beq 1f
 
         ldm sp, {r0-r3}
         bl __aeabi_dcmpeq
         cmp r0, #1
+        ITE(eq)
         moveq ip, #(APSR_C | APSR_Z)
         movne ip, #(APSR_C)
 
 1:
+#if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
+        msr APSR_nzcvq, ip
+#else
         msr CPSR_f, ip
+#endif
         pop {r0-r3}
         POP_PC()
 #endif

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -48,7 +48,12 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmp
         // NaN has been ruled out, so __aeabi_cfcmple can't trap
         bne __aeabi_cfcmple
 
+#if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
+        mov ip, #APSR_C
+        msr APSR_nzcvq, ip
+#else
         msr CPSR_f, #APSR_C
+#endif
         JMP(lr)
 #endif
 END_COMPILERRT_FUNCTION(__aeabi_cfcmpeq)
@@ -95,17 +100,23 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmp
         lsls r0, r0, #31
         pop {r0-r3, pc}
 #else
+        ITT(eq)
         moveq ip, #0
         beq 1f
 
         ldm sp, {r0-r3}
         bl __aeabi_fcmpeq
         cmp r0, #1
+        ITE(eq)
         moveq ip, #(APSR_C | APSR_Z)
         movne ip, #(APSR_C)
 
 1:
+#if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
+        msr APSR_nzcvq, ip
+#else
         msr CPSR_f, ip
+#endif
         pop {r0-r3}
         POP_PC()
 #endif

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__eqdf2vfp)
 	vcmp.f64 d6, d7		
 #endif
 	vmrs	apsr_nzcv, fpscr
+	ITE(eq)
 	moveq	r0, #1		// set result register to 1 if equal
 	movne	r0, #0
 	bx	lr

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__eqsf2vfp)
 	vcmp.f32 s14, s15
 #endif
 	vmrs	apsr_nzcv, fpscr
+	ITE(eq)
 	moveq	r0, #1      // set result register to 1 if equal
 	movne	r0, #0
 	bx	lr

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__gedf2vfp)
 	vcmp.f64 d6, d7
 #endif
 	vmrs	apsr_nzcv, fpscr
+	ITE(ge)
 	movge	r0, #1      // set result register to 1 if greater than or equal
 	movlt	r0, #0
 	bx	lr

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__gesf2vfp)
 	vcmp.f32 s14, s15
 #endif
 	vmrs	apsr_nzcv, fpscr
+	ITE(ge)
 	movge	r0, #1      // set result register to 1 if greater than or equal
 	movlt	r0, #0
 	bx	lr

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__gtdf2vfp)
 	vcmp.f64 d6, d7
 #endif
 	vmrs	apsr_nzcv, fpscr
+	ITE(gt)
 	movgt	r0, #1		// set result register to 1 if equal
 	movle	r0, #0
 	bx	lr

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__gtsf2vfp)
 	vcmp.f32 s14, s15
 #endif
 	vmrs	apsr_nzcv, fpscr
+	ITE(gt)
 	movgt	r0, #1		// set result register to 1 if equal
 	movle	r0, #0
 	bx	lr

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__ledf2vfp)
 	vcmp.f64 d6, d7
 #endif
 	vmrs	apsr_nzcv, fpscr
+	ITE(ls)
 	movls	r0, #1		// set result register to 1 if equal
 	movhi	r0, #0
 	bx	lr

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__lesf2vfp)
 	vcmp.f32 s14, s15
 #endif
 	vmrs	apsr_nzcv, fpscr
+	ITE(ls)
 	movls	r0, #1      // set result register to 1 if equal
 	movhi	r0, #0
 	bx	lr

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__ltdf2vfp)
 	vcmp.f64 d6, d7
 #endif
 	vmrs	apsr_nzcv, fpscr
+	ITE(mi)
 	movmi	r0, #1		// set result register to 1 if equal
 	movpl	r0, #0
 	bx	lr

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__ltsf2vfp)
 	vcmp.f32 s14, s15
 #endif
 	vmrs	apsr_nzcv, fpscr
+	ITE(mi)
 	movmi	r0, #1      // set result register to 1 if equal
 	movpl	r0, #0
 	bx	lr

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__nedf2vfp)
 	vcmp.f64 d6, d7		
 #endif
 	vmrs	apsr_nzcv, fpscr
+	ITE(ne)
 	movne	r0, #1		// set result register to 0 if unequal
 	moveq	r0, #0
 	bx	lr

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__nesf2vfp)
 	vcmp.f32 s14, s15
 #endif
 	vmrs	apsr_nzcv, fpscr
+	ITE(ne)
 	movne	r0, #1      // set result register to 1 if unequal
 	moveq	r0, #0
 	bx	lr

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__unorddf2vfp
 	vcmp.f64 d6, d7
 #endif
 	vmrs	apsr_nzcv, fpscr
+	ITE(vs)
 	movvs	r0, #1      // set result register to 1 if "overflow" (any NaNs)
 	movvc	r0, #0
 	bx	lr

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S	Mon May 29 22:09:23 2017	(r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__unordsf2vfp
 	vcmp.f32 s14, s15
 #endif
 	vmrs	apsr_nzcv, fpscr
+	ITE(vs)
 	movvs	r0, #1      // set result register to 1 if "overflow" (any NaNs)
 	movvc	r0, #0
 	bx	lr

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/assembly.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/assembly.h	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/assembly.h	Mon May 29 22:09:23 2017	(r319164)
@@ -115,10 +115,12 @@
 #if defined(USE_THUMB_2)
 #define IT(cond)  it cond
 #define ITT(cond) itt cond
+#define ITE(cond) ite cond
 #define WIDE(op) op.w
 #else
 #define IT(cond)
 #define ITT(cond)
+#define ITE(cond)
 #define WIDE(op) op
 #endif
 #endif /* defined(__arm__) */

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapdi2.c
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapdi2.c	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapdi2.c	Mon May 29 22:09:23 2017	(r319164)
@@ -14,15 +14,14 @@
 
 #include "int_lib.h"
 
-COMPILER_RT_ABI uint64_t
-__bswapdi2 (uint64_t u)
-{
-	return ((((u) & 0xff00000000000000ULL) >> 56)
-	    | (((u) & 0x00ff000000000000ULL) >> 40)
-	    | (((u) & 0x0000ff0000000000ULL) >> 24)
-	    | (((u) & 0x000000ff00000000ULL) >>  8)
-	    | (((u) & 0x00000000ff000000ULL) <<  8)
-	    | (((u) & 0x0000000000ff0000ULL) << 24)
-	    | (((u) & 0x000000000000ff00ULL) << 40)
-	    | (((u) & 0x00000000000000ffULL) << 56));
+COMPILER_RT_ABI uint64_t __bswapdi2(uint64_t u) {
+  return (
+      (((u)&0xff00000000000000ULL) >> 56) |
+      (((u)&0x00ff000000000000ULL) >> 40) |
+      (((u)&0x0000ff0000000000ULL) >> 24) |
+      (((u)&0x000000ff00000000ULL) >> 8)  |
+      (((u)&0x00000000ff000000ULL) << 8)  |
+      (((u)&0x0000000000ff0000ULL) << 24) |
+      (((u)&0x000000000000ff00ULL) << 40) |
+      (((u)&0x00000000000000ffULL) << 56));
 }

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapsi2.c
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapsi2.c	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapsi2.c	Mon May 29 22:09:23 2017	(r319164)
@@ -14,12 +14,10 @@
 
 #include "int_lib.h"
 
-COMPILER_RT_ABI uint32_t
-__bswapsi2 (uint32_t u)
-{
-
-	return ((((u) & 0xff000000) >> 24)
-	    | (((u) & 0x00ff0000) >>  8)
-	    | (((u) & 0x0000ff00) <<  8)
-	    | (((u) & 0x000000ff) << 24));
+COMPILER_RT_ABI uint32_t __bswapsi2(uint32_t u) {
+  return (
+      (((u)&0xff000000) >> 24) |
+      (((u)&0x00ff0000) >> 8)  |
+      (((u)&0x0000ff00) << 8)  |
+      (((u)&0x000000ff) << 24));
 }

Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc	Mon May 29 22:09:23 2017	(r319164)
@@ -265,19 +265,21 @@ static void ProcessThreads(SuspendedThre
     }
 
     if (flags()->use_tls) {
-      LOG_THREADS("TLS at %p-%p.\n", tls_begin, tls_end);
-      if (cache_begin == cache_end) {
-        ScanRangeForPointers(tls_begin, tls_end, frontier, "TLS", kReachable);
-      } else {
-        // Because LSan should not be loaded with dlopen(), we can assume
-        // that allocator cache will be part of static TLS image.
-        CHECK_LE(tls_begin, cache_begin);
-        CHECK_GE(tls_end, cache_end);
-        if (tls_begin < cache_begin)
-          ScanRangeForPointers(tls_begin, cache_begin, frontier, "TLS",
-                               kReachable);
-        if (tls_end > cache_end)
-          ScanRangeForPointers(cache_end, tls_end, frontier, "TLS", kReachable);
+      if (tls_begin) {
+        LOG_THREADS("TLS at %p-%p.\n", tls_begin, tls_end);
+        // If the tls and cache ranges don't overlap, scan full tls range,
+        // otherwise, only scan the non-overlapping portions
+        if (cache_begin == cache_end || tls_end < cache_begin ||
+            tls_begin > cache_end) {
+          ScanRangeForPointers(tls_begin, tls_end, frontier, "TLS", kReachable);
+        } else {
+          if (tls_begin < cache_begin)
+            ScanRangeForPointers(tls_begin, cache_begin, frontier, "TLS",
+                                 kReachable);
+          if (tls_end > cache_end)
+            ScanRangeForPointers(cache_end, tls_end, frontier, "TLS",
+                                 kReachable);
+        }
       }
       if (dtls && !DTLSInDestruction(dtls)) {
         for (uptr j = 0; j < dtls->dtv_size; ++j) {

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	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc	Mon May 29 22:09:23 2017	(r319164)
@@ -91,12 +91,7 @@ LoadedModule *GetLinker() { return nullp
 
 // Required on Linux for initialization of TLS behavior, but should not be
 // required on Darwin.
-void InitializePlatformSpecificModules() {
-  if (flags()->use_tls) {
-    Report("use_tls=1 is not supported on Darwin.\n");
-    Die();
-  }
-}
+void InitializePlatformSpecificModules() {}
 
 // Scans global variables for heap pointers.
 void ProcessGlobalRegions(Frontier *frontier) {

Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_flags.inc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_flags.inc	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_flags.inc	Mon May 29 22:09:23 2017	(r319164)
@@ -30,7 +30,7 @@ LSAN_FLAG(bool, use_globals, true,
           "Root set: include global variables (.data and .bss)")
 LSAN_FLAG(bool, use_stacks, true, "Root set: include thread stacks")
 LSAN_FLAG(bool, use_registers, true, "Root set: include thread registers")
-LSAN_FLAG(bool, use_tls, !SANITIZER_MAC,
+LSAN_FLAG(bool, use_tls, true,
           "Root set: include TLS and thread-specific storage")
 LSAN_FLAG(bool, use_root_regions, true,
           "Root set: include regions added via __lsan_register_root_region().")

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h	Mon May 29 22:09:23 2017	(r319164)
@@ -319,5 +319,3 @@ class SizeClassAllocator32 {
   ByteMap possible_regions;
   SizeClassInfo size_class_info_array[kNumClasses];
 };
-
-

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h	Mon May 29 22:09:23 2017	(r319164)
@@ -380,7 +380,7 @@ void SetSoftRssLimitExceededCallback(voi
 
 // Functions related to signal handling.
 typedef void (*SignalHandlerType)(int, void *, void *);
-bool IsHandledDeadlySignal(int signum);
+HandleSignalMode GetHandleSignalMode(int signum);
 void InstallDeadlySignalHandlers(SignalHandlerType handler);
 const char *DescribeSignalOrException(int signo);
 // Alternative signal stack (POSIX-only).

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h	Mon May 29 22:09:23 2017	(r319164)
@@ -64,6 +64,11 @@ inline bool FlagHandler<HandleSignalMode
     *t_ = b ? kHandleSignalYes : kHandleSignalNo;
     return true;
   }
+  if (internal_strcmp(value, "2") == 0 ||
+      internal_strcmp(value, "exclusive") == 0) {
+    *t_ = kHandleSignalExclusive;
+    return true;
+  }
   Printf("ERROR: Invalid value for signal handler option: '%s'\n", value);
   return false;
 }

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.h	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.h	Mon May 29 22:09:23 2017	(r319164)
@@ -21,6 +21,7 @@ namespace __sanitizer {
 enum HandleSignalMode {
   kHandleSignalNo,
   kHandleSignalYes,
+  kHandleSignalExclusive,
 };
 
 struct CommonFlags {

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	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc	Mon May 29 22:09:23 2017	(r319164)
@@ -75,12 +75,13 @@ COMMON_FLAG(bool, print_summary, true,
             "If false, disable printing error summaries in addition to error "
             "reports.")
 COMMON_FLAG(int, print_module_map, 0,
-            "OS X only. 0 = don't print, 1 = print only once before process "
-            "exits, 2 = print after each report.")
+            "OS X only (0 - don't print, 1 - print only once before process "
+            "exits, 2 - print after each report).")
 COMMON_FLAG(bool, check_printf, true, "Check printf arguments.")
 #define COMMON_FLAG_HANDLE_SIGNAL_HELP(signal) \
     "Controls custom tool's " #signal " handler (0 - do not registers the " \
-    "handler, 1 - register the handler). "
+    "handler, 1 - register the handler and allow user to set own, " \
+    "2 - registers the handler and block user from changing it). "
 COMMON_FLAG(HandleSignalMode, handle_segv, kHandleSignalYes,
             COMMON_FLAG_HANDLE_SIGNAL_HELP(SIGSEGV))
 COMMON_FLAG(HandleSignalMode, handle_sigbus, kHandleSignalYes,
@@ -92,9 +93,6 @@ COMMON_FLAG(HandleSignalMode, handle_sig
 COMMON_FLAG(HandleSignalMode, handle_sigfpe, kHandleSignalYes,
             COMMON_FLAG_HANDLE_SIGNAL_HELP(SIGFPE))
 #undef COMMON_FLAG_HANDLE_SIGNAL_HELP
-COMMON_FLAG(bool, allow_user_segv_handler, false,
-            "If set, allows user to register a SEGV handler even if the tool "
-            "registers one.")
 COMMON_FLAG(bool, use_sigaltstack, true,
             "If set, uses alternate stack for signal handling.")
 COMMON_FLAG(bool, detect_deadlocks, false,

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc	Mon May 29 22:09:23 2017	(r319164)
@@ -62,8 +62,6 @@
 #if SANITIZER_FREEBSD
 #include <sys/exec.h>
 #include <sys/sysctl.h>
-#include <vm/vm_param.h>
-#include <vm/pmap.h>
 #include <machine/atomic.h>
 extern "C" {
 // <sys/umtx.h> must be included after <errno.h> and <sys/types.h> on
@@ -263,7 +261,7 @@ uptr internal_stat(const char *path, voi
 uptr internal_lstat(const char *path, void *buf) {
 #if SANITIZER_FREEBSD
   return internal_syscall(SYSCALL(fstatat), AT_FDCWD, (uptr)path,
-                         (uptr)buf, AT_SYMLINK_NOFOLLOW);
+                          (uptr)buf, AT_SYMLINK_NOFOLLOW);
 #elif SANITIZER_USES_CANONICAL_LINUX_SYSCALLS
   return internal_syscall(SYSCALL(newfstatat), AT_FDCWD, (uptr)path,
                          (uptr)buf, AT_SYMLINK_NOFOLLOW);
@@ -551,7 +549,7 @@ void BlockingMutex::Lock() {
 
 void BlockingMutex::Unlock() {
   atomic_uint32_t *m = reinterpret_cast<atomic_uint32_t *>(&opaque_storage_);
-  u32 v = atomic_exchange(m, MtxUnlocked, memory_order_relaxed);
+  u32 v = atomic_exchange(m, MtxUnlocked, memory_order_release);
   CHECK_NE(v, MtxUnlocked);
   if (v == MtxSleeping) {
 #if SANITIZER_FREEBSD
@@ -1398,7 +1396,7 @@ AndroidApiLevel AndroidGetApiLevel() {
 
 #endif
 
-bool IsHandledDeadlySignal(int signum) {
+HandleSignalMode GetHandleSignalMode(int signum) {
   switch (signum) {
     case SIGABRT:
       return common_flags()->handle_abort;
@@ -1411,7 +1409,7 @@ bool IsHandledDeadlySignal(int signum) {
     case SIGBUS:
       return common_flags()->handle_sigbus;
   }
-  return false;
+  return kHandleSignalNo;
 }
 
 #if !SANITIZER_GO

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cc	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cc	Mon May 29 22:09:23 2017	(r319164)
@@ -178,6 +178,13 @@ static bool FixedCVE_2016_2143() {
     // 4.4.6+ is OK.
     if (minor == 4 && patch >= 6)
       return true;
+    if (minor == 4 && patch == 0 && ptr[0] == '-' &&
+        internal_strstr(buf.version, "Ubuntu")) {
+      // Check Ubuntu 16.04
+      int r1 = internal_simple_strtoll(ptr+1, &ptr, 10);
+      if (r1 >= 13) // 4.4.0-13 or later
+        return true;
+    }
     // Otherwise, OK if 4.5+.
     return minor >= 5;
   } else {

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	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc	Mon May 29 22:09:23 2017	(r319164)
@@ -370,6 +370,27 @@ uptr GetTlsSize() {
 void InitTlsSize() {
 }
 
+uptr TlsBaseAddr() {
+  uptr segbase = 0;
+#if defined(__x86_64__)
+  asm("movq %%gs:0,%0" : "=r"(segbase));
+#elif defined(__i386__)
+  asm("movl %%gs:0,%0" : "=r"(segbase));
+#endif
+  return segbase;
+}
+
+// The size of the tls on darwin does not appear to be well documented,
+// however the vm memory map suggests that it is 1024 uptrs in size,
+// with a size of 0x2000 bytes on x86_64 and 0x1000 bytes on i386.
+uptr TlsSize() {
+#if defined(__x86_64__) || defined(__i386__)
+  return 1024 * sizeof(uptr);
+#else
+  return 0;
+#endif
+}
+
 void GetThreadStackAndTls(bool main, uptr *stk_addr, uptr *stk_size,
                           uptr *tls_addr, uptr *tls_size) {
 #if !SANITIZER_GO
@@ -377,8 +398,8 @@ void GetThreadStackAndTls(bool main, upt
   GetThreadStackTopAndBottom(main, &stack_top, &stack_bottom);
   *stk_addr = stack_bottom;
   *stk_size = stack_top - stack_bottom;
-  *tls_addr = 0;
-  *tls_size = 0;
+  *tls_addr = TlsBaseAddr();
+  *tls_size = TlsSize();
 #else
   *stk_addr = 0;
   *stk_size = 0;
@@ -393,10 +414,10 @@ void ListOfModules::init() {
   memory_mapping.DumpListOfModules(&modules_);
 }
 
-bool IsHandledDeadlySignal(int signum) {
+HandleSignalMode GetHandleSignalMode(int signum) {
   // Handling fatal signals on watchOS and tvOS devices is disallowed.
   if ((SANITIZER_WATCHOS || SANITIZER_TVOS) && !(SANITIZER_IOSSIM))
-    return false;
+    return kHandleSignalNo;
   switch (signum) {
     case SIGABRT:
       return common_flags()->handle_abort;
@@ -409,7 +430,7 @@ bool IsHandledDeadlySignal(int signum) {
     case SIGBUS:
       return common_flags()->handle_sigbus;
   }
-  return false;
+  return kHandleSignalNo;
 }
 
 MacosVersion cached_macos_version = MACOS_VERSION_UNINITIALIZED;

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc	Mon May 29 22:09:23 2017	(r319164)
@@ -134,7 +134,8 @@ void SleepForMillis(int millis) {
 void Abort() {
 #if !SANITIZER_GO
   // If we are handling SIGABRT, unhandle it first.
-  if (IsHandledDeadlySignal(SIGABRT)) {
+  // TODO(vitalybuka): Check if handler belongs to sanitizer.
+  if (GetHandleSignalMode(SIGABRT) != kHandleSignalNo) {
     struct sigaction sigact;
     internal_memset(&sigact, 0, sizeof(sigact));
     sigact.sa_sigaction = (sa_sigaction_t)SIG_DFL;
@@ -188,8 +189,26 @@ void UnsetAlternateSignalStack() {
 
 static void MaybeInstallSigaction(int signum,
                                   SignalHandlerType handler) {
-  if (!IsHandledDeadlySignal(signum))
-    return;
+  switch (GetHandleSignalMode(signum)) {
+    case kHandleSignalNo:
+      return;
+    case kHandleSignalYes: {
+      struct sigaction sigact;
+      internal_memset(&sigact, 0, sizeof(sigact));
+      CHECK_EQ(0, internal_sigaction(signum, nullptr, &sigact));
+      if (sigact.sa_flags & SA_SIGINFO) {
+        if (sigact.sa_sigaction) return;
+      } else {
+        if (sigact.sa_handler != SIG_DFL && sigact.sa_handler != SIG_IGN &&
+            sigact.sa_handler != SIG_ERR)
+          return;
+      }
+      break;
+    }
+    case kHandleSignalExclusive:
+      break;
+  }
+
   struct sigaction sigact;
   internal_memset(&sigact, 0, sizeof(sigact));
   sigact.sa_sigaction = (sa_sigaction_t)handler;

Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc	Mon May 29 22:09:23 2017	(r319164)
@@ -832,9 +832,9 @@ void InstallDeadlySignalHandlers(SignalH
   // FIXME: Decide what to do on Windows.
 }
 
-bool IsHandledDeadlySignal(int signum) {
+HandleSignalMode GetHandleSignalMode(int signum) {
   // FIXME: Decide what to do on Windows.
-  return false;
+  return kHandleSignalNo;
 }
 
 // Check based on flags if we should handle this exception.

Modified: projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_tls_linux.cpp
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_tls_linux.cpp	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_tls_linux.cpp	Mon May 29 22:09:23 2017	(r319164)
@@ -18,7 +18,6 @@
 
 #include "scudo_tls.h"
 
-#include <limits.h>
 #include <pthread.h>
 
 namespace __scudo {
@@ -32,15 +31,17 @@ __attribute__((tls_model("initial-exec")
 THREADLOCAL ScudoThreadContext ThreadLocalContext;
 
 static void teardownThread(void *Ptr) {
-  uptr Iteration = reinterpret_cast<uptr>(Ptr);
+  uptr I = reinterpret_cast<uptr>(Ptr);
   // The glibc POSIX thread-local-storage deallocation routine calls user
   // provided destructors in a loop of PTHREAD_DESTRUCTOR_ITERATIONS.
   // We want to be called last since other destructors might call free and the
   // like, so we wait until PTHREAD_DESTRUCTOR_ITERATIONS before draining the
   // quarantine and swallowing the cache.
-  if (Iteration < PTHREAD_DESTRUCTOR_ITERATIONS) {
-    pthread_setspecific(PThreadKey, reinterpret_cast<void *>(Iteration + 1));
-    return;
+  if (I > 1) {
+    // If pthread_setspecific fails, we will go ahead with the teardown.
+    if (LIKELY(pthread_setspecific(PThreadKey,
+                                   reinterpret_cast<void *>(I - 1)) == 0))
+      return;
   }
   ThreadLocalContext.commitBack();
   ScudoThreadState = ThreadTornDown;
@@ -53,8 +54,9 @@ static void initOnce() {
 }
 
 void initThread() {
-  pthread_once(&GlobalInitialized, initOnce);
-  pthread_setspecific(PThreadKey, reinterpret_cast<void *>(1));
+  CHECK_EQ(pthread_once(&GlobalInitialized, initOnce), 0);
+  CHECK_EQ(pthread_setspecific(PThreadKey, reinterpret_cast<void *>(
+      GetPthreadDestructorIterations())), 0);
   ThreadLocalContext.init();
   ScudoThreadState = ThreadInitialized;
 }

Modified: projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h	Mon May 29 22:09:23 2017	(r319164)
@@ -816,6 +816,7 @@ void FlushShadowMemory();
 void WriteMemoryProfile(char *buf, uptr buf_size, uptr nthread, uptr nlive);
 int ExtractResolvFDs(void *state, int *fds, int nfd);
 int ExtractRecvmsgFDs(void *msg, int *fds, int nfd);
+void ImitateTlsWrite(ThreadState *thr, uptr tls_addr, uptr tls_size);
 
 int call_pthread_cancel_with_cleanup(int(*fn)(void *c, void *m,
     void *abstime), void *c, void *m, void *abstime,

Modified: projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc	Mon May 29 22:09:23 2017	(r319164)
@@ -320,6 +320,20 @@ int ExtractRecvmsgFDs(void *msgp, int *f
   return res;
 }
 
+void ImitateTlsWrite(ThreadState *thr, uptr tls_addr, uptr tls_size) {
+  // Check that the thr object is in tls;
+  const uptr thr_beg = (uptr)thr;
+  const uptr thr_end = (uptr)thr + sizeof(*thr);
+  CHECK_GE(thr_beg, tls_addr);
+  CHECK_LE(thr_beg, tls_addr + tls_size);
+  CHECK_GE(thr_end, tls_addr);
+  CHECK_LE(thr_end, tls_addr + tls_size);
+  // Since the thr object is huge, skip it.
+  MemoryRangeImitateWrite(thr, /*pc=*/2, tls_addr, thr_beg - tls_addr);
+  MemoryRangeImitateWrite(thr, /*pc=*/2, thr_end,
+                          tls_addr + tls_size - thr_end);
+}
+
 // Note: this function runs with async signals enabled,
 // so it must not touch any tsan state.
 int call_pthread_cancel_with_cleanup(int(*fn)(void *c, void *m,

Modified: projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc	Mon May 29 22:09:23 2017	(r319164)
@@ -75,12 +75,18 @@ static void *SignalSafeGetOrAllocate(upt
 static uptr main_thread_identity = 0;
 ALIGNED(64) static char main_thread_state[sizeof(ThreadState)];
 
+ThreadState **cur_thread_location() {
+  ThreadState **thread_identity = (ThreadState **)pthread_self();
+  return ((uptr)thread_identity == main_thread_identity) ? nullptr
+                                                         : thread_identity;
+}
+
 ThreadState *cur_thread() {
-  uptr thread_identity = (uptr)pthread_self();
-  if (thread_identity == main_thread_identity || main_thread_identity == 0) {
+  ThreadState **thr_state_loc = cur_thread_location();
+  if (thr_state_loc == nullptr || main_thread_identity == 0) {
     return (ThreadState *)&main_thread_state;
   }
-  ThreadState **fake_tls = (ThreadState **)MemToShadow(thread_identity);
+  ThreadState **fake_tls = (ThreadState **)MemToShadow((uptr)thr_state_loc);
   ThreadState *thr = (ThreadState *)SignalSafeGetOrAllocate(
       (uptr *)fake_tls, sizeof(ThreadState));
   return thr;
@@ -90,13 +96,13 @@ ThreadState *cur_thread() {
 // munmap first and then clear `fake_tls`; if we receive a signal in between,
 // handler will try to access the unmapped ThreadState.
 void cur_thread_finalize() {
-  uptr thread_identity = (uptr)pthread_self();
-  if (thread_identity == main_thread_identity) {
+  ThreadState **thr_state_loc = cur_thread_location();
+  if (thr_state_loc == nullptr) {
     // Calling dispatch_main() or xpc_main() actually invokes pthread_exit to
     // exit the main thread. Let's keep the main thread's ThreadState.
     return;
   }
-  ThreadState **fake_tls = (ThreadState **)MemToShadow(thread_identity);
+  ThreadState **fake_tls = (ThreadState **)MemToShadow((uptr)thr_state_loc);
   internal_munmap(*fake_tls, sizeof(ThreadState));
   *fake_tls = nullptr;
 }
@@ -240,6 +246,29 @@ void InitializePlatform() {
 }
 
 #if !SANITIZER_GO
+void ImitateTlsWrite(ThreadState *thr, uptr tls_addr, uptr tls_size) {
+  // The pointer to the ThreadState object is stored in the shadow memory
+  // of the tls.
+  uptr tls_end = tls_addr + tls_size;
+  ThreadState **thr_state_loc = cur_thread_location();
+  if (thr_state_loc == nullptr) {
+    MemoryRangeImitateWrite(thr, /*pc=*/2, tls_addr, tls_size);
+  } else {
+    uptr thr_state_start = (uptr)thr_state_loc;
+    uptr thr_state_end = thr_state_start + sizeof(uptr);
+    CHECK_GE(thr_state_start, tls_addr);
+    CHECK_LE(thr_state_start, tls_addr + tls_size);
+    CHECK_GE(thr_state_end, tls_addr);
+    CHECK_LE(thr_state_end, tls_addr + tls_size);
+    MemoryRangeImitateWrite(thr, /*pc=*/2, tls_addr,
+                            thr_state_start - tls_addr);
+    MemoryRangeImitateWrite(thr, /*pc=*/2, thr_state_end,
+                            tls_end - thr_state_end);
+  }
+}
+#endif
+
+#if !SANITIZER_GO
 // Note: this function runs with async signals enabled,
 // so it must not touch any tsan state.
 int call_pthread_cancel_with_cleanup(int(*fn)(void *c, void *m,

Modified: projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc	Mon May 29 22:09:23 2017	(r319164)
@@ -248,19 +248,7 @@ void ThreadStart(ThreadState *thr, int t
     if (stk_addr && stk_size)
       MemoryRangeImitateWrite(thr, /*pc=*/ 1, stk_addr, stk_size);
 
-    if (tls_addr && tls_size) {
-      // Check that the thr object is in tls;
-      const uptr thr_beg = (uptr)thr;
-      const uptr thr_end = (uptr)thr + sizeof(*thr);
-      CHECK_GE(thr_beg, tls_addr);
-      CHECK_LE(thr_beg, tls_addr + tls_size);
-      CHECK_GE(thr_end, tls_addr);
-      CHECK_LE(thr_end, tls_addr + tls_size);
-      // Since the thr object is huge, skip it.
-      MemoryRangeImitateWrite(thr, /*pc=*/ 2, tls_addr, thr_beg - tls_addr);
-      MemoryRangeImitateWrite(thr, /*pc=*/ 2,
-          thr_end, tls_addr + tls_size - thr_end);
-    }
+    if (tls_addr && tls_size) ImitateTlsWrite(thr, tls_addr, tls_size);
   }
 #endif
 

Modified: projects/clang500-import/contrib/libc++/include/__config
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__config	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/libc++/include/__config	Mon May 29 22:09:23 2017	(r319164)
@@ -1126,6 +1126,10 @@ _LIBCPP_FUNC_VIS extern "C" void __sanit
 # define _LIBCPP_HAS_NO_IS_AGGREGATE
 #endif
 
+#if !defined(__cpp_coroutines) || __cpp_coroutines < 201703L
+# define _LIBCPP_HAS_NO_COROUTINES
+#endif
+
 #endif // __cplusplus
 
 // Decide whether to use availability macros.

Modified: projects/clang500-import/contrib/libc++/include/__threading_support
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__threading_support	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/libc++/include/__threading_support	Mon May 29 22:09:23 2017	(r319164)
@@ -27,7 +27,7 @@
 # include <pthread.h>
 # include <sched.h>
 #elif defined(_LIBCPP_HAS_THREAD_API_WIN32)
-#include <Windows.h>
+#include <windows.h>
 #include <process.h>
 #include <fibersapi.h>
 #include <__undef_min_max>

Modified: projects/clang500-import/contrib/libc++/include/algorithm
==============================================================================
--- projects/clang500-import/contrib/libc++/include/algorithm	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/libc++/include/algorithm	Mon May 29 22:09:23 2017	(r319164)
@@ -35,6 +35,9 @@ template <class InputIterator, class Fun
     Function
     for_each(InputIterator first, InputIterator last, Function f);
 
+template<class InputIterator, class Size, class Function>
+    InputIterator for_each_n(InputIterator first, Size n, Function f); // C++17
+
 template <class InputIterator, class T>
     InputIterator
     find(InputIterator first, InputIterator last, const T& value);
@@ -961,6 +964,26 @@ for_each(_InputIterator __first, _InputI
     return __f;
 }
 
+#if _LIBCPP_STD_VER > 14
+// for_each_n
+
+template <class _InputIterator, class _Size, class _Function>
+inline _LIBCPP_INLINE_VISIBILITY
+_InputIterator
+for_each_n(_InputIterator __first, _Size __orig_n, _Function __f)
+{
+    typedef decltype(__convert_to_integral(__orig_n)) _IntegralSize;
+    _IntegralSize __n = __orig_n;
+    while (__n > 0)
+    {
+         __f(*__first);
+         ++__first;
+         --__n;
+    }
+    return __first;
+}
+#endif
+
 // find
 
 template <class _InputIterator, class _Tp>

Modified: projects/clang500-import/contrib/libc++/include/experimental/__config
==============================================================================
--- projects/clang500-import/contrib/libc++/include/experimental/__config	Mon May 29 21:48:02 2017	(r319163)
+++ projects/clang500-import/contrib/libc++/include/experimental/__config	Mon May 29 22:09:23 2017	(r319164)
@@ -44,6 +44,13 @@
 #define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_FILESYSTEM \
     } } _LIBCPP_END_NAMESPACE_EXPERIMENTAL
 
+#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_COROUTINES \
+  _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace coroutines_v1 {
+
+#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_COROUTINES \
+  } _LIBCPP_END_NAMESPACE_EXPERIMENTAL
+
+#define _VSTD_CORO _VSTD_EXPERIMENTAL::coroutines_v1
 
 #define _VSTD_FS ::std::experimental::filesystem::v1
 

Copied: projects/clang500-import/contrib/libc++/include/experimental/coroutine (from r319151, vendor/libc++/dist/include/experimental/coroutine)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/clang500-import/contrib/libc++/include/experimental/coroutine	Mon May 29 22:09:23 2017	(r319164, copy of r319151, vendor/libc++/dist/include/experimental/coroutine)
@@ -0,0 +1,270 @@
+// -*- C++ -*-
+//===----------------------------- coroutine -----------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _LIBCPP_EXPERIMENTAL_COROUTINE
+#define _LIBCPP_EXPERIMENTAL_COROUTINE
+
+/**
+    experimental/coroutine synopsis
+
+// C++next
+
+namespace std {
+namespace experimental {
+inline namespace coroutines_v1 {
+
+  // 18.11.1 coroutine traits
+template <typename R, typename... ArgTypes>
+class coroutine_traits;
+// 18.11.2 coroutine handle
+template <typename Promise = void>
+class coroutine_handle;
+// 18.11.2.7 comparison operators:
+bool operator==(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
+bool operator!=(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
+bool operator<(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
+bool operator<=(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
+bool operator>=(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
+bool operator>(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
+// 18.11.3 trivial awaitables
+struct suspend_never;
+struct suspend_always;
+// 18.11.2.8 hash support:
+template <class T> struct hash;
+template <class P> struct hash<coroutine_handle<P>>;
+
+} // namespace coroutines_v1
+} // namespace experimental
+} // namespace std
+
+ */
+
+#include <experimental/__config>
+#include <new>
+#include <type_traits>
+#include <functional>
+#include <memory> // for hash<T*>
+#include <cstddef>
+#include <cassert>
+#include <__debug>
+
+#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+#pragma GCC system_header
+#endif
+
+#ifdef _LIBCPP_HAS_NO_COROUTINES
+# if defined(_LIBCPP_WARNING)
+    _LIBCPP_WARNING("<experimental/coroutine> cannot be used with this compiler")
+# else
+#   warning <experimental/coroutine> cannot be used with this compiler
+# endif
+#endif
+
+#ifndef _LIBCPP_HAS_NO_COROUTINES
+
+_LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_COROUTINES
+
+template <class _Tp, class = void>
+struct __coroutine_traits_sfinae {};
+
+template <class _Tp>
+struct __coroutine_traits_sfinae<
+    _Tp, typename __void_t<typename _Tp::promise_type>::type>
+{
+  using promise_type = typename _Tp::promise_type;
+};
+
+template <typename _Ret, typename... _Args>
+struct _LIBCPP_TEMPLATE_VIS coroutine_traits
+    : public __coroutine_traits_sfinae<_Ret>
+{
+};
+
+template <typename _Promise = void>

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



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