svn commit: r320572 - in projects/clang500-import: contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/lsan contrib/compiler-rt/lib/msan contrib/compiler-rt/lib/profile contrib/compiler-rt/lib/san...
Dimitry Andric
dim at FreeBSD.org
Sun Jul 2 11:41:19 UTC 2017
Author: dim
Date: Sun Jul 2 11:41:15 2017
New Revision: 320572
URL: https://svnweb.freebsd.org/changeset/base/320572
Log:
Merge llvm, clang, lld, lldb, compiler-rt and libc++ r306956, and update
build glue.
Added:
projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingNameVar.c
- copied unchanged from r320555, vendor/compiler-rt/dist/lib/profile/InstrProfilingNameVar.c
projects/clang500-import/contrib/compiler-rt/lib/xray/xray_always_instrument.txt
- copied unchanged from r320555, vendor/compiler-rt/dist/lib/xray/xray_always_instrument.txt
projects/clang500-import/contrib/compiler-rt/lib/xray/xray_never_instrument.txt
- copied unchanged from r320555, vendor/compiler-rt/dist/lib/xray/xray_never_instrument.txt
projects/clang500-import/contrib/llvm/include/llvm/Analysis/CFLAliasAnalysisUtils.h
- copied unchanged from r320553, vendor/llvm/dist/include/llvm/Analysis/CFLAliasAnalysisUtils.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h
- copied unchanged from r320553, vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h
projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp
- copied unchanged from r320553, vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
- copied unchanged from r320553, vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
- copied unchanged from r320553, vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.h
- copied unchanged from r320553, vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.h
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMScheduleM3.td
- copied unchanged from r320553, vendor/llvm/dist/lib/Target/ARM/ARMScheduleM3.td
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrSystem.td
- copied unchanged from r320553, vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrSystem.td
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNios2.def
- copied unchanged from r320553, vendor/clang/dist/include/clang/Basic/BuiltinsNios2.def
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/
- copied from r320553, vendor/clang/dist/include/clang/Tooling/Refactoring/Rename/
projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/
- copied from r320553, vendor/clang/dist/lib/Tooling/Refactoring/Rename/
projects/clang500-import/contrib/llvm/tools/lld/ELF/Arch/SPARCV9.cpp
- copied unchanged from r320555, vendor/lld/dist/ELF/Arch/SPARCV9.cpp
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/Connection.h
- copied unchanged from r320555, vendor/lldb/dist/include/lldb/Utility/Connection.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/IOObject.h
- copied unchanged from r320555, vendor/lldb/dist/include/lldb/Utility/IOObject.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/StructuredData.h
- copied unchanged from r320555, vendor/lldb/dist/include/lldb/Utility/StructuredData.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/Timer.h
- copied unchanged from r320555, vendor/lldb/dist/include/lldb/Utility/Timer.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/TraceOptions.h
- copied unchanged from r320555, vendor/lldb/dist/include/lldb/Utility/TraceOptions.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/Connection.cpp
- copied unchanged from r320555, vendor/lldb/dist/source/Utility/Connection.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/IOObject.cpp
- copied unchanged from r320555, vendor/lldb/dist/source/Utility/IOObject.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/StructuredData.cpp
- copied unchanged from r320555, vendor/lldb/dist/source/Utility/StructuredData.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/Timer.cpp
- copied unchanged from r320555, vendor/lldb/dist/source/Utility/Timer.cpp
Deleted:
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStreamBuilder.h
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/ModuleDebugStreamBuilder.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SITypeRewriter.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Vectorize/BBVectorize.cpp
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/Connection.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/StructuredData.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/Timer.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/TraceOptions.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/IOObject.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Core/Connection.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Core/StructuredData.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Core/Timer.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/IOObject.cpp
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/asan/asan_new_delete.cc
projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc
projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc
projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc
projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc
projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc
projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc
projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfiling.c
projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingBuffer.c
projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingFile.c
projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h
projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c
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_allocator_local_cache.h
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp
projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_allocator.h
projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_allocator_combined.h
projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_new_delete.cpp
projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_tls_android.cpp
projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc
projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc
projects/clang500-import/contrib/libc++/include/__config
projects/clang500-import/contrib/libc++/include/new
projects/clang500-import/contrib/libc++/include/string
projects/clang500-import/contrib/llvm/include/llvm-c/Transforms/Vectorize.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/MemorySSA.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/OptimizationDiagnosticInfo.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/RegionInfo.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/RegionInfoImpl.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/RegionIterator.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.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/BinaryFormat/COFF.h
projects/clang500-import/contrib/llvm/include/llvm/BinaryFormat/Dwarf.h
projects/clang500-import/contrib/llvm/include/llvm/BinaryFormat/Wasm.h
projects/clang500-import/contrib/llvm/include/llvm/Bitcode/BitcodeReader.h
projects/clang500-import/contrib/llvm/include/llvm/Bitcode/BitcodeWriter.h
projects/clang500-import/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/Types.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachinePassRegistry.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineScheduler.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineValueType.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MacroFusion.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/PseudoSourceValue.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/ValueTypes.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/Formatters.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolSerializer.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeSerializer.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeServerHandler.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/Hash.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/HashTable.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/PDB.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/UDTLayout.h
projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
projects/clang500-import/contrib/llvm/include/llvm/IR/Argument.h
projects/clang500-import/contrib/llvm/include/llvm/IR/BasicBlock.h
projects/clang500-import/contrib/llvm/include/llvm/IR/Constant.h
projects/clang500-import/contrib/llvm/include/llvm/IR/Constants.h
projects/clang500-import/contrib/llvm/include/llvm/IR/DerivedTypes.h
projects/clang500-import/contrib/llvm/include/llvm/IR/Dominators.h
projects/clang500-import/contrib/llvm/include/llvm/IR/Function.h
projects/clang500-import/contrib/llvm/include/llvm/IR/GlobalAlias.h
projects/clang500-import/contrib/llvm/include/llvm/IR/GlobalIFunc.h
projects/clang500-import/contrib/llvm/include/llvm/IR/GlobalIndirectSymbol.h
projects/clang500-import/contrib/llvm/include/llvm/IR/GlobalObject.h
projects/clang500-import/contrib/llvm/include/llvm/IR/GlobalVariable.h
projects/clang500-import/contrib/llvm/include/llvm/IR/InlineAsm.h
projects/clang500-import/contrib/llvm/include/llvm/IR/InstrTypes.h
projects/clang500-import/contrib/llvm/include/llvm/IR/Instruction.h
projects/clang500-import/contrib/llvm/include/llvm/IR/Instructions.h
projects/clang500-import/contrib/llvm/include/llvm/IR/IntrinsicInst.h
projects/clang500-import/contrib/llvm/include/llvm/IR/IntrinsicsWebAssembly.td
projects/clang500-import/contrib/llvm/include/llvm/IR/LLVMContext.h
projects/clang500-import/contrib/llvm/include/llvm/IR/LegacyPassNameParser.h
projects/clang500-import/contrib/llvm/include/llvm/IR/Metadata.h
projects/clang500-import/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h
projects/clang500-import/contrib/llvm/include/llvm/IR/Operator.h
projects/clang500-import/contrib/llvm/include/llvm/IR/PatternMatch.h
projects/clang500-import/contrib/llvm/include/llvm/IR/Statepoint.h
projects/clang500-import/contrib/llvm/include/llvm/IR/User.h
projects/clang500-import/contrib/llvm/include/llvm/InitializePasses.h
projects/clang500-import/contrib/llvm/include/llvm/LinkAllPasses.h
projects/clang500-import/contrib/llvm/include/llvm/MC/MCAsmBackend.h
projects/clang500-import/contrib/llvm/include/llvm/MC/MCWinCOFFObjectWriter.h
projects/clang500-import/contrib/llvm/include/llvm/Object/Archive.h
projects/clang500-import/contrib/llvm/include/llvm/Object/COFF.h
projects/clang500-import/contrib/llvm/include/llvm/Object/COFFImportFile.h
projects/clang500-import/contrib/llvm/include/llvm/Object/ELFObjectFile.h
projects/clang500-import/contrib/llvm/include/llvm/Object/IRObjectFile.h
projects/clang500-import/contrib/llvm/include/llvm/Object/IRSymtab.h
projects/clang500-import/contrib/llvm/include/llvm/Object/MachOUniversal.h
projects/clang500-import/contrib/llvm/include/llvm/Object/ObjectFile.h
projects/clang500-import/contrib/llvm/include/llvm/Object/SymbolicFile.h
projects/clang500-import/contrib/llvm/include/llvm/Object/Wasm.h
projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/COFFYAML.h
projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h
projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h
projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/DWARFEmitter.h
projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/DWARFYAML.h
projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/ELFYAML.h
projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/MachOYAML.h
projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/ObjectYAML.h
projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/WasmYAML.h
projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/YAML.h
projects/clang500-import/contrib/llvm/include/llvm/Passes/PassBuilder.h
projects/clang500-import/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
projects/clang500-import/contrib/llvm/include/llvm/ProfileData/InstrProf.h
projects/clang500-import/contrib/llvm/include/llvm/Support/Errno.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/YAMLParser.h
projects/clang500-import/contrib/llvm/include/llvm/Support/YAMLTraits.h
projects/clang500-import/contrib/llvm/include/llvm/Target/GenericOpcodes.td
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/include/llvm/Target/TargetOpcodes.def
projects/clang500-import/contrib/llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h
projects/clang500-import/contrib/llvm/include/llvm/Transforms/SampleProfile.h
projects/clang500-import/contrib/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h
projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/LoopUtils.h
projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/OrderedInstructions.h
projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/PredicateInfo.h
projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/ValueMapper.h
projects/clang500-import/contrib/llvm/include/llvm/Transforms/Vectorize.h
projects/clang500-import/contrib/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/InlineCost.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/IteratedDominanceFrontier.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/OptimizationDiagnosticInfo.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/RegionInfo.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp
projects/clang500-import/contrib/llvm/lib/BinaryFormat/Magic.cpp
projects/clang500-import/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
projects/clang500-import/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
projects/clang500-import/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelector.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/LiveRangeCalc.h
projects/clang500-import/contrib/llvm/lib/CodeGen/MIRParser/MIParser.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/MacroFusion.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/RenameIndependentSubregs.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/TargetPassConfig.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/EnumTables.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/Formatters.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/SymbolSerializer.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeSerializer.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleList.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/Hash.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/HashTable.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NamedStreamMap.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumModules.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/PDB.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/PDBExtras.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/UDTLayout.cpp
projects/clang500-import/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
projects/clang500-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
projects/clang500-import/contrib/llvm/lib/IR/Constants.cpp
projects/clang500-import/contrib/llvm/lib/IR/Dominators.cpp
projects/clang500-import/contrib/llvm/lib/IR/LLVMContext.cpp
projects/clang500-import/contrib/llvm/lib/IR/LLVMContextImpl.h
projects/clang500-import/contrib/llvm/lib/LTO/LTO.cpp
projects/clang500-import/contrib/llvm/lib/MC/MCAssembler.cpp
projects/clang500-import/contrib/llvm/lib/MC/WasmObjectWriter.cpp
projects/clang500-import/contrib/llvm/lib/Object/COFFObjectFile.cpp
projects/clang500-import/contrib/llvm/lib/Object/IRSymtab.cpp
projects/clang500-import/contrib/llvm/lib/Object/WasmObjectFile.cpp
projects/clang500-import/contrib/llvm/lib/Object/WindowsResource.cpp
projects/clang500-import/contrib/llvm/lib/ObjectYAML/COFFYAML.cpp
projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp
projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp
projects/clang500-import/contrib/llvm/lib/ObjectYAML/DWARFEmitter.cpp
projects/clang500-import/contrib/llvm/lib/ObjectYAML/DWARFYAML.cpp
projects/clang500-import/contrib/llvm/lib/ObjectYAML/ELFYAML.cpp
projects/clang500-import/contrib/llvm/lib/ObjectYAML/MachOYAML.cpp
projects/clang500-import/contrib/llvm/lib/ObjectYAML/ObjectYAML.cpp
projects/clang500-import/contrib/llvm/lib/ObjectYAML/WasmYAML.cpp
projects/clang500-import/contrib/llvm/lib/ObjectYAML/YAML.cpp
projects/clang500-import/contrib/llvm/lib/Passes/PassBuilder.cpp
projects/clang500-import/contrib/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
projects/clang500-import/contrib/llvm/lib/ProfileData/InstrProf.cpp
projects/clang500-import/contrib/llvm/lib/Support/AMDGPUCodeObjectMetadata.cpp
projects/clang500-import/contrib/llvm/lib/Support/Host.cpp
projects/clang500-import/contrib/llvm/lib/Support/MemoryBuffer.cpp
projects/clang500-import/contrib/llvm/lib/Support/TargetParser.cpp
projects/clang500-import/contrib/llvm/lib/Support/Unix/Path.inc
projects/clang500-import/contrib/llvm/lib/Support/Unix/Process.inc
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64CondBrTuning.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.h
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td
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/AArch64TargetObjectFile.h
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64FixupKinds.h
projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h
projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.h
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp
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/AMDGPUTargetMachine.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARM.td
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td
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/ARMRegisterBankInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMSchedule.td
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMSubtarget.h
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.h
projects/clang500-import/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
projects/clang500-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
projects/clang500-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h
projects/clang500-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h
projects/clang500-import/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp
projects/clang500-import/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h
projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.h
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
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/Hexagon/HexagonTargetTransformInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
projects/clang500-import/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
projects/clang500-import/contrib/llvm/lib/Target/Mips/MicroMips64r6InstrInfo.td
projects/clang500-import/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td
projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp
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/NVPTX/NVPTXTargetTransformInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPC.h
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.h
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
projects/clang500-import/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.h
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/README.txt
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZ.td
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZFeatures.td
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ13.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/SystemZSubtarget.cpp
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.h
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/WebAssembly/WebAssemblyInstrControl.td
projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
projects/clang500-import/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
projects/clang500-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
projects/clang500-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
projects/clang500-import/contrib/llvm/lib/Target/X86/X86.td
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/X86InstructionSelector.cpp
projects/clang500-import/contrib/llvm/lib/Target/X86/X86LegalizerInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/X86/X86Subtarget.cpp
projects/clang500-import/contrib/llvm/lib/Target/X86/X86Subtarget.h
projects/clang500-import/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp
projects/clang500-import/contrib/llvm/lib/Target/X86/X86TargetMachine.h
projects/clang500-import/contrib/llvm/lib/Transforms/Coroutines/CoroInstr.h
projects/clang500-import/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/SROA.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Utils/LoopUtils.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Utils/OrderedInstructions.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Utils/PredicateInfo.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.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/lib/Transforms/Vectorize/Vectorize.cpp
projects/clang500-import/contrib/llvm/tools/bugpoint/ToolRunner.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/ASTStructuralEquivalence.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/Decl.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/NSAPI.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/Redeclarable.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsWebAssembly.def
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td
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/SourceLocation.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/TargetBuiltins.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/TargetOptions.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Visibility.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/Compilation.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/Driver.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/Options.td
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Format/Format.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.def
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticRenderer.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnostic.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/PTHLexer.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
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/ASTStructuralEquivalence.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/AST/Decl.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/AST/Expr.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/SourceLocation.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/Targets.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.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/CGDecl.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/Driver.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/CrossWindows.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.h
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/MipsLinux.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Format/Format.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Format/FormatToken.h
projects/clang500-import/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.h
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/ChainedIncludesSource.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/DiagnosticRenderer.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.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/SemaDecl.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.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/Serialization/ASTReader.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.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/StaticAnalyzer/Checkers/UnixAPIChecker.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Refactoring/AtomicChange.cpp
projects/clang500-import/contrib/llvm/tools/clang/tools/driver/driver.cpp
projects/clang500-import/contrib/llvm/tools/llc/llc.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/Driver.h
projects/clang500-import/contrib/llvm/tools/lld/COFF/MarkLive.cpp
projects/clang500-import/contrib/llvm/tools/lld/COFF/Symbols.h
projects/clang500-import/contrib/llvm/tools/lld/COFF/Writer.cpp
projects/clang500-import/contrib/llvm/tools/lld/ELF/CMakeLists.txt
projects/clang500-import/contrib/llvm/tools/lld/ELF/InputFiles.cpp
projects/clang500-import/contrib/llvm/tools/lld/ELF/SymbolTable.cpp
projects/clang500-import/contrib/llvm/tools/lld/ELF/SymbolTable.h
projects/clang500-import/contrib/llvm/tools/lld/ELF/Symbols.cpp
projects/clang500-import/contrib/llvm/tools/lld/ELF/Symbols.h
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/Writer.cpp
projects/clang500-import/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Breakpoint.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointOptions.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/Event.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/SearchFilter.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/StructuredDataImpl.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSummary.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSynthetic.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/File.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/Host.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/MainLoopBase.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/Socket.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/XML.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreter.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Symbol/DWARFCallFrameInfo.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Symbol/FuncUnwinders.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindTable.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/ABI.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntime.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntimeStopInfo.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/Process.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/StopInfo.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/StructuredDataPlugin.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/SystemRuntime.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/Thread.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanPython.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/ThreadSpec.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/JSON.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/lldb-private-interfaces.h
projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBCommunication.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBStructuredData.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBTarget.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBThread.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBThreadPlan.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBTraceOptions.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Core/Communication.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Core/Disassembler.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Core/FormatEntity.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Core/Mangled.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Core/Module.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/Host.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/Symbols.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Host/freebsd/Host.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Host/netbsd/Host.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Host/openbsd/Host.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSSet.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Symbol/DWARFCallFrameInfo.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Symbol/FuncUnwinders.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Symbol/Symtab.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Symbol/UnwindTable.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Symbol/Variable.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Target/ABI.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Target/ObjCLanguageRuntime.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Target/Platform.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Target/Process.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Target/Target.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Target/TargetList.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Target/ThreadSpec.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/JSON.cpp
projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-server/Acceptor.h
projects/clang500-import/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
projects/clang500-import/contrib/llvm/tools/llvm-lto2/llvm-lto2.cpp
projects/clang500-import/contrib/llvm/tools/llvm-nm/llvm-nm.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/DumpOutputStyle.h
projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp
projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.h
projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp
projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/PdbYaml.cpp
projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.h
projects/clang500-import/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp
projects/clang500-import/contrib/llvm/tools/llvm-readobj/WasmDumper.cpp
projects/clang500-import/contrib/llvm/tools/opt/opt.cpp
projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp
projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenRegisters.h
projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenSchedule.cpp
projects/clang500-import/contrib/llvm/utils/TableGen/DAGISelMatcher.h
projects/clang500-import/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp
projects/clang500-import/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp
projects/clang500-import/contrib/llvm/utils/TableGen/SubtargetEmitter.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/liblldb/Makefile
projects/clang500-import/lib/clang/libllvm/Makefile
projects/clang500-import/lib/libclang_rt/profile/Makefile
projects/clang500-import/usr.bin/clang/lld/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 Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc Sun Jul 2 11:41:15 2017 (r320572)
@@ -160,7 +160,11 @@ struct QuarantineCallback {
}
void *Allocate(uptr size) {
- return get_allocator().Allocate(cache_, size, 1);
+ void *res = get_allocator().Allocate(cache_, size, 1);
+ // TODO(alekseys): Consider making quarantine OOM-friendly.
+ if (UNLIKELY(!res))
+ return DieOnFailure::OnOOM();
+ return res;
}
void Deallocate(void *p) {
@@ -524,8 +528,7 @@ struct Allocator {
// Expects the chunk to already be marked as quarantined by using
// AtomicallySetQuarantineFlagIfAllocated.
- void QuarantineChunk(AsanChunk *m, void *ptr, BufferedStackTrace *stack,
- AllocType alloc_type) {
+ void QuarantineChunk(AsanChunk *m, void *ptr, BufferedStackTrace *stack) {
CHECK_EQ(m->chunk_state, CHUNK_QUARANTINE);
CHECK_GE(m->alloc_tid, 0);
if (SANITIZER_WORDSIZE == 64) // On 32-bits this resides in user area.
@@ -603,7 +606,7 @@ struct Allocator {
ReportNewDeleteSizeMismatch(p, delete_size, stack);
}
- QuarantineChunk(m, ptr, stack, alloc_type);
+ QuarantineChunk(m, ptr, stack);
}
void *Reallocate(void *old_ptr, uptr new_size, BufferedStackTrace *stack) {
@@ -632,7 +635,7 @@ struct Allocator {
}
void *Calloc(uptr nmemb, uptr size, BufferedStackTrace *stack) {
- if (CallocShouldReturnNullDueToOverflow(size, nmemb))
+ if (CheckForCallocOverflow(size, nmemb))
return AsanAllocator::FailureHandler::OnBadRequest();
void *ptr = Allocate(nmemb * size, 8, stack, FROM_MALLOC, false);
// If the memory comes from the secondary allocator no need to clear it
Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc Sun Jul 2 11:41:15 2017 (r320572)
@@ -579,17 +579,6 @@ INTERCEPTOR(char*, __strdup, const char *s) {
}
#endif // ASAN_INTERCEPT___STRDUP
-INTERCEPTOR(SIZE_T, wcslen, const wchar_t *s) {
- void *ctx;
- ASAN_INTERCEPTOR_ENTER(ctx, wcslen);
- SIZE_T length = internal_wcslen(s);
- if (!asan_init_is_running) {
- ENSURE_ASAN_INITED();
- ASAN_READ_RANGE(ctx, s, (length + 1) * sizeof(wchar_t));
- }
- return length;
-}
-
INTERCEPTOR(char*, strncpy, char *to, const char *from, uptr size) {
void *ctx;
ASAN_INTERCEPTOR_ENTER(ctx, strncpy);
@@ -722,7 +711,6 @@ void InitializeAsanInterceptors() {
// Intercept str* functions.
ASAN_INTERCEPT_FUNC(strcat); // NOLINT
ASAN_INTERCEPT_FUNC(strcpy); // NOLINT
- ASAN_INTERCEPT_FUNC(wcslen);
ASAN_INTERCEPT_FUNC(strncat);
ASAN_INTERCEPT_FUNC(strncpy);
ASAN_INTERCEPT_FUNC(strdup);
Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_new_delete.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_new_delete.cc Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_new_delete.cc Sun Jul 2 11:41:15 2017 (r320572)
@@ -25,23 +25,27 @@
// dllexport would normally do. We need to export them in order to make the
// VS2015 dynamic CRT (MD) work.
#if SANITIZER_WINDOWS
-# define CXX_OPERATOR_ATTRIBUTE
-# ifdef _WIN64
-# pragma comment(linker, "/export:??2 at YAPEAX_K@Z") // operator new
-# pragma comment(linker, "/export:??3 at YAXPEAX@Z") // operator delete
-# pragma comment(linker, "/export:??3 at YAXPEAX_K@Z") // sized operator delete
-# pragma comment(linker, "/export:??_U at YAPEAX_K@Z") // operator new[]
-# pragma comment(linker, "/export:??_V at YAXPEAX@Z") // operator delete[]
-# else
-# pragma comment(linker, "/export:??2 at YAPAXI@Z") // operator new
-# pragma comment(linker, "/export:??3 at YAXPAX@Z") // operator delete
-# pragma comment(linker, "/export:??3 at YAXPAXI@Z") // sized operator delete
-# pragma comment(linker, "/export:??_U at YAPAXI@Z") // operator new[]
-# pragma comment(linker, "/export:??_V at YAXPAX@Z") // operator delete[]
-# endif
+#define CXX_OPERATOR_ATTRIBUTE
+#define COMMENT_EXPORT(sym) __pragma(comment(linker, "/export:"##sym))
+#ifdef _WIN64
+COMMENT_EXPORT("??2 at YAPEAX_K@Z") // operator new
+COMMENT_EXPORT("??2 at YAPEAX_KAEBUnothrow_t@std@@@Z") // operator new nothrow
+COMMENT_EXPORT("??3 at YAXPEAX@Z") // operator delete
+COMMENT_EXPORT("??3 at YAXPEAX_K@Z") // sized operator delete
+COMMENT_EXPORT("??_U at YAPEAX_K@Z") // operator new[]
+COMMENT_EXPORT("??_V at YAXPEAX@Z") // operator delete[]
#else
-# define CXX_OPERATOR_ATTRIBUTE INTERCEPTOR_ATTRIBUTE
+COMMENT_EXPORT("??2 at YAPAXI@Z") // operator new
+COMMENT_EXPORT("??2 at YAPAXIABUnothrow_t@std@@@Z") // operator new nothrow
+COMMENT_EXPORT("??3 at YAXPAX@Z") // operator delete
+COMMENT_EXPORT("??3 at YAXPAXI@Z") // sized operator delete
+COMMENT_EXPORT("??_U at YAPAXI@Z") // operator new[]
+COMMENT_EXPORT("??_V at YAXPAX@Z") // operator delete[]
#endif
+#undef COMMENT_EXPORT
+#else
+#define CXX_OPERATOR_ATTRIBUTE INTERCEPTOR_ATTRIBUTE
+#endif
using namespace __asan; // NOLINT
@@ -63,12 +67,17 @@ struct nothrow_t {};
enum class align_val_t: size_t {};
} // namespace std
-#define OPERATOR_NEW_BODY(type) \
+// TODO(alekseys): throw std::bad_alloc instead of dying on OOM.
+#define OPERATOR_NEW_BODY(type, nothrow) \
GET_STACK_TRACE_MALLOC;\
- return asan_memalign(0, size, &stack, type);
-#define OPERATOR_NEW_BODY_ALIGN(type) \
+ void *res = asan_memalign(0, size, &stack, type);\
+ if (!nothrow && UNLIKELY(!res)) DieOnFailure::OnOOM();\
+ return res;
+#define OPERATOR_NEW_BODY_ALIGN(type, nothrow) \
GET_STACK_TRACE_MALLOC;\
- return asan_memalign((uptr)align, size, &stack, type);
+ void *res = asan_memalign((uptr)align, size, &stack, type);\
+ if (!nothrow && UNLIKELY(!res)) DieOnFailure::OnOOM();\
+ return res;
// On OS X it's not enough to just provide our own 'operator new' and
// 'operator delete' implementations, because they're going to be in the
@@ -79,40 +88,42 @@ enum class align_val_t: size_t {};
// OS X we need to intercept them using their mangled names.
#if !SANITIZER_MAC
CXX_OPERATOR_ATTRIBUTE
-void *operator new(size_t size) { OPERATOR_NEW_BODY(FROM_NEW); }
+void *operator new(size_t size)
+{ OPERATOR_NEW_BODY(FROM_NEW, false /*nothrow*/); }
CXX_OPERATOR_ATTRIBUTE
-void *operator new[](size_t size) { OPERATOR_NEW_BODY(FROM_NEW_BR); }
+void *operator new[](size_t size)
+{ OPERATOR_NEW_BODY(FROM_NEW_BR, false /*nothrow*/); }
CXX_OPERATOR_ATTRIBUTE
void *operator new(size_t size, std::nothrow_t const&)
-{ OPERATOR_NEW_BODY(FROM_NEW); }
+{ OPERATOR_NEW_BODY(FROM_NEW, true /*nothrow*/); }
CXX_OPERATOR_ATTRIBUTE
void *operator new[](size_t size, std::nothrow_t const&)
-{ OPERATOR_NEW_BODY(FROM_NEW_BR); }
+{ OPERATOR_NEW_BODY(FROM_NEW_BR, true /*nothrow*/); }
CXX_OPERATOR_ATTRIBUTE
void *operator new(size_t size, std::align_val_t align)
-{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW); }
+{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW, false /*nothrow*/); }
CXX_OPERATOR_ATTRIBUTE
void *operator new[](size_t size, std::align_val_t align)
-{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW_BR); }
+{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW_BR, false /*nothrow*/); }
CXX_OPERATOR_ATTRIBUTE
void *operator new(size_t size, std::align_val_t align, std::nothrow_t const&)
-{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW); }
+{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW, true /*nothrow*/); }
CXX_OPERATOR_ATTRIBUTE
void *operator new[](size_t size, std::align_val_t align, std::nothrow_t const&)
-{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW_BR); }
+{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW_BR, true /*nothrow*/); }
#else // SANITIZER_MAC
INTERCEPTOR(void *, _Znwm, size_t size) {
- OPERATOR_NEW_BODY(FROM_NEW);
+ OPERATOR_NEW_BODY(FROM_NEW, false /*nothrow*/);
}
INTERCEPTOR(void *, _Znam, size_t size) {
- OPERATOR_NEW_BODY(FROM_NEW_BR);
+ OPERATOR_NEW_BODY(FROM_NEW_BR, false /*nothrow*/);
}
INTERCEPTOR(void *, _ZnwmRKSt9nothrow_t, size_t size, std::nothrow_t const&) {
- OPERATOR_NEW_BODY(FROM_NEW);
+ OPERATOR_NEW_BODY(FROM_NEW, true /*nothrow*/);
}
INTERCEPTOR(void *, _ZnamRKSt9nothrow_t, size_t size, std::nothrow_t const&) {
- OPERATOR_NEW_BODY(FROM_NEW_BR);
+ OPERATOR_NEW_BODY(FROM_NEW_BR, true /*nothrow*/);
}
#endif
Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc Sun Jul 2 11:41:15 2017 (r320572)
@@ -85,6 +85,7 @@ INTERCEPT_LIBRARY_FUNCTION(strstr);
INTERCEPT_LIBRARY_FUNCTION(strtok);
INTERCEPT_LIBRARY_FUNCTION(strtol);
INTERCEPT_LIBRARY_FUNCTION(wcslen);
+INTERCEPT_LIBRARY_FUNCTION(wcsnlen);
#ifdef _WIN64
INTERCEPT_LIBRARY_FUNCTION(__C_specific_handler);
Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc Sun Jul 2 11:41:15 2017 (r320572)
@@ -74,7 +74,7 @@ void *Allocate(const StackTrace &stack, uptr size, upt
size = 1;
if (size > kMaxAllowedMallocSize) {
Report("WARNING: LeakSanitizer failed to allocate %zu bytes\n", size);
- return nullptr;
+ return Allocator::FailureHandler::OnBadRequest();
}
void *p = allocator.Allocate(GetAllocatorCache(), size, alignment);
// Do not rely on the allocator to clear the memory (it's slow).
@@ -99,7 +99,7 @@ void *Reallocate(const StackTrace &stack, void *p, upt
if (new_size > kMaxAllowedMallocSize) {
Report("WARNING: LeakSanitizer failed to allocate %zu bytes\n", new_size);
allocator.Deallocate(GetAllocatorCache(), p);
- return nullptr;
+ return Allocator::FailureHandler::OnBadRequest();
}
p = allocator.Reallocate(GetAllocatorCache(), p, new_size, alignment);
RegisterAllocation(stack, p, new_size);
@@ -134,6 +134,8 @@ void *lsan_realloc(void *p, uptr size, const StackTrac
}
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);
}
Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc Sun Jul 2 11:41:15 2017 (r320572)
@@ -70,7 +70,6 @@ INTERCEPTOR(void*, calloc, uptr nmemb, uptr size) {
CHECK(allocated < kCallocPoolSize);
return mem;
}
- if (CallocShouldReturnNullDueToOverflow(size, nmemb)) return nullptr;
ENSURE_LSAN_INITED;
GET_STACK_TRACE_MALLOC;
return lsan_calloc(nmemb, size, stack);
@@ -199,34 +198,70 @@ INTERCEPTOR(int, mprobe, void *ptr) {
}
#endif // SANITIZER_INTERCEPT_MCHECK_MPROBE
-#define OPERATOR_NEW_BODY \
- ENSURE_LSAN_INITED; \
- GET_STACK_TRACE_MALLOC; \
- return Allocate(stack, size, 1, kAlwaysClearMemory);
-INTERCEPTOR_ATTRIBUTE
-void *operator new(size_t size) { OPERATOR_NEW_BODY; }
-INTERCEPTOR_ATTRIBUTE
-void *operator new[](size_t size) { OPERATOR_NEW_BODY; }
-INTERCEPTOR_ATTRIBUTE
-void *operator new(size_t size, std::nothrow_t const&) { OPERATOR_NEW_BODY; }
-INTERCEPTOR_ATTRIBUTE
-void *operator new[](size_t size, std::nothrow_t const&) { OPERATOR_NEW_BODY; }
+// TODO(alekseys): throw std::bad_alloc instead of dying on OOM.
+#define OPERATOR_NEW_BODY(nothrow) \
+ ENSURE_LSAN_INITED; \
+ GET_STACK_TRACE_MALLOC; \
+ void *res = Allocate(stack, size, 1, kAlwaysClearMemory);\
+ if (!nothrow && UNLIKELY(!res)) DieOnFailure::OnOOM();\
+ return res;
#define OPERATOR_DELETE_BODY \
ENSURE_LSAN_INITED; \
Deallocate(ptr);
+// On OS X it's not enough to just provide our own 'operator new' and
+// 'operator delete' implementations, because they're going to be in the runtime
+// dylib, and the main executable will depend on both the runtime dylib and
+// libstdc++, each of has its implementation of new and delete.
+// To make sure that C++ allocation/deallocation operators are overridden on
+// OS X we need to intercept them using their mangled names.
+#if !SANITIZER_MAC
+
INTERCEPTOR_ATTRIBUTE
+void *operator new(size_t size) { OPERATOR_NEW_BODY(false /*nothrow*/); }
+INTERCEPTOR_ATTRIBUTE
+void *operator new[](size_t size) { OPERATOR_NEW_BODY(false /*nothrow*/); }
+INTERCEPTOR_ATTRIBUTE
+void *operator new(size_t size, std::nothrow_t const&)
+{ OPERATOR_NEW_BODY(true /*nothrow*/); }
+INTERCEPTOR_ATTRIBUTE
+void *operator new[](size_t size, std::nothrow_t const&)
+{ OPERATOR_NEW_BODY(true /*nothrow*/); }
+
+INTERCEPTOR_ATTRIBUTE
void operator delete(void *ptr) NOEXCEPT { OPERATOR_DELETE_BODY; }
INTERCEPTOR_ATTRIBUTE
void operator delete[](void *ptr) NOEXCEPT { OPERATOR_DELETE_BODY; }
INTERCEPTOR_ATTRIBUTE
void operator delete(void *ptr, std::nothrow_t const&) { OPERATOR_DELETE_BODY; }
INTERCEPTOR_ATTRIBUTE
-void operator delete[](void *ptr, std::nothrow_t const &) {
- OPERATOR_DELETE_BODY;
-}
+void operator delete[](void *ptr, std::nothrow_t const &)
+{ OPERATOR_DELETE_BODY; }
+
+#else // SANITIZER_MAC
+
+INTERCEPTOR(void *, _Znwm, size_t size)
+{ OPERATOR_NEW_BODY(false /*nothrow*/); }
+INTERCEPTOR(void *, _Znam, size_t size)
+{ OPERATOR_NEW_BODY(false /*nothrow*/); }
+INTERCEPTOR(void *, _ZnwmRKSt9nothrow_t, size_t size, std::nothrow_t const&)
+{ OPERATOR_NEW_BODY(true /*nothrow*/); }
+INTERCEPTOR(void *, _ZnamRKSt9nothrow_t, size_t size, std::nothrow_t const&)
+{ OPERATOR_NEW_BODY(true /*nothrow*/); }
+
+INTERCEPTOR(void, _ZdlPv, void *ptr)
+{ OPERATOR_DELETE_BODY; }
+INTERCEPTOR(void, _ZdaPv, void *ptr)
+{ OPERATOR_DELETE_BODY; }
+INTERCEPTOR(void, _ZdlPvRKSt9nothrow_t, void *ptr, std::nothrow_t const&)
+{ OPERATOR_DELETE_BODY; }
+INTERCEPTOR(void, _ZdaPvRKSt9nothrow_t, void *ptr, std::nothrow_t const&)
+{ OPERATOR_DELETE_BODY; }
+
+#endif // !SANITIZER_MAC
+
///// Thread initialization and finalization. /////
Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc Sun Jul 2 11:41:15 2017 (r320572)
@@ -195,7 +195,7 @@ void MsanDeallocate(StackTrace *stack, void *p) {
}
void *MsanCalloc(StackTrace *stack, uptr nmemb, uptr size) {
- if (CallocShouldReturnNullDueToOverflow(size, nmemb))
+ if (CheckForCallocOverflow(size, nmemb))
return Allocator::FailureHandler::OnBadRequest();
return MsanReallocate(stack, nullptr, nmemb * size, sizeof(u64), true);
}
Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc Sun Jul 2 11:41:15 2017 (r320572)
@@ -538,49 +538,6 @@ INTERCEPTOR(int, mbrtowc, wchar_t *dest, const char *s
return res;
}
-INTERCEPTOR(SIZE_T, wcslen, const wchar_t *s) {
- ENSURE_MSAN_INITED();
- SIZE_T res = REAL(wcslen)(s);
- CHECK_UNPOISONED(s, sizeof(wchar_t) * (res + 1));
- return res;
-}
-
-INTERCEPTOR(SIZE_T, wcsnlen, const wchar_t *s, SIZE_T n) {
- ENSURE_MSAN_INITED();
- SIZE_T res = REAL(wcsnlen)(s, n);
- CHECK_UNPOISONED(s, sizeof(wchar_t) * Min(res + 1, n));
- return res;
-}
-
-// wchar_t *wcschr(const wchar_t *wcs, wchar_t wc);
-INTERCEPTOR(wchar_t *, wcschr, void *s, wchar_t wc, void *ps) {
- ENSURE_MSAN_INITED();
- wchar_t *res = REAL(wcschr)(s, wc, ps);
- return res;
-}
-
-// wchar_t *wcscpy(wchar_t *dest, const wchar_t *src);
-INTERCEPTOR(wchar_t *, wcscpy, wchar_t *dest, const wchar_t *src) {
- ENSURE_MSAN_INITED();
- GET_STORE_STACK_TRACE;
- wchar_t *res = REAL(wcscpy)(dest, src);
- CopyShadowAndOrigin(dest, src, sizeof(wchar_t) * (REAL(wcslen)(src) + 1),
- &stack);
- return res;
-}
-
-INTERCEPTOR(wchar_t *, wcsncpy, wchar_t *dest, const wchar_t *src,
- SIZE_T n) { // NOLINT
- ENSURE_MSAN_INITED();
- GET_STORE_STACK_TRACE;
- SIZE_T copy_size = REAL(wcsnlen)(src, n);
- if (copy_size < n) copy_size++; // trailing \0
- wchar_t *res = REAL(wcsncpy)(dest, src, n); // NOLINT
- CopyShadowAndOrigin(dest, src, copy_size * sizeof(wchar_t), &stack);
- __msan_unpoison(dest + copy_size, (n - copy_size) * sizeof(wchar_t));
- return res;
-}
-
// wchar_t *wmemcpy(wchar_t *dest, const wchar_t *src, SIZE_T n);
INTERCEPTOR(wchar_t *, wmemcpy, wchar_t *dest, const wchar_t *src, SIZE_T n) {
ENSURE_MSAN_INITED();
@@ -1344,11 +1301,11 @@ int OnExit() {
return __msan_memcpy(to, from, size); \
}
-#define COMMON_INTERCEPTOR_COPY_STRING(ctx, to, from, size) \
- do { \
- GET_STORE_STACK_TRACE; \
- CopyShadowAndOrigin(to, from, size, &stack); \
- __msan_unpoison(to + size, 1); \
+#define COMMON_INTERCEPTOR_COPY_STRING(ctx, to, from, size) \
+ do { \
+ GET_STORE_STACK_TRACE; \
+ CopyShadowAndOrigin(to, from, size, &stack); \
+ __msan_unpoison(to + size, 1); \
} while (false)
#include "sanitizer_common/sanitizer_platform_interceptors.h"
@@ -1421,6 +1378,35 @@ INTERCEPTOR(int, dl_iterate_phdr, dl_iterate_phdr_cb c
cbdata.callback = callback;
cbdata.data = data;
int res = REAL(dl_iterate_phdr)(msan_dl_iterate_phdr_cb, (void *)&cbdata);
+ return res;
+}
+
+// wchar_t *wcschr(const wchar_t *wcs, wchar_t wc);
+INTERCEPTOR(wchar_t *, wcschr, void *s, wchar_t wc, void *ps) {
+ ENSURE_MSAN_INITED();
+ wchar_t *res = REAL(wcschr)(s, wc, ps);
+ return res;
+}
+
+// wchar_t *wcscpy(wchar_t *dest, const wchar_t *src);
+INTERCEPTOR(wchar_t *, wcscpy, wchar_t *dest, const wchar_t *src) {
+ ENSURE_MSAN_INITED();
+ GET_STORE_STACK_TRACE;
+ wchar_t *res = REAL(wcscpy)(dest, src);
+ CopyShadowAndOrigin(dest, src, sizeof(wchar_t) * (REAL(wcslen)(src) + 1),
+ &stack);
+ return res;
+}
+
+INTERCEPTOR(wchar_t *, wcsncpy, wchar_t *dest, const wchar_t *src,
+ SIZE_T n) { // NOLINT
+ ENSURE_MSAN_INITED();
+ GET_STORE_STACK_TRACE;
+ SIZE_T copy_size = REAL(wcsnlen)(src, n);
+ if (copy_size < n) copy_size++; // trailing \0
+ wchar_t *res = REAL(wcsncpy)(dest, src, n); // NOLINT
+ CopyShadowAndOrigin(dest, src, copy_size * sizeof(wchar_t), &stack);
+ __msan_unpoison(dest + copy_size, (n - copy_size) * sizeof(wchar_t));
return res;
}
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 Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc Sun Jul 2 11:41:15 2017 (r320572)
@@ -14,6 +14,7 @@
#include "msan.h"
#include "interception/interception.h"
+#include "sanitizer_common/sanitizer_allocator.h"
#if MSAN_REPLACE_OPERATORS_NEW_AND_DELETE
@@ -27,18 +28,25 @@ namespace std {
} // namespace std
-#define OPERATOR_NEW_BODY \
+// TODO(alekseys): throw std::bad_alloc instead of dying on OOM.
+#define OPERATOR_NEW_BODY(nothrow) \
GET_MALLOC_STACK_TRACE; \
- return MsanReallocate(&stack, 0, size, sizeof(u64), false)
+ void *res = MsanReallocate(&stack, 0, size, sizeof(u64), false);\
+ if (!nothrow && UNLIKELY(!res)) DieOnFailure::OnOOM();\
+ return res
INTERCEPTOR_ATTRIBUTE
-void *operator new(size_t size) { OPERATOR_NEW_BODY; }
+void *operator new(size_t size) { OPERATOR_NEW_BODY(false /*nothrow*/); }
INTERCEPTOR_ATTRIBUTE
-void *operator new[](size_t size) { OPERATOR_NEW_BODY; }
+void *operator new[](size_t size) { OPERATOR_NEW_BODY(false /*nothrow*/); }
INTERCEPTOR_ATTRIBUTE
-void *operator new(size_t size, std::nothrow_t const&) { OPERATOR_NEW_BODY; }
+void *operator new(size_t size, std::nothrow_t const&) {
+ OPERATOR_NEW_BODY(true /*nothrow*/);
+}
INTERCEPTOR_ATTRIBUTE
-void *operator new[](size_t size, std::nothrow_t const&) { OPERATOR_NEW_BODY; }
+void *operator new[](size_t size, std::nothrow_t const&) {
+ OPERATOR_NEW_BODY(true /*nothrow*/);
+}
#define OPERATOR_DELETE_BODY \
GET_MALLOC_STACK_TRACE; \
Modified: projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfiling.c
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfiling.c Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfiling.c Sun Jul 2 11:41:15 2017 (r320572)
@@ -19,8 +19,6 @@
COMPILER_RT_WEAK uint64_t INSTR_PROF_RAW_VERSION_VAR = INSTR_PROF_RAW_VERSION;
-COMPILER_RT_WEAK char INSTR_PROF_PROFILE_NAME_VAR[1] = {0};
-
COMPILER_RT_VISIBILITY uint64_t __llvm_profile_get_magic(void) {
return sizeof(void *) == sizeof(uint64_t) ? (INSTR_PROF_RAW_MAGIC_64)
: (INSTR_PROF_RAW_MAGIC_32);
Modified: projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingBuffer.c
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingBuffer.c Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingBuffer.c Sun Jul 2 11:41:15 2017 (r320572)
@@ -45,15 +45,24 @@ uint64_t __llvm_profile_get_size_for_buffer_internal(
(CountersEnd - CountersBegin) * sizeof(uint64_t) + NamesSize + Padding;
}
+COMPILER_RT_VISIBILITY
+void initBufferWriter(ProfDataWriter *BufferWriter, char *Buffer) {
+ BufferWriter->Write = lprofBufferWriter;
+ BufferWriter->WriterCtx = Buffer;
+}
+
COMPILER_RT_VISIBILITY int __llvm_profile_write_buffer(char *Buffer) {
- return lprofWriteData(lprofBufferWriter, Buffer, 0);
+ ProfDataWriter BufferWriter;
+ initBufferWriter(&BufferWriter, Buffer);
+ return lprofWriteData(&BufferWriter, 0, 0);
}
COMPILER_RT_VISIBILITY int __llvm_profile_write_buffer_internal(
char *Buffer, const __llvm_profile_data *DataBegin,
const __llvm_profile_data *DataEnd, const uint64_t *CountersBegin,
const uint64_t *CountersEnd, const char *NamesBegin, const char *NamesEnd) {
- return lprofWriteDataImpl(lprofBufferWriter, Buffer, DataBegin, DataEnd,
- CountersBegin, CountersEnd, 0, NamesBegin,
- NamesEnd);
+ ProfDataWriter BufferWriter;
+ initBufferWriter(&BufferWriter, Buffer);
+ return lprofWriteDataImpl(&BufferWriter, DataBegin, DataEnd, CountersBegin,
+ CountersEnd, 0, NamesBegin, NamesEnd, 0);
}
Modified: projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingFile.c
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingFile.c Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingFile.c Sun Jul 2 11:41:15 2017 (r320572)
@@ -91,24 +91,39 @@ static const char *getCurFilename(char *FilenameBuf);
static unsigned doMerging() { return lprofCurFilename.MergePoolSize; }
/* Return 1 if there is an error, otherwise return 0. */
-static uint32_t fileWriter(ProfDataIOVec *IOVecs, uint32_t NumIOVecs,
- void **WriterCtx) {
+static uint32_t fileWriter(ProfDataWriter *This, ProfDataIOVec *IOVecs,
+ uint32_t NumIOVecs) {
uint32_t I;
- FILE *File = (FILE *)*WriterCtx;
+ FILE *File = (FILE *)This->WriterCtx;
for (I = 0; I < NumIOVecs; I++) {
- if (fwrite(IOVecs[I].Data, IOVecs[I].ElmSize, IOVecs[I].NumElm, File) !=
- IOVecs[I].NumElm)
- return 1;
+ if (IOVecs[I].Data) {
+ if (fwrite(IOVecs[I].Data, IOVecs[I].ElmSize, IOVecs[I].NumElm, File) !=
+ IOVecs[I].NumElm)
+ return 1;
+ } else {
+ if (fseek(File, IOVecs[I].ElmSize * IOVecs[I].NumElm, SEEK_CUR) == -1)
+ return 1;
+ }
}
return 0;
}
+static void initFileWriter(ProfDataWriter *This, FILE *File) {
+ This->Write = fileWriter;
+ This->WriterCtx = File;
+}
+
COMPILER_RT_VISIBILITY ProfBufferIO *
lprofCreateBufferIOInternal(void *File, uint32_t BufferSz) {
FreeHook = &free;
DynamicBufferIOBuffer = (uint8_t *)calloc(BufferSz, 1);
VPBufferSize = BufferSz;
- return lprofCreateBufferIO(fileWriter, File);
+ ProfDataWriter *fileWriter =
+ (ProfDataWriter *)calloc(sizeof(ProfDataWriter), 1);
+ initFileWriter(fileWriter, File);
+ ProfBufferIO *IO = lprofCreateBufferIO(fileWriter);
+ IO->OwnFileWriter = 1;
+ return IO;
}
static void setupIOBuffer() {
@@ -122,9 +137,10 @@ static void setupIOBuffer() {
/* Read profile data in \c ProfileFile and merge with in-memory
profile counters. Returns -1 if there is fatal error, otheriwse
- 0 is returned.
+ 0 is returned. Returning 0 does not mean merge is actually
+ performed. If merge is actually done, *MergeDone is set to 1.
*/
-static int doProfileMerging(FILE *ProfileFile) {
+static int doProfileMerging(FILE *ProfileFile, int *MergeDone) {
uint64_t ProfileFileSize;
char *ProfileBuffer;
@@ -169,6 +185,8 @@ static int doProfileMerging(FILE *ProfileFile) {
__llvm_profile_merge_from_buffer(ProfileBuffer, ProfileFileSize);
(void)munmap(ProfileBuffer, ProfileFileSize);
+ *MergeDone = 1;
+
return 0;
}
@@ -190,7 +208,7 @@ static void createProfileDir(const char *Filename) {
* dumper. With profile merging enabled, each executable as well as any of
* its instrumented shared libraries dump profile data into their own data file.
*/
-static FILE *openFileForMerging(const char *ProfileFileName) {
+static FILE *openFileForMerging(const char *ProfileFileName, int *MergeDone) {
FILE *ProfileFile;
int rc;
@@ -199,15 +217,14 @@ static FILE *openFileForMerging(const char *ProfileFil
if (!ProfileFile)
return NULL;
- rc = doProfileMerging(ProfileFile);
- if (rc || COMPILER_RT_FTRUNCATE(ProfileFile, 0L) ||
+ rc = doProfileMerging(ProfileFile, MergeDone);
+ if (rc || (!*MergeDone && COMPILER_RT_FTRUNCATE(ProfileFile, 0L)) ||
fseek(ProfileFile, 0L, SEEK_SET) == -1) {
PROF_ERR("Profile Merging of file %s failed: %s\n", ProfileFileName,
strerror(errno));
fclose(ProfileFile);
return NULL;
}
- fseek(ProfileFile, 0L, SEEK_SET);
return ProfileFile;
}
@@ -216,17 +233,20 @@ static int writeFile(const char *OutputName) {
int RetVal;
FILE *OutputFile;
+ int MergeDone = 0;
if (!doMerging())
OutputFile = fopen(OutputName, "ab");
else
- OutputFile = openFileForMerging(OutputName);
+ OutputFile = openFileForMerging(OutputName, &MergeDone);
if (!OutputFile)
return -1;
FreeHook = &free;
setupIOBuffer();
- RetVal = lprofWriteData(fileWriter, OutputFile, lprofGetVPDataReader());
+ ProfDataWriter fileWriter;
+ initFileWriter(&fileWriter, OutputFile);
+ RetVal = lprofWriteData(&fileWriter, lprofGetVPDataReader(), MergeDone);
fclose(OutputFile);
return RetVal;
Modified: projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h Sun Jul 2 11:41:15 2017 (r320572)
@@ -48,17 +48,21 @@ typedef struct ProfDataIOVec {
size_t NumElm;
} ProfDataIOVec;
-typedef uint32_t (*WriterCallback)(ProfDataIOVec *, uint32_t NumIOVecs,
- void **WriterCtx);
+struct ProfDataWriter;
+typedef uint32_t (*WriterCallback)(struct ProfDataWriter *This, ProfDataIOVec *,
+ uint32_t NumIOVecs);
+typedef struct ProfDataWriter {
+ WriterCallback Write;
+ void *WriterCtx;
+} ProfDataWriter;
+
/*!
* The data structure for buffered IO of profile data.
*/
typedef struct ProfBufferIO {
- /* File handle. */
- void *File;
- /* Low level IO callback. */
- WriterCallback FileWriter;
+ ProfDataWriter *FileWriter;
+ uint32_t OwnFileWriter;
/* The start of the buffer. */
uint8_t *BufferStart;
/* Total size of the buffer. */
@@ -73,7 +77,7 @@ ProfBufferIO *lprofCreateBufferIOInternal(void *File,
/*!
* This is the interface to create a handle for buffered IO.
*/
-ProfBufferIO *lprofCreateBufferIO(WriterCallback FileWriter, void *File);
+ProfBufferIO *lprofCreateBufferIO(ProfDataWriter *FileWriter);
/*!
* The interface to destroy the bufferIO handle and reclaim
@@ -96,8 +100,9 @@ int lprofBufferIOFlush(ProfBufferIO *BufferIO);
/* The low level interface to write data into a buffer. It is used as the
* callback by other high level writer methods such as buffered IO writer
* and profile data writer. */
-uint32_t lprofBufferWriter(ProfDataIOVec *IOVecs, uint32_t NumIOVecs,
- void **WriterCtx);
+uint32_t lprofBufferWriter(ProfDataWriter *This, ProfDataIOVec *IOVecs,
+ uint32_t NumIOVecs);
+void initBufferWriter(ProfDataWriter *BufferWriter, char *Buffer);
struct ValueProfData;
struct ValueProfRecord;
@@ -133,15 +138,17 @@ typedef struct VPDataReaderType {
uint32_t N);
} VPDataReaderType;
-int lprofWriteData(WriterCallback Writer, void *WriterCtx,
- VPDataReaderType *VPDataReader);
-int lprofWriteDataImpl(WriterCallback Writer, void *WriterCtx,
+/* Write profile data to destinitation. If SkipNameDataWrite is set to 1,
+ the name data is already in destintation, we just skip over it. */
+int lprofWriteData(ProfDataWriter *Writer, VPDataReaderType *VPDataReader,
+ int SkipNameDataWrite);
+int lprofWriteDataImpl(ProfDataWriter *Writer,
const __llvm_profile_data *DataBegin,
const __llvm_profile_data *DataEnd,
const uint64_t *CountersBegin,
const uint64_t *CountersEnd,
VPDataReaderType *VPDataReader, const char *NamesBegin,
- const char *NamesEnd);
+ const char *NamesEnd, int SkipNameDataWrite);
/* Merge value profile data pointed to by SrcValueProfData into
* in-memory profile counters pointed by to DstData. */
Copied: projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingNameVar.c (from r320555, vendor/compiler-rt/dist/lib/profile/InstrProfilingNameVar.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingNameVar.c Sun Jul 2 11:41:15 2017 (r320572, copy of r320555, vendor/compiler-rt/dist/lib/profile/InstrProfilingNameVar.c)
@@ -0,0 +1,18 @@
+//===- InstrProfilingNameVar.c - profile name variable setup --------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "InstrProfiling.h"
+
+/* char __llvm_profile_filename[1]
+ *
+ * The runtime should only provide its own definition of this symbol when the
+ * user has not specified one. Set this up by moving the runtime's copy of this
+ * symbol to an object file within the archive.
+ */
+COMPILER_RT_WEAK char INSTR_PROF_PROFILE_NAME_VAR[1] = {0};
Modified: projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c Sun Jul 2 11:41:15 2017 (r320572)
@@ -31,41 +31,44 @@ COMPILER_RT_VISIBILITY uint32_t VPBufferSize = 0;
/* The buffer writer is reponsponsible in keeping writer state
* across the call.
*/
-COMPILER_RT_VISIBILITY uint32_t lprofBufferWriter(ProfDataIOVec *IOVecs,
- uint32_t NumIOVecs,
- void **WriterCtx) {
+COMPILER_RT_VISIBILITY uint32_t lprofBufferWriter(ProfDataWriter *This,
+ ProfDataIOVec *IOVecs,
+ uint32_t NumIOVecs) {
uint32_t I;
- char **Buffer = (char **)WriterCtx;
+ char **Buffer = (char **)&This->WriterCtx;
for (I = 0; I < NumIOVecs; I++) {
size_t Length = IOVecs[I].ElmSize * IOVecs[I].NumElm;
- memcpy(*Buffer, IOVecs[I].Data, Length);
+ if (IOVecs[I].Data)
+ memcpy(*Buffer, IOVecs[I].Data, Length);
*Buffer += Length;
}
return 0;
}
-static void llvmInitBufferIO(ProfBufferIO *BufferIO, WriterCallback FileWriter,
- void *File, uint8_t *Buffer, uint32_t BufferSz) {
- BufferIO->File = File;
+static void llvmInitBufferIO(ProfBufferIO *BufferIO, ProfDataWriter *FileWriter,
+ uint8_t *Buffer, uint32_t BufferSz) {
BufferIO->FileWriter = FileWriter;
+ BufferIO->OwnFileWriter = 0;
BufferIO->BufferStart = Buffer;
BufferIO->BufferSz = BufferSz;
BufferIO->CurOffset = 0;
}
COMPILER_RT_VISIBILITY ProfBufferIO *
-lprofCreateBufferIO(WriterCallback FileWriter, void *File) {
+lprofCreateBufferIO(ProfDataWriter *FileWriter) {
uint8_t *Buffer = DynamicBufferIOBuffer;
uint32_t BufferSize = VPBufferSize;
if (!Buffer) {
Buffer = &BufferIOBuffer[0];
BufferSize = sizeof(BufferIOBuffer);
}
- llvmInitBufferIO(&TheBufferIO, FileWriter, File, Buffer, BufferSize);
+ llvmInitBufferIO(&TheBufferIO, FileWriter, Buffer, BufferSize);
return &TheBufferIO;
}
COMPILER_RT_VISIBILITY void lprofDeleteBufferIO(ProfBufferIO *BufferIO) {
+ if (BufferIO->OwnFileWriter)
+ FreeHook(BufferIO->FileWriter);
if (DynamicBufferIOBuffer) {
FreeHook(DynamicBufferIOBuffer);
DynamicBufferIOBuffer = 0;
@@ -83,13 +86,16 @@ lprofBufferIOWrite(ProfBufferIO *BufferIO, const uint8
/* Special case, bypass the buffer completely. */
ProfDataIOVec IO[] = {{Data, sizeof(uint8_t), Size}};
if (Size > BufferIO->BufferSz) {
- if (BufferIO->FileWriter(IO, 1, &BufferIO->File))
+ if (BufferIO->FileWriter->Write(BufferIO->FileWriter, IO, 1))
return -1;
} else {
/* Write the data to buffer */
uint8_t *Buffer = BufferIO->BufferStart + BufferIO->CurOffset;
- lprofBufferWriter(IO, 1, (void **)&Buffer);
- BufferIO->CurOffset = Buffer - BufferIO->BufferStart;
+ ProfDataWriter BufferWriter;
+ initBufferWriter(&BufferWriter, (char *)Buffer);
+ lprofBufferWriter(&BufferWriter, IO, 1);
+ BufferIO->CurOffset =
+ (uint8_t *)BufferWriter.WriterCtx - BufferIO->BufferStart;
}
return 0;
}
@@ -98,7 +104,7 @@ COMPILER_RT_VISIBILITY int lprofBufferIOFlush(ProfBuff
if (BufferIO->CurOffset) {
ProfDataIOVec IO[] = {
{BufferIO->BufferStart, sizeof(uint8_t), BufferIO->CurOffset}};
- if (BufferIO->FileWriter(IO, 1, &BufferIO->File))
+ if (BufferIO->FileWriter->Write(BufferIO->FileWriter, IO, 1))
return -1;
BufferIO->CurOffset = 0;
}
@@ -201,7 +207,7 @@ static int writeOneValueProfData(ProfBufferIO *BufferI
return 0;
}
-static int writeValueProfData(WriterCallback Writer, void *WriterCtx,
+static int writeValueProfData(ProfDataWriter *Writer,
VPDataReaderType *VPDataReader,
const __llvm_profile_data *DataBegin,
const __llvm_profile_data *DataEnd) {
@@ -211,7 +217,7 @@ static int writeValueProfData(WriterCallback Writer, v
if (!VPDataReader)
return 0;
- BufferIO = lprofCreateBufferIO(Writer, WriterCtx);
+ BufferIO = lprofCreateBufferIO(Writer);
for (DI = DataBegin; DI < DataEnd; DI++) {
if (writeOneValueProfData(BufferIO, VPDataReader, DI))
@@ -225,9 +231,9 @@ static int writeValueProfData(WriterCallback Writer, v
return 0;
}
-COMPILER_RT_VISIBILITY int lprofWriteData(WriterCallback Writer,
- void *WriterCtx,
- VPDataReaderType *VPDataReader) {
+COMPILER_RT_VISIBILITY int lprofWriteData(ProfDataWriter *Writer,
+ VPDataReaderType *VPDataReader,
+ int SkipNameDataWrite) {
/* Match logic in __llvm_profile_write_buffer(). */
const __llvm_profile_data *DataBegin = __llvm_profile_begin_data();
const __llvm_profile_data *DataEnd = __llvm_profile_end_data();
@@ -235,18 +241,17 @@ COMPILER_RT_VISIBILITY int lprofWriteData(WriterCallba
const uint64_t *CountersEnd = __llvm_profile_end_counters();
const char *NamesBegin = __llvm_profile_begin_names();
const char *NamesEnd = __llvm_profile_end_names();
- return lprofWriteDataImpl(Writer, WriterCtx, DataBegin, DataEnd,
- CountersBegin, CountersEnd, VPDataReader,
- NamesBegin, NamesEnd);
+ return lprofWriteDataImpl(Writer, DataBegin, DataEnd, CountersBegin,
+ CountersEnd, VPDataReader, NamesBegin, NamesEnd,
+ SkipNameDataWrite);
}
COMPILER_RT_VISIBILITY int
-lprofWriteDataImpl(WriterCallback Writer, void *WriterCtx,
- const __llvm_profile_data *DataBegin,
+lprofWriteDataImpl(ProfDataWriter *Writer, const __llvm_profile_data *DataBegin,
const __llvm_profile_data *DataEnd,
const uint64_t *CountersBegin, const uint64_t *CountersEnd,
VPDataReaderType *VPDataReader, const char *NamesBegin,
- const char *NamesEnd) {
+ const char *NamesEnd, int SkipNameDataWrite) {
/* Calculate size of sections. */
const uint64_t DataSize = __llvm_profile_get_data_size(DataBegin, DataEnd);
@@ -268,14 +273,14 @@ lprofWriteDataImpl(WriterCallback Writer, void *Writer
#include "InstrProfData.inc"
/* Write the data. */
- ProfDataIOVec IOVec[] = {{&Header, sizeof(__llvm_profile_header), 1},
- {DataBegin, sizeof(__llvm_profile_data), DataSize},
- {CountersBegin, sizeof(uint64_t), CountersSize},
- {NamesBegin, sizeof(uint8_t), NamesSize},
- {Zeroes, sizeof(uint8_t), Padding}};
- if (Writer(IOVec, sizeof(IOVec) / sizeof(*IOVec), &WriterCtx))
+ ProfDataIOVec IOVec[] = {
+ {&Header, sizeof(__llvm_profile_header), 1},
+ {DataBegin, sizeof(__llvm_profile_data), DataSize},
+ {CountersBegin, sizeof(uint64_t), CountersSize},
+ {SkipNameDataWrite ? NULL : NamesBegin, sizeof(uint8_t), NamesSize},
+ {Zeroes, sizeof(uint8_t), Padding}};
+ if (Writer->Write(Writer, IOVec, sizeof(IOVec) / sizeof(*IOVec)))
return -1;
- return writeValueProfData(Writer, WriterCtx, VPDataReader, DataBegin,
- DataEnd);
+ return writeValueProfData(Writer, VPDataReader, DataBegin, DataEnd);
}
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 Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc Sun Jul 2 11:41:15 2017 (r320572)
@@ -160,7 +160,7 @@ void *InternalRealloc(void *addr, uptr size, InternalA
}
void *InternalCalloc(uptr count, uptr size, InternalAllocatorCache *cache) {
- if (CallocShouldReturnNullDueToOverflow(count, size))
+ if (CheckForCallocOverflow(count, size))
return InternalAllocator::FailureHandler::OnBadRequest();
void *p = InternalAlloc(count * size, cache);
if (p) internal_memset(p, 0, count * size);
@@ -202,7 +202,7 @@ void SetLowLevelAllocateCallback(LowLevelAllocateCallb
low_level_alloc_callback = callback;
}
-bool CallocShouldReturnNullDueToOverflow(uptr size, uptr n) {
+bool CheckForCallocOverflow(uptr size, uptr n) {
if (!size) return false;
uptr max = (uptr)-1L;
return (max / size) < n;
@@ -246,11 +246,11 @@ void *ReturnNullOrDieOnFailure::OnOOM() {
ReportAllocatorCannotReturnNull();
}
-void *DieOnFailure::OnBadRequest() {
+void NORETURN *DieOnFailure::OnBadRequest() {
ReportAllocatorCannotReturnNull();
}
-void *DieOnFailure::OnOOM() {
+void NORETURN *DieOnFailure::OnOOM() {
atomic_store_relaxed(&allocator_out_of_memory, 1);
ReportAllocatorCannotReturnNull();
}
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 Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h Sun Jul 2 11:41:15 2017 (r320572)
@@ -39,8 +39,8 @@ struct ReturnNullOrDieOnFailure {
};
// Always dies on the failure.
struct DieOnFailure {
- static void *OnBadRequest();
- static void *OnOOM();
+ static void NORETURN *OnBadRequest();
+ static void NORETURN *OnOOM();
};
// Returns true if allocator detected OOM condition. Can be used to avoid memory
@@ -56,8 +56,10 @@ struct NoOpMapUnmapCallback {
// Callback type for iterating over chunks.
typedef void (*ForEachChunkCallback)(uptr chunk, void *arg);
-// Returns true if calloc(size, n) should return 0 due to overflow in size*n.
-bool CallocShouldReturnNullDueToOverflow(uptr size, uptr n);
+// 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"
Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h Sun Jul 2 08:52:08 2017 (r320571)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h Sun Jul 2 11:41:15 2017 (r320572)
@@ -46,8 +46,10 @@ struct SizeClassAllocator64LocalCache {
CHECK_NE(class_id, 0UL);
CHECK_LT(class_id, kNumClasses);
PerClass *c = &per_class_[class_id];
- if (UNLIKELY(c->count == 0))
- Refill(c, allocator, class_id);
+ if (UNLIKELY(c->count == 0)) {
+ if (UNLIKELY(!Refill(c, allocator, class_id)))
+ return nullptr;
+ }
stats_.Add(AllocatorStatAllocated, c->class_size);
CHECK_GT(c->count, 0);
CompactPtrT chunk = c->chunks[--c->count];
@@ -101,13 +103,15 @@ struct SizeClassAllocator64LocalCache {
}
}
- NOINLINE void Refill(PerClass *c, SizeClassAllocator *allocator,
+ NOINLINE bool Refill(PerClass *c, SizeClassAllocator *allocator,
uptr class_id) {
InitCache();
uptr num_requested_chunks = c->max_count / 2;
- allocator->GetFromAllocator(&stats_, class_id, c->chunks,
- num_requested_chunks);
+ if (UNLIKELY(!allocator->GetFromAllocator(&stats_, class_id, c->chunks,
+ num_requested_chunks)))
+ return false;
c->count = num_requested_chunks;
+ return true;
}
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list