aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2022-12-04 22:09:55 +0000
committerDimitry Andric <dim@FreeBSD.org>2023-02-08 19:05:19 +0000
commitf3fd488f1e19a3d09c4bdcece893901de4f49cdd (patch)
tree82183a5b9324006d7ceab77a1f77644cf9394067
parent6246ae0b85d8159978c01ae916a9ad6cde9378b5 (diff)
parent458532c2dd24708181cdce77b8f60938fdc90dc6 (diff)
downloadsrc-f3fd488f1e19a3d09c4bdcece893901de4f49cdd.tar.gz
src-f3fd488f1e19a3d09c4bdcece893901de4f49cdd.zip
Merge llvm-project release/15.x llvmorg-15.0.6-0-g088f33605d8a
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-15.0.6-0-g088f33605d8a. PR: 265425 MFC after: 2 weeks
-rw-r--r--ObsoleteFiles.inc4
-rw-r--r--contrib/llvm-project/clang/lib/CodeGen/TargetInfo.cpp8
-rw-r--r--contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.cpp40
-rw-r--r--contrib/llvm-project/clang/lib/Sema/SemaLookup.cpp8
-rw-r--r--contrib/llvm-project/clang/lib/Sema/SemaType.cpp3
-rw-r--r--contrib/llvm-project/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp6
-rw-r--r--contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc2
-rw-r--r--contrib/llvm-project/libcxx/include/__config2
-rw-r--r--contrib/llvm-project/libcxx/include/__functional/function.h14
-rw-r--r--contrib/llvm-project/lld/ELF/Driver.cpp9
-rw-r--r--contrib/llvm-project/lld/ELF/InputFiles.cpp2
-rw-r--r--contrib/llvm-project/lld/MachO/UnwindInfoSection.cpp35
-rw-r--r--contrib/llvm-project/lld/MachO/UnwindInfoSection.h2
-rw-r--r--contrib/llvm-project/lld/MachO/Writer.cpp2
-rw-r--r--contrib/llvm-project/lldb/bindings/interfaces.swig3
-rw-r--r--contrib/llvm-project/lldb/bindings/python/python-typemaps.swig2
-rw-r--r--contrib/llvm-project/lldb/include/lldb/API/SBType.h2
-rw-r--r--contrib/llvm-project/lldb/include/lldb/Symbol/CompilerType.h24
-rw-r--r--contrib/llvm-project/lldb/include/lldb/Symbol/TypeSystem.h14
-rw-r--r--contrib/llvm-project/lldb/source/API/SBType.cpp12
-rw-r--r--contrib/llvm-project/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp81
-rw-r--r--contrib/llvm-project/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h19
-rw-r--r--contrib/llvm-project/lldb/source/Symbol/CompilerType.cpp18
-rw-r--r--contrib/llvm-project/lldb/source/Symbol/TypeSystem.cpp12
-rw-r--r--contrib/llvm-project/llvm/lib/Analysis/VectorUtils.cpp7
-rw-r--r--contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp1
-rw-r--r--contrib/llvm-project/llvm/lib/CodeGen/TypePromotion.cpp8
-rw-r--r--contrib/llvm-project/llvm/lib/IR/AutoUpgrade.cpp2
-rw-r--r--contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc4
-rw-r--r--contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp67
-rw-r--r--contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.h2
-rw-r--r--contrib/llvm-project/llvm/lib/Target/AMDGPU/SIISelLowering.cpp2
-rw-r--r--contrib/llvm-project/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp2
-rw-r--r--contrib/llvm-project/llvm/lib/Target/Sparc/SparcCallingConv.td10
-rw-r--r--contrib/llvm-project/llvm/lib/Target/Sparc/SparcISelLowering.cpp61
-rw-r--r--contrib/llvm-project/llvm/lib/Target/Sparc/SparcISelLowering.h5
-rw-r--r--contrib/llvm-project/llvm/lib/Transforms/IPO/GlobalOpt.cpp2
-rw-r--r--contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp4
-rw-r--r--contrib/llvm-project/llvm/lib/Transforms/Scalar/SROA.cpp19
-rw-r--r--contrib/llvm-project/llvm/lib/Transforms/Utils/VNCoercion.cpp4
-rw-r--r--etc/mtree/BSD.debug.dist2
-rw-r--r--etc/mtree/BSD.usr.dist2
-rw-r--r--lib/clang/headers/Makefile2
-rw-r--r--lib/clang/include/VCSVersion.inc6
-rw-r--r--lib/clang/include/clang/Basic/Version.inc6
-rw-r--r--lib/clang/include/clang/Config/config.h2
-rw-r--r--lib/clang/include/lld/Common/Version.inc2
-rw-r--r--lib/clang/include/lldb/Version/Version.inc6
-rw-r--r--lib/clang/include/llvm/Config/config.h4
-rw-r--r--lib/clang/include/llvm/Config/llvm-config.h4
-rw-r--r--lib/clang/include/llvm/Support/VCSRevision.h2
-rw-r--r--lib/libclang_rt/compiler-rt-vars.mk2
-rw-r--r--tools/build/mk/OptionalObsoleteFiles.inc644
53 files changed, 694 insertions, 514 deletions
diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
index 9bf8f3d8043b..89f13693daaf 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -52,7 +52,7 @@
# xargs -n1 | sort | uniq -d;
# done
-# 20230208: new clang import which bumps version from 14.0.5 to 15.0.3
+# 20230208: new clang import which bumps version from 14.0.5 to 15.0.6
OLD_FILES+=usr/lib/clang/14.0.5/include/cuda_wrappers/algorithm
OLD_FILES+=usr/lib/clang/14.0.5/include/cuda_wrappers/complex
OLD_FILES+=usr/lib/clang/14.0.5/include/cuda_wrappers/new
@@ -363,7 +363,7 @@ OLD_FILES+=usr/lib/clang/14.0.5/share/msan_ignorelist.txt
OLD_DIRS+=usr/lib/clang/14.0.5/share
OLD_DIRS+=usr/lib/clang/14.0.5
-# 20230208: new libc++ import which bumps version from 14.0.5 to 15.0.3
+# 20230208: new libc++ import which bumps version from 14.0.5 to 15.0.6
OLD_FILES+=usr/include/c++/v1/__functional_base
OLD_FILES+=usr/include/c++/v1/__libcpp_version
OLD_FILES+=usr/include/c++/v1/__nullptr
diff --git a/contrib/llvm-project/clang/lib/CodeGen/TargetInfo.cpp b/contrib/llvm-project/clang/lib/CodeGen/TargetInfo.cpp
index 36e10e4df4c1..44743fa0206f 100644
--- a/contrib/llvm-project/clang/lib/CodeGen/TargetInfo.cpp
+++ b/contrib/llvm-project/clang/lib/CodeGen/TargetInfo.cpp
@@ -7047,10 +7047,10 @@ Address ARMABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
// Empty records are ignored for parameter passing purposes.
if (isEmptyRecord(getContext(), Ty, true)) {
- Address Addr = Address(CGF.Builder.CreateLoad(VAListAddr),
- getVAListElementType(CGF), SlotSize);
- Addr = CGF.Builder.CreateElementBitCast(Addr, CGF.ConvertTypeForMem(Ty));
- return Addr;
+ VAListAddr = CGF.Builder.CreateElementBitCast(VAListAddr, CGF.Int8PtrTy);
+ auto *Load = CGF.Builder.CreateLoad(VAListAddr);
+ Address Addr = Address(Load, CGF.Int8Ty, SlotSize);
+ return CGF.Builder.CreateElementBitCast(Addr, CGF.ConvertTypeForMem(Ty));
}
CharUnits TySize = getContext().getTypeSizeInChars(Ty);
diff --git a/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.cpp b/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.cpp
index f203cae1d329..665cdc3132fb 100644
--- a/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -2139,31 +2139,21 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
// and gcc-toolsets.
if (SysRoot.empty() && TargetTriple.getOS() == llvm::Triple::Linux &&
D.getVFS().exists("/opt/rh")) {
- // Find the directory in /opt/rh/ starting with gcc-toolset-* or
- // devtoolset-* with the highest version number and add that
- // one to our prefixes.
- std::string ChosenToolsetDir;
- unsigned ChosenToolsetVersion = 0;
- std::error_code EC;
- for (llvm::vfs::directory_iterator LI = D.getVFS().dir_begin("/opt/rh", EC),
- LE;
- !EC && LI != LE; LI = LI.increment(EC)) {
- StringRef ToolsetDir = llvm::sys::path::filename(LI->path());
- unsigned ToolsetVersion;
- if ((!ToolsetDir.startswith("gcc-toolset-") &&
- !ToolsetDir.startswith("devtoolset-")) ||
- ToolsetDir.substr(ToolsetDir.rfind('-') + 1)
- .getAsInteger(10, ToolsetVersion))
- continue;
-
- if (ToolsetVersion > ChosenToolsetVersion) {
- ChosenToolsetVersion = ToolsetVersion;
- ChosenToolsetDir = "/opt/rh/" + ToolsetDir.str();
- }
- }
-
- if (ChosenToolsetVersion > 0)
- Prefixes.push_back(ChosenToolsetDir + "/root/usr");
+ // TODO: We may want to remove this, since the functionality
+ // can be achieved using config files.
+ Prefixes.push_back("/opt/rh/gcc-toolset-12/root/usr");
+ Prefixes.push_back("/opt/rh/gcc-toolset-11/root/usr");
+ Prefixes.push_back("/opt/rh/gcc-toolset-10/root/usr");
+ Prefixes.push_back("/opt/rh/devtoolset-12/root/usr");
+ Prefixes.push_back("/opt/rh/devtoolset-11/root/usr");
+ Prefixes.push_back("/opt/rh/devtoolset-10/root/usr");
+ Prefixes.push_back("/opt/rh/devtoolset-9/root/usr");
+ Prefixes.push_back("/opt/rh/devtoolset-8/root/usr");
+ Prefixes.push_back("/opt/rh/devtoolset-7/root/usr");
+ Prefixes.push_back("/opt/rh/devtoolset-6/root/usr");
+ Prefixes.push_back("/opt/rh/devtoolset-4/root/usr");
+ Prefixes.push_back("/opt/rh/devtoolset-3/root/usr");
+ Prefixes.push_back("/opt/rh/devtoolset-2/root/usr");
}
// Fall back to /usr which is used by most non-Solaris systems.
diff --git a/contrib/llvm-project/clang/lib/Sema/SemaLookup.cpp b/contrib/llvm-project/clang/lib/Sema/SemaLookup.cpp
index 68158ec977cf..5d0d87fd2422 100644
--- a/contrib/llvm-project/clang/lib/Sema/SemaLookup.cpp
+++ b/contrib/llvm-project/clang/lib/Sema/SemaLookup.cpp
@@ -939,11 +939,9 @@ bool Sema::LookupBuiltin(LookupResult &R) {
// If this is a builtin on this (or all) targets, create the decl.
if (unsigned BuiltinID = II->getBuiltinID()) {
- // In C++, C2x, and OpenCL (spec v1.2 s6.9.f), we don't have any
- // predefined library functions like 'malloc'. Instead, we'll just
- // error.
- if ((getLangOpts().CPlusPlus || getLangOpts().OpenCL ||
- getLangOpts().C2x) &&
+ // In C++ and OpenCL (spec v1.2 s6.9.f), we don't have any predefined
+ // library functions like 'malloc'. Instead, we'll just error.
+ if ((getLangOpts().CPlusPlus || getLangOpts().OpenCL) &&
Context.BuiltinInfo.isPredefinedLibFunction(BuiltinID))
return false;
diff --git a/contrib/llvm-project/clang/lib/Sema/SemaType.cpp b/contrib/llvm-project/clang/lib/Sema/SemaType.cpp
index 3ab5d26a9a75..edcac4d2ee9a 100644
--- a/contrib/llvm-project/clang/lib/Sema/SemaType.cpp
+++ b/contrib/llvm-project/clang/lib/Sema/SemaType.cpp
@@ -6443,6 +6443,9 @@ GetTypeSourceInfoForDeclarator(TypeProcessingState &State,
CurrTL = TL.getNextTypeLoc().getUnqualifiedLoc();
}
+ while (BTFTagAttributedTypeLoc TL = CurrTL.getAs<BTFTagAttributedTypeLoc>())
+ CurrTL = TL.getNextTypeLoc().getUnqualifiedLoc();
+
while (DependentAddressSpaceTypeLoc TL =
CurrTL.getAs<DependentAddressSpaceTypeLoc>()) {
fillDependentAddressSpaceTypeLoc(TL, D.getTypeObject(i).getAttrs());
diff --git a/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp b/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
index 19149d079822..ab65612bce90 100644
--- a/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
+++ b/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
@@ -2839,6 +2839,12 @@ void ExprEngine::VisitCommonDeclRefExpr(const Expr *Ex, const NamedDecl *D,
return;
}
+ if (const auto *TPO = dyn_cast<TemplateParamObjectDecl>(D)) {
+ // FIXME: We should meaningfully implement this.
+ (void)TPO;
+ return;
+ }
+
llvm_unreachable("Support for this Decl not implemented.");
}
diff --git a/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc b/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
index 9af296b1853a..b29665a63390 100644
--- a/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
+++ b/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
@@ -6703,7 +6703,7 @@ INTERCEPTOR(int, sem_init, __sanitizer_sem_t *s, int pshared, unsigned value) {
COMMON_INTERCEPTOR_ENTER(ctx, sem_init, s, pshared, value);
// Workaround a bug in glibc's "old" semaphore implementation by
// zero-initializing the sem_t contents. This has to be done here because
- // interceptors bind to the lowest symbols version by default, hitting the
+ // interceptors bind to the lowest version before glibc 2.36, hitting the
// buggy code path while the non-sanitized build of the same code works fine.
REAL(memset)(s, 0, sizeof(*s));
int res = REAL(sem_init)(s, pshared, value);
diff --git a/contrib/llvm-project/libcxx/include/__config b/contrib/llvm-project/libcxx/include/__config
index 589b5c3b2241..5f62b974170f 100644
--- a/contrib/llvm-project/libcxx/include/__config
+++ b/contrib/llvm-project/libcxx/include/__config
@@ -36,7 +36,7 @@
#ifdef __cplusplus
-# define _LIBCPP_VERSION 15003
+# define _LIBCPP_VERSION 15006
# define _LIBCPP_CONCAT_IMPL(_X, _Y) _X##_Y
# define _LIBCPP_CONCAT(_X, _Y) _LIBCPP_CONCAT_IMPL(_X, _Y)
diff --git a/contrib/llvm-project/libcxx/include/__functional/function.h b/contrib/llvm-project/libcxx/include/__functional/function.h
index db3af6e24101..55b607f3f804 100644
--- a/contrib/llvm-project/libcxx/include/__functional/function.h
+++ b/contrib/llvm-project/libcxx/include/__functional/function.h
@@ -883,7 +883,7 @@ template <class _Rp, class... _ArgTypes> class __policy_func<_Rp(_ArgTypes...)>
#endif // _LIBCPP_NO_RTTI
};
-#if defined(_LIBCPP_HAS_BLOCKS_RUNTIME) && !defined(_LIBCPP_HAS_OBJC_ARC)
+#if defined(_LIBCPP_HAS_BLOCKS_RUNTIME)
extern "C" void *_Block_copy(const void *);
extern "C" void _Block_release(const void *);
@@ -898,14 +898,22 @@ class __func<_Rp1(^)(_ArgTypes1...), _Alloc, _Rp(_ArgTypes...)>
public:
_LIBCPP_INLINE_VISIBILITY
explicit __func(__block_type const& __f)
+#ifdef _LIBCPP_HAS_OBJC_ARC
+ : __f_(__f)
+#else
: __f_(reinterpret_cast<__block_type>(__f ? _Block_copy(__f) : nullptr))
+#endif
{ }
// [TODO] add && to save on a retain
_LIBCPP_INLINE_VISIBILITY
explicit __func(__block_type __f, const _Alloc& /* unused */)
+#ifdef _LIBCPP_HAS_OBJC_ARC
+ : __f_(__f)
+#else
: __f_(reinterpret_cast<__block_type>(__f ? _Block_copy(__f) : nullptr))
+#endif
{ }
virtual __base<_Rp(_ArgTypes...)>* __clone() const {
@@ -921,8 +929,10 @@ public:
}
virtual void destroy() _NOEXCEPT {
+#ifndef _LIBCPP_HAS_OBJC_ARC
if (__f_)
_Block_release(__f_);
+#endif
__f_ = 0;
}
@@ -950,7 +960,7 @@ public:
#endif // _LIBCPP_NO_RTTI
};
-#endif // _LIBCPP_HAS_EXTENSION_BLOCKS && !_LIBCPP_HAS_OBJC_ARC
+#endif // _LIBCPP_HAS_EXTENSION_BLOCKS
} // namespace __function
diff --git a/contrib/llvm-project/lld/ELF/Driver.cpp b/contrib/llvm-project/lld/ELF/Driver.cpp
index 296fb4220012..58d863776430 100644
--- a/contrib/llvm-project/lld/ELF/Driver.cpp
+++ b/contrib/llvm-project/lld/ELF/Driver.cpp
@@ -1330,12 +1330,15 @@ static void readConfigs(opt::InputArgList &args) {
parseClangOption(std::string("-") + arg->getValue(), arg->getSpelling());
// GCC collect2 passes -plugin-opt=path/to/lto-wrapper with an absolute or
- // relative path. Just ignore. If not ended with "lto-wrapper", consider it an
+ // relative path. Just ignore. If not ended with "lto-wrapper" (or
+ // "lto-wrapper.exe" for GCC cross-compiled for Windows), consider it an
// unsupported LLVMgold.so option and error.
- for (opt::Arg *arg : args.filtered(OPT_plugin_opt_eq))
- if (!StringRef(arg->getValue()).endswith("lto-wrapper"))
+ for (opt::Arg *arg : args.filtered(OPT_plugin_opt_eq)) {
+ StringRef v(arg->getValue());
+ if (!v.endswith("lto-wrapper") && !v.endswith("lto-wrapper.exe"))
error(arg->getSpelling() + ": unknown plugin option '" + arg->getValue() +
"'");
+ }
config->passPlugins = args::getStrings(args, OPT_load_pass_plugins);
diff --git a/contrib/llvm-project/lld/ELF/InputFiles.cpp b/contrib/llvm-project/lld/ELF/InputFiles.cpp
index 927dc272b532..473809b05e9c 100644
--- a/contrib/llvm-project/lld/ELF/InputFiles.cpp
+++ b/contrib/llvm-project/lld/ELF/InputFiles.cpp
@@ -1157,7 +1157,7 @@ template <class ELFT> void ObjFile<ELFT>::postParse() {
continue;
}
- if (binding == STB_WEAK)
+ if (sym.binding == STB_WEAK || binding == STB_WEAK)
continue;
std::lock_guard<std::mutex> lock(mu);
ctx->duplicates.push_back({&sym, this, sec, eSym.st_value});
diff --git a/contrib/llvm-project/lld/MachO/UnwindInfoSection.cpp b/contrib/llvm-project/lld/MachO/UnwindInfoSection.cpp
index ca6cbdfbb8bb..8f267251b7c0 100644
--- a/contrib/llvm-project/lld/MachO/UnwindInfoSection.cpp
+++ b/contrib/llvm-project/lld/MachO/UnwindInfoSection.cpp
@@ -158,7 +158,7 @@ class UnwindInfoSectionImpl final : public UnwindInfoSection {
public:
UnwindInfoSectionImpl() : cuOffsets(target->wordSize) {}
uint64_t getSize() const override { return unwindInfoSize; }
- void prepareRelocations() override;
+ void prepare() override;
void finalize() override;
void writeTo(uint8_t *buf) const override;
@@ -166,6 +166,7 @@ private:
void prepareRelocations(ConcatInputSection *);
void relocateCompactUnwind(std::vector<CompactUnwindEntry> &);
void encodePersonalities();
+ Symbol *canonicalizePersonality(Symbol *);
uint64_t unwindInfoSize = 0;
std::vector<decltype(symbols)::value_type> symbolsVec;
@@ -218,14 +219,24 @@ void UnwindInfoSection::addSymbol(const Defined *d) {
}
}
-void UnwindInfoSectionImpl::prepareRelocations() {
+void UnwindInfoSectionImpl::prepare() {
// This iteration needs to be deterministic, since prepareRelocations may add
// entries to the GOT. Hence the use of a MapVector for
// UnwindInfoSection::symbols.
for (const Defined *d : make_second_range(symbols))
- if (d->unwindEntry &&
- d->unwindEntry->getName() == section_names::compactUnwind)
- prepareRelocations(d->unwindEntry);
+ if (d->unwindEntry) {
+ if (d->unwindEntry->getName() == section_names::compactUnwind) {
+ prepareRelocations(d->unwindEntry);
+ } else {
+ // We don't have to add entries to the GOT here because FDEs have
+ // explicit GOT relocations, so Writer::scanRelocations() will add those
+ // GOT entries. However, we still need to canonicalize the personality
+ // pointers (like prepareRelocations() does for CU entries) in order
+ // to avoid overflowing the 3-personality limit.
+ FDE &fde = cast<ObjFile>(d->getFile())->fdes[d->unwindEntry];
+ fde.personality = canonicalizePersonality(fde.personality);
+ }
+ }
}
// Compact unwind relocations have different semantics, so we handle them in a
@@ -279,6 +290,7 @@ void UnwindInfoSectionImpl::prepareRelocations(ConcatInputSection *isec) {
continue;
}
+ // Similar to canonicalizePersonality(), but we also register a GOT entry.
if (auto *defined = dyn_cast<Defined>(s)) {
// Check if we have created a synthetic symbol at the same address.
Symbol *&personality =
@@ -291,6 +303,7 @@ void UnwindInfoSectionImpl::prepareRelocations(ConcatInputSection *isec) {
}
continue;
}
+
assert(isa<DylibSymbol>(s));
in.got->addEntry(s);
continue;
@@ -320,6 +333,18 @@ void UnwindInfoSectionImpl::prepareRelocations(ConcatInputSection *isec) {
}
}
+Symbol *UnwindInfoSectionImpl::canonicalizePersonality(Symbol *personality) {
+ if (auto *defined = dyn_cast_or_null<Defined>(personality)) {
+ // Check if we have created a synthetic symbol at the same address.
+ Symbol *&synth = personalityTable[{defined->isec, defined->value}];
+ if (synth == nullptr)
+ synth = defined;
+ else if (synth != defined)
+ return synth;
+ }
+ return personality;
+}
+
// We need to apply the relocations to the pre-link compact unwind section
// before converting it to post-link form. There should only be absolute
// relocations here: since we are not emitting the pre-link CU section, there
diff --git a/contrib/llvm-project/lld/MachO/UnwindInfoSection.h b/contrib/llvm-project/lld/MachO/UnwindInfoSection.h
index c6b334731c75..f2bc3213a127 100644
--- a/contrib/llvm-project/lld/MachO/UnwindInfoSection.h
+++ b/contrib/llvm-project/lld/MachO/UnwindInfoSection.h
@@ -24,7 +24,7 @@ public:
// section entirely.
bool isNeeded() const override { return !allEntriesAreOmitted; }
void addSymbol(const Defined *);
- virtual void prepareRelocations() = 0;
+ virtual void prepare() = 0;
protected:
UnwindInfoSection();
diff --git a/contrib/llvm-project/lld/MachO/Writer.cpp b/contrib/llvm-project/lld/MachO/Writer.cpp
index 3c44a60f4be2..ce9672dd0b4f 100644
--- a/contrib/llvm-project/lld/MachO/Writer.cpp
+++ b/contrib/llvm-project/lld/MachO/Writer.cpp
@@ -675,7 +675,7 @@ void Writer::scanRelocations() {
}
}
- in.unwindInfo->prepareRelocations();
+ in.unwindInfo->prepare();
}
void Writer::scanSymbols() {
diff --git a/contrib/llvm-project/lldb/bindings/interfaces.swig b/contrib/llvm-project/lldb/bindings/interfaces.swig
index c9a6d0f06056..021c7683d170 100644
--- a/contrib/llvm-project/lldb/bindings/interfaces.swig
+++ b/contrib/llvm-project/lldb/bindings/interfaces.swig
@@ -1,8 +1,5 @@
/* Various liblldb typedefs that SWIG needs to know about. */
#define __extension__ /* Undefine GCC keyword to make Swig happy when processing glibc's stdint.h. */
-/* The ISO C99 standard specifies that in C++ implementations limit macros such
- as INT32_MAX should only be defined if __STDC_LIMIT_MACROS is. */
-#define __STDC_LIMIT_MACROS
%include "stdint.i"
%include "lldb/lldb-defines.h"
diff --git a/contrib/llvm-project/lldb/bindings/python/python-typemaps.swig b/contrib/llvm-project/lldb/bindings/python/python-typemaps.swig
index bf3de66b91bf..d45431c771ca 100644
--- a/contrib/llvm-project/lldb/bindings/python/python-typemaps.swig
+++ b/contrib/llvm-project/lldb/bindings/python/python-typemaps.swig
@@ -435,7 +435,7 @@ template <> bool SetNumberFromPyObject<double>(double &number, PyObject *obj) {
%typemap(out) lldb::FileSP {
$result = nullptr;
- lldb::FileSP &sp = $1;
+ const lldb::FileSP &sp = $1;
if (sp) {
PythonFile pyfile = unwrapOrSetPythonException(PythonFile::FromFile(*sp));
if (!pyfile.IsValid())
diff --git a/contrib/llvm-project/lldb/include/lldb/API/SBType.h b/contrib/llvm-project/lldb/include/lldb/API/SBType.h
index 244d328b51f4..aa45aeeec476 100644
--- a/contrib/llvm-project/lldb/include/lldb/API/SBType.h
+++ b/contrib/llvm-project/lldb/include/lldb/API/SBType.h
@@ -182,6 +182,8 @@ public:
lldb::SBType GetTemplateArgumentType(uint32_t idx);
+ /// Return the TemplateArgumentKind of the template argument at index idx.
+ /// Variadic argument packs are automatically expanded.
lldb::TemplateArgumentKind GetTemplateArgumentKind(uint32_t idx);
lldb::SBType GetFunctionReturnType();
diff --git a/contrib/llvm-project/lldb/include/lldb/Symbol/CompilerType.h b/contrib/llvm-project/lldb/include/lldb/Symbol/CompilerType.h
index 0ad05a27570e..aefd19d0a859 100644
--- a/contrib/llvm-project/lldb/include/lldb/Symbol/CompilerType.h
+++ b/contrib/llvm-project/lldb/include/lldb/Symbol/CompilerType.h
@@ -338,14 +338,28 @@ public:
GetIndexOfChildMemberWithName(const char *name, bool omit_empty_base_classes,
std::vector<uint32_t> &child_indexes) const;
- size_t GetNumTemplateArguments() const;
-
- lldb::TemplateArgumentKind GetTemplateArgumentKind(size_t idx) const;
- CompilerType GetTypeTemplateArgument(size_t idx) const;
+ /// Return the number of template arguments the type has.
+ /// If expand_pack is true, then variadic argument packs are automatically
+ /// expanded to their supplied arguments. If it is false an argument pack
+ /// will only count as 1 argument.
+ size_t GetNumTemplateArguments(bool expand_pack = false) const;
+
+ // Return the TemplateArgumentKind of the template argument at index idx.
+ // If expand_pack is true, then variadic argument packs are automatically
+ // expanded to their supplied arguments. With expand_pack set to false, an
+ // arguement pack will count as 1 argument and return a type of Pack.
+ lldb::TemplateArgumentKind
+ GetTemplateArgumentKind(size_t idx, bool expand_pack = false) const;
+ CompilerType GetTypeTemplateArgument(size_t idx,
+ bool expand_pack = false) const;
/// Returns the value of the template argument and its type.
+ /// If expand_pack is true, then variadic argument packs are automatically
+ /// expanded to their supplied arguments. With expand_pack set to false, an
+ /// arguement pack will count as 1 argument and it is invalid to call this
+ /// method on the pack argument.
llvm::Optional<IntegralTemplateArgument>
- GetIntegralTemplateArgument(size_t idx) const;
+ GetIntegralTemplateArgument(size_t idx, bool expand_pack = false) const;
CompilerType GetTypeForFormatters() const;
diff --git a/contrib/llvm-project/lldb/include/lldb/Symbol/TypeSystem.h b/contrib/llvm-project/lldb/include/lldb/Symbol/TypeSystem.h
index be5783596897..769449a4933b 100644
--- a/contrib/llvm-project/lldb/include/lldb/Symbol/TypeSystem.h
+++ b/contrib/llvm-project/lldb/include/lldb/Symbol/TypeSystem.h
@@ -346,14 +346,18 @@ public:
const char *name, bool omit_empty_base_classes,
std::vector<uint32_t> &child_indexes) = 0;
- virtual size_t GetNumTemplateArguments(lldb::opaque_compiler_type_t type);
+ virtual size_t GetNumTemplateArguments(lldb::opaque_compiler_type_t type,
+ bool expand_pack);
virtual lldb::TemplateArgumentKind
- GetTemplateArgumentKind(lldb::opaque_compiler_type_t type, size_t idx);
- virtual CompilerType GetTypeTemplateArgument(lldb::opaque_compiler_type_t type,
- size_t idx);
+ GetTemplateArgumentKind(lldb::opaque_compiler_type_t type, size_t idx,
+ bool expand_pack);
+ virtual CompilerType
+ GetTypeTemplateArgument(lldb::opaque_compiler_type_t type, size_t idx,
+ bool expand_pack);
virtual llvm::Optional<CompilerType::IntegralTemplateArgument>
- GetIntegralTemplateArgument(lldb::opaque_compiler_type_t type, size_t idx);
+ GetIntegralTemplateArgument(lldb::opaque_compiler_type_t type, size_t idx,
+ bool expand_pack);
// Dumping types
diff --git a/contrib/llvm-project/lldb/source/API/SBType.cpp b/contrib/llvm-project/lldb/source/API/SBType.cpp
index 533930c0544b..adc60a084367 100644
--- a/contrib/llvm-project/lldb/source/API/SBType.cpp
+++ b/contrib/llvm-project/lldb/source/API/SBType.cpp
@@ -542,7 +542,8 @@ uint32_t SBType::GetNumberOfTemplateArguments() {
LLDB_INSTRUMENT_VA(this);
if (IsValid())
- return m_opaque_sp->GetCompilerType(false).GetNumTemplateArguments();
+ return m_opaque_sp->GetCompilerType(false).GetNumTemplateArguments(
+ /*expand_pack=*/true);
return 0;
}
@@ -553,13 +554,15 @@ lldb::SBType SBType::GetTemplateArgumentType(uint32_t idx) {
return SBType();
CompilerType type;
+ const bool expand_pack = true;
switch(GetTemplateArgumentKind(idx)) {
case eTemplateArgumentKindType:
- type = m_opaque_sp->GetCompilerType(false).GetTypeTemplateArgument(idx);
+ type = m_opaque_sp->GetCompilerType(false).GetTypeTemplateArgument(
+ idx, expand_pack);
break;
case eTemplateArgumentKindIntegral:
type = m_opaque_sp->GetCompilerType(false)
- .GetIntegralTemplateArgument(idx)
+ .GetIntegralTemplateArgument(idx, expand_pack)
->type;
break;
default:
@@ -574,7 +577,8 @@ lldb::TemplateArgumentKind SBType::GetTemplateArgumentKind(uint32_t idx) {
LLDB_INSTRUMENT_VA(this, idx);
if (IsValid())
- return m_opaque_sp->GetCompilerType(false).GetTemplateArgumentKind(idx);
+ return m_opaque_sp->GetCompilerType(false).GetTemplateArgumentKind(
+ idx, /*expand_pack=*/true);
return eTemplateArgumentKindNull;
}
diff --git a/contrib/llvm-project/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp b/contrib/llvm-project/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
index 5f5649a32e19..b47d86d76337 100644
--- a/contrib/llvm-project/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
+++ b/contrib/llvm-project/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
@@ -7096,7 +7096,8 @@ TypeSystemClang::GetIndexOfChildWithName(lldb::opaque_compiler_type_t type,
}
size_t
-TypeSystemClang::GetNumTemplateArguments(lldb::opaque_compiler_type_t type) {
+TypeSystemClang::GetNumTemplateArguments(lldb::opaque_compiler_type_t type,
+ bool expand_pack) {
if (!type)
return 0;
@@ -7111,8 +7112,17 @@ TypeSystemClang::GetNumTemplateArguments(lldb::opaque_compiler_type_t type) {
const clang::ClassTemplateSpecializationDecl *template_decl =
llvm::dyn_cast<clang::ClassTemplateSpecializationDecl>(
cxx_record_decl);
- if (template_decl)
- return template_decl->getTemplateArgs().size();
+ if (template_decl) {
+ const auto &template_arg_list = template_decl->getTemplateArgs();
+ size_t num_args = template_arg_list.size();
+ assert(num_args && "template specialization without any args");
+ if (expand_pack && num_args) {
+ const auto &pack = template_arg_list[num_args - 1];
+ if (pack.getKind() == clang::TemplateArgument::Pack)
+ num_args += pack.pack_size() - 1;
+ }
+ return num_args;
+ }
}
}
break;
@@ -7149,15 +7159,51 @@ TypeSystemClang::GetAsTemplateSpecialization(
}
}
+const TemplateArgument *
+GetNthTemplateArgument(const clang::ClassTemplateSpecializationDecl *decl,
+ size_t idx, bool expand_pack) {
+ const auto &args = decl->getTemplateArgs();
+ const size_t args_size = args.size();
+
+ assert(args_size && "template specialization without any args");
+ if (!args_size)
+ return nullptr;
+
+ const size_t last_idx = args_size - 1;
+
+ // We're asked for a template argument that can't be a parameter pack, so
+ // return it without worrying about 'expand_pack'.
+ if (idx < last_idx)
+ return &args[idx];
+
+ // We're asked for the last template argument but we don't want/need to
+ // expand it.
+ if (!expand_pack || args[last_idx].getKind() != clang::TemplateArgument::Pack)
+ return idx >= args.size() ? nullptr : &args[idx];
+
+ // Index into the expanded pack.
+ // Note that 'idx' counts from the beginning of all template arguments
+ // (including the ones preceding the parameter pack).
+ const auto &pack = args[last_idx];
+ const size_t pack_idx = idx - last_idx;
+ const size_t pack_size = pack.pack_size();
+ assert(pack_idx < pack_size && "parameter pack index out-of-bounds");
+ return &pack.pack_elements()[pack_idx];
+}
+
lldb::TemplateArgumentKind
TypeSystemClang::GetTemplateArgumentKind(lldb::opaque_compiler_type_t type,
- size_t arg_idx) {
+ size_t arg_idx, bool expand_pack) {
const clang::ClassTemplateSpecializationDecl *template_decl =
GetAsTemplateSpecialization(type);
- if (! template_decl || arg_idx >= template_decl->getTemplateArgs().size())
+ if (!template_decl)
+ return eTemplateArgumentKindNull;
+
+ const auto *arg = GetNthTemplateArgument(template_decl, arg_idx, expand_pack);
+ if (!arg)
return eTemplateArgumentKindNull;
- switch (template_decl->getTemplateArgs()[arg_idx].getKind()) {
+ switch (arg->getKind()) {
case clang::TemplateArgument::Null:
return eTemplateArgumentKindNull;
@@ -7190,35 +7236,32 @@ TypeSystemClang::GetTemplateArgumentKind(lldb::opaque_compiler_type_t type,
CompilerType
TypeSystemClang::GetTypeTemplateArgument(lldb::opaque_compiler_type_t type,
- size_t idx) {
+ size_t idx, bool expand_pack) {
const clang::ClassTemplateSpecializationDecl *template_decl =
GetAsTemplateSpecialization(type);
- if (!template_decl || idx >= template_decl->getTemplateArgs().size())
+ if (!template_decl)
return CompilerType();
- const clang::TemplateArgument &template_arg =
- template_decl->getTemplateArgs()[idx];
- if (template_arg.getKind() != clang::TemplateArgument::Type)
+ const auto *arg = GetNthTemplateArgument(template_decl, idx, expand_pack);
+ if (!arg || arg->getKind() != clang::TemplateArgument::Type)
return CompilerType();
- return GetType(template_arg.getAsType());
+ return GetType(arg->getAsType());
}
Optional<CompilerType::IntegralTemplateArgument>
TypeSystemClang::GetIntegralTemplateArgument(lldb::opaque_compiler_type_t type,
- size_t idx) {
+ size_t idx, bool expand_pack) {
const clang::ClassTemplateSpecializationDecl *template_decl =
GetAsTemplateSpecialization(type);
- if (! template_decl || idx >= template_decl->getTemplateArgs().size())
+ if (!template_decl)
return llvm::None;
- const clang::TemplateArgument &template_arg =
- template_decl->getTemplateArgs()[idx];
- if (template_arg.getKind() != clang::TemplateArgument::Integral)
+ const auto *arg = GetNthTemplateArgument(template_decl, idx, expand_pack);
+ if (!arg || arg->getKind() != clang::TemplateArgument::Integral)
return llvm::None;
- return {
- {template_arg.getAsIntegral(), GetType(template_arg.getIntegralType())}};
+ return {{arg->getAsIntegral(), GetType(arg->getIntegralType())}};
}
CompilerType TypeSystemClang::GetTypeForFormatters(void *type) {
diff --git a/contrib/llvm-project/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h b/contrib/llvm-project/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
index 4883f510eb31..6ecbfdd4d1a5 100644
--- a/contrib/llvm-project/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
+++ b/contrib/llvm-project/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
@@ -91,7 +91,7 @@ public:
void SetOwningModule(OptionalClangModuleID id);
/// \}
};
-
+
/// A TypeSystem implementation based on Clang.
///
/// This class uses a single clang::ASTContext as the backend for storing
@@ -334,7 +334,7 @@ public:
llvm::SmallVector<const char *, 2> names;
llvm::SmallVector<clang::TemplateArgument, 2> args;
-
+
const char * pack_name = nullptr;
std::unique_ptr<TemplateParameterInfos> packed_args;
};
@@ -539,7 +539,7 @@ public:
#ifndef NDEBUG
bool Verify(lldb::opaque_compiler_type_t type) override;
#endif
-
+
bool IsArrayType(lldb::opaque_compiler_type_t type,
CompilerType *element_type, uint64_t *size,
bool *is_incomplete) override;
@@ -812,16 +812,17 @@ public:
const char *name, bool omit_empty_base_classes,
std::vector<uint32_t> &child_indexes) override;
- size_t GetNumTemplateArguments(lldb::opaque_compiler_type_t type) override;
+ size_t GetNumTemplateArguments(lldb::opaque_compiler_type_t type,
+ bool expand_pack) override;
lldb::TemplateArgumentKind
- GetTemplateArgumentKind(lldb::opaque_compiler_type_t type,
- size_t idx) override;
+ GetTemplateArgumentKind(lldb::opaque_compiler_type_t type, size_t idx,
+ bool expand_pack) override;
CompilerType GetTypeTemplateArgument(lldb::opaque_compiler_type_t type,
- size_t idx) override;
+ size_t idx, bool expand_pack) override;
llvm::Optional<CompilerType::IntegralTemplateArgument>
- GetIntegralTemplateArgument(lldb::opaque_compiler_type_t type,
- size_t idx) override;
+ GetIntegralTemplateArgument(lldb::opaque_compiler_type_t type, size_t idx,
+ bool expand_pack) override;
CompilerType GetTypeForFormatters(void *type) override;
diff --git a/contrib/llvm-project/lldb/source/Symbol/CompilerType.cpp b/contrib/llvm-project/lldb/source/Symbol/CompilerType.cpp
index ac98352c235e..bef456583687 100644
--- a/contrib/llvm-project/lldb/source/Symbol/CompilerType.cpp
+++ b/contrib/llvm-project/lldb/source/Symbol/CompilerType.cpp
@@ -659,30 +659,32 @@ size_t CompilerType::GetIndexOfChildMemberWithName(
return 0;
}
-size_t CompilerType::GetNumTemplateArguments() const {
+size_t CompilerType::GetNumTemplateArguments(bool expand_pack) const {
if (IsValid()) {
- return m_type_system->GetNumTemplateArguments(m_type);
+ return m_type_system->GetNumTemplateArguments(m_type, expand_pack);
}
return 0;
}
-TemplateArgumentKind CompilerType::GetTemplateArgumentKind(size_t idx) const {
+TemplateArgumentKind
+CompilerType::GetTemplateArgumentKind(size_t idx, bool expand_pack) const {
if (IsValid())
- return m_type_system->GetTemplateArgumentKind(m_type, idx);
+ return m_type_system->GetTemplateArgumentKind(m_type, idx, expand_pack);
return eTemplateArgumentKindNull;
}
-CompilerType CompilerType::GetTypeTemplateArgument(size_t idx) const {
+CompilerType CompilerType::GetTypeTemplateArgument(size_t idx,
+ bool expand_pack) const {
if (IsValid()) {
- return m_type_system->GetTypeTemplateArgument(m_type, idx);
+ return m_type_system->GetTypeTemplateArgument(m_type, idx, expand_pack);
}
return CompilerType();
}
llvm::Optional<CompilerType::IntegralTemplateArgument>
-CompilerType::GetIntegralTemplateArgument(size_t idx) const {
+CompilerType::GetIntegralTemplateArgument(size_t idx, bool expand_pack) const {
if (IsValid())
- return m_type_system->GetIntegralTemplateArgument(m_type, idx);
+ return m_type_system->GetIntegralTemplateArgument(m_type, idx, expand_pack);
return llvm::None;
}
diff --git a/contrib/llvm-project/lldb/source/Symbol/TypeSystem.cpp b/contrib/llvm-project/lldb/source/Symbol/TypeSystem.cpp
index 3092dc0bf0a4..412373533aab 100644
--- a/contrib/llvm-project/lldb/source/Symbol/TypeSystem.cpp
+++ b/contrib/llvm-project/lldb/source/Symbol/TypeSystem.cpp
@@ -118,23 +118,25 @@ CompilerType TypeSystem::GetTypeForFormatters(void *type) {
return CompilerType(this, type);
}
-size_t TypeSystem::GetNumTemplateArguments(lldb::opaque_compiler_type_t type) {
+size_t TypeSystem::GetNumTemplateArguments(lldb::opaque_compiler_type_t type,
+ bool expand_pack) {
return 0;
}
TemplateArgumentKind
-TypeSystem::GetTemplateArgumentKind(opaque_compiler_type_t type, size_t idx) {
+TypeSystem::GetTemplateArgumentKind(opaque_compiler_type_t type, size_t idx,
+ bool expand_pack) {
return eTemplateArgumentKindNull;
}
CompilerType TypeSystem::GetTypeTemplateArgument(opaque_compiler_type_t type,
- size_t idx) {
+ size_t idx, bool expand_pack) {
return CompilerType();
}
llvm::Optional<CompilerType::IntegralTemplateArgument>
-TypeSystem::GetIntegralTemplateArgument(opaque_compiler_type_t type,
- size_t idx) {
+TypeSystem::GetIntegralTemplateArgument(opaque_compiler_type_t type, size_t idx,
+ bool expand_pack) {
return llvm::None;
}
diff --git a/contrib/llvm-project/llvm/lib/Analysis/VectorUtils.cpp b/contrib/llvm-project/llvm/lib/Analysis/VectorUtils.cpp
index c4795a80ead2..bc20f33f174c 100644
--- a/contrib/llvm-project/llvm/lib/Analysis/VectorUtils.cpp
+++ b/contrib/llvm-project/llvm/lib/Analysis/VectorUtils.cpp
@@ -1110,6 +1110,12 @@ void InterleavedAccessInfo::collectConstStrideAccesses(
continue;
Type *ElementTy = getLoadStoreType(&I);
+ // Currently, codegen doesn't support cases where the type size doesn't
+ // match the alloc size. Skip them for now.
+ uint64_t Size = DL.getTypeAllocSize(ElementTy);
+ if (Size * 8 != DL.getTypeSizeInBits(ElementTy))
+ continue;
+
// We don't check wrapping here because we don't know yet if Ptr will be
// part of a full group or a group with gaps. Checking wrapping for all
// pointers (even those that end up in groups with no gaps) will be overly
@@ -1121,7 +1127,6 @@ void InterleavedAccessInfo::collectConstStrideAccesses(
/*Assume=*/true, /*ShouldCheckWrap=*/false);
const SCEV *Scev = replaceSymbolicStrideSCEV(PSE, Strides, Ptr);
- uint64_t Size = DL.getTypeAllocSize(ElementTy);
AccessStrideInfo[&I] = StrideDescriptor(Stride, Scev, Size,
getLoadStoreAlignment(&I));
}
diff --git a/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index 35650b9bd00e..ecdaef0442da 100644
--- a/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -9693,6 +9693,7 @@ TargetLowering::LowerCallTo(TargetLowering::CallLoweringInfo &CLI) const {
Entry.Alignment = Alignment;
CLI.getArgs().insert(CLI.getArgs().begin(), Entry);
CLI.NumFixedArgs += 1;
+ CLI.getArgs()[0].IndirectType = CLI.RetTy;
CLI.RetTy = Type::getVoidTy(CLI.RetTy->getContext());
// sret demotion isn't compatible with tail-calls, since the sret argument
diff --git a/contrib/llvm-project/llvm/lib/CodeGen/TypePromotion.cpp b/contrib/llvm-project/llvm/lib/CodeGen/TypePromotion.cpp
index 8dc8d381ad16..a63118067139 100644
--- a/contrib/llvm-project/llvm/lib/CodeGen/TypePromotion.cpp
+++ b/contrib/llvm-project/llvm/lib/CodeGen/TypePromotion.cpp
@@ -569,7 +569,8 @@ void IRPromoter::TruncateSinks() {
void IRPromoter::Cleanup() {
LLVM_DEBUG(dbgs() << "IR Promotion: Cleanup..\n");
// Some zexts will now have become redundant, along with their trunc
- // operands, so remove them
+ // operands, so remove them.
+ // Some zexts need to be replaced with truncate if src bitwidth is larger.
for (auto *V : Visited) {
if (!isa<ZExtInst>(V))
continue;
@@ -584,6 +585,11 @@ void IRPromoter::Cleanup() {
<< "\n");
ReplaceAllUsersOfWith(ZExt, Src);
continue;
+ } else if (ZExt->getSrcTy()->getScalarSizeInBits() > PromotedWidth) {
+ IRBuilder<> Builder{ZExt};
+ Value *Trunc = Builder.CreateTrunc(Src, ZExt->getDestTy());
+ ReplaceAllUsersOfWith(ZExt, Trunc);
+ continue;
}
// We've inserted a trunc for a zext sink, but we already know that the
diff --git a/contrib/llvm-project/llvm/lib/IR/AutoUpgrade.cpp b/contrib/llvm-project/llvm/lib/IR/AutoUpgrade.cpp
index 75594f90c926..b9962da1d302 100644
--- a/contrib/llvm-project/llvm/lib/IR/AutoUpgrade.cpp
+++ b/contrib/llvm-project/llvm/lib/IR/AutoUpgrade.cpp
@@ -1040,7 +1040,7 @@ static bool UpgradeIntrinsicFunction1(Function *F, Function *&NewFn) {
Name, F->getParent());
// The new function may also need remangling.
- if (auto Result = llvm::Intrinsic::remangleIntrinsicFunction(F))
+ if (auto Result = llvm::Intrinsic::remangleIntrinsicFunction(NewFn))
NewFn = *Result;
return true;
}
diff --git a/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc b/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc
index bf145bffe8bf..23ac012b9e00 100644
--- a/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc
+++ b/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc
@@ -432,10 +432,6 @@ void llvm::sys::SetOneShotPipeSignalFunction(void (*Handler)()) {
}
void llvm::sys::DefaultOneShotPipeSignalHandler() {
- // UNIX03 conformance requires a non-zero exit code and an error message
- // to stderr when writing to a closed stdout fails.
- errs() << "error: write on a pipe with no reader\n";
-
// Send a special return code that drivers can check for, from sysexits.h.
exit(EX_IOERR);
}
diff --git a/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp b/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
index c28216048d7c..06e21f90ebf1 100644
--- a/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+++ b/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
@@ -5805,7 +5805,7 @@ SDValue AArch64TargetLowering::LowerFormalArguments(
assert(!Res && "Call operand has unhandled type");
(void)Res;
}
- SmallVector<SDValue, 16> ArgValues;
+
unsigned ExtraArgLocs = 0;
for (unsigned i = 0, e = Ins.size(); i != e; ++i) {
CCValAssign &VA = ArgLocs[i - ExtraArgLocs];
@@ -6157,17 +6157,10 @@ void AArch64TargetLowering::saveVarArgRegisters(CCState &CCInfo,
/// appropriate copies out of appropriate physical registers.
SDValue AArch64TargetLowering::LowerCallResult(
SDValue Chain, SDValue InFlag, CallingConv::ID CallConv, bool isVarArg,
- const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &DL,
+ const SmallVectorImpl<CCValAssign> &RVLocs, const SDLoc &DL,
SelectionDAG &DAG, SmallVectorImpl<SDValue> &InVals, bool isThisReturn,
SDValue ThisVal) const {
- CCAssignFn *RetCC = CCAssignFnForReturn(CallConv);
- // Assign locations to each value returned by this call.
- SmallVector<CCValAssign, 16> RVLocs;
DenseMap<unsigned, SDValue> CopiedRegs;
- CCState CCInfo(CallConv, isVarArg, DAG.getMachineFunction(), RVLocs,
- *DAG.getContext());
- CCInfo.AnalyzeCallResult(Ins, RetCC);
-
// Copy all of the result registers out of their specified physreg.
for (unsigned i = 0; i != RVLocs.size(); ++i) {
CCValAssign VA = RVLocs[i];
@@ -6508,17 +6501,39 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
GuardWithBTI = FuncInfo->branchTargetEnforcement();
}
+ // Analyze operands of the call, assigning locations to each operand.
+ SmallVector<CCValAssign, 16> ArgLocs;
+ CCState CCInfo(CallConv, IsVarArg, MF, ArgLocs, *DAG.getContext());
+
+ if (IsVarArg) {
+ unsigned NumArgs = Outs.size();
+
+ for (unsigned i = 0; i != NumArgs; ++i) {
+ if (!Outs[i].IsFixed && Outs[i].VT.isScalableVector())
+ report_fatal_error("Passing SVE types to variadic functions is "
+ "currently not supported");
+ }
+ }
+
+ analyzeCallOperands(*this, Subtarget, CLI, CCInfo);
+
+ CCAssignFn *RetCC = CCAssignFnForReturn(CallConv);
+ // Assign locations to each value returned by this call.
+ SmallVector<CCValAssign, 16> RVLocs;
+ CCState RetCCInfo(CallConv, IsVarArg, DAG.getMachineFunction(), RVLocs,
+ *DAG.getContext());
+ RetCCInfo.AnalyzeCallResult(Ins, RetCC);
+
// Check callee args/returns for SVE registers and set calling convention
// accordingly.
if (CallConv == CallingConv::C || CallConv == CallingConv::Fast) {
- bool CalleeOutSVE = any_of(Outs, [](ISD::OutputArg &Out){
- return Out.VT.isScalableVector();
- });
- bool CalleeInSVE = any_of(Ins, [](ISD::InputArg &In){
- return In.VT.isScalableVector();
- });
-
- if (CalleeInSVE || CalleeOutSVE)
+ auto HasSVERegLoc = [](CCValAssign &Loc) {
+ if (!Loc.isRegLoc())
+ return false;
+ return AArch64::ZPRRegClass.contains(Loc.getLocReg()) ||
+ AArch64::PPRRegClass.contains(Loc.getLocReg());
+ };
+ if (any_of(RVLocs, HasSVERegLoc) || any_of(ArgLocs, HasSVERegLoc))
CallConv = CallingConv::AArch64_SVE_VectorCall;
}
@@ -6540,22 +6555,6 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
report_fatal_error("failed to perform tail call elimination on a call "
"site marked musttail");
- // Analyze operands of the call, assigning locations to each operand.
- SmallVector<CCValAssign, 16> ArgLocs;
- CCState CCInfo(CallConv, IsVarArg, MF, ArgLocs, *DAG.getContext());
-
- if (IsVarArg) {
- unsigned NumArgs = Outs.size();
-
- for (unsigned i = 0; i != NumArgs; ++i) {
- if (!Outs[i].IsFixed && Outs[i].VT.isScalableVector())
- report_fatal_error("Passing SVE types to variadic functions is "
- "currently not supported");
- }
- }
-
- analyzeCallOperands(*this, Subtarget, CLI, CCInfo);
-
// Get a count of how many bytes are to be pushed on the stack.
unsigned NumBytes = CCInfo.getNextStackOffset();
@@ -6961,7 +6960,7 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
// Handle result values, copying them out of physregs into vregs that we
// return.
- return LowerCallResult(Chain, InFlag, CallConv, IsVarArg, Ins, DL, DAG,
+ return LowerCallResult(Chain, InFlag, CallConv, IsVarArg, RVLocs, DL, DAG,
InVals, IsThisReturn,
IsThisReturn ? OutVals[0] : SDValue());
}
diff --git a/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.h b/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.h
index 1ba2e2f315ec..ff3bfe897869 100644
--- a/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.h
+++ b/contrib/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.h
@@ -894,7 +894,7 @@ private:
SDValue LowerCallResult(SDValue Chain, SDValue InFlag,
CallingConv::ID CallConv, bool isVarArg,
- const SmallVectorImpl<ISD::InputArg> &Ins,
+ const SmallVectorImpl<CCValAssign> &RVLocs,
const SDLoc &DL, SelectionDAG &DAG,
SmallVectorImpl<SDValue> &InVals, bool isThisReturn,
SDValue ThisVal) const;
diff --git a/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
index f7d139adc63b..f6b7d1ffc6d2 100644
--- a/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+++ b/contrib/llvm-project/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
@@ -249,6 +249,7 @@ SITargetLowering::SITargetLowering(const TargetMachine &TM,
case ISD::STORE:
case ISD::BUILD_VECTOR:
case ISD::BITCAST:
+ case ISD::UNDEF:
case ISD::EXTRACT_VECTOR_ELT:
case ISD::INSERT_VECTOR_ELT:
case ISD::EXTRACT_SUBVECTOR:
@@ -516,6 +517,7 @@ SITargetLowering::SITargetLowering(const TargetMachine &TM,
case ISD::STORE:
case ISD::BUILD_VECTOR:
case ISD::BITCAST:
+ case ISD::UNDEF:
case ISD::EXTRACT_VECTOR_ELT:
case ISD::INSERT_VECTOR_ELT:
case ISD::INSERT_SUBVECTOR:
diff --git a/contrib/llvm-project/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp b/contrib/llvm-project/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
index 3c102463ba08..cbfd2bc68f18 100644
--- a/contrib/llvm-project/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
+++ b/contrib/llvm-project/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
@@ -1036,7 +1036,7 @@ InstructionCost ARMTTIImpl::getCmpSelInstrCost(unsigned Opcode, Type *ValTy,
// split, we may need an expensive shuffle to get two in sync. This has the
// effect of making larger than legal compares (v8i32 for example)
// expensive.
- if (LT.second.getVectorNumElements() > 2) {
+ if (LT.second.isVector() && LT.second.getVectorNumElements() > 2) {
if (LT.first > 1)
return LT.first * BaseCost +
BaseT::getScalarizationOverhead(VecCondTy, true, false);
diff --git a/contrib/llvm-project/llvm/lib/Target/Sparc/SparcCallingConv.td b/contrib/llvm-project/llvm/lib/Target/Sparc/SparcCallingConv.td
index e6d23f741ea5..8afd0a7fc09a 100644
--- a/contrib/llvm-project/llvm/lib/Target/Sparc/SparcCallingConv.td
+++ b/contrib/llvm-project/llvm/lib/Target/Sparc/SparcCallingConv.td
@@ -125,10 +125,14 @@ def CC_Sparc64 : CallingConv<[
def RetCC_Sparc64 : CallingConv<[
// A single f32 return value always goes in %f0. The ABI doesn't specify what
// happens to multiple f32 return values outside a struct.
- CCIfType<[f32], CCCustom<"CC_Sparc64_Half">>,
+ CCIfType<[f32], CCCustom<"RetCC_Sparc64_Half">>,
- // Otherwise, return values are passed exactly like arguments.
- CCDelegateTo<CC_Sparc64>
+ // Otherwise, return values are passed exactly like arguments, except that
+ // returns that are too big to fit into the registers is passed as an sret
+ // instead.
+ CCIfInReg<CCIfType<[i32, f32], CCCustom<"RetCC_Sparc64_Half">>>,
+ CCIfType<[i32], CCPromoteToType<i64>>,
+ CCCustom<"RetCC_Sparc64_Full">
]>;
// Callee-saved registers are handled by the register window mechanism.
diff --git a/contrib/llvm-project/llvm/lib/Target/Sparc/SparcISelLowering.cpp b/contrib/llvm-project/llvm/lib/Target/Sparc/SparcISelLowering.cpp
index 2cb74e7709c7..f55675089102 100644
--- a/contrib/llvm-project/llvm/lib/Target/Sparc/SparcISelLowering.cpp
+++ b/contrib/llvm-project/llvm/lib/Target/Sparc/SparcISelLowering.cpp
@@ -101,9 +101,9 @@ static bool CC_Sparc_Assign_Ret_Split_64(unsigned &ValNo, MVT &ValVT,
}
// Allocate a full-sized argument for the 64-bit ABI.
-static bool CC_Sparc64_Full(unsigned &ValNo, MVT &ValVT,
- MVT &LocVT, CCValAssign::LocInfo &LocInfo,
- ISD::ArgFlagsTy &ArgFlags, CCState &State) {
+static bool Analyze_CC_Sparc64_Full(bool IsReturn, unsigned &ValNo, MVT &ValVT,
+ MVT &LocVT, CCValAssign::LocInfo &LocInfo,
+ ISD::ArgFlagsTy &ArgFlags, CCState &State) {
assert((LocVT == MVT::f32 || LocVT == MVT::f128
|| LocVT.getSizeInBits() == 64) &&
"Can't handle non-64 bits locations");
@@ -133,6 +133,11 @@ static bool CC_Sparc64_Full(unsigned &ValNo, MVT &ValVT,
return true;
}
+ // Bail out if this is a return CC and we run out of registers to place
+ // values into.
+ if (IsReturn)
+ return false;
+
// This argument goes on the stack in an 8-byte slot.
// When passing floats, LocVT is smaller than 8 bytes. Adjust the offset to
// the right-aligned float. The first 4 bytes of the stack slot are undefined.
@@ -146,9 +151,9 @@ static bool CC_Sparc64_Full(unsigned &ValNo, MVT &ValVT,
// Allocate a half-sized argument for the 64-bit ABI.
//
// This is used when passing { float, int } structs by value in registers.
-static bool CC_Sparc64_Half(unsigned &ValNo, MVT &ValVT,
- MVT &LocVT, CCValAssign::LocInfo &LocInfo,
- ISD::ArgFlagsTy &ArgFlags, CCState &State) {
+static bool Analyze_CC_Sparc64_Half(bool IsReturn, unsigned &ValNo, MVT &ValVT,
+ MVT &LocVT, CCValAssign::LocInfo &LocInfo,
+ ISD::ArgFlagsTy &ArgFlags, CCState &State) {
assert(LocVT.getSizeInBits() == 32 && "Can't handle non-32 bits locations");
unsigned Offset = State.AllocateStack(4, Align(4));
@@ -174,10 +179,43 @@ static bool CC_Sparc64_Half(unsigned &ValNo, MVT &ValVT,
return true;
}
+ // Bail out if this is a return CC and we run out of registers to place
+ // values into.
+ if (IsReturn)
+ return false;
+
State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset, LocVT, LocInfo));
return true;
}
+static bool CC_Sparc64_Full(unsigned &ValNo, MVT &ValVT, MVT &LocVT,
+ CCValAssign::LocInfo &LocInfo,
+ ISD::ArgFlagsTy &ArgFlags, CCState &State) {
+ return Analyze_CC_Sparc64_Full(false, ValNo, ValVT, LocVT, LocInfo, ArgFlags,
+ State);
+}
+
+static bool CC_Sparc64_Half(unsigned &ValNo, MVT &ValVT, MVT &LocVT,
+ CCValAssign::LocInfo &LocInfo,
+ ISD::ArgFlagsTy &ArgFlags, CCState &State) {
+ return Analyze_CC_Sparc64_Half(false, ValNo, ValVT, LocVT, LocInfo, ArgFlags,
+ State);
+}
+
+static bool RetCC_Sparc64_Full(unsigned &ValNo, MVT &ValVT, MVT &LocVT,
+ CCValAssign::LocInfo &LocInfo,
+ ISD::ArgFlagsTy &ArgFlags, CCState &State) {
+ return Analyze_CC_Sparc64_Full(true, ValNo, ValVT, LocVT, LocInfo, ArgFlags,
+ State);
+}
+
+static bool RetCC_Sparc64_Half(unsigned &ValNo, MVT &ValVT, MVT &LocVT,
+ CCValAssign::LocInfo &LocInfo,
+ ISD::ArgFlagsTy &ArgFlags, CCState &State) {
+ return Analyze_CC_Sparc64_Half(true, ValNo, ValVT, LocVT, LocInfo, ArgFlags,
+ State);
+}
+
#include "SparcGenCallingConv.inc"
// The calling conventions in SparcCallingConv.td are described in terms of the
@@ -191,6 +229,15 @@ static unsigned toCallerWindow(unsigned Reg) {
return Reg;
}
+bool SparcTargetLowering::CanLowerReturn(
+ CallingConv::ID CallConv, MachineFunction &MF, bool isVarArg,
+ const SmallVectorImpl<ISD::OutputArg> &Outs, LLVMContext &Context) const {
+ SmallVector<CCValAssign, 16> RVLocs;
+ CCState CCInfo(CallConv, isVarArg, MF, RVLocs, Context);
+ return CCInfo.CheckReturn(Outs, Subtarget->is64Bit() ? RetCC_Sparc64
+ : RetCC_Sparc32);
+}
+
SDValue
SparcTargetLowering::LowerReturn(SDValue Chain, CallingConv::ID CallConv,
bool IsVarArg,
@@ -1031,6 +1078,7 @@ SparcTargetLowering::LowerCall_32(TargetLowering::CallLoweringInfo &CLI,
// Copy all of the result registers out of their specified physreg.
for (unsigned i = 0; i != RVLocs.size(); ++i) {
+ assert(RVLocs[i].isRegLoc() && "Can only return in registers!");
if (RVLocs[i].getLocVT() == MVT::v2i32) {
SDValue Vec = DAG.getNode(ISD::UNDEF, dl, MVT::v2i32);
SDValue Lo = DAG.getCopyFromReg(
@@ -1346,6 +1394,7 @@ SparcTargetLowering::LowerCall_64(TargetLowering::CallLoweringInfo &CLI,
// Copy all of the result registers out of their specified physreg.
for (unsigned i = 0; i != RVLocs.size(); ++i) {
CCValAssign &VA = RVLocs[i];
+ assert(VA.isRegLoc() && "Can only return in registers!");
unsigned Reg = toCallerWindow(VA.getLocReg());
// When returning 'inreg {i32, i32 }', two consecutive i32 arguments can
diff --git a/contrib/llvm-project/llvm/lib/Target/Sparc/SparcISelLowering.h b/contrib/llvm-project/llvm/lib/Target/Sparc/SparcISelLowering.h
index 2768bb20566a..16e4f2687054 100644
--- a/contrib/llvm-project/llvm/lib/Target/Sparc/SparcISelLowering.h
+++ b/contrib/llvm-project/llvm/lib/Target/Sparc/SparcISelLowering.h
@@ -144,6 +144,11 @@ namespace llvm {
SDValue LowerCall_64(TargetLowering::CallLoweringInfo &CLI,
SmallVectorImpl<SDValue> &InVals) const;
+ bool CanLowerReturn(CallingConv::ID CallConv, MachineFunction &MF,
+ bool isVarArg,
+ const SmallVectorImpl<ISD::OutputArg> &Outs,
+ LLVMContext &Context) const override;
+
SDValue LowerReturn(SDValue Chain, CallingConv::ID CallConv, bool isVarArg,
const SmallVectorImpl<ISD::OutputArg> &Outs,
const SmallVectorImpl<SDValue> &OutVals,
diff --git a/contrib/llvm-project/llvm/lib/Transforms/IPO/GlobalOpt.cpp b/contrib/llvm-project/llvm/lib/Transforms/IPO/GlobalOpt.cpp
index 6df0409256bb..6fc7b29c5b78 100644
--- a/contrib/llvm-project/llvm/lib/Transforms/IPO/GlobalOpt.cpp
+++ b/contrib/llvm-project/llvm/lib/Transforms/IPO/GlobalOpt.cpp
@@ -2003,7 +2003,7 @@ OptimizeFunctions(Module &M,
// FIXME: We should also hoist alloca affected by this to the entry
// block if possible.
if (F.getAttributes().hasAttrSomewhere(Attribute::InAlloca) &&
- !F.hasAddressTaken() && !hasMustTailCallers(&F)) {
+ !F.hasAddressTaken() && !hasMustTailCallers(&F) && !F.isVarArg()) {
RemoveAttribute(&F, Attribute::InAlloca);
Changed = true;
}
diff --git a/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
index bc01d2ef7fe2..52596b30494f 100644
--- a/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+++ b/contrib/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
@@ -3289,6 +3289,10 @@ bool InstCombinerImpl::transformConstExprCastCall(CallBase &Call) {
if (CallerPAL.hasParamAttr(i, Attribute::SwiftError))
return false;
+ if (CallerPAL.hasParamAttr(i, Attribute::ByVal) !=
+ Callee->getAttributes().hasParamAttr(i, Attribute::ByVal))
+ return false; // Cannot transform to or from byval.
+
// If the parameter is passed as a byval argument, then we have to have a
// sized type and the sized type has to have the same size as the old type.
if (ParamTy != ActTy && CallerPAL.hasParamAttr(i, Attribute::ByVal)) {
diff --git a/contrib/llvm-project/llvm/lib/Transforms/Scalar/SROA.cpp b/contrib/llvm-project/llvm/lib/Transforms/Scalar/SROA.cpp
index 143a035749c7..644c5c82e58e 100644
--- a/contrib/llvm-project/llvm/lib/Transforms/Scalar/SROA.cpp
+++ b/contrib/llvm-project/llvm/lib/Transforms/Scalar/SROA.cpp
@@ -1210,8 +1210,7 @@ static bool isSafePHIToSpeculate(PHINode &PN) {
BasicBlock *BB = PN.getParent();
Align MaxAlign;
uint64_t APWidth = DL.getIndexTypeSizeInBits(PN.getType());
- APInt MaxSize(APWidth, 0);
- bool HaveLoad = false;
+ Type *LoadType = nullptr;
for (User *U : PN.users()) {
LoadInst *LI = dyn_cast<LoadInst>(U);
if (!LI || !LI->isSimple())
@@ -1223,21 +1222,27 @@ static bool isSafePHIToSpeculate(PHINode &PN) {
if (LI->getParent() != BB)
return false;
+ if (LoadType) {
+ if (LoadType != LI->getType())
+ return false;
+ } else {
+ LoadType = LI->getType();
+ }
+
// Ensure that there are no instructions between the PHI and the load that
// could store.
for (BasicBlock::iterator BBI(PN); &*BBI != LI; ++BBI)
if (BBI->mayWriteToMemory())
return false;
- uint64_t Size = DL.getTypeStoreSize(LI->getType()).getFixedSize();
MaxAlign = std::max(MaxAlign, LI->getAlign());
- MaxSize = MaxSize.ult(Size) ? APInt(APWidth, Size) : MaxSize;
- HaveLoad = true;
}
- if (!HaveLoad)
+ if (!LoadType)
return false;
+ APInt LoadSize = APInt(APWidth, DL.getTypeStoreSize(LoadType).getFixedSize());
+
// We can only transform this if it is safe to push the loads into the
// predecessor blocks. The only thing to watch out for is that we can't put
// a possibly trapping load in the predecessor if it is a critical edge.
@@ -1259,7 +1264,7 @@ static bool isSafePHIToSpeculate(PHINode &PN) {
// If this pointer is always safe to load, or if we can prove that there
// is already a load in the block, then we can move the load to the pred
// block.
- if (isSafeToLoadUnconditionally(InVal, MaxAlign, MaxSize, DL, TI))
+ if (isSafeToLoadUnconditionally(InVal, MaxAlign, LoadSize, DL, TI))
continue;
return false;
diff --git a/contrib/llvm-project/llvm/lib/Transforms/Utils/VNCoercion.cpp b/contrib/llvm-project/llvm/lib/Transforms/Utils/VNCoercion.cpp
index 42be67f3cfc0..264da2187754 100644
--- a/contrib/llvm-project/llvm/lib/Transforms/Utils/VNCoercion.cpp
+++ b/contrib/llvm-project/llvm/lib/Transforms/Utils/VNCoercion.cpp
@@ -356,9 +356,9 @@ int analyzeLoadFromClobberingMemInst(Type *LoadTy, Value *LoadPtr,
// If this is memset, we just need to see if the offset is valid in the size
// of the memset..
- if (MI->getIntrinsicID() == Intrinsic::memset) {
+ if (const auto *memset_inst = dyn_cast<MemSetInst>(MI)) {
if (DL.isNonIntegralPointerType(LoadTy->getScalarType())) {
- auto *CI = dyn_cast<ConstantInt>(cast<MemSetInst>(MI)->getValue());
+ auto *CI = dyn_cast<ConstantInt>(memset_inst->getValue());
if (!CI || !CI->isZero())
return -1;
}
diff --git a/etc/mtree/BSD.debug.dist b/etc/mtree/BSD.debug.dist
index 75ac69ff3d7c..a73aca740a10 100644
--- a/etc/mtree/BSD.debug.dist
+++ b/etc/mtree/BSD.debug.dist
@@ -31,7 +31,7 @@
..
lib
clang
- 15.0.3
+ 15.0.6
lib
freebsd
..
diff --git a/etc/mtree/BSD.usr.dist b/etc/mtree/BSD.usr.dist
index 0d57b75ffd8c..ff5555ea0286 100644
--- a/etc/mtree/BSD.usr.dist
+++ b/etc/mtree/BSD.usr.dist
@@ -37,7 +37,7 @@
..
lib
clang
- 15.0.3
+ 15.0.6
include
cuda_wrappers
..
diff --git a/lib/clang/headers/Makefile b/lib/clang/headers/Makefile
index c0f80c95e1d4..822d934cbede 100644
--- a/lib/clang/headers/Makefile
+++ b/lib/clang/headers/Makefile
@@ -5,7 +5,7 @@
.PATH: ${CLANG_SRCS}/lib/Headers
INCSGROUPS= INCS CUDA HLSL OMP PPC
-INCSDIR= ${LIBDIR}/clang/15.0.3/include
+INCSDIR= ${LIBDIR}/clang/15.0.6/include
CUDADIR= ${INCSDIR}/cuda_wrappers
HLSLDIR= ${INCSDIR}/hlsl
OMPDIR= ${INCSDIR}/openmp_wrappers
diff --git a/lib/clang/include/VCSVersion.inc b/lib/clang/include/VCSVersion.inc
index 8b9c83471140..df4289259487 100644
--- a/lib/clang/include/VCSVersion.inc
+++ b/lib/clang/include/VCSVersion.inc
@@ -1,10 +1,10 @@
// $FreeBSD$
-#define LLVM_REVISION "llvmorg-15.0.2-10-gf3c5289e7846"
+#define LLVM_REVISION "llvmorg-15.0.6-0-g088f33605d8a"
#define LLVM_REPOSITORY "https://github.com/llvm/llvm-project.git"
-#define CLANG_REVISION "llvmorg-15.0.2-10-gf3c5289e7846"
+#define CLANG_REVISION "llvmorg-15.0.6-0-g088f33605d8a"
#define CLANG_REPOSITORY "https://github.com/llvm/llvm-project.git"
-#define LLDB_REVISION "llvmorg-15.0.2-10-gf3c5289e7846"
+#define LLDB_REVISION "llvmorg-15.0.6-0-g088f33605d8a"
#define LLDB_REPOSITORY "https://github.com/llvm/llvm-project.git"
diff --git a/lib/clang/include/clang/Basic/Version.inc b/lib/clang/include/clang/Basic/Version.inc
index dfac74612407..d28210f87bed 100644
--- a/lib/clang/include/clang/Basic/Version.inc
+++ b/lib/clang/include/clang/Basic/Version.inc
@@ -1,9 +1,9 @@
/* $FreeBSD$ */
-#define CLANG_VERSION 15.0.3
-#define CLANG_VERSION_STRING "15.0.3"
+#define CLANG_VERSION 15.0.6
+#define CLANG_VERSION_STRING "15.0.6"
#define CLANG_VERSION_MAJOR 15
#define CLANG_VERSION_MINOR 0
-#define CLANG_VERSION_PATCHLEVEL 3
+#define CLANG_VERSION_PATCHLEVEL 6
#define CLANG_VENDOR "FreeBSD "
diff --git a/lib/clang/include/clang/Config/config.h b/lib/clang/include/clang/Config/config.h
index 92267b160d05..18a0e28d7f3f 100644
--- a/lib/clang/include/clang/Config/config.h
+++ b/lib/clang/include/clang/Config/config.h
@@ -80,7 +80,7 @@
#define CLANG_HAVE_RLIMITS 1
/* The LLVM product name and version */
-#define BACKEND_PACKAGE_STRING "LLVM 15.0.3"
+#define BACKEND_PACKAGE_STRING "LLVM 15.0.6"
/* Linker version detected at compile time. */
/* #undef HOST_LINK_VERSION */
diff --git a/lib/clang/include/lld/Common/Version.inc b/lib/clang/include/lld/Common/Version.inc
index cf87a5e72363..edb3421ae064 100644
--- a/lib/clang/include/lld/Common/Version.inc
+++ b/lib/clang/include/lld/Common/Version.inc
@@ -1,4 +1,4 @@
// Local identifier in __FreeBSD_version style
#define LLD_FREEBSD_VERSION 1400005
-#define LLD_VERSION_STRING "15.0.3 (FreeBSD llvmorg-15.0.2-10-gf3c5289e7846-" __XSTRING(LLD_FREEBSD_VERSION) ")"
+#define LLD_VERSION_STRING "15.0.6 (FreeBSD llvmorg-15.0.6-0-g088f33605d8a-" __XSTRING(LLD_FREEBSD_VERSION) ")"
diff --git a/lib/clang/include/lldb/Version/Version.inc b/lib/clang/include/lldb/Version/Version.inc
index 30970de1d1d9..7dcfad4a7d30 100644
--- a/lib/clang/include/lldb/Version/Version.inc
+++ b/lib/clang/include/lldb/Version/Version.inc
@@ -1,6 +1,6 @@
-#define LLDB_VERSION 15.0.3
-#define LLDB_VERSION_STRING "15.0.3"
+#define LLDB_VERSION 15.0.6
+#define LLDB_VERSION_STRING "15.0.6"
#define LLDB_VERSION_MAJOR 15
#define LLDB_VERSION_MINOR 0
-#define LLDB_VERSION_PATCH 3
+#define LLDB_VERSION_PATCH 6
/* #undef LLDB_FULL_VERSION_STRING */
diff --git a/lib/clang/include/llvm/Config/config.h b/lib/clang/include/llvm/Config/config.h
index 4343e1a77f1c..22dfdef58573 100644
--- a/lib/clang/include/llvm/Config/config.h
+++ b/lib/clang/include/llvm/Config/config.h
@@ -353,10 +353,10 @@
#define PACKAGE_NAME "LLVM"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "LLVM 15.0.3"
+#define PACKAGE_STRING "LLVM 15.0.6"
/* Define to the version of this package. */
-#define PACKAGE_VERSION "15.0.3"
+#define PACKAGE_VERSION "15.0.6"
/* Define to the vendor of this package. */
/* #undef PACKAGE_VENDOR */
diff --git a/lib/clang/include/llvm/Config/llvm-config.h b/lib/clang/include/llvm/Config/llvm-config.h
index 3cb632668e85..fa14fe523bd1 100644
--- a/lib/clang/include/llvm/Config/llvm-config.h
+++ b/lib/clang/include/llvm/Config/llvm-config.h
@@ -74,10 +74,10 @@
#define LLVM_VERSION_MINOR 0
/* Patch version of the LLVM API */
-#define LLVM_VERSION_PATCH 3
+#define LLVM_VERSION_PATCH 6
/* LLVM version string */
-#define LLVM_VERSION_STRING "15.0.3"
+#define LLVM_VERSION_STRING "15.0.6"
/* Whether LLVM records statistics for use with GetStatistics(),
* PrintStatistics() or PrintStatisticsJSON()
diff --git a/lib/clang/include/llvm/Support/VCSRevision.h b/lib/clang/include/llvm/Support/VCSRevision.h
index 36e2fcbcd33c..b58f85d44f73 100644
--- a/lib/clang/include/llvm/Support/VCSRevision.h
+++ b/lib/clang/include/llvm/Support/VCSRevision.h
@@ -1,3 +1,3 @@
/* $FreeBSD$ */
-#define LLVM_REVISION "llvmorg-15.0.2-10-gf3c5289e7846"
+#define LLVM_REVISION "llvmorg-15.0.6-0-g088f33605d8a"
#define LLVM_REPOSITORY "https://github.com/llvm/llvm-project.git"
diff --git a/lib/libclang_rt/compiler-rt-vars.mk b/lib/libclang_rt/compiler-rt-vars.mk
index 6939d5287055..04198b3d3784 100644
--- a/lib/libclang_rt/compiler-rt-vars.mk
+++ b/lib/libclang_rt/compiler-rt-vars.mk
@@ -1,4 +1,4 @@
-CLANG_SUBDIR=clang/15.0.3
+CLANG_SUBDIR=clang/15.0.6
CLANGDIR= /usr/lib/${CLANG_SUBDIR}
SANITIZER_LIBDIR= ${CLANGDIR}/lib/freebsd
SANITIZER_SHAREDIR= ${CLANGDIR}/share
diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc
index 1a6b9582a960..31f6b733472f 100644
--- a/tools/build/mk/OptionalObsoleteFiles.inc
+++ b/tools/build/mk/OptionalObsoleteFiles.inc
@@ -1200,328 +1200,328 @@ OLD_FILES+=usr/share/man/man1/objdump.1.gz
OLD_FILES+=usr/bin/clang
OLD_FILES+=usr/bin/clang++
OLD_FILES+=usr/bin/clang-cpp
-OLD_FILES+=usr/lib/clang/15.0.3/include/cuda_wrappers/algorithm
-OLD_FILES+=usr/lib/clang/15.0.3/include/cuda_wrappers/complex
-OLD_FILES+=usr/lib/clang/15.0.3/include/cuda_wrappers/new
-OLD_DIRS+=usr/lib/clang/15.0.3/include/cuda_wrappers
-OLD_FILES+=usr/lib/clang/15.0.3/include/fuzzer/FuzzedDataProvider.h
-OLD_DIRS+=usr/lib/clang/15.0.3/include/fuzzer
-OLD_FILES+=usr/lib/clang/15.0.3/include/hlsl/hlsl_basic_types.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/hlsl/hlsl_intrinsics.h
-OLD_DIRS+=usr/lib/clang/15.0.3/include/hlsl
-OLD_FILES+=usr/lib/clang/15.0.3/include/openmp_wrappers/__clang_openmp_device_functions.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/openmp_wrappers/cmath
-OLD_FILES+=usr/lib/clang/15.0.3/include/openmp_wrappers/complex
-OLD_FILES+=usr/lib/clang/15.0.3/include/openmp_wrappers/complex.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/openmp_wrappers/complex_cmath.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/openmp_wrappers/math.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/openmp_wrappers/new
-OLD_DIRS+=usr/lib/clang/15.0.3/include/openmp_wrappers
-OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/bmi2intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/bmiintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/emmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/immintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/mm_malloc.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/mmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/pmmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/smmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/tmmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/x86gprintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/x86intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/xmmintrin.h
-OLD_DIRS+=usr/lib/clang/15.0.3/include/ppc_wrappers
-OLD_FILES+=usr/lib/clang/15.0.3/include/profile/InstrProfData.inc
-OLD_FILES+=usr/lib/clang/15.0.3/include/profile/MemProfData.inc
-OLD_DIRS+=usr/lib/clang/15.0.3/include/profile
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/allocator_interface.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/asan_interface.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/common_interface_defs.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/coverage_interface.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/dfsan_interface.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/hwasan_interface.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/linux_syscall_hooks.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/lsan_interface.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/memprof_interface.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/msan_interface.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/netbsd_syscall_hooks.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/scudo_interface.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/tsan_interface.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/tsan_interface_atomic.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/ubsan_interface.h
-OLD_DIRS+=usr/lib/clang/15.0.3/include/sanitizer
-OLD_FILES+=usr/lib/clang/15.0.3/include/xray/xray_interface.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/xray/xray_log_interface.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/xray/xray_records.h
-OLD_DIRS+=usr/lib/clang/15.0.3/include/xray
-OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_builtin_vars.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_cmath.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_complex_builtins.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_device_functions.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_intrinsics.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_libdevice_declares.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_math.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_math_forward_declares.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_runtime_wrapper.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_texture_intrinsics.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_hip_cmath.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_hip_libdevice_declares.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_hip_math.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_hip_runtime_wrapper.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__stddef_max_align_t.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__wmmintrin_aes.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/__wmmintrin_pclmul.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/adxintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/altivec.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ammintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/amxintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/arm64intr.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/arm_acle.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/arm_bf16.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/arm_cde.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/arm_cmse.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/arm_fp16.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/arm_mve.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/arm_neon.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/arm_neon_sve_bridge.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/arm_sve.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/armintr.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx2intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512bf16intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512bitalgintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512bwintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512cdintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512dqintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512erintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512fintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512fp16intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512ifmaintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512ifmavlintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512pfintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vbmi2intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vbmiintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vbmivlintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlbf16intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlbitalgintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlbwintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlcdintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vldqintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlfp16intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlvbmi2intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlvnniintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlvp2intersectintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vnniintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vp2intersectintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vpopcntdqintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vpopcntdqvlintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avxintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/avxvnniintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/bmi2intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/bmiintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/builtins.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/cet.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/cetintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/cldemoteintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/clflushoptintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/clwbintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/clzerointrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/cpuid.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/crc32intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/emmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/enqcmdintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/f16cintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/float.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/fma4intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/fmaintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/fxsrintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/gfniintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/hexagon_circ_brev_intrinsics.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/hexagon_protos.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/hexagon_types.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/hlsl.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/hresetintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/htmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/htmxlintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/hvx_hexagon_protos.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ia32intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/immintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/inttypes.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/invpcidintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/iso646.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/keylockerintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/limits.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/lwpintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/lzcntintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/mm3dnow.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/mm_malloc.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/mmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/module.modulemap
-OLD_FILES+=usr/lib/clang/15.0.3/include/movdirintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/msa.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/mwaitxintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/nmmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/omp-tools.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/omp.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ompt.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/opencl-c-base.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/opencl-c.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/pconfigintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/pkuintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/pmmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/popcntintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/prfchwintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/ptwriteintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/rdpruintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/rdseedintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/riscv_vector.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/rtmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/s390intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/serializeintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/sgxintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/shaintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/smmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/stdalign.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/stdarg.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/stdatomic.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/stdbool.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/stddef.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/stdint.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/stdnoreturn.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/tbmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/tgmath.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/tmmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/tsxldtrkintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/uintrintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/unwind.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/vadefs.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/vaesintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/varargs.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/vecintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/velintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/velintrin_approx.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/velintrin_gen.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/vpclmulqdqintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/waitpkgintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/wasm_simd128.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/wbnoinvdintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/wmmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/x86gprintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/x86intrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/xmmintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/xopintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/xsavecintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/xsaveintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/xsaveoptintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/xsavesintrin.h
-OLD_FILES+=usr/lib/clang/15.0.3/include/xtestintrin.h
-OLD_DIRS+=usr/lib/clang/15.0.3/include
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-aarch64.so
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-arm.so
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-armhf.so
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-i386.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-i386.so
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-preinit-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-preinit-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-preinit-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-preinit-i386.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-preinit-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-x86_64.so
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan_cxx-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan_cxx-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan_cxx-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan_cxx-i386.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan_cxx-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan_static-i386.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan_static-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi-i386.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi_diag-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi_diag-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi_diag-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi_diag-i386.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi_diag-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.dd-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.dd-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.fuzzer-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.fuzzer-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.fuzzer_interceptors-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.msan-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.msan-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.msan_cxx-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.msan_cxx-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-i386.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-powerpc.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-powerpc64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-powerpc64le.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.safestack-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.safestack-i386.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.safestack-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats-i386.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats_client-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats_client-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats_client-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats_client-i386.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats_client-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.tsan-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.tsan-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_minimal-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_minimal-i386.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone-i386.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-basic-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-basic-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-basic-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-basic-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-fdr-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-fdr-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-fdr-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-fdr-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-profiling-aarch64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-profiling-arm.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-profiling-armhf.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-profiling-x86_64.a
-OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-x86_64.a
-OLD_DIRS+=usr/lib/clang/15.0.3/lib/freebsd
-OLD_DIRS+=usr/lib/clang/15.0.3/lib
-OLD_FILES+=usr/lib/clang/15.0.3/share/asan_ignorelist.txt
-OLD_FILES+=usr/lib/clang/15.0.3/share/cfi_ignorelist.txt
-OLD_FILES+=usr/lib/clang/15.0.3/share/msan_ignorelist.txt
-OLD_DIRS+=usr/lib/clang/15.0.3/share
-OLD_DIRS+=usr/lib/clang/15.0.3
+OLD_FILES+=usr/lib/clang/15.0.6/include/cuda_wrappers/algorithm
+OLD_FILES+=usr/lib/clang/15.0.6/include/cuda_wrappers/complex
+OLD_FILES+=usr/lib/clang/15.0.6/include/cuda_wrappers/new
+OLD_DIRS+=usr/lib/clang/15.0.6/include/cuda_wrappers
+OLD_FILES+=usr/lib/clang/15.0.6/include/fuzzer/FuzzedDataProvider.h
+OLD_DIRS+=usr/lib/clang/15.0.6/include/fuzzer
+OLD_FILES+=usr/lib/clang/15.0.6/include/hlsl/hlsl_basic_types.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/hlsl/hlsl_intrinsics.h
+OLD_DIRS+=usr/lib/clang/15.0.6/include/hlsl
+OLD_FILES+=usr/lib/clang/15.0.6/include/openmp_wrappers/__clang_openmp_device_functions.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/openmp_wrappers/cmath
+OLD_FILES+=usr/lib/clang/15.0.6/include/openmp_wrappers/complex
+OLD_FILES+=usr/lib/clang/15.0.6/include/openmp_wrappers/complex.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/openmp_wrappers/complex_cmath.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/openmp_wrappers/math.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/openmp_wrappers/new
+OLD_DIRS+=usr/lib/clang/15.0.6/include/openmp_wrappers
+OLD_FILES+=usr/lib/clang/15.0.6/include/ppc_wrappers/bmi2intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ppc_wrappers/bmiintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ppc_wrappers/emmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ppc_wrappers/immintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ppc_wrappers/mm_malloc.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ppc_wrappers/mmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ppc_wrappers/pmmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ppc_wrappers/smmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ppc_wrappers/tmmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ppc_wrappers/x86gprintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ppc_wrappers/x86intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ppc_wrappers/xmmintrin.h
+OLD_DIRS+=usr/lib/clang/15.0.6/include/ppc_wrappers
+OLD_FILES+=usr/lib/clang/15.0.6/include/profile/InstrProfData.inc
+OLD_FILES+=usr/lib/clang/15.0.6/include/profile/MemProfData.inc
+OLD_DIRS+=usr/lib/clang/15.0.6/include/profile
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/allocator_interface.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/asan_interface.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/common_interface_defs.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/coverage_interface.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/dfsan_interface.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/hwasan_interface.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/linux_syscall_hooks.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/lsan_interface.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/memprof_interface.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/msan_interface.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/netbsd_syscall_hooks.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/scudo_interface.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/tsan_interface.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/tsan_interface_atomic.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sanitizer/ubsan_interface.h
+OLD_DIRS+=usr/lib/clang/15.0.6/include/sanitizer
+OLD_FILES+=usr/lib/clang/15.0.6/include/xray/xray_interface.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/xray/xray_log_interface.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/xray/xray_records.h
+OLD_DIRS+=usr/lib/clang/15.0.6/include/xray
+OLD_FILES+=usr/lib/clang/15.0.6/include/__clang_cuda_builtin_vars.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__clang_cuda_cmath.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__clang_cuda_complex_builtins.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__clang_cuda_device_functions.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__clang_cuda_intrinsics.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__clang_cuda_libdevice_declares.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__clang_cuda_math.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__clang_cuda_math_forward_declares.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__clang_cuda_runtime_wrapper.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__clang_cuda_texture_intrinsics.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__clang_hip_cmath.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__clang_hip_libdevice_declares.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__clang_hip_math.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__clang_hip_runtime_wrapper.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__stddef_max_align_t.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__wmmintrin_aes.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/__wmmintrin_pclmul.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/adxintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/altivec.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ammintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/amxintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/arm64intr.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/arm_acle.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/arm_bf16.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/arm_cde.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/arm_cmse.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/arm_fp16.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/arm_mve.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/arm_neon.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/arm_neon_sve_bridge.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/arm_sve.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/armintr.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx2intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512bf16intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512bitalgintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512bwintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512cdintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512dqintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512erintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512fintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512fp16intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512ifmaintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512ifmavlintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512pfintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vbmi2intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vbmiintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vbmivlintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vlbf16intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vlbitalgintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vlbwintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vlcdintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vldqintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vlfp16intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vlintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vlvbmi2intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vlvnniintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vlvp2intersectintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vnniintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vp2intersectintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vpopcntdqintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avx512vpopcntdqvlintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avxintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/avxvnniintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/bmi2intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/bmiintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/builtins.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/cet.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/cetintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/cldemoteintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/clflushoptintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/clwbintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/clzerointrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/cpuid.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/crc32intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/emmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/enqcmdintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/f16cintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/float.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/fma4intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/fmaintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/fxsrintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/gfniintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/hexagon_circ_brev_intrinsics.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/hexagon_protos.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/hexagon_types.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/hlsl.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/hresetintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/htmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/htmxlintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/hvx_hexagon_protos.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ia32intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/immintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/inttypes.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/invpcidintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/iso646.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/keylockerintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/limits.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/lwpintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/lzcntintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/mm3dnow.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/mm_malloc.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/mmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/module.modulemap
+OLD_FILES+=usr/lib/clang/15.0.6/include/movdirintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/msa.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/mwaitxintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/nmmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/omp-tools.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/omp.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ompt.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/opencl-c-base.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/opencl-c.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/pconfigintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/pkuintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/pmmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/popcntintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/prfchwintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/ptwriteintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/rdpruintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/rdseedintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/riscv_vector.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/rtmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/s390intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/serializeintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/sgxintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/shaintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/smmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/stdalign.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/stdarg.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/stdatomic.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/stdbool.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/stddef.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/stdint.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/stdnoreturn.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/tbmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/tgmath.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/tmmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/tsxldtrkintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/uintrintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/unwind.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/vadefs.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/vaesintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/varargs.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/vecintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/velintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/velintrin_approx.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/velintrin_gen.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/vpclmulqdqintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/waitpkgintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/wasm_simd128.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/wbnoinvdintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/wmmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/x86gprintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/x86intrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/xmmintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/xopintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/xsavecintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/xsaveintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/xsaveoptintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/xsavesintrin.h
+OLD_FILES+=usr/lib/clang/15.0.6/include/xtestintrin.h
+OLD_DIRS+=usr/lib/clang/15.0.6/include
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-aarch64.so
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-arm.so
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-armhf.so
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-i386.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-i386.so
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-preinit-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-preinit-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-preinit-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-preinit-i386.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-preinit-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan-x86_64.so
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan_cxx-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan_cxx-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan_cxx-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan_cxx-i386.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan_cxx-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan_static-i386.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.asan_static-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.cfi-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.cfi-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.cfi-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.cfi-i386.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.cfi-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.cfi_diag-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.cfi_diag-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.cfi_diag-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.cfi_diag-i386.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.cfi_diag-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.dd-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.dd-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.fuzzer-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.fuzzer-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.fuzzer_interceptors-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.msan-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.msan-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.msan_cxx-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.msan_cxx-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.profile-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.profile-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.profile-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.profile-i386.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.profile-powerpc.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.profile-powerpc64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.profile-powerpc64le.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.profile-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.safestack-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.safestack-i386.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.safestack-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.stats-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.stats-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.stats-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.stats-i386.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.stats-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.stats_client-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.stats_client-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.stats_client-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.stats_client-i386.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.stats_client-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.tsan-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.tsan-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_minimal-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_minimal-i386.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_standalone-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_standalone-i386.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-basic-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-basic-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-basic-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-basic-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-fdr-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-fdr-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-fdr-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-fdr-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-profiling-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-profiling-arm.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-profiling-armhf.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-profiling-x86_64.a
+OLD_FILES+=usr/lib/clang/15.0.6/lib/freebsd/libclang_rt.xray-x86_64.a
+OLD_DIRS+=usr/lib/clang/15.0.6/lib/freebsd
+OLD_DIRS+=usr/lib/clang/15.0.6/lib
+OLD_FILES+=usr/lib/clang/15.0.6/share/asan_ignorelist.txt
+OLD_FILES+=usr/lib/clang/15.0.6/share/cfi_ignorelist.txt
+OLD_FILES+=usr/lib/clang/15.0.6/share/msan_ignorelist.txt
+OLD_DIRS+=usr/lib/clang/15.0.6/share
+OLD_DIRS+=usr/lib/clang/15.0.6
OLD_DIRS+=usr/lib/clang
OLD_FILES+=usr/share/doc/llvm/clang/LICENSE.TXT
OLD_DIRS+=usr/share/doc/llvm/clang