Date: Wed, 19 Jul 2017 19:41:42 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r321238 - in projects/clang500-import: contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/compiler-rt/lib/lsan contrib/compiler-rt/lib/msan contrib/compiler-rt/lib/sa... Message-ID: <201707191941.v6JJfgmS004575@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Wed Jul 19 19:41:41 2017 New Revision: 321238 URL: https://svnweb.freebsd.org/changeset/base/321238 Log: Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and update build glue. Added: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h - copied unchanged from r321217, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_checks.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/GUID.h - copied unchanged from r321217, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/GUID.h projects/clang500-import/contrib/llvm/include/llvm/ToolDrivers/llvm-dlltool/ - copied from r321217, vendor/llvm/dist/include/llvm/ToolDrivers/llvm-dlltool/ projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp - copied unchanged from r321217, vendor/llvm/dist/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ14.td - copied unchanged from r321217, vendor/llvm/dist/lib/Target/SystemZ/SystemZScheduleZ14.td projects/clang500-import/contrib/llvm/lib/Target/X86/X86CmovConversion.cpp - copied unchanged from r321217, vendor/llvm/dist/lib/Target/X86/X86CmovConversion.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86ScheduleZnver1.td - copied unchanged from r321217, vendor/llvm/dist/lib/Target/X86/X86ScheduleZnver1.td projects/clang500-import/contrib/llvm/lib/ToolDrivers/llvm-dlltool/ - copied from r321217, vendor/llvm/dist/lib/ToolDrivers/llvm-dlltool/ projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h - copied unchanged from r321217, vendor/clang/dist/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h Deleted: projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeServerHandler.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBTypeServerHandler.h projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PDBTypeServerHandler.cpp projects/clang500-import/contrib/llvm/lib/ToolDrivers/llvm-dlltool/CMakeLists.txt projects/clang500-import/contrib/llvm/lib/ToolDrivers/llvm-dlltool/LLVMBuild.txt Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.h projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc projects/clang500-import/contrib/compiler-rt/lib/msan/msan.h projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_allocator_combined.h projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.cc projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.h projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_defs.h projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc projects/clang500-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc projects/clang500-import/contrib/libc++/include/__config projects/clang500-import/contrib/libc++/include/algorithm projects/clang500-import/contrib/libc++/include/string projects/clang500-import/contrib/libc++/include/vector projects/clang500-import/contrib/llvm/include/llvm/Analysis/DominanceFrontier.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/DominanceFrontierImpl.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/LoopInfo.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/LoopInfoImpl.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/PostDominators.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineDominators.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachinePostDominators.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/Formatters.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/GenericError.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/Formatters.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStream.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h projects/clang500-import/contrib/llvm/include/llvm/IR/CallingConv.h projects/clang500-import/contrib/llvm/include/llvm/IR/Constants.h projects/clang500-import/contrib/llvm/include/llvm/IR/DIBuilder.h projects/clang500-import/contrib/llvm/include/llvm/IR/DebugInfoMetadata.h projects/clang500-import/contrib/llvm/include/llvm/IR/Dominators.h projects/clang500-import/contrib/llvm/include/llvm/IR/IntrinsicsHexagon.td projects/clang500-import/contrib/llvm/include/llvm/IR/IntrinsicsSystemZ.td projects/clang500-import/contrib/llvm/include/llvm/MC/LaneBitmask.h projects/clang500-import/contrib/llvm/include/llvm/MC/MCFixup.h projects/clang500-import/contrib/llvm/include/llvm/MC/MCInstrDesc.h projects/clang500-import/contrib/llvm/include/llvm/Object/COFFImportFile.h projects/clang500-import/contrib/llvm/include/llvm/Object/COFFModuleDefinition.h projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h projects/clang500-import/contrib/llvm/include/llvm/Support/AArch64TargetParser.def projects/clang500-import/contrib/llvm/include/llvm/Support/BinaryItemStream.h projects/clang500-import/contrib/llvm/include/llvm/Support/Format.h projects/clang500-import/contrib/llvm/include/llvm/Support/GenericDomTree.h projects/clang500-import/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h projects/clang500-import/contrib/llvm/include/llvm/Support/TargetParser.h projects/clang500-import/contrib/llvm/include/llvm/Support/YAMLTraits.h projects/clang500-import/contrib/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td projects/clang500-import/contrib/llvm/include/llvm/Target/TargetLowering.h projects/clang500-import/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp projects/clang500-import/contrib/llvm/lib/Analysis/DominanceFrontier.cpp projects/clang500-import/contrib/llvm/lib/Analysis/InstCount.cpp projects/clang500-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp projects/clang500-import/contrib/llvm/lib/Analysis/IteratedDominanceFrontier.cpp projects/clang500-import/contrib/llvm/lib/Analysis/LazyCallGraph.cpp projects/clang500-import/contrib/llvm/lib/Analysis/LoopInfo.cpp projects/clang500-import/contrib/llvm/lib/Analysis/MemorySSA.cpp projects/clang500-import/contrib/llvm/lib/Analysis/PostDominators.cpp projects/clang500-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp projects/clang500-import/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp projects/clang500-import/contrib/llvm/lib/AsmParser/LLLexer.cpp projects/clang500-import/contrib/llvm/lib/AsmParser/LLParser.cpp projects/clang500-import/contrib/llvm/lib/AsmParser/LLToken.h projects/clang500-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp projects/clang500-import/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/MachineCombiner.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/MachineDominanceFrontier.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/MachineDominators.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/MachinePostDominators.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/XRayInstrumentation.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/Formatters.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/GenericError.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStream.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStreamBuilder.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/PDBExtras.cpp projects/clang500-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h projects/clang500-import/contrib/llvm/lib/IR/AsmWriter.cpp projects/clang500-import/contrib/llvm/lib/IR/Constants.cpp projects/clang500-import/contrib/llvm/lib/IR/Core.cpp projects/clang500-import/contrib/llvm/lib/IR/DIBuilder.cpp projects/clang500-import/contrib/llvm/lib/IR/DebugInfoMetadata.cpp projects/clang500-import/contrib/llvm/lib/IR/Dominators.cpp projects/clang500-import/contrib/llvm/lib/IR/LLVMContextImpl.h projects/clang500-import/contrib/llvm/lib/IR/LegacyPassManager.cpp projects/clang500-import/contrib/llvm/lib/IR/Module.cpp projects/clang500-import/contrib/llvm/lib/Object/ArchiveWriter.cpp projects/clang500-import/contrib/llvm/lib/Object/COFFImportFile.cpp projects/clang500-import/contrib/llvm/lib/Object/COFFModuleDefinition.cpp projects/clang500-import/contrib/llvm/lib/Object/COFFObjectFile.cpp projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp projects/clang500-import/contrib/llvm/lib/Option/OptTable.cpp projects/clang500-import/contrib/llvm/lib/Support/ErrorHandling.cpp projects/clang500-import/contrib/llvm/lib/Support/Host.cpp projects/clang500-import/contrib/llvm/lib/Support/Path.cpp projects/clang500-import/contrib/llvm/lib/Support/TargetParser.cpp projects/clang500-import/contrib/llvm/lib/Support/YAMLTraits.cpp projects/clang500-import/contrib/llvm/lib/Support/raw_ostream.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64.td projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrAtomics.td projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOP2Instructions.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOP3Instructions.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOP3PInstructions.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOPCInstructions.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOPInstructions.td projects/clang500-import/contrib/llvm/lib/Target/ARM/ARM.td projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMInstructionSelector.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMMCInstLower.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsics.td projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonPatterns.td projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h projects/clang500-import/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/Mips.td projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsMTInstrFormats.td projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsMTInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSchedule.td projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSubtarget.h projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsTargetStreamer.h projects/clang500-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.h projects/clang500-import/contrib/llvm/lib/Target/Sparc/Sparc.td projects/clang500-import/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/Sparc/SparcSubtarget.cpp projects/clang500-import/contrib/llvm/lib/Target/Sparc/SparcSubtarget.h projects/clang500-import/contrib/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZFeatures.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrFP.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrSystem.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrVector.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZOperators.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZPatterns.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZProcessors.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZSchedule.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZShortenInst.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.h projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h projects/clang500-import/contrib/llvm/lib/Target/X86/X86.h projects/clang500-import/contrib/llvm/lib/Target/X86/X86.td projects/clang500-import/contrib/llvm/lib/Target/X86/X86CallingConv.td projects/clang500-import/contrib/llvm/lib/Target/X86/X86FastISel.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86FixupBWInsts.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrAVX512.td projects/clang500-import/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86Schedule.td projects/clang500-import/contrib/llvm/lib/Target/X86/X86ScheduleBtVer2.td projects/clang500-import/contrib/llvm/lib/Target/X86/X86Subtarget.h projects/clang500-import/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86TargetMachine.h projects/clang500-import/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp projects/clang500-import/contrib/llvm/lib/Transforms/IPO/Inliner.cpp projects/clang500-import/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/GVN.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LoopInterchange.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp projects/clang500-import/contrib/llvm/tools/clang/include/clang-c/Index.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/Type.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Dominators.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Attr.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsHexagon.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsSystemZ.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/Options.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/LangStandard.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Index/IndexingAction.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/DiagnosticsYaml.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRFinder.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/module.modulemap projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/OpenMPClause.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/StmtOpenMP.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/Type.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/Targets.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/Driver.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.h projects/clang500-import/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FrontendActions.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Headers/vecintrin.h projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexingAction.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPExpressions.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/Sema.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFinder.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp projects/clang500-import/contrib/llvm/tools/lld/COFF/Chunks.cpp projects/clang500-import/contrib/llvm/tools/lld/COFF/Chunks.h projects/clang500-import/contrib/llvm/tools/lld/COFF/Config.h projects/clang500-import/contrib/llvm/tools/lld/COFF/Driver.cpp projects/clang500-import/contrib/llvm/tools/lld/COFF/PDB.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Arch/MipsArchTree.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Config.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Driver.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/EhFrame.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Filesystem.h projects/clang500-import/contrib/llvm/tools/lld/ELF/GdbIndex.h projects/clang500-import/contrib/llvm/tools/lld/ELF/ICF.h projects/clang500-import/contrib/llvm/tools/lld/ELF/InputFiles.h projects/clang500-import/contrib/llvm/tools/lld/ELF/LTO.h projects/clang500-import/contrib/llvm/tools/lld/ELF/LinkerScript.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/MapFile.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/MapFile.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Memory.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Options.td projects/clang500-import/contrib/llvm/tools/lld/ELF/OutputSections.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/OutputSections.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Relocations.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Relocations.h projects/clang500-import/contrib/llvm/tools/lld/ELF/ScriptParser.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Strings.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Strings.h projects/clang500-import/contrib/llvm/tools/lld/ELF/SymbolTable.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Symbols.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Target.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Target.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Threads.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Thunks.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Thunks.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Writer.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Writer.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/MainLoop.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/PosixApi.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/SocketAddress.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeThreadProtocol.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandInterpreter.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/DataExtractor.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/lldb-types.h projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/File.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/Host.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/NativeRegisterContext.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/SocketAddress.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/TCPSocket.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/FileSystem.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/HostProcessPosix.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/LockFilePosix.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Target/Target.cpp projects/clang500-import/contrib/llvm/tools/lldb/tools/driver/Driver.cpp projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.cpp projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-server/lldb-gdbserver.cpp projects/clang500-import/contrib/llvm/tools/llvm-ar/llvm-ar.cpp projects/clang500-import/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.h projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/PdbYaml.cpp projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/PdbYaml.h projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp projects/clang500-import/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp projects/clang500-import/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp projects/clang500-import/contrib/llvm/tools/llvm-readobj/llvm-readobj.cpp projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp projects/clang500-import/lib/clang/include/clang/Basic/Version.inc projects/clang500-import/lib/clang/include/lld/Config/Version.inc projects/clang500-import/lib/clang/include/llvm/Support/VCSRevision.h projects/clang500-import/lib/clang/libllvm/Makefile Directory Properties: projects/clang500-import/contrib/compiler-rt/ (props changed) projects/clang500-import/contrib/libc++/ (props changed) projects/clang500-import/contrib/llvm/ (props changed) projects/clang500-import/contrib/llvm/tools/clang/ (props changed) projects/clang500-import/contrib/llvm/tools/lld/ (props changed) projects/clang500-import/contrib/llvm/tools/lldb/ (props changed) Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -21,7 +21,9 @@ #include "asan_report.h" #include "asan_stack.h" #include "asan_thread.h" +#include "sanitizer_common/sanitizer_allocator_checks.h" #include "sanitizer_common/sanitizer_allocator_interface.h" +#include "sanitizer_common/sanitizer_errno.h" #include "sanitizer_common/sanitizer_flags.h" #include "sanitizer_common/sanitizer_internal_defs.h" #include "sanitizer_common/sanitizer_list.h" @@ -799,11 +801,6 @@ void PrintInternalAllocatorStats() { instance.PrintStats(); } -void *asan_memalign(uptr alignment, uptr size, BufferedStackTrace *stack, - AllocType alloc_type) { - return instance.Allocate(size, alignment, stack, alloc_type, true); -} - void asan_free(void *ptr, BufferedStackTrace *stack, AllocType alloc_type) { instance.Deallocate(ptr, 0, stack, alloc_type); } @@ -814,16 +811,16 @@ void asan_sized_free(void *ptr, uptr size, BufferedSta } void *asan_malloc(uptr size, BufferedStackTrace *stack) { - return instance.Allocate(size, 8, stack, FROM_MALLOC, true); + return SetErrnoOnNull(instance.Allocate(size, 8, stack, FROM_MALLOC, true)); } void *asan_calloc(uptr nmemb, uptr size, BufferedStackTrace *stack) { - return instance.Calloc(nmemb, size, stack); + return SetErrnoOnNull(instance.Calloc(nmemb, size, stack)); } void *asan_realloc(void *p, uptr size, BufferedStackTrace *stack) { if (!p) - return instance.Allocate(size, 8, stack, FROM_MALLOC, true); + return SetErrnoOnNull(instance.Allocate(size, 8, stack, FROM_MALLOC, true)); if (size == 0) { if (flags()->allocator_frees_and_returns_null_on_realloc_zero) { instance.Deallocate(p, 0, stack, FROM_MALLOC); @@ -832,26 +829,41 @@ void *asan_realloc(void *p, uptr size, BufferedStackTr // Allocate a size of 1 if we shouldn't free() on Realloc to 0 size = 1; } - return instance.Reallocate(p, size, stack); + return SetErrnoOnNull(instance.Reallocate(p, size, stack)); } void *asan_valloc(uptr size, BufferedStackTrace *stack) { - return instance.Allocate(size, GetPageSizeCached(), stack, FROM_MALLOC, true); + return SetErrnoOnNull( + instance.Allocate(size, GetPageSizeCached(), stack, FROM_MALLOC, true)); } void *asan_pvalloc(uptr size, BufferedStackTrace *stack) { uptr PageSize = GetPageSizeCached(); - size = RoundUpTo(size, PageSize); - if (size == 0) { - // pvalloc(0) should allocate one page. - size = PageSize; + // pvalloc(0) should allocate one page. + size = size ? RoundUpTo(size, PageSize) : PageSize; + return SetErrnoOnNull( + instance.Allocate(size, PageSize, stack, FROM_MALLOC, true)); +} + +void *asan_memalign(uptr alignment, uptr size, BufferedStackTrace *stack, + AllocType alloc_type) { + if (UNLIKELY(!IsPowerOfTwo(alignment))) { + errno = errno_EINVAL; + return AsanAllocator::FailureHandler::OnBadRequest(); } - return instance.Allocate(size, PageSize, stack, FROM_MALLOC, true); + return SetErrnoOnNull( + instance.Allocate(size, alignment, stack, alloc_type, true)); } int asan_posix_memalign(void **memptr, uptr alignment, uptr size, BufferedStackTrace *stack) { + if (UNLIKELY(!CheckPosixMemalignAlignment(alignment))) { + AsanAllocator::FailureHandler::OnBadRequest(); + return errno_EINVAL; + } void *ptr = instance.Allocate(size, alignment, stack, FROM_MALLOC, true); + if (UNLIKELY(!ptr)) + return errno_ENOMEM; CHECK(IsAligned((uptr)ptr, alignment)); *memptr = ptr; return 0; Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -178,6 +178,10 @@ void SetThreadName(const char *name) { } int OnExit() { + if (CAN_SANITIZE_LEAKS && common_flags()->detect_leaks && + __lsan::HasReportedLeaks()) { + return common_flags()->exitcode; + } // FIXME: ask frontend whether we need to return failure. return 0; } Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c Wed Jul 19 19:41:41 2017 (r321238) @@ -190,8 +190,8 @@ static bool getX86CpuIDAndInfo(unsigned value, unsigne static bool getX86CpuIDAndInfoEx(unsigned value, unsigned subleaf, unsigned *rEAX, unsigned *rEBX, unsigned *rECX, unsigned *rEDX) { -#if defined(__x86_64__) || defined(_M_X64) #if defined(__GNUC__) || defined(__clang__) +#if defined(__x86_64__) // gcc doesn't know cpuid would clobber ebx/rbx. Preserve it manually. // FIXME: should we save this for Clang? __asm__("movq\t%%rbx, %%rsi\n\t" @@ -200,43 +200,24 @@ static bool getX86CpuIDAndInfoEx(unsigned value, unsig : "=a"(*rEAX), "=S"(*rEBX), "=c"(*rECX), "=d"(*rEDX) : "a"(value), "c"(subleaf)); return false; -#elif defined(_MSC_VER) - int registers[4]; - __cpuidex(registers, value, subleaf); - *rEAX = registers[0]; - *rEBX = registers[1]; - *rECX = registers[2]; - *rEDX = registers[3]; - return false; -#else - return true; -#endif -#elif defined(__i386__) || defined(_M_IX86) -#if defined(__GNUC__) || defined(__clang__) +#elif defined(__i386__) __asm__("movl\t%%ebx, %%esi\n\t" "cpuid\n\t" "xchgl\t%%ebx, %%esi\n\t" : "=a"(*rEAX), "=S"(*rEBX), "=c"(*rECX), "=d"(*rEDX) : "a"(value), "c"(subleaf)); return false; -#elif defined(_MSC_VER) - __asm { - mov eax,value - mov ecx,subleaf - cpuid - mov esi,rEAX - mov dword ptr [esi],eax - mov esi,rEBX - mov dword ptr [esi],ebx - mov esi,rECX - mov dword ptr [esi],ecx - mov esi,rEDX - mov dword ptr [esi],edx - } - return false; #else return true; #endif +#elif defined(_MSC_VER) + int registers[4]; + __cpuidex(registers, value, subleaf); + *rEAX = registers[0]; + *rEBX = registers[1]; + *rECX = registers[2]; + *rEDX = registers[3]; + return false; #else return true; #endif Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -15,7 +15,9 @@ #include "lsan_allocator.h" #include "sanitizer_common/sanitizer_allocator.h" +#include "sanitizer_common/sanitizer_allocator_checks.h" #include "sanitizer_common/sanitizer_allocator_interface.h" +#include "sanitizer_common/sanitizer_errno.h" #include "sanitizer_common/sanitizer_internal_defs.h" #include "sanitizer_common/sanitizer_stackdepot.h" #include "sanitizer_common/sanitizer_stacktrace.h" @@ -86,6 +88,13 @@ void *Allocate(const StackTrace &stack, uptr size, upt return p; } +static void *Calloc(uptr nmemb, uptr size, const StackTrace &stack) { + if (UNLIKELY(CheckForCallocOverflow(size, nmemb))) + return Allocator::FailureHandler::OnBadRequest(); + size *= nmemb; + return Allocate(stack, size, 1, true); +} + void Deallocate(void *p) { if (&__sanitizer_free_hook) __sanitizer_free_hook(p); RunFreeHooks(p); @@ -118,11 +127,15 @@ uptr GetMallocUsableSize(const void *p) { } void *lsan_memalign(uptr alignment, uptr size, const StackTrace &stack) { - return Allocate(stack, size, alignment, kAlwaysClearMemory); + if (UNLIKELY(!IsPowerOfTwo(alignment))) { + errno = errno_EINVAL; + return Allocator::FailureHandler::OnBadRequest(); + } + return SetErrnoOnNull(Allocate(stack, size, alignment, kAlwaysClearMemory)); } void *lsan_malloc(uptr size, const StackTrace &stack) { - return Allocate(stack, size, 1, kAlwaysClearMemory); + return SetErrnoOnNull(Allocate(stack, size, 1, kAlwaysClearMemory)); } void lsan_free(void *p) { @@ -130,20 +143,16 @@ void lsan_free(void *p) { } void *lsan_realloc(void *p, uptr size, const StackTrace &stack) { - return Reallocate(stack, p, size, 1); + return SetErrnoOnNull(Reallocate(stack, p, size, 1)); } void *lsan_calloc(uptr nmemb, uptr size, const StackTrace &stack) { - if (CheckForCallocOverflow(size, nmemb)) - return Allocator::FailureHandler::OnBadRequest(); - size *= nmemb; - return Allocate(stack, size, 1, true); + return SetErrnoOnNull(Calloc(nmemb, size, stack)); } void *lsan_valloc(uptr size, const StackTrace &stack) { - if (size == 0) - size = GetPageSizeCached(); - return Allocate(stack, size, GetPageSizeCached(), kAlwaysClearMemory); + return SetErrnoOnNull( + Allocate(stack, size, GetPageSizeCached(), kAlwaysClearMemory)); } uptr lsan_mz_size(const void *p) { Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -576,18 +576,16 @@ static bool CheckForLeaks() { return false; } +static bool has_reported_leaks = false; +bool HasReportedLeaks() { return has_reported_leaks; } + void DoLeakCheck() { BlockingMutexLock l(&global_mutex); static bool already_done; if (already_done) return; already_done = true; - bool have_leaks = CheckForLeaks(); - if (!have_leaks) { - return; - } - if (common_flags()->exitcode) { - Die(); - } + has_reported_leaks = CheckForLeaks(); + if (has_reported_leaks) HandleLeaks(); } static int DoRecoverableLeakCheck() { Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.h Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.h Wed Jul 19 19:41:41 2017 (r321238) @@ -226,6 +226,12 @@ IgnoreObjectResult IgnoreObjectLocked(const void *p); // Return the linker module, if valid for the platform. LoadedModule *GetLinker(); +// Return true if LSan has finished leak checking and reported leaks. +bool HasReportedLeaks(); + +// Run platform-specific leak handlers. +void HandleLeaks(); + // Wrapper for chunk metadata operations. class LsanMetadata { public: Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -100,6 +100,13 @@ struct DoStopTheWorldParam { void *argument; }; +// While calling Die() here is undefined behavior and can potentially +// cause race conditions, it isn't possible to intercept exit on linux, +// so we have no choice but to call Die() from the atexit handler. +void HandleLeaks() { + if (common_flags()->exitcode) Die(); +} + static int DoStopTheWorldCallback(struct dl_phdr_info *info, size_t size, void *data) { DoStopTheWorldParam *param = reinterpret_cast<DoStopTheWorldParam *>(data); Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -164,6 +164,11 @@ void ProcessPlatformSpecificAllocations(Frontier *fron } } +// On darwin, we can intercept _exit gracefully, and return a failing exit code +// if required at that point. Calling Die() here is undefined behavior and +// causes rare race conditions. +void HandleLeaks() {} + void DoStopTheWorld(StopTheWorldCallback callback, void *argument) { StopTheWorld(callback, argument); } Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -352,6 +352,11 @@ INTERCEPTOR(int, pthread_join, void *th, void **ret) { return res; } +INTERCEPTOR(void, _exit, int status) { + if (status == 0 && HasReportedLeaks()) status = common_flags()->exitcode; + REAL(_exit)(status); +} + namespace __lsan { void InitializeInterceptors() { @@ -371,6 +376,7 @@ void InitializeInterceptors() { LSAN_MAYBE_INTERCEPT_MALLOPT; INTERCEPT_FUNCTION(pthread_create); INTERCEPT_FUNCTION(pthread_join); + INTERCEPT_FUNCTION(_exit); if (pthread_key_create(&g_thread_finalize_key, &thread_finalize)) { Report("LeakSanitizer: failed to create thread key.\n"); Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/msan/msan.h Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan.h Wed Jul 19 19:41:41 2017 (r321238) @@ -280,10 +280,18 @@ void InitializeInterceptors(); void MsanAllocatorInit(); void MsanAllocatorThreadFinish(); -void *MsanCalloc(StackTrace *stack, uptr nmemb, uptr size); -void *MsanReallocate(StackTrace *stack, void *oldp, uptr size, - uptr alignment, bool zeroise); void MsanDeallocate(StackTrace *stack, void *ptr); + +void *msan_malloc(uptr size, StackTrace *stack); +void *msan_calloc(uptr nmemb, uptr size, StackTrace *stack); +void *msan_realloc(void *ptr, uptr size, StackTrace *stack); +void *msan_valloc(uptr size, StackTrace *stack); +void *msan_pvalloc(uptr size, StackTrace *stack); +void *msan_aligned_alloc(uptr alignment, uptr size, StackTrace *stack); +void *msan_memalign(uptr alignment, uptr size, StackTrace *stack); +int msan_posix_memalign(void **memptr, uptr alignment, uptr size, + StackTrace *stack); + void InstallTrapHandler(); void InstallAtExitHandler(); Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -13,7 +13,9 @@ //===----------------------------------------------------------------------===// #include "sanitizer_common/sanitizer_allocator.h" +#include "sanitizer_common/sanitizer_allocator_checks.h" #include "sanitizer_common/sanitizer_allocator_interface.h" +#include "sanitizer_common/sanitizer_errno.h" #include "msan.h" #include "msan_allocator.h" #include "msan_origin.h" @@ -194,20 +196,8 @@ void MsanDeallocate(StackTrace *stack, void *p) { } } -void *MsanCalloc(StackTrace *stack, uptr nmemb, uptr size) { - if (CheckForCallocOverflow(size, nmemb)) - return Allocator::FailureHandler::OnBadRequest(); - return MsanReallocate(stack, nullptr, nmemb * size, sizeof(u64), true); -} - void *MsanReallocate(StackTrace *stack, void *old_p, uptr new_size, - uptr alignment, bool zeroise) { - if (!old_p) - return MsanAllocate(stack, new_size, alignment, zeroise); - if (!new_size) { - MsanDeallocate(stack, old_p); - return nullptr; - } + uptr alignment) { Metadata *meta = reinterpret_cast<Metadata*>(allocator.GetMetaData(old_p)); uptr old_size = meta->requested_size; uptr actually_allocated_size = allocator.GetActuallyAllocatedSize(old_p); @@ -215,10 +205,7 @@ void *MsanReallocate(StackTrace *stack, void *old_p, u // We are not reallocating here. meta->requested_size = new_size; if (new_size > old_size) { - if (zeroise) { - __msan_clear_and_unpoison((char *)old_p + old_size, - new_size - old_size); - } else if (flags()->poison_in_malloc) { + if (flags()->poison_in_malloc) { stack->tag = StackTrace::TAG_ALLOC; PoisonMemory((char *)old_p + old_size, new_size - old_size, stack); } @@ -226,8 +213,7 @@ void *MsanReallocate(StackTrace *stack, void *old_p, u return old_p; } uptr memcpy_size = Min(new_size, old_size); - void *new_p = MsanAllocate(stack, new_size, alignment, zeroise); - // Printf("realloc: old_size %zd new_size %zd\n", old_size, new_size); + void *new_p = MsanAllocate(stack, new_size, alignment, false /*zeroise*/); if (new_p) { CopyMemory(new_p, old_p, memcpy_size, stack); MsanDeallocate(stack, old_p); @@ -241,6 +227,67 @@ static uptr AllocationSize(const void *p) { if (beg != p) return 0; Metadata *b = (Metadata *)allocator.GetMetaData(p); return b->requested_size; +} + +void *msan_malloc(uptr size, StackTrace *stack) { + return SetErrnoOnNull(MsanAllocate(stack, size, sizeof(u64), false)); +} + +void *msan_calloc(uptr nmemb, uptr size, StackTrace *stack) { + if (UNLIKELY(CheckForCallocOverflow(size, nmemb))) + return SetErrnoOnNull(Allocator::FailureHandler::OnBadRequest()); + return SetErrnoOnNull(MsanAllocate(stack, nmemb * size, sizeof(u64), true)); +} + +void *msan_realloc(void *ptr, uptr size, StackTrace *stack) { + if (!ptr) + return SetErrnoOnNull(MsanAllocate(stack, size, sizeof(u64), false)); + if (size == 0) { + MsanDeallocate(stack, ptr); + return nullptr; + } + return SetErrnoOnNull(MsanReallocate(stack, ptr, size, sizeof(u64))); +} + +void *msan_valloc(uptr size, StackTrace *stack) { + return SetErrnoOnNull(MsanAllocate(stack, size, GetPageSizeCached(), false)); +} + +void *msan_pvalloc(uptr size, StackTrace *stack) { + uptr PageSize = GetPageSizeCached(); + // pvalloc(0) should allocate one page. + size = size == 0 ? PageSize : RoundUpTo(size, PageSize); + return SetErrnoOnNull(MsanAllocate(stack, size, PageSize, false)); +} + +void *msan_aligned_alloc(uptr alignment, uptr size, StackTrace *stack) { + if (UNLIKELY(!CheckAlignedAllocAlignmentAndSize(alignment, size))) { + errno = errno_EINVAL; + return Allocator::FailureHandler::OnBadRequest(); + } + return SetErrnoOnNull(MsanAllocate(stack, size, alignment, false)); +} + +void *msan_memalign(uptr alignment, uptr size, StackTrace *stack) { + if (UNLIKELY(!IsPowerOfTwo(alignment))) { + errno = errno_EINVAL; + return Allocator::FailureHandler::OnBadRequest(); + } + return SetErrnoOnNull(MsanAllocate(stack, size, alignment, false)); +} + +int msan_posix_memalign(void **memptr, uptr alignment, uptr size, + StackTrace *stack) { + if (UNLIKELY(!CheckPosixMemalignAlignment(alignment))) { + Allocator::FailureHandler::OnBadRequest(); + return errno_EINVAL; + } + void *ptr = MsanAllocate(stack, size, alignment, false); + if (UNLIKELY(!ptr)) + return errno_ENOMEM; + CHECK(IsAligned((uptr)ptr, alignment)); + *memptr = ptr; + return 0; } } // namespace __msan Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -161,58 +161,45 @@ INTERCEPTOR(void *, bcopy, const void *src, void *dest INTERCEPTOR(int, posix_memalign, void **memptr, SIZE_T alignment, SIZE_T size) { GET_MALLOC_STACK_TRACE; - CHECK_EQ(alignment & (alignment - 1), 0); CHECK_NE(memptr, 0); - *memptr = MsanReallocate(&stack, nullptr, size, alignment, false); - CHECK_NE(*memptr, 0); - __msan_unpoison(memptr, sizeof(*memptr)); - return 0; + int res = msan_posix_memalign(memptr, alignment, size, &stack); + if (!res) + __msan_unpoison(memptr, sizeof(*memptr)); + return res; } #if !SANITIZER_FREEBSD -INTERCEPTOR(void *, memalign, SIZE_T boundary, SIZE_T size) { +INTERCEPTOR(void *, memalign, SIZE_T alignment, SIZE_T size) { GET_MALLOC_STACK_TRACE; - CHECK_EQ(boundary & (boundary - 1), 0); - void *ptr = MsanReallocate(&stack, nullptr, size, boundary, false); - return ptr; + return msan_memalign(alignment, size, &stack); } #define MSAN_MAYBE_INTERCEPT_MEMALIGN INTERCEPT_FUNCTION(memalign) #else #define MSAN_MAYBE_INTERCEPT_MEMALIGN #endif -INTERCEPTOR(void *, aligned_alloc, SIZE_T boundary, SIZE_T size) { +INTERCEPTOR(void *, aligned_alloc, SIZE_T alignment, SIZE_T size) { GET_MALLOC_STACK_TRACE; - CHECK_EQ(boundary & (boundary - 1), 0); - void *ptr = MsanReallocate(&stack, nullptr, size, boundary, false); - return ptr; + return msan_aligned_alloc(alignment, size, &stack); } -INTERCEPTOR(void *, __libc_memalign, SIZE_T boundary, SIZE_T size) { +INTERCEPTOR(void *, __libc_memalign, SIZE_T alignment, SIZE_T size) { GET_MALLOC_STACK_TRACE; - CHECK_EQ(boundary & (boundary - 1), 0); - void *ptr = MsanReallocate(&stack, nullptr, size, boundary, false); - DTLS_on_libc_memalign(ptr, size); + void *ptr = msan_memalign(alignment, size, &stack); + if (ptr) + DTLS_on_libc_memalign(ptr, size); return ptr; } INTERCEPTOR(void *, valloc, SIZE_T size) { GET_MALLOC_STACK_TRACE; - void *ptr = MsanReallocate(&stack, nullptr, size, GetPageSizeCached(), false); - return ptr; + return msan_valloc(size, &stack); } #if !SANITIZER_FREEBSD INTERCEPTOR(void *, pvalloc, SIZE_T size) { GET_MALLOC_STACK_TRACE; - uptr PageSize = GetPageSizeCached(); - size = RoundUpTo(size, PageSize); - if (size == 0) { - // pvalloc(0) should allocate one page. - size = PageSize; - } - void *ptr = MsanReallocate(&stack, nullptr, size, PageSize, false); - return ptr; + return msan_pvalloc(size, &stack); } #define MSAN_MAYBE_INTERCEPT_PVALLOC INTERCEPT_FUNCTION(pvalloc) #else @@ -853,7 +840,7 @@ INTERCEPTOR(void *, calloc, SIZE_T nmemb, SIZE_T size) if (UNLIKELY(!msan_inited)) // Hack: dlsym calls calloc before REAL(calloc) is retrieved from dlsym. return AllocateFromLocalPool(nmemb * size); - return MsanCalloc(&stack, nmemb, size); + return msan_calloc(nmemb, size, &stack); } INTERCEPTOR(void *, realloc, void *ptr, SIZE_T size) { @@ -866,12 +853,12 @@ INTERCEPTOR(void *, realloc, void *ptr, SIZE_T size) { new_ptr = AllocateFromLocalPool(copy_size); } else { copy_size = size; - new_ptr = MsanReallocate(&stack, nullptr, copy_size, sizeof(u64), false); + new_ptr = msan_malloc(copy_size, &stack); } internal_memcpy(new_ptr, ptr, copy_size); return new_ptr; } - return MsanReallocate(&stack, ptr, size, sizeof(u64), false); + return msan_realloc(ptr, size, &stack); } INTERCEPTOR(void *, malloc, SIZE_T size) { @@ -879,7 +866,7 @@ INTERCEPTOR(void *, malloc, SIZE_T size) { if (UNLIKELY(!msan_inited)) // Hack: dlsym calls malloc before REAL(malloc) is retrieved from dlsym. return AllocateFromLocalPool(size); - return MsanReallocate(&stack, nullptr, size, sizeof(u64), false); + return msan_malloc(size, &stack); } void __msan_allocated_memory(const void *data, uptr size) { Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -31,7 +31,7 @@ namespace std { // TODO(alekseys): throw std::bad_alloc instead of dying on OOM. #define OPERATOR_NEW_BODY(nothrow) \ GET_MALLOC_STACK_TRACE; \ - void *res = MsanReallocate(&stack, 0, size, sizeof(u64), false);\ + void *res = msan_malloc(size, &stack);\ if (!nothrow && UNLIKELY(!res)) DieOnFailure::OnOOM();\ return res Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -14,6 +14,7 @@ #include "sanitizer_allocator.h" +#include "sanitizer_allocator_checks.h" #include "sanitizer_allocator_internal.h" #include "sanitizer_atomic.h" #include "sanitizer_common.h" @@ -160,7 +161,7 @@ void *InternalRealloc(void *addr, uptr size, InternalA } void *InternalCalloc(uptr count, uptr size, InternalAllocatorCache *cache) { - if (CheckForCallocOverflow(count, size)) + if (UNLIKELY(CheckForCallocOverflow(count, size))) return InternalAllocator::FailureHandler::OnBadRequest(); void *p = InternalAlloc(count * size, cache); if (p) internal_memset(p, 0, count * size); @@ -200,12 +201,6 @@ void *LowLevelAllocator::Allocate(uptr size) { void SetLowLevelAllocateCallback(LowLevelAllocateCallback callback) { low_level_alloc_callback = callback; -} - -bool CheckForCallocOverflow(uptr size, uptr n) { - if (!size) return false; - uptr max = (uptr)-1L; - return (max / size) < n; } static atomic_uint8_t allocator_out_of_memory = {0}; Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h Wed Jul 19 19:41:41 2017 (r321238) @@ -56,11 +56,6 @@ struct NoOpMapUnmapCallback { // Callback type for iterating over chunks. typedef void (*ForEachChunkCallback)(uptr chunk, void *arg); -// Returns true if calloc(size, n) call overflows on size*n calculation. -// The caller should "return POLICY::OnBadRequest();" where POLICY is the -// current allocator failure handling policy. -bool CheckForCallocOverflow(uptr size, uptr n); - #include "sanitizer_allocator_size_class_map.h" #include "sanitizer_allocator_stats.h" #include "sanitizer_allocator_primary64.h" Copied: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h (from r321217, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_checks.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h Wed Jul 19 19:41:41 2017 (r321238, copy of r321217, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_checks.h) @@ -0,0 +1,64 @@ +//===-- sanitizer_allocator_checks.h ----------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// Various checks shared between ThreadSanitizer, MemorySanitizer, etc. memory +// allocators. +// +//===----------------------------------------------------------------------===// + +#ifndef SANITIZER_ALLOCATOR_CHECKS_H +#define SANITIZER_ALLOCATOR_CHECKS_H + +#include "sanitizer_errno.h" +#include "sanitizer_internal_defs.h" +#include "sanitizer_common.h" +#include "sanitizer_platform.h" + +namespace __sanitizer { + +// A common errno setting logic shared by almost all sanitizer allocator APIs. +INLINE void *SetErrnoOnNull(void *ptr) { + if (UNLIKELY(!ptr)) + errno = errno_ENOMEM; + return ptr; +} + +// In case of the check failure, the caller of the following Check... functions +// should "return POLICY::OnBadRequest();" where POLICY is the current allocator +// failure handling policy. + +// Checks aligned_alloc() parameters, verifies that the alignment is a power of +// two and that the size is a multiple of alignment for POSIX implementation, +// and a bit relaxed requirement for non-POSIX ones, that the size is a multiple +// of alignment. +INLINE bool CheckAlignedAllocAlignmentAndSize(uptr alignment, uptr size) { +#if SANITIZER_POSIX + return IsPowerOfTwo(alignment) && (size & (alignment - 1)) == 0; +#else + return size % alignment == 0; +#endif +} + +// Checks posix_memalign() parameters, verifies that alignment is a power of two +// and a multiple of sizeof(void *). +INLINE bool CheckPosixMemalignAlignment(uptr alignment) { + return IsPowerOfTwo(alignment) && (alignment % sizeof(void *)) == 0; // NOLINT +} + +// Returns true if calloc(size, n) call overflows on size*n calculation. +INLINE bool CheckForCallocOverflow(uptr size, uptr n) { + if (!size) + return false; + uptr max = (uptr)-1L; + return (max / size) < n; +} + +} // namespace __sanitizer + +#endif // SANITIZER_ALLOCATOR_CHECKS_H Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h Wed Jul 19 19:41:41 2017 (r321238) @@ -26,6 +26,8 @@ # define __errno_location __error #elif SANITIZER_ANDROID # define __errno_location __errno +#elif SANITIZER_WINDOWS +# define __errno_location _errno #endif extern "C" int *__errno_location(); Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -629,8 +629,7 @@ uptr internal_prctl(int option, uptr arg2, uptr arg3, } #endif -uptr internal_sigaltstack(const struct sigaltstack *ss, - struct sigaltstack *oss) { +uptr internal_sigaltstack(const void *ss, void *oss) { return internal_syscall(SYSCALL(sigaltstack), (uptr)ss, (uptr)oss); } Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h Wed Jul 19 19:41:41 2017 (r321238) @@ -21,7 +21,6 @@ #include "sanitizer_platform_limits_posix.h" struct link_map; // Opaque type returned by dlopen(). -struct sigaltstack; namespace __sanitizer { // Dirent structure for getdents(). Note that this structure is different from @@ -30,8 +29,7 @@ struct linux_dirent; // Syscall wrappers. uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count); -uptr internal_sigaltstack(const struct sigaltstack* ss, - struct sigaltstack* oss); +uptr internal_sigaltstack(const void* ss, void* oss); uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set, __sanitizer_sigset_t *oldset); Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc Wed Jul 19 19:41:41 2017 (r321238) @@ -805,14 +805,35 @@ char **GetArgv() { // fields only available in 10.12+. Declare the struct manually to be able to // build against older SDKs. struct __sanitizer_task_vm_info { - uptr _unused[(SANITIZER_WORDSIZE == 32) ? 20 : 19]; - uptr min_address; - uptr max_address; + mach_vm_size_t virtual_size; + integer_t region_count; + integer_t page_size; + mach_vm_size_t resident_size; + mach_vm_size_t resident_size_peak; + mach_vm_size_t device; + mach_vm_size_t device_peak; + mach_vm_size_t internal; + mach_vm_size_t internal_peak; + mach_vm_size_t external; + mach_vm_size_t external_peak; + mach_vm_size_t reusable; + mach_vm_size_t reusable_peak; + mach_vm_size_t purgeable_volatile_pmap; + mach_vm_size_t purgeable_volatile_resident; + mach_vm_size_t purgeable_volatile_virtual; + mach_vm_size_t compressed; + mach_vm_size_t compressed_peak; + mach_vm_size_t compressed_lifetime; + mach_vm_size_t phys_footprint; + mach_vm_address_t min_address; + mach_vm_address_t max_address; }; +#define __SANITIZER_TASK_VM_INFO_COUNT ((mach_msg_type_number_t) \ + (sizeof(__sanitizer_task_vm_info) / sizeof(natural_t))) uptr GetTaskInfoMaxAddress() { - __sanitizer_task_vm_info vm_info = {{0}, 0, 0}; - mach_msg_type_number_t count = sizeof(vm_info) / sizeof(int); + __sanitizer_task_vm_info vm_info = {}; + mach_msg_type_number_t count = __SANITIZER_TASK_VM_INFO_COUNT; int err = task_info(mach_task_self(), TASK_VM_INFO, (int *)&vm_info, &count); if (err == 0) { return vm_info.max_address - 1; Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h Wed Jul 19 19:41:41 2017 (r321238) @@ -13,7 +13,7 @@ #ifndef SANITIZER_PLATFORM_H #define SANITIZER_PLATFORM_H -#if !defined(__linux__) && !defined(__FreeBSD__) && \ +#if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && \ !defined(__APPLE__) && !defined(_WIN32) # error "This operating system is not supported" #endif @@ -30,6 +30,12 @@ # define SANITIZER_FREEBSD 0 #endif +#if defined(__NetBSD__) +# define SANITIZER_NETBSD 1 +#else +# define SANITIZER_NETBSD 0 +#endif + #if defined(__APPLE__) # define SANITIZER_MAC 1 # include <TargetConditionals.h> @@ -79,7 +85,8 @@ # define SANITIZER_ANDROID 0 #endif -#define SANITIZER_POSIX (SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC) +#define SANITIZER_POSIX \ + (SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC || SANITIZER_NETBSD) #if __LP64__ || defined(_WIN64) # define SANITIZER_WORDSIZE 64 Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h Wed Jul 19 19:41:13 2017 (r321237) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h Wed Jul 19 19:41:41 2017 (r321238) @@ -49,6 +49,12 @@ # define SI_FREEBSD 0 #endif +#if SANITIZER_NETBSD +# define SI_NETBSD 1 +#else +# define SI_NETBSD 0 +#endif + #if SANITIZER_LINUX # define SI_LINUX 1 #else @@ -109,9 +115,9 @@ // memmem on Darwin doesn't exist on 10.6 // FIXME: enable memmem on Windows. #define SANITIZER_INTERCEPT_MEMMEM \ - SI_NOT_WINDOWS && !SI_MAC_DEPLOYMENT_BELOW_10_7 + (SI_NOT_WINDOWS && !SI_MAC_DEPLOYMENT_BELOW_10_7) #define SANITIZER_INTERCEPT_MEMCHR 1 -#define SANITIZER_INTERCEPT_MEMRCHR SI_FREEBSD || SI_LINUX +#define SANITIZER_INTERCEPT_MEMRCHR (SI_FREEBSD || SI_LINUX || SI_NETBSD) #define SANITIZER_INTERCEPT_READ SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_PREAD SI_NOT_WINDOWS @@ -127,7 +133,8 @@ #define SANITIZER_INTERCEPT_READV SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_WRITEV SI_NOT_WINDOWS -#define SANITIZER_INTERCEPT_PREADV SI_FREEBSD || SI_LINUX_NOT_ANDROID +#define SANITIZER_INTERCEPT_PREADV \ + (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_PWRITEV SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_PREADV64 SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_PWRITEV64 SI_LINUX_NOT_ANDROID @@ -142,7 +149,7 @@ #ifndef SANITIZER_INTERCEPT_PRINTF # define SANITIZER_INTERCEPT_PRINTF SI_NOT_WINDOWS -# define SANITIZER_INTERCEPT_PRINTF_L SI_FREEBSD +# define SANITIZER_INTERCEPT_PRINTF_L (SI_FREEBSD || SI_NETBSD) # define SANITIZER_INTERCEPT_ISOC99_PRINTF SI_LINUX_NOT_ANDROID #endif @@ -151,13 +158,14 @@ #define SANITIZER_INTERCEPT_GETPWNAM_AND_FRIENDS SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_GETPWNAM_R_AND_FRIENDS \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_GETPWENT \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_FGETPWENT SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_GETPWENT_R SI_FREEBSD || SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_SETPWENT SI_MAC || SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_CLOCK_GETTIME SI_FREEBSD || SI_LINUX +#define SANITIZER_INTERCEPT_GETPWENT_R \ + (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID) +#define SANITIZER_INTERCEPT_SETPWENT (SI_MAC || SI_LINUX_NOT_ANDROID) +#define SANITIZER_INTERCEPT_CLOCK_GETTIME (SI_FREEBSD || SI_NETBSD || SI_LINUX) #define SANITIZER_INTERCEPT_GETITIMER SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_TIME SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_GLOB SI_LINUX_NOT_ANDROID @@ -168,10 +176,11 @@ #define SANITIZER_INTERCEPT_GETNAMEINFO SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_GETSOCKNAME SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_GETHOSTBYNAME SI_NOT_WINDOWS -#define SANITIZER_INTERCEPT_GETHOSTBYNAME_R SI_FREEBSD || SI_LINUX -#define SANITIZER_INTERCEPT_GETHOSTBYNAME2_R SI_FREEBSD || SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_GETHOSTBYADDR_R SI_FREEBSD || SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_GETHOSTENT_R SI_FREEBSD || SI_LINUX_NOT_ANDROID +#define SANITIZER_INTERCEPT_GETHOSTBYNAME_R (SI_FREEBSD || SI_LINUX) +#define SANITIZER_INTERCEPT_GETHOSTBYNAME2_R \ + (SI_FREEBSD || SI_LINUX_NOT_ANDROID) +#define SANITIZER_INTERCEPT_GETHOSTBYADDR_R (SI_FREEBSD || SI_LINUX_NOT_ANDROID) +#define SANITIZER_INTERCEPT_GETHOSTENT_R (SI_FREEBSD || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_GETSOCKOPT SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_ACCEPT SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_ACCEPT4 SI_LINUX_NOT_ANDROID @@ -197,63 +206,67 @@ #define SANITIZER_INTERCEPT_GET_CURRENT_DIR_NAME SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_STRTOIMAX SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_MBSTOWCS SI_NOT_WINDOWS -#define SANITIZER_INTERCEPT_MBSNRTOWCS SI_MAC || SI_LINUX_NOT_ANDROID +#define SANITIZER_INTERCEPT_MBSNRTOWCS (SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_WCSTOMBS SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_WCSNRTOMBS \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_WCRTOMB \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_TCGETATTR SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_REALPATH SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_CANONICALIZE_FILE_NAME SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_CONFSTR \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_SCHED_GETAFFINITY SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_SCHED_GETPARAM SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_STRERROR SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_STRERROR_R SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_XPG_STRERROR_R SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_SCANDIR \ - SI_FREEBSD || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_SCANDIR64 SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_GETGROUPS SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_POLL SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_PPOLL SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_WORDEXP \ - SI_FREEBSD || (SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || (SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_SIGWAIT SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_SIGWAITINFO SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_SIGTIMEDWAIT SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_SIGSETOPS \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_SIGPENDING SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_SIGPROCMASK SI_NOT_WINDOWS -#define SANITIZER_INTERCEPT_BACKTRACE SI_FREEBSD || SI_LINUX_NOT_ANDROID +#define SANITIZER_INTERCEPT_BACKTRACE \ + (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_GETMNTENT SI_LINUX #define SANITIZER_INTERCEPT_GETMNTENT_R SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_STATFS SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID +#define SANITIZER_INTERCEPT_STATFS \ + (SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_STATFS64 \ - (SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_STATVFS SI_FREEBSD || SI_LINUX_NOT_ANDROID + ((SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID) +#define SANITIZER_INTERCEPT_STATVFS \ + (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_STATVFS64 SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_INITGROUPS SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_ETHER_NTOA_ATON SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_ETHER_HOST \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_ETHER_R SI_FREEBSD || SI_LINUX_NOT_ANDROID -#define SANITIZER_INTERCEPT_SHMCTL \ - ((SI_FREEBSD || SI_LINUX_NOT_ANDROID) && SANITIZER_WORDSIZE == 64) + (SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID) +#define SANITIZER_INTERCEPT_ETHER_R (SI_FREEBSD || SI_LINUX_NOT_ANDROID) +#define SANITIZER_INTERCEPT_SHMCTL \ + (SI_NETBSD || ((SI_FREEBSD || SI_LINUX_NOT_ANDROID) && \ + SANITIZER_WORDSIZE == 64)) // NOLINT #define SANITIZER_INTERCEPT_RANDOM_R SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GET SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GETINHERITSCHED \ - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID + (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GETAFFINITY_NP SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETPSHARED SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETTYPE SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETPROTOCOL \ - SI_MAC || SI_LINUX_NOT_ANDROID + (SI_MAC || SI_NETBSD || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETPRIOCEILING \ - SI_MAC || SI_LINUX_NOT_ANDROID + (SI_MAC || SI_NETBSD || SI_LINUX_NOT_ANDROID) #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETROBUST SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETROBUST_NP SI_LINUX_NOT_ANDROID *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201707191941.v6JJfgmS004575>