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