Date: Sat, 23 May 2020 10:32:19 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r361410 - in head: . contrib/llvm-project contrib/llvm-project/clang/include/clang/AST contrib/llvm-project/clang/include/clang/Basic contrib/llvm-project/clang/lib/AST contrib/llvm-pro... Message-ID: <202005231032.04NAWJJg072601@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Sat May 23 10:32:18 2020 New Revision: 361410 URL: https://svnweb.freebsd.org/changeset/base/361410 Log: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp llvmorg-10.0.1-rc1-0-gf79cd71e145 (aka 10.0.1 rc1). MFC after: 3 weeks Modified: head/ObsoleteFiles.inc head/UPDATING head/contrib/llvm-project/FREEBSD-Xlist head/contrib/llvm-project/clang/include/clang/AST/DeclBase.h head/contrib/llvm-project/clang/include/clang/Basic/Attr.td head/contrib/llvm-project/clang/lib/AST/DeclBase.cpp head/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp head/contrib/llvm-project/clang/lib/AST/RawCommentList.cpp head/contrib/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp head/contrib/llvm-project/clang/lib/Driver/ToolChains/Darwin.cpp head/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.cpp head/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.h head/contrib/llvm-project/clang/lib/Driver/ToolChains/Hurd.cpp head/contrib/llvm-project/clang/lib/Driver/ToolChains/Hurd.h head/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.cpp head/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.h head/contrib/llvm-project/clang/lib/Format/TokenAnnotator.cpp head/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp head/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp head/contrib/llvm-project/clang/lib/Sema/TreeTransform.h head/contrib/llvm-project/compiler-rt/lib/profile/GCDAProfiling.c head/contrib/llvm-project/lld/COFF/MarkLive.cpp head/contrib/llvm-project/lld/ELF/Driver.cpp head/contrib/llvm-project/lld/ELF/InputSection.cpp head/contrib/llvm-project/lld/ELF/InputSection.h head/contrib/llvm-project/lld/ELF/OutputSections.cpp head/contrib/llvm-project/lld/ELF/Writer.cpp head/contrib/llvm-project/llvm/include/llvm/Analysis/ValueLattice.h head/contrib/llvm-project/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h head/contrib/llvm-project/llvm/lib/Analysis/LazyValueInfo.cpp head/contrib/llvm-project/llvm/lib/Analysis/ValueLattice.cpp head/contrib/llvm-project/llvm/lib/CodeGen/MachineSink.cpp head/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp head/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp head/contrib/llvm-project/llvm/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp head/contrib/llvm-project/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp head/contrib/llvm-project/llvm/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp head/contrib/llvm-project/llvm/lib/MC/MCObjectFileInfo.cpp head/contrib/llvm-project/llvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp head/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.cpp head/contrib/llvm-project/llvm/lib/Target/X86/X86ISelLowering.cpp head/contrib/llvm-project/llvm/lib/Target/X86/X86IndirectBranchTracking.cpp head/contrib/llvm-project/llvm/lib/Target/X86/X86TargetMachine.cpp head/contrib/llvm-project/llvm/lib/Target/X86/X86TargetMachine.h head/contrib/llvm-project/llvm/lib/Transforms/Coroutines/CoroSplit.cpp head/contrib/llvm-project/llvm/lib/Transforms/IPO/GlobalOpt.cpp head/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp head/contrib/llvm-project/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp head/contrib/llvm-project/llvm/tools/llvm-objcopy/ELF/Object.cpp head/contrib/llvm-project/llvm/tools/llvm-objcopy/llvm-objcopy.cpp head/etc/mtree/BSD.debug.dist head/etc/mtree/BSD.usr.dist head/lib/clang/headers/Makefile head/lib/clang/include/VCSVersion.inc head/lib/clang/include/clang/Basic/Version.inc head/lib/clang/include/clang/Config/config.h head/lib/clang/include/lld/Common/Version.inc head/lib/clang/include/llvm/Config/config.h head/lib/clang/include/llvm/Config/llvm-config.h head/lib/clang/include/llvm/Support/VCSRevision.h head/lib/libclang_rt/Makefile.inc head/sys/sys/param.h head/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: head/contrib/llvm-project/ (props changed) head/contrib/llvm-project/clang/ (props changed) head/contrib/llvm-project/compiler-rt/ (props changed) head/contrib/llvm-project/lld/ (props changed) head/contrib/llvm-project/llvm/ (props changed) Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Sat May 23 10:21:02 2020 (r361409) +++ head/ObsoleteFiles.inc Sat May 23 10:32:18 2020 (r361410) @@ -36,6 +36,257 @@ # xargs -n1 | sort | uniq -d; # done +# 20200523: new clang import which bumps version from 10.0.0 to 10.0.1.s +OLD_FILES+=usr/lib/clang/10.0.0/include/cuda_wrappers/algorithm +OLD_FILES+=usr/lib/clang/10.0.0/include/cuda_wrappers/complex +OLD_FILES+=usr/lib/clang/10.0.0/include/cuda_wrappers/new +OLD_DIRS+=usr/lib/clang/10.0.0/include/cuda_wrappers +OLD_FILES+=usr/lib/clang/10.0.0/include/fuzzer/FuzzedDataProvider.h +OLD_DIRS+=usr/lib/clang/10.0.0/include/fuzzer +OLD_FILES+=usr/lib/clang/10.0.0/include/openmp_wrappers/__clang_openmp_math.h +OLD_FILES+=usr/lib/clang/10.0.0/include/openmp_wrappers/__clang_openmp_math_declares.h +OLD_FILES+=usr/lib/clang/10.0.0/include/openmp_wrappers/cmath +OLD_FILES+=usr/lib/clang/10.0.0/include/openmp_wrappers/math.h +OLD_DIRS+=usr/lib/clang/10.0.0/include/openmp_wrappers +OLD_FILES+=usr/lib/clang/10.0.0/include/ppc_wrappers/emmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/ppc_wrappers/mm_malloc.h +OLD_FILES+=usr/lib/clang/10.0.0/include/ppc_wrappers/mmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/ppc_wrappers/pmmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/ppc_wrappers/smmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/ppc_wrappers/tmmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/ppc_wrappers/xmmintrin.h +OLD_DIRS+=usr/lib/clang/10.0.0/include/ppc_wrappers +OLD_FILES+=usr/lib/clang/10.0.0/include/profile/InstrProfData.inc +OLD_DIRS+=usr/lib/clang/10.0.0/include/profile +OLD_FILES+=usr/lib/clang/10.0.0/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/10.0.0/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/10.0.0/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/10.0.0/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/10.0.0/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/10.0.0/include/sanitizer/hwasan_interface.h +OLD_FILES+=usr/lib/clang/10.0.0/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/10.0.0/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/10.0.0/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/10.0.0/include/sanitizer/netbsd_syscall_hooks.h +OLD_FILES+=usr/lib/clang/10.0.0/include/sanitizer/scudo_interface.h +OLD_FILES+=usr/lib/clang/10.0.0/include/sanitizer/tsan_interface.h +OLD_FILES+=usr/lib/clang/10.0.0/include/sanitizer/tsan_interface_atomic.h +OLD_FILES+=usr/lib/clang/10.0.0/include/sanitizer/ubsan_interface.h +OLD_DIRS+=usr/lib/clang/10.0.0/include/sanitizer +OLD_FILES+=usr/lib/clang/10.0.0/include/xray/xray_interface.h +OLD_FILES+=usr/lib/clang/10.0.0/include/xray/xray_log_interface.h +OLD_FILES+=usr/lib/clang/10.0.0/include/xray/xray_records.h +OLD_DIRS+=usr/lib/clang/10.0.0/include/xray +OLD_FILES+=usr/lib/clang/10.0.0/include/__clang_cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/10.0.0/include/__clang_cuda_cmath.h +OLD_FILES+=usr/lib/clang/10.0.0/include/__clang_cuda_complex_builtins.h +OLD_FILES+=usr/lib/clang/10.0.0/include/__clang_cuda_device_functions.h +OLD_FILES+=usr/lib/clang/10.0.0/include/__clang_cuda_intrinsics.h +OLD_FILES+=usr/lib/clang/10.0.0/include/__clang_cuda_libdevice_declares.h +OLD_FILES+=usr/lib/clang/10.0.0/include/__clang_cuda_math_forward_declares.h +OLD_FILES+=usr/lib/clang/10.0.0/include/__clang_cuda_runtime_wrapper.h +OLD_FILES+=usr/lib/clang/10.0.0/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/10.0.0/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/10.0.0/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/10.0.0/include/adxintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/altivec.h +OLD_FILES+=usr/lib/clang/10.0.0/include/ammintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/arm64intr.h +OLD_FILES+=usr/lib/clang/10.0.0/include/arm_acle.h +OLD_FILES+=usr/lib/clang/10.0.0/include/arm_cmse.h +OLD_FILES+=usr/lib/clang/10.0.0/include/arm_fp16.h +OLD_FILES+=usr/lib/clang/10.0.0/include/arm_mve.h +OLD_FILES+=usr/lib/clang/10.0.0/include/arm_neon.h +OLD_FILES+=usr/lib/clang/10.0.0/include/armintr.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512bf16intrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512bitalgintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512ifmaintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512ifmavlintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512pfintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vbmi2intrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vbmiintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vbmivlintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vlbf16intrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vlbitalgintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vlcdintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vlvbmi2intrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vlvnniintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vlvp2intersectintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vnniintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vp2intersectintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vpopcntdqintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avx512vpopcntdqvlintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/avxintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/cetintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/cldemoteintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/clflushoptintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/clwbintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/clzerointrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/cpuid.h +OLD_FILES+=usr/lib/clang/10.0.0/include/emmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/enqcmdintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/gfniintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/htmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/immintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/invpcidintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/lwpintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/10.0.0/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/10.0.0/include/mmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/module.modulemap +OLD_FILES+=usr/lib/clang/10.0.0/include/movdirintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/msa.h +OLD_FILES+=usr/lib/clang/10.0.0/include/mwaitxintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/opencl-c-base.h +OLD_FILES+=usr/lib/clang/10.0.0/include/opencl-c.h +OLD_FILES+=usr/lib/clang/10.0.0/include/pconfigintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/pkuintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/ptwriteintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/s390intrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/sgxintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/shaintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/smmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/vadefs.h +OLD_FILES+=usr/lib/clang/10.0.0/include/vaesintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/vecintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/vpclmulqdqintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/waitpkgintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/wbnoinvdintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/x86intrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/xopintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/xsavecintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/xsaveintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/xsaveoptintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/xsavesintrin.h +OLD_FILES+=usr/lib/clang/10.0.0/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/10.0.0/include +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-aarch64.so +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-arm.so +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-armhf.so +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-i386.so +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-preinit-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-preinit-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-preinit-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-preinit-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-x86_64.so +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan_cxx-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan_cxx-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.cfi-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.cfi-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.cfi-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.cfi-i386.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.cfi-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.cfi_diag-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.cfi_diag-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.cfi_diag-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.cfi_diag-i386.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.cfi_diag-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.dd-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.dd-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.fuzzer-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.fuzzer-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.msan-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.msan-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.msan_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.msan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.profile-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.profile-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.profile-powerpc.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.profile-powerpc64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.safestack-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.stats-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.stats-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.stats-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.stats-i386.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.stats-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.stats_client-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.stats_client-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.stats_client-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.stats_client-i386.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.stats_client-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.tsan-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.tsan-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_minimal-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_minimal-i386.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_standalone-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-basic-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-basic-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-basic-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-basic-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-fdr-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-fdr-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-fdr-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-fdr-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-profiling-aarch64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-profiling-arm.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-profiling-armhf.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-profiling-x86_64.a +OLD_FILES+=usr/lib/clang/10.0.0/lib/freebsd/libclang_rt.xray-x86_64.a +OLD_DIRS+=usr/lib/clang/10.0.0/lib/freebsd +OLD_DIRS+=usr/lib/clang/10.0.0/lib +OLD_DIRS+=usr/lib/clang/10.0.0 + # 20200515: libalias cuseeme protocol support retired OLD_LIBS+=lib/libalias_cuseeme.so OLD_FILES+=usr/lib/libalias_cuseeme.a Modified: head/UPDATING ============================================================================== --- head/UPDATING Sat May 23 10:21:02 2020 (r361409) +++ head/UPDATING Sat May 23 10:32:18 2020 (r361410) @@ -26,6 +26,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20200523: + Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have + been upgraded to 10.0.1. Please see the 20141231 entry below for + information about prerequisites and upgrading, if you are not already + using clang 3.5.0 or higher. + 20200424: closefrom(2) has been moved under COMPAT12, and replaced in libc with a stub that calls close_range(2). If using a custom kernel configuration, Modified: head/contrib/llvm-project/FREEBSD-Xlist ============================================================================== --- head/contrib/llvm-project/FREEBSD-Xlist Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/FREEBSD-Xlist Sat May 23 10:32:18 2020 (r361410) @@ -3,6 +3,7 @@ .clang-format .clang-tidy .git-blame-ignore-revs +.github/ .gitignore CONTRIBUTING.md README.md @@ -264,6 +265,7 @@ lldb/.clang-format lldb/.gitignore lldb/CMakeLists.txt lldb/CODE_OWNERS.txt +lldb/bindings/CMakeLists.txt lldb/cmake/ lldb/docs/.htaccess lldb/docs/CMakeLists.txt Modified: head/contrib/llvm-project/clang/include/clang/AST/DeclBase.h ============================================================================== --- head/contrib/llvm-project/clang/include/clang/AST/DeclBase.h Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/include/clang/AST/DeclBase.h Sat May 23 10:32:18 2020 (r361410) @@ -856,14 +856,15 @@ class alignas(8) Decl { (public) return getParentFunctionOrMethod() == nullptr; } - /// Returns true if this declaration lexically is inside a function. - /// It recognizes non-defining declarations as well as members of local - /// classes: + /// Returns true if this declaration is lexically inside a function or inside + /// a variable initializer. It recognizes non-defining declarations as well + /// as members of local classes: /// \code /// void foo() { void bar(); } /// void foo2() { class ABC { void bar(); }; } + /// inline int x = [](){ return 0; }; /// \endcode - bool isLexicallyWithinFunctionOrMethod() const; + bool isInLocalScope() const; /// If this decl is defined inside a function/method/block it returns /// the corresponding DeclContext, otherwise it returns null. Modified: head/contrib/llvm-project/clang/include/clang/Basic/Attr.td ============================================================================== --- head/contrib/llvm-project/clang/include/clang/Basic/Attr.td Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/include/clang/Basic/Attr.td Sat May 23 10:32:18 2020 (r361410) @@ -685,7 +685,7 @@ def XRayLogArgs : InheritableAttr { def PatchableFunctionEntry : InheritableAttr, - TargetSpecificAttr<TargetArch<["aarch64", "x86", "x86_64"]>> { + TargetSpecificAttr<TargetArch<["aarch64", "aarch64_be", "x86", "x86_64"]>> { let Spellings = [GCC<"patchable_function_entry">]; let Subjects = SubjectList<[Function, ObjCMethod]>; let Args = [UnsignedArgument<"Count">, DefaultIntArgument<"Offset", 0>]; Modified: head/contrib/llvm-project/clang/lib/AST/DeclBase.cpp ============================================================================== --- head/contrib/llvm-project/clang/lib/AST/DeclBase.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/AST/DeclBase.cpp Sat May 23 10:32:18 2020 (r361410) @@ -332,13 +332,16 @@ void Decl::setDeclContextsImpl(DeclContext *SemaDC, De } } -bool Decl::isLexicallyWithinFunctionOrMethod() const { +bool Decl::isInLocalScope() const { const DeclContext *LDC = getLexicalDeclContext(); while (true) { if (LDC->isFunctionOrMethod()) return true; if (!isa<TagDecl>(LDC)) return false; + if (const auto *CRD = dyn_cast<CXXRecordDecl>(LDC)) + if (CRD->isLambda()) + return true; LDC = LDC->getLexicalParent(); } return false; Modified: head/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp ============================================================================== --- head/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp Sat May 23 10:32:18 2020 (r361410) @@ -8593,6 +8593,10 @@ bool PointerExprEvaluator::VisitBuiltinCallExpr(const static bool EvaluateArrayNewInitList(EvalInfo &Info, LValue &This, APValue &Result, const InitListExpr *ILE, QualType AllocType); +static bool EvaluateArrayNewConstructExpr(EvalInfo &Info, LValue &This, + APValue &Result, + const CXXConstructExpr *CCE, + QualType AllocType); bool PointerExprEvaluator::VisitCXXNewExpr(const CXXNewExpr *E) { if (!Info.getLangOpts().CPlusPlus2a) @@ -8642,6 +8646,7 @@ bool PointerExprEvaluator::VisitCXXNewExpr(const CXXNe const Expr *Init = E->getInitializer(); const InitListExpr *ResizedArrayILE = nullptr; + const CXXConstructExpr *ResizedArrayCCE = nullptr; QualType AllocType = E->getAllocatedType(); if (Optional<const Expr*> ArraySize = E->getArraySize()) { @@ -8685,7 +8690,7 @@ bool PointerExprEvaluator::VisitCXXNewExpr(const CXXNe // -- the new-initializer is a braced-init-list and the number of // array elements for which initializers are provided [...] // exceeds the number of elements to initialize - if (Init) { + if (Init && !isa<CXXConstructExpr>(Init)) { auto *CAT = Info.Ctx.getAsConstantArrayType(Init->getType()); assert(CAT && "unexpected type for array initializer"); @@ -8708,6 +8713,8 @@ bool PointerExprEvaluator::VisitCXXNewExpr(const CXXNe // special handling for this case when we initialize. if (InitBound != AllocBound) ResizedArrayILE = cast<InitListExpr>(Init); + } else if (Init) { + ResizedArrayCCE = cast<CXXConstructExpr>(Init); } AllocType = Info.Ctx.getConstantArrayType(AllocType, ArrayBound, nullptr, @@ -8772,6 +8779,10 @@ bool PointerExprEvaluator::VisitCXXNewExpr(const CXXNe if (!EvaluateArrayNewInitList(Info, Result, *Val, ResizedArrayILE, AllocType)) return false; + } else if (ResizedArrayCCE) { + if (!EvaluateArrayNewConstructExpr(Info, Result, *Val, ResizedArrayCCE, + AllocType)) + return false; } else if (Init) { if (!EvaluateInPlace(*Val, Info, Result, Init)) return false; @@ -9595,6 +9606,16 @@ static bool EvaluateArrayNewInitList(EvalInfo &Info, L "not an array rvalue"); return ArrayExprEvaluator(Info, This, Result) .VisitInitListExpr(ILE, AllocType); +} + +static bool EvaluateArrayNewConstructExpr(EvalInfo &Info, LValue &This, + APValue &Result, + const CXXConstructExpr *CCE, + QualType AllocType) { + assert(CCE->isRValue() && CCE->getType()->isArrayType() && + "not an array rvalue"); + return ArrayExprEvaluator(Info, This, Result) + .VisitCXXConstructExpr(CCE, This, &Result, AllocType); } // Return true iff the given array filler may depend on the element index. Modified: head/contrib/llvm-project/clang/lib/AST/RawCommentList.cpp ============================================================================== --- head/contrib/llvm-project/clang/lib/AST/RawCommentList.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/AST/RawCommentList.cpp Sat May 23 10:32:18 2020 (r361410) @@ -430,7 +430,7 @@ std::string RawComment::getFormattedText(const SourceM }; auto DropTrailingNewLines = [](std::string &Str) { - while (Str.back() == '\n') + while (!Str.empty() && Str.back() == '\n') Str.pop_back(); }; Modified: head/contrib/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp ============================================================================== --- head/contrib/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp Sat May 23 10:32:18 2020 (r361410) @@ -1847,9 +1847,16 @@ void CodeGenModule::SetFunctionAttributes(GlobalDecl G else if (const auto *SA = FD->getAttr<SectionAttr>()) F->setSection(SA->getName()); + // If we plan on emitting this inline builtin, we can't treat it as a builtin. if (FD->isInlineBuiltinDeclaration()) { - F->addAttribute(llvm::AttributeList::FunctionIndex, - llvm::Attribute::NoBuiltin); + const FunctionDecl *FDBody; + bool HasBody = FD->hasBody(FDBody); + (void)HasBody; + assert(HasBody && "Inline builtin declarations should always have an " + "available body!"); + if (shouldEmitFunction(FDBody)) + F->addAttribute(llvm::AttributeList::FunctionIndex, + llvm::Attribute::NoBuiltin); } if (FD->isReplaceableGlobalAllocationFunction()) { Modified: head/contrib/llvm-project/clang/lib/Driver/ToolChains/Darwin.cpp ============================================================================== --- head/contrib/llvm-project/clang/lib/Driver/ToolChains/Darwin.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/Driver/ToolChains/Darwin.cpp Sat May 23 10:32:18 2020 (r361410) @@ -1146,6 +1146,7 @@ void Darwin::addProfileRTLibs(const ArgList &Args, addExportedSymbol(CmdArgs, "___gcov_flush"); addExportedSymbol(CmdArgs, "_flush_fn_list"); addExportedSymbol(CmdArgs, "_writeout_fn_list"); + addExportedSymbol(CmdArgs, "_reset_fn_list"); } else { addExportedSymbol(CmdArgs, "___llvm_profile_filename"); addExportedSymbol(CmdArgs, "___llvm_profile_raw_version"); Modified: head/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.cpp ============================================================================== --- head/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.cpp Sat May 23 10:32:18 2020 (r361410) @@ -309,7 +309,7 @@ static const char *getLDMOption(const llvm::Triple &T, } } -static bool getPIE(const ArgList &Args, const toolchains::Linux &ToolChain) { +static bool getPIE(const ArgList &Args, const ToolChain &TC) { if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_static) || Args.hasArg(options::OPT_r) || Args.hasArg(options::OPT_static_pie)) return false; @@ -317,17 +317,16 @@ static bool getPIE(const ArgList &Args, const toolchai Arg *A = Args.getLastArg(options::OPT_pie, options::OPT_no_pie, options::OPT_nopie); if (!A) - return ToolChain.isPIEDefault(); + return TC.isPIEDefault(); return A->getOption().matches(options::OPT_pie); } -static bool getStaticPIE(const ArgList &Args, - const toolchains::Linux &ToolChain) { +static bool getStaticPIE(const ArgList &Args, const ToolChain &TC) { bool HasStaticPIE = Args.hasArg(options::OPT_static_pie); // -no-pie is an alias for -nopie. So, handling -nopie takes care of // -no-pie as well. if (HasStaticPIE && Args.hasArg(options::OPT_nopie)) { - const Driver &D = ToolChain.getDriver(); + const Driver &D = TC.getDriver(); const llvm::opt::OptTable &Opts = D.getOpts(); const char *StaticPIEName = Opts.getOptionName(options::OPT_static_pie); const char *NoPIEName = Opts.getOptionName(options::OPT_nopie); @@ -346,8 +345,12 @@ void tools::gnutools::Linker::ConstructJob(Compilation const InputInfoList &Inputs, const ArgList &Args, const char *LinkingOutput) const { - const toolchains::Linux &ToolChain = - static_cast<const toolchains::Linux &>(getToolChain()); + // FIXME: The Linker class constructor takes a ToolChain and not a + // Generic_ELF, so the static_cast might return a reference to a invalid + // instance (see PR45061). Ideally, the Linker constructor needs to take a + // Generic_ELF instead. + const toolchains::Generic_ELF &ToolChain = + static_cast<const toolchains::Generic_ELF &>(getToolChain()); const Driver &D = ToolChain.getDriver(); const llvm::Triple &Triple = getToolChain().getEffectiveTriple(); @@ -418,8 +421,7 @@ void tools::gnutools::Linker::ConstructJob(Compilation if (isAndroid) CmdArgs.push_back("--warn-shared-textrel"); - for (const auto &Opt : ToolChain.ExtraOpts) - CmdArgs.push_back(Opt.c_str()); + ToolChain.addExtraOpts(CmdArgs); CmdArgs.push_back("--eh-frame-hdr"); Modified: head/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.h ============================================================================== --- head/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.h Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.h Sat May 23 10:32:18 2020 (r361410) @@ -356,6 +356,12 @@ class LLVM_LIBRARY_VISIBILITY Generic_ELF : public Gen void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, Action::OffloadKind DeviceOffloadKind) const override; + + virtual std::string getDynamicLinker(const llvm::opt::ArgList &Args) const { + return {}; + } + + virtual void addExtraOpts(llvm::opt::ArgStringList &CmdArgs) const {} }; } // end namespace toolchains Modified: head/contrib/llvm-project/clang/lib/Driver/ToolChains/Hurd.cpp ============================================================================== --- head/contrib/llvm-project/clang/lib/Driver/ToolChains/Hurd.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/Driver/ToolChains/Hurd.cpp Sat May 23 10:32:18 2020 (r361410) @@ -61,8 +61,7 @@ static StringRef getOSLibDir(const llvm::Triple &Tripl return Triple.isArch32Bit() ? "lib" : "lib64"; } -Hurd::Hurd(const Driver &D, const llvm::Triple &Triple, - const ArgList &Args) +Hurd::Hurd(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) : Generic_ELF(D, Triple, Args) { std::string SysRoot = computeSysRoot(); path_list &Paths = getFilePaths(); @@ -169,4 +168,9 @@ void Hurd::AddClangSystemIncludeArgs(const ArgList &Dr addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/include"); addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/include"); +} + +void Hurd::addExtraOpts(llvm::opt::ArgStringList &CmdArgs) const { + for (const auto &Opt : ExtraOpts) + CmdArgs.push_back(Opt.c_str()); } Modified: head/contrib/llvm-project/clang/lib/Driver/ToolChains/Hurd.h ============================================================================== --- head/contrib/llvm-project/clang/lib/Driver/ToolChains/Hurd.h Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/Driver/ToolChains/Hurd.h Sat May 23 10:32:18 2020 (r361410) @@ -27,9 +27,11 @@ class LLVM_LIBRARY_VISIBILITY Hurd : public Generic_EL AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override; - virtual std::string computeSysRoot() const; + std::string computeSysRoot() const; - virtual std::string getDynamicLinker(const llvm::opt::ArgList &Args) const; + std::string getDynamicLinker(const llvm::opt::ArgList &Args) const override; + + void addExtraOpts(llvm::opt::ArgStringList &CmdArgs) const override; std::vector<std::string> ExtraOpts; Modified: head/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.cpp ============================================================================== --- head/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.cpp Sat May 23 10:32:18 2020 (r361410) @@ -986,3 +986,8 @@ void Linux::addProfileRTLibs(const llvm::opt::ArgList Twine("-u", llvm::getInstrProfRuntimeHookVarName()))); ToolChain::addProfileRTLibs(Args, CmdArgs); } + +void Linux::addExtraOpts(llvm::opt::ArgStringList &CmdArgs) const { + for (const auto &Opt : ExtraOpts) + CmdArgs.push_back(Opt.c_str()); +} Modified: head/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.h ============================================================================== --- head/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.h Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.h Sat May 23 10:32:18 2020 (r361410) @@ -42,7 +42,9 @@ class LLVM_LIBRARY_VISIBILITY Linux : public Generic_E llvm::opt::ArgStringList &CmdArgs) const override; virtual std::string computeSysRoot() const; - virtual std::string getDynamicLinker(const llvm::opt::ArgList &Args) const; + std::string getDynamicLinker(const llvm::opt::ArgList &Args) const override; + + void addExtraOpts(llvm::opt::ArgStringList &CmdArgs) const override; std::vector<std::string> ExtraOpts; Modified: head/contrib/llvm-project/clang/lib/Format/TokenAnnotator.cpp ============================================================================== --- head/contrib/llvm-project/clang/lib/Format/TokenAnnotator.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/Format/TokenAnnotator.cpp Sat May 23 10:32:18 2020 (r361410) @@ -2176,6 +2176,10 @@ static bool isFunctionDeclarationName(const FormatToke Next = Next->Next; continue; } + if (Next->is(TT_TemplateOpener) && Next->MatchingParen) { + Next = Next->MatchingParen; + continue; + } break; } @@ -2705,20 +2709,40 @@ bool TokenAnnotator::spaceRequiredBetween(const Annota tok::l_square)); if (Right.is(tok::star) && Left.is(tok::l_paren)) return false; - if (Right.isOneOf(tok::star, tok::amp, tok::ampamp) && - (Left.is(tok::identifier) || Left.isSimpleTypeSpecifier()) && - // Space between the type and the * in: - // operator void*() - // operator char*() - // operator /*comment*/ const char*() - // operator volatile /*comment*/ char*() - // operator Foo*() - // dependent on PointerAlignment style. - Left.Previous && - (Left.Previous->endsSequence(tok::kw_operator) || - Left.Previous->endsSequence(tok::kw_const, tok::kw_operator) || - Left.Previous->endsSequence(tok::kw_volatile, tok::kw_operator))) - return (Style.PointerAlignment != FormatStyle::PAS_Left); + if (Right.is(tok::star) && Left.is(tok::star)) + return false; + if (Right.isOneOf(tok::star, tok::amp, tok::ampamp)) { + const FormatToken *Previous = &Left; + while (Previous && !Previous->is(tok::kw_operator)) { + if (Previous->is(tok::identifier) || Previous->isSimpleTypeSpecifier()) { + Previous = Previous->getPreviousNonComment(); + continue; + } + if (Previous->is(TT_TemplateCloser) && Previous->MatchingParen) { + Previous = Previous->MatchingParen->getPreviousNonComment(); + continue; + } + if (Previous->is(tok::coloncolon)) { + Previous = Previous->getPreviousNonComment(); + continue; + } + break; + } + // Space between the type and the * in: + // operator void*() + // operator char*() + // operator /*comment*/ const char*() + // operator volatile /*comment*/ char*() + // operator Foo*() + // operator C<T>*() + // operator std::Foo*() + // operator C<T>::D<U>*() + // dependent on PointerAlignment style. + if (Previous && (Previous->endsSequence(tok::kw_operator) || + Previous->endsSequence(tok::kw_const, tok::kw_operator) || + Previous->endsSequence(tok::kw_volatile, tok::kw_operator))) + return (Style.PointerAlignment != FormatStyle::PAS_Left); + } const auto SpaceRequiredForArrayInitializerLSquare = [](const FormatToken &LSquareTok, const FormatStyle &Style) { return Style.SpacesInContainerLiterals || Modified: head/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp ============================================================================== --- head/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp Sat May 23 10:32:18 2020 (r361410) @@ -2343,7 +2343,7 @@ ParmVarDecl *Sema::SubstParmVarDecl(ParmVarDecl *OldPa UnparsedDefaultArgInstantiations[OldParm].push_back(NewParm); } else if (Expr *Arg = OldParm->getDefaultArg()) { FunctionDecl *OwningFunc = cast<FunctionDecl>(OldParm->getDeclContext()); - if (OwningFunc->isLexicallyWithinFunctionOrMethod()) { + if (OwningFunc->isInLocalScope()) { // Instantiate default arguments for methods of local classes (DR1484) // and non-defining declarations. Sema::ContextRAII SavedContext(*this, OwningFunc); Modified: head/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp ============================================================================== --- head/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp Sat May 23 10:32:18 2020 (r361410) @@ -4367,7 +4367,7 @@ TemplateDeclInstantiator::InitFunctionInstantiation(Fu EPI.ExceptionSpec.Type != EST_None && EPI.ExceptionSpec.Type != EST_DynamicNone && EPI.ExceptionSpec.Type != EST_BasicNoexcept && - !Tmpl->isLexicallyWithinFunctionOrMethod()) { + !Tmpl->isInLocalScope()) { FunctionDecl *ExceptionSpecTemplate = Tmpl; if (EPI.ExceptionSpec.Type == EST_Uninstantiated) ExceptionSpecTemplate = EPI.ExceptionSpec.SourceTemplate; Modified: head/contrib/llvm-project/clang/lib/Sema/TreeTransform.h ============================================================================== --- head/contrib/llvm-project/clang/lib/Sema/TreeTransform.h Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/clang/lib/Sema/TreeTransform.h Sat May 23 10:32:18 2020 (r361410) @@ -4022,50 +4022,8 @@ template<typename Derived> void TreeTransform<Derived>::InventTemplateArgumentLoc( const TemplateArgument &Arg, TemplateArgumentLoc &Output) { - SourceLocation Loc = getDerived().getBaseLocation(); - switch (Arg.getKind()) { - case TemplateArgument::Null: - llvm_unreachable("null template argument in TreeTransform"); - break; - - case TemplateArgument::Type: - Output = TemplateArgumentLoc(Arg, - SemaRef.Context.getTrivialTypeSourceInfo(Arg.getAsType(), Loc)); - - break; - - case TemplateArgument::Template: - case TemplateArgument::TemplateExpansion: { - NestedNameSpecifierLocBuilder Builder; - TemplateName Template = Arg.getAsTemplateOrTemplatePattern(); - if (DependentTemplateName *DTN = Template.getAsDependentTemplateName()) - Builder.MakeTrivial(SemaRef.Context, DTN->getQualifier(), Loc); - else if (QualifiedTemplateName *QTN = Template.getAsQualifiedTemplateName()) - Builder.MakeTrivial(SemaRef.Context, QTN->getQualifier(), Loc); - - if (Arg.getKind() == TemplateArgument::Template) - Output = TemplateArgumentLoc(Arg, - Builder.getWithLocInContext(SemaRef.Context), - Loc); - else - Output = TemplateArgumentLoc(Arg, - Builder.getWithLocInContext(SemaRef.Context), - Loc, Loc); - - break; - } - - case TemplateArgument::Expression: - Output = TemplateArgumentLoc(Arg, Arg.getAsExpr()); - break; - - case TemplateArgument::Declaration: - case TemplateArgument::Integral: - case TemplateArgument::Pack: - case TemplateArgument::NullPtr: - Output = TemplateArgumentLoc(Arg, TemplateArgumentLocInfo()); - break; - } + Output = getSema().getTrivialTemplateArgumentLoc( + Arg, QualType(), getDerived().getBaseLocation()); } template<typename Derived> @@ -4075,12 +4033,45 @@ bool TreeTransform<Derived>::TransformTemplateArgument const TemplateArgument &Arg = Input.getArgument(); switch (Arg.getKind()) { case TemplateArgument::Null: - case TemplateArgument::Integral: case TemplateArgument::Pack: - case TemplateArgument::Declaration: - case TemplateArgument::NullPtr: llvm_unreachable("Unexpected TemplateArgument"); + case TemplateArgument::Integral: + case TemplateArgument::NullPtr: + case TemplateArgument::Declaration: { + // Transform a resolved template argument straight to a resolved template + // argument. We get here when substituting into an already-substituted + // template type argument during concept satisfaction checking. + QualType T = Arg.getNonTypeTemplateArgumentType(); + QualType NewT = getDerived().TransformType(T); + if (NewT.isNull()) + return true; + + ValueDecl *D = Arg.getKind() == TemplateArgument::Declaration + ? Arg.getAsDecl() + : nullptr; + ValueDecl *NewD = D ? cast_or_null<ValueDecl>(getDerived().TransformDecl( + getDerived().getBaseLocation(), D)) + : nullptr; + if (D && !NewD) + return true; + + if (NewT == T && D == NewD) + Output = Input; + else if (Arg.getKind() == TemplateArgument::Integral) + Output = TemplateArgumentLoc( + TemplateArgument(getSema().Context, Arg.getAsIntegral(), NewT), + TemplateArgumentLocInfo()); + else if (Arg.getKind() == TemplateArgument::NullPtr) + Output = TemplateArgumentLoc(TemplateArgument(NewT, /*IsNullPtr=*/true), + TemplateArgumentLocInfo()); + else + Output = TemplateArgumentLoc(TemplateArgument(NewD, NewT), + TemplateArgumentLocInfo()); + + return false; + } + case TemplateArgument::Type: { TypeSourceInfo *DI = Input.getTypeSourceInfo(); if (!DI) @@ -11836,19 +11827,6 @@ TreeTransform<Derived>::TransformLambdaExpr(LambdaExpr NewTrailingRequiresClause.get()); LSI->CallOperator = NewCallOperator; - - for (unsigned I = 0, NumParams = NewCallOperator->getNumParams(); - I != NumParams; ++I) { - auto *P = NewCallOperator->getParamDecl(I); - if (P->hasUninstantiatedDefaultArg()) { - EnterExpressionEvaluationContext Eval( - getSema(), - Sema::ExpressionEvaluationContext::PotentiallyEvaluatedIfUsed, P); - ExprResult R = getDerived().TransformExpr( - E->getCallOperator()->getParamDecl(I)->getDefaultArg()); - P->setDefaultArg(R.get()); - } - } getDerived().transformAttrs(E->getCallOperator(), NewCallOperator); getDerived().transformedLocalDecl(E->getCallOperator(), {NewCallOperator}); Modified: head/contrib/llvm-project/compiler-rt/lib/profile/GCDAProfiling.c ============================================================================== --- head/contrib/llvm-project/compiler-rt/lib/profile/GCDAProfiling.c Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/compiler-rt/lib/profile/GCDAProfiling.c Sat May 23 10:32:18 2020 (r361410) @@ -32,8 +32,10 @@ #include <windows.h> #include "WindowsMMap.h" #else -#include <sys/mman.h> #include <sys/file.h> +#include <sys/mman.h> +#include <sys/types.h> +#include <unistd.h> #endif #if defined(__FreeBSD__) && defined(__i386__) @@ -119,6 +121,11 @@ struct fn_list writeout_fn_list; */ struct fn_list flush_fn_list; +/* + * A list of reset functions, shared between all dynamic objects. + */ +struct fn_list reset_fn_list; + static void fn_list_insert(struct fn_list* list, fn_ptr fn) { struct fn_node* new_node = malloc(sizeof(struct fn_node)); new_node->fn = fn; @@ -634,7 +641,46 @@ void llvm_delete_flush_function_list(void) { } COMPILER_RT_VISIBILITY -void llvm_gcov_init(fn_ptr wfn, fn_ptr ffn) { +void llvm_register_reset_function(fn_ptr fn) { + fn_list_insert(&reset_fn_list, fn); +} + +COMPILER_RT_VISIBILITY +void llvm_delete_reset_function_list(void) { fn_list_remove(&reset_fn_list); } + +COMPILER_RT_VISIBILITY +void llvm_reset_counters(void) { + struct fn_node *curr = reset_fn_list.head; + + while (curr) { + if (curr->id == CURRENT_ID) { + curr->fn(); + } + curr = curr->next; + } +} + +#if !defined(_WIN32) +COMPILER_RT_VISIBILITY +pid_t __gcov_fork() { + pid_t parent_pid = getpid(); + pid_t pid = fork(); + + if (pid == 0) { + pid_t child_pid = getpid(); + if (child_pid != parent_pid) { + // The pid changed so we've a fork (one could have its own fork function) + // Just reset the counters for this child process + // threads. + llvm_reset_counters(); + } + } + return pid; +} +#endif + +COMPILER_RT_VISIBILITY +void llvm_gcov_init(fn_ptr wfn, fn_ptr ffn, fn_ptr rfn) { static int atexit_ran = 0; if (wfn) @@ -643,10 +689,14 @@ void llvm_gcov_init(fn_ptr wfn, fn_ptr ffn) { if (ffn) llvm_register_flush_function(ffn); + if (rfn) + llvm_register_reset_function(rfn); + if (atexit_ran == 0) { atexit_ran = 1; /* Make sure we write out the data and delete the data structures. */ + atexit(llvm_delete_reset_function_list); atexit(llvm_delete_flush_function_list); atexit(llvm_delete_writeout_function_list); atexit(llvm_writeout_files); Modified: head/contrib/llvm-project/lld/COFF/MarkLive.cpp ============================================================================== --- head/contrib/llvm-project/lld/COFF/MarkLive.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/lld/COFF/MarkLive.cpp Sat May 23 10:32:18 2020 (r361410) @@ -28,10 +28,12 @@ void markLive(ArrayRef<Chunk *> chunks) { // as we push, so sections never appear twice in the list. SmallVector<SectionChunk *, 256> worklist; - // COMDAT section chunks are dead by default. Add non-COMDAT chunks. + // COMDAT section chunks are dead by default. Add non-COMDAT chunks. Do not + // traverse DWARF sections. They are live, but they should not keep other + // sections alive. for (Chunk *c : chunks) if (auto *sc = dyn_cast<SectionChunk>(c)) - if (sc->live) + if (sc->live && !sc->isDWARF()) worklist.push_back(sc); auto enqueue = [&](SectionChunk *c) { Modified: head/contrib/llvm-project/lld/ELF/Driver.cpp ============================================================================== --- head/contrib/llvm-project/lld/ELF/Driver.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/lld/ELF/Driver.cpp Sat May 23 10:32:18 2020 (r361410) @@ -1906,8 +1906,17 @@ template <class ELFT> void LinkerDriver::link(opt::Inp // We do not want to emit debug sections if --strip-all // or -strip-debug are given. - return config->strip != StripPolicy::None && - (s->name.startswith(".debug") || s->name.startswith(".zdebug")); + if (config->strip == StripPolicy::None) + return false; + + if (isDebugSection(*s)) + return true; + if (auto *isec = dyn_cast<InputSection>(s)) + if (InputSectionBase *rel = isec->getRelocatedSection()) + if (isDebugSection(*rel)) + return true; + + return false; }); // Now that the number of partitions is fixed, save a pointer to the main Modified: head/contrib/llvm-project/lld/ELF/InputSection.cpp ============================================================================== --- head/contrib/llvm-project/lld/ELF/InputSection.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/lld/ELF/InputSection.cpp Sat May 23 10:32:18 2020 (r361410) @@ -441,8 +441,7 @@ void InputSection::copyRelocations(uint8_t *buf, Array // See the comment in maybeReportUndefined for PPC32 .got2 and PPC64 .toc auto *d = dyn_cast<Defined>(&sym); if (!d) { - if (!sec->name.startswith(".debug") && - !sec->name.startswith(".zdebug") && sec->name != ".eh_frame" && + if (!isDebugSection(*sec) && sec->name != ".eh_frame" && sec->name != ".gcc_except_table" && sec->name != ".got2" && sec->name != ".toc") { uint32_t secIdx = cast<Undefined>(sym).discardedSecIdx; Modified: head/contrib/llvm-project/lld/ELF/InputSection.h ============================================================================== --- head/contrib/llvm-project/lld/ELF/InputSection.h Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/lld/ELF/InputSection.h Sat May 23 10:32:18 2020 (r361410) @@ -357,6 +357,10 @@ class InputSection : public InputSectionBase { (privat template <class ELFT> void copyShtGroup(uint8_t *buf); }; +inline bool isDebugSection(const InputSectionBase &sec) { + return sec.name.startswith(".debug") || sec.name.startswith(".zdebug"); +} + // The list of all input sections. extern std::vector<InputSectionBase *> inputSections; Modified: head/contrib/llvm-project/lld/ELF/OutputSections.cpp ============================================================================== --- head/contrib/llvm-project/lld/ELF/OutputSections.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/lld/ELF/OutputSections.cpp Sat May 23 10:32:18 2020 (r361410) @@ -114,8 +114,7 @@ void OutputSection::commitSection(InputSection *isec) flags = isec->flags; } else { // Otherwise, check if new type or flags are compatible with existing ones. - unsigned mask = SHF_TLS | SHF_LINK_ORDER; - if ((flags & mask) != (isec->flags & mask)) + if ((flags ^ isec->flags) & SHF_TLS) error("incompatible section flags for " + name + "\n>>> " + toString(isec) + ": 0x" + utohexstr(isec->flags) + "\n>>> output section " + name + ": 0x" + utohexstr(flags)); @@ -367,8 +366,9 @@ void OutputSection::finalize() { // all InputSections in the OutputSection have the same dependency. if (auto *ex = dyn_cast<ARMExidxSyntheticSection>(first)) link = ex->getLinkOrderDep()->getParent()->sectionIndex; - else if (auto *d = first->getLinkOrderDep()) - link = d->getParent()->sectionIndex; + else if (first->flags & SHF_LINK_ORDER) + if (auto *d = first->getLinkOrderDep()) + link = d->getParent()->sectionIndex; } if (type == SHT_GROUP) { Modified: head/contrib/llvm-project/lld/ELF/Writer.cpp ============================================================================== --- head/contrib/llvm-project/lld/ELF/Writer.cpp Sat May 23 10:21:02 2020 (r361409) +++ head/contrib/llvm-project/lld/ELF/Writer.cpp Sat May 23 10:32:18 2020 (r361410) @@ -1524,17 +1524,30 @@ template <class ELFT> void Writer<ELFT>::resolveShfLin // but sort must consider them all at once. std::vector<InputSection **> scriptSections; std::vector<InputSection *> sections; + bool started = false, stopped = false; for (BaseCommand *base : sec->sectionCommands) { if (auto *isd = dyn_cast<InputSectionDescription>(base)) { for (InputSection *&isec : isd->sections) { - scriptSections.push_back(&isec); - sections.push_back(isec); + if (!(isec->flags & SHF_LINK_ORDER)) { + if (started) + stopped = true; + } else if (stopped) { + error(toString(isec) + ": SHF_LINK_ORDER sections in " + sec->name + + " are not contiguous"); + } else { + started = true; *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202005231032.04NAWJJg072601>