diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 4c8194ea1a93..9bf8f3d8043b 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.0 +# 20230208: new clang import which bumps version from 14.0.5 to 15.0.3 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.0 +# 20230208: new libc++ import which bumps version from 14.0.5 to 15.0.3 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/include/clang/Basic/DiagnosticSemaKinds.td b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticSemaKinds.td index 6ff5b8de57fd..cb460401eb47 100644 --- a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -419,7 +419,7 @@ def warn_implicit_function_decl : Warning< InGroup, DefaultIgnore; def ext_implicit_function_decl_c99 : ExtWarn< "call to undeclared function %0; ISO C99 and later do not support implicit " - "function declarations">, InGroup, DefaultError; + "function declarations">, InGroup; def note_function_suggestion : Note<"did you mean %0?">; def err_ellipsis_first_param : Error< @@ -705,7 +705,7 @@ def ext_implicit_lib_function_decl : ExtWarn< def ext_implicit_lib_function_decl_c99 : ExtWarn< "call to undeclared library function '%0' with type %1; ISO C99 and later " "do not support implicit function declarations">, - InGroup, DefaultError; + InGroup; def note_include_header_or_declare : Note< "include the header <%0> or explicitly provide a declaration for '%1'">; def note_previous_builtin_declaration : Note<"%0 is a builtin with type %1">; @@ -4359,7 +4359,7 @@ def err_ident_list_in_fn_declaration : Error< "a parameter list without types is only allowed in a function definition">; def ext_param_not_declared : ExtWarn< "parameter %0 was not declared, defaults to 'int'; ISO C99 and later do not " - "support implicit int">, InGroup, DefaultError; + "support implicit int">, InGroup; def err_param_default_argument : Error< "C does not support default arguments">; def err_param_default_argument_redefinition : Error< @@ -10029,7 +10029,7 @@ def warn_receiver_forward_class : Warning< def note_method_sent_forward_class : Note<"method %0 is used for the forward class">; def ext_missing_type_specifier : ExtWarn< "type specifier missing, defaults to 'int'; ISO C99 and later do not support " - "implicit int">, InGroup, DefaultError; + "implicit int">, InGroup; def err_missing_type_specifier : Error< "a type specifier is required for all declarations">; def err_decimal_unsupported : Error< diff --git a/contrib/llvm-project/clang/lib/AST/StmtPrinter.cpp b/contrib/llvm-project/clang/lib/AST/StmtPrinter.cpp index 8d778500d103..625048c69a86 100644 --- a/contrib/llvm-project/clang/lib/AST/StmtPrinter.cpp +++ b/contrib/llvm-project/clang/lib/AST/StmtPrinter.cpp @@ -1993,7 +1993,7 @@ void StmtPrinter::VisitUserDefinedLiteral(UserDefinedLiteral *Node) { cast(DRE->getDecl())->getTemplateSpecializationArgs(); assert(Args); - if (Args->size() != 1) { + if (Args->size() != 1 || Args->get(0).getKind() != TemplateArgument::Pack) { const TemplateParameterList *TPL = nullptr; if (!DRE->hadMultipleCandidates()) if (const auto *TD = dyn_cast(DRE->getDecl())) diff --git a/contrib/llvm-project/clang/lib/CodeGen/CGStmt.cpp b/contrib/llvm-project/clang/lib/CodeGen/CGStmt.cpp index 481438de0e53..9935fcc0d3ea 100644 --- a/contrib/llvm-project/clang/lib/CodeGen/CGStmt.cpp +++ b/contrib/llvm-project/clang/lib/CodeGen/CGStmt.cpp @@ -1509,6 +1509,21 @@ void CodeGenFunction::EmitCaseStmt(const CaseStmt &S, llvm::ConstantInt *CaseVal = Builder.getInt(S.getLHS()->EvaluateKnownConstInt(getContext())); + + // Emit debuginfo for the case value if it is an enum value. + const ConstantExpr *CE; + if (auto ICE = dyn_cast(S.getLHS())) + CE = dyn_cast(ICE->getSubExpr()); + else + CE = dyn_cast(S.getLHS()); + if (CE) { + if (auto DE = dyn_cast(CE->getSubExpr())) + if (CGDebugInfo *Dbg = getDebugInfo()) + if (CGM.getCodeGenOpts().hasReducedDebugInfo()) + Dbg->EmitGlobalVariable(DE->getDecl(), + APValue(llvm::APSInt(CaseVal->getValue()))); + } + if (SwitchLikelihood) SwitchLikelihood->push_back(Stmt::getLikelihood(Attrs)); diff --git a/contrib/llvm-project/clang/lib/CodeGen/CoverageMappingGen.cpp b/contrib/llvm-project/clang/lib/CodeGen/CoverageMappingGen.cpp index 0fe084b628da..836aabf80179 100644 --- a/contrib/llvm-project/clang/lib/CodeGen/CoverageMappingGen.cpp +++ b/contrib/llvm-project/clang/lib/CodeGen/CoverageMappingGen.cpp @@ -1377,19 +1377,23 @@ struct CounterCoverageMappingBuilder // Extend into the condition before we propagate through it below - this is // needed to handle macros that generate the "if" but not the condition. - extendRegion(S->getCond()); + if (!S->isConsteval()) + extendRegion(S->getCond()); Counter ParentCount = getRegion().getCounter(); Counter ThenCount = getRegionCounter(S); - // Emitting a counter for the condition makes it easier to interpret the - // counter for the body when looking at the coverage. - propagateCounts(ParentCount, S->getCond()); + if (!S->isConsteval()) { + // Emitting a counter for the condition makes it easier to interpret the + // counter for the body when looking at the coverage. + propagateCounts(ParentCount, S->getCond()); - // The 'then' count applies to the area immediately after the condition. - auto Gap = findGapAreaBetween(S->getRParenLoc(), getStart(S->getThen())); - if (Gap) - fillGapAreaWithCount(Gap->getBegin(), Gap->getEnd(), ThenCount); + // The 'then' count applies to the area immediately after the condition. + Optional Gap = + findGapAreaBetween(S->getRParenLoc(), getStart(S->getThen())); + if (Gap) + fillGapAreaWithCount(Gap->getBegin(), Gap->getEnd(), ThenCount); + } extendRegion(S->getThen()); Counter OutCount = propagateCounts(ThenCount, S->getThen()); @@ -1398,9 +1402,9 @@ struct CounterCoverageMappingBuilder if (const Stmt *Else = S->getElse()) { bool ThenHasTerminateStmt = HasTerminateStmt; HasTerminateStmt = false; - // The 'else' count applies to the area immediately after the 'then'. - Gap = findGapAreaBetween(getEnd(S->getThen()), getStart(Else)); + Optional Gap = + findGapAreaBetween(getEnd(S->getThen()), getStart(Else)); if (Gap) fillGapAreaWithCount(Gap->getBegin(), Gap->getEnd(), ElseCount); extendRegion(Else); @@ -1416,9 +1420,11 @@ struct CounterCoverageMappingBuilder GapRegionCounter = OutCount; } - // Create Branch Region around condition. - createBranchRegion(S->getCond(), ThenCount, - subtractCounters(ParentCount, ThenCount)); + if (!S->isConsteval()) { + // Create Branch Region around condition. + createBranchRegion(S->getCond(), ThenCount, + subtractCounters(ParentCount, ThenCount)); + } } void VisitCXXTryStmt(const CXXTryStmt *S) { diff --git a/contrib/llvm-project/clang/lib/Sema/SemaInit.cpp b/contrib/llvm-project/clang/lib/Sema/SemaInit.cpp index d3b454843234..bf7ca718a36b 100644 --- a/contrib/llvm-project/clang/lib/Sema/SemaInit.cpp +++ b/contrib/llvm-project/clang/lib/Sema/SemaInit.cpp @@ -695,10 +695,10 @@ void InitListChecker::FillInEmptyInitForField(unsigned Init, FieldDecl *Field, // member of reference type uninitialized, the program is // ill-formed. SemaRef.Diag(Loc, diag::err_init_reference_member_uninitialized) - << Field->getType() - << ILE->getSyntacticForm()->getSourceRange(); - SemaRef.Diag(Field->getLocation(), - diag::note_uninit_reference_member); + << Field->getType() + << (ILE->isSyntacticForm() ? ILE : ILE->getSyntacticForm()) + ->getSourceRange(); + SemaRef.Diag(Field->getLocation(), diag::note_uninit_reference_member); } hadError = true; return; diff --git a/contrib/llvm-project/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp b/contrib/llvm-project/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp index 0143b5f8df6b..655be20572b6 100644 --- a/contrib/llvm-project/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp +++ b/contrib/llvm-project/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp @@ -165,8 +165,8 @@ struct TransferableCommand { const unsigned OldPos = Pos; std::unique_ptr Arg(OptTable.ParseOneArg( ArgList, Pos, - /* Include */ ClangCLMode ? CoreOption | CLOption : 0, - /* Exclude */ ClangCLMode ? 0 : CLOption)); + /* Include */ ClangCLMode ? CoreOption | CLOption | CLDXCOption : 0, + /* Exclude */ ClangCLMode ? 0 : CLOption | CLDXCOption)); if (!Arg) continue; diff --git a/contrib/llvm-project/clang/lib/Tooling/Syntax/Tokens.cpp b/contrib/llvm-project/clang/lib/Tooling/Syntax/Tokens.cpp index e2014f965c90..1fa73c667b7f 100644 --- a/contrib/llvm-project/clang/lib/Tooling/Syntax/Tokens.cpp +++ b/contrib/llvm-project/clang/lib/Tooling/Syntax/Tokens.cpp @@ -55,45 +55,140 @@ getTokensCovering(llvm::ArrayRef Toks, SourceRange R, return {Begin, End}; } -// Finds the smallest expansion range that contains expanded tokens First and -// Last, e.g.: +// Finds the range within FID corresponding to expanded tokens [First, Last]. +// Prev precedes First and Next follows Last, these must *not* be included. +// If no range satisfies the criteria, returns an invalid range. +// // #define ID(x) x // ID(ID(ID(a1) a2)) // ~~ -> a1 // ~~ -> a2 // ~~~~~~~~~ -> a1 a2 -SourceRange findCommonRangeForMacroArgs(const syntax::Token &First, - const syntax::Token &Last, - const SourceManager &SM) { - SourceRange Res; - auto FirstLoc = First.location(), LastLoc = Last.location(); - // Keep traversing up the spelling chain as longs as tokens are part of the - // same expansion. - while (!FirstLoc.isFileID() && !LastLoc.isFileID()) { - auto ExpInfoFirst = SM.getSLocEntry(SM.getFileID(FirstLoc)).getExpansion(); - auto ExpInfoLast = SM.getSLocEntry(SM.getFileID(LastLoc)).getExpansion(); - // Stop if expansions have diverged. - if (ExpInfoFirst.getExpansionLocStart() != - ExpInfoLast.getExpansionLocStart()) +SourceRange spelledForExpandedSlow(SourceLocation First, SourceLocation Last, + SourceLocation Prev, SourceLocation Next, + FileID TargetFile, + const SourceManager &SM) { + // There are two main parts to this algorithm: + // - identifying which spelled range covers the expanded tokens + // - validating that this range doesn't cover any extra tokens (First/Last) + // + // We do these in order. However as we transform the expanded range into the + // spelled one, we adjust First/Last so the validation remains simple. + + assert(SM.getSLocEntry(TargetFile).isFile()); + // In most cases, to select First and Last we must return their expansion + // range, i.e. the whole of any macros they are included in. + // + // When First and Last are part of the *same macro arg* of a macro written + // in TargetFile, we that slice of the arg, i.e. their spelling range. + // + // Unwrap such macro calls. If the target file has A(B(C)), the + // SourceLocation stack of a token inside C shows us the expansion of A first, + // then B, then any macros inside C's body, then C itself. + // (This is the reverse of the order the PP applies the expansions in). + while (First.isMacroID() && Last.isMacroID()) { + auto DecFirst = SM.getDecomposedLoc(First); + auto DecLast = SM.getDecomposedLoc(Last); + auto &ExpFirst = SM.getSLocEntry(DecFirst.first).getExpansion(); + auto &ExpLast = SM.getSLocEntry(DecLast.first).getExpansion(); + + if (!ExpFirst.isMacroArgExpansion() || !ExpLast.isMacroArgExpansion()) break; - // Do not continue into macro bodies. - if (!ExpInfoFirst.isMacroArgExpansion() || - !ExpInfoLast.isMacroArgExpansion()) + // Locations are in the same macro arg if they expand to the same place. + // (They may still have different FileIDs - an arg can have >1 chunks!) + if (ExpFirst.getExpansionLocStart() != ExpLast.getExpansionLocStart()) break; - FirstLoc = SM.getImmediateSpellingLoc(FirstLoc); - LastLoc = SM.getImmediateSpellingLoc(LastLoc); - // Update the result afterwards, as we want the tokens that triggered the - // expansion. - Res = {FirstLoc, LastLoc}; + // Careful, given: + // #define HIDE ID(ID(a)) + // ID(ID(HIDE)) + // The token `a` is wrapped in 4 arg-expansions, we only want to unwrap 2. + // We distinguish them by whether the macro expands into the target file. + // Fortunately, the target file ones will always appear first. + auto &ExpMacro = + SM.getSLocEntry(SM.getFileID(ExpFirst.getExpansionLocStart())) + .getExpansion(); + if (ExpMacro.getExpansionLocStart().isMacroID()) + break; + // Replace each endpoint with its spelling inside the macro arg. + // (This is getImmediateSpellingLoc without repeating lookups). + First = ExpFirst.getSpellingLoc().getLocWithOffset(DecFirst.second); + Last = ExpLast.getSpellingLoc().getLocWithOffset(DecLast.second); + + // Now: how do we adjust the previous/next bounds? Three cases: + // A) If they are also part of the same macro arg, we translate them too. + // This will ensure that we don't select any macros nested within the + // macro arg that cover extra tokens. Critical case: + // #define ID(X) X + // ID(prev target) // selecting 'target' succeeds + // #define LARGE ID(prev target) + // LARGE // selecting 'target' fails. + // B) They are not in the macro at all, then their expansion range is a + // sibling to it, and we can safely substitute that. + // #define PREV prev + // #define ID(X) X + // PREV ID(target) // selecting 'target' succeeds. + // #define LARGE PREV ID(target) + // LARGE // selecting 'target' fails. + // C) They are in a different arg of this macro, or the macro body. + // Now selecting the whole macro arg is fine, but the whole macro is not. + // Model this by setting using the edge of the macro call as the bound. + // #define ID2(X, Y) X Y + // ID2(prev, target) // selecting 'target' succeeds + // #define LARGE ID2(prev, target) + // LARGE // selecting 'target' fails + auto AdjustBound = [&](SourceLocation &Bound) { + if (Bound.isInvalid() || !Bound.isMacroID()) // Non-macro must be case B. + return; + auto DecBound = SM.getDecomposedLoc(Bound); + auto &ExpBound = SM.getSLocEntry(DecBound.first).getExpansion(); + if (ExpBound.isMacroArgExpansion() && + ExpBound.getExpansionLocStart() == ExpFirst.getExpansionLocStart()) { + // Case A: translate to (spelling) loc within the macro arg. + Bound = ExpBound.getSpellingLoc().getLocWithOffset(DecBound.second); + return; + } + while (Bound.isMacroID()) { + SourceRange Exp = SM.getImmediateExpansionRange(Bound).getAsRange(); + if (Exp.getBegin() == ExpMacro.getExpansionLocStart()) { + // Case B: bounds become the macro call itself. + Bound = (&Bound == &Prev) ? Exp.getBegin() : Exp.getEnd(); + return; + } + // Either case C, or expansion location will later find case B. + // We choose the upper bound for Prev and the lower one for Next: + // ID(prev) target ID(next) + // ^ ^ + // new-prev new-next + Bound = (&Bound == &Prev) ? Exp.getEnd() : Exp.getBegin(); + } + }; + AdjustBound(Prev); + AdjustBound(Next); } - // Normally mapping back to expansion location here only changes FileID, as - // we've already found some tokens expanded from the same macro argument, and - // they should map to a consecutive subset of spelled tokens. Unfortunately - // SourceManager::isBeforeInTranslationUnit discriminates sourcelocations - // based on their FileID in addition to offsets. So even though we are - // referring to same tokens, SourceManager might tell us that one is before - // the other if they've got different FileIDs. - return SM.getExpansionRange(CharSourceRange(Res, true)).getAsRange(); + + // In all remaining cases we need the full containing macros. + // If this overlaps Prev or Next, then no range is possible. + SourceRange Candidate = + SM.getExpansionRange(SourceRange(First, Last)).getAsRange(); + auto DecFirst = SM.getDecomposedExpansionLoc(Candidate.getBegin()); + auto DecLast = SM.getDecomposedLoc(Candidate.getEnd()); + // Can end up in the wrong file due to bad input or token-pasting shenanigans. + if (Candidate.isInvalid() || DecFirst.first != TargetFile || DecLast.first != TargetFile) + return SourceRange(); + // Check bounds, which may still be inside macros. + if (Prev.isValid()) { + auto Dec = SM.getDecomposedLoc(SM.getExpansionRange(Prev).getBegin()); + if (Dec.first != DecFirst.first || Dec.second >= DecFirst.second) + return SourceRange(); + } + if (Next.isValid()) { + auto Dec = SM.getDecomposedLoc(SM.getExpansionRange(Next).getEnd()); + if (Dec.first != DecLast.first || Dec.second <= DecLast.second) + return SourceRange(); + } + // Now we know that Candidate is a file range that covers [First, Last] + // without encroaching on {Prev, Next}. Ship it! + return Candidate; } } // namespace @@ -363,51 +458,50 @@ TokenBuffer::spelledForExpanded(llvm::ArrayRef Expanded) const { // of the range, bail out in that case. if (Expanded.empty()) return llvm::None; + const syntax::Token *First = &Expanded.front(); + const syntax::Token *Last = &Expanded.back(); + const syntax::Token *FirstSpelled, *LastSpelled; + const TokenBuffer::Mapping *FirstMapping, *LastMapping; + std::tie(FirstSpelled, FirstMapping) = spelledForExpandedToken(First); + std::tie(LastSpelled, LastMapping) = spelledForExpandedToken(Last); - const syntax::Token *BeginSpelled; - const Mapping *BeginMapping; - std::tie(BeginSpelled, BeginMapping) = - spelledForExpandedToken(&Expanded.front()); - - const syntax::Token *LastSpelled; - const Mapping *LastMapping; - std::tie(LastSpelled, LastMapping) = - spelledForExpandedToken(&Expanded.back()); - - FileID FID = SourceMgr->getFileID(BeginSpelled->location()); + FileID FID = SourceMgr->getFileID(FirstSpelled->location()); // FIXME: Handle multi-file changes by trying to map onto a common root. if (FID != SourceMgr->getFileID(LastSpelled->location())) return llvm::None; const MarkedFile &File = Files.find(FID)->second; - // If both tokens are coming from a macro argument expansion, try and map to - // smallest part of the macro argument. BeginMapping && LastMapping check is - // only for performance, they are a prerequisite for Expanded.front() and - // Expanded.back() being part of a macro arg expansion. - if (BeginMapping && LastMapping && - SourceMgr->isMacroArgExpansion(Expanded.front().location()) && - SourceMgr->isMacroArgExpansion(Expanded.back().location())) { - auto CommonRange = findCommonRangeForMacroArgs(Expanded.front(), - Expanded.back(), *SourceMgr); - // It might be the case that tokens are arguments of different macro calls, - // in that case we should continue with the logic below instead of returning - // an empty range. - if (CommonRange.isValid()) - return getTokensCovering(File.SpelledTokens, CommonRange, *SourceMgr); + // If the range is within one macro argument, the result may be only part of a + // Mapping. We must use the general (SourceManager-based) algorithm. + if (FirstMapping && FirstMapping == LastMapping && + SourceMgr->isMacroArgExpansion(First->location()) && + SourceMgr->isMacroArgExpansion(Last->location())) { + // We use excluded Prev/Next token for bounds checking. + SourceLocation Prev = (First == &ExpandedTokens.front()) + ? SourceLocation() + : (First - 1)->location(); + SourceLocation Next = (Last == &ExpandedTokens.back()) + ? SourceLocation() + : (Last + 1)->location(); + SourceRange Range = spelledForExpandedSlow( + First->location(), Last->location(), Prev, Next, FID, *SourceMgr); + if (Range.isInvalid()) + return llvm::None; + return getTokensCovering(File.SpelledTokens, Range, *SourceMgr); } + // Otherwise, use the fast version based on Mappings. // Do not allow changes that doesn't cover full expansion. - unsigned BeginExpanded = Expanded.begin() - ExpandedTokens.data(); - unsigned EndExpanded = Expanded.end() - ExpandedTokens.data(); - if (BeginMapping && BeginExpanded != BeginMapping->BeginExpanded) + unsigned FirstExpanded = Expanded.begin() - ExpandedTokens.data(); + unsigned LastExpanded = Expanded.end() - ExpandedTokens.data(); + if (FirstMapping && FirstExpanded != FirstMapping->BeginExpanded) return llvm::None; - if (LastMapping && LastMapping->EndExpanded != EndExpanded) + if (LastMapping && LastMapping->EndExpanded != LastExpanded) return llvm::None; - // All is good, return the result. return llvm::makeArrayRef( - BeginMapping ? File.SpelledTokens.data() + BeginMapping->BeginSpelled - : BeginSpelled, + FirstMapping ? File.SpelledTokens.data() + FirstMapping->BeginSpelled + : FirstSpelled, LastMapping ? File.SpelledTokens.data() + LastMapping->EndSpelled : LastSpelled + 1); } diff --git a/contrib/llvm-project/libcxx/include/__config b/contrib/llvm-project/libcxx/include/__config index 8c2f7614af53..589b5c3b2241 100644 --- a/contrib/llvm-project/libcxx/include/__config +++ b/contrib/llvm-project/libcxx/include/__config @@ -22,9 +22,21 @@ # pragma GCC system_header #endif +#if defined(__apple_build_version__) +# define _LIBCPP_COMPILER_CLANG_BASED +# define _LIBCPP_APPLE_CLANG_VER (__apple_build_version__ / 10000) +#elif defined(__clang__) +# define _LIBCPP_COMPILER_CLANG_BASED +# define _LIBCPP_CLANG_VER (__clang_major__ * 100 + __clang_minor__) +#elif defined(__GNUC__) +# define _LIBCPP_COMPILER_GCC +#elif defined(_MSC_VER) +# define _LIBCPP_COMPILER_MSVC +#endif + #ifdef __cplusplus -# define _LIBCPP_VERSION 15000 +# define _LIBCPP_VERSION 15003 # define _LIBCPP_CONCAT_IMPL(_X, _Y) _X##_Y # define _LIBCPP_CONCAT(_X, _Y) _LIBCPP_CONCAT_IMPL(_X, _Y) @@ -198,18 +210,6 @@ # define __has_include(...) 0 # endif -# if defined(__apple_build_version__) -# define _LIBCPP_COMPILER_CLANG_BASED -# define _LIBCPP_APPLE_CLANG_VER (__apple_build_version__ / 10000) -# elif defined(__clang__) -# define _LIBCPP_COMPILER_CLANG_BASED -# define _LIBCPP_CLANG_VER (__clang_major__ * 100 + __clang_minor__) -# elif defined(__GNUC__) -# define _LIBCPP_COMPILER_GCC -# elif defined(_MSC_VER) -# define _LIBCPP_COMPILER_MSVC -# endif - # if !defined(_LIBCPP_COMPILER_CLANG_BASED) && __cplusplus < 201103L # error "libc++ only supports C++03 with Clang-based compilers. Please enable C++11" # endif @@ -1101,6 +1101,13 @@ _LIBCPP_BEGIN_NAMESPACE_STD _LIBCPP_END_NAMESPACE_STD # define _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION # endif // _LIBCPP_ENABLE_CXX17_REMOVED_FEATURES +// Leave the deprecation notices in by default, but don't remove unary_function and +// binary_function entirely just yet. That way, folks will have one release to act +// on the deprecation warnings. +# ifndef _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION +# define _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION +# endif + # if defined(_LIBCPP_ENABLE_CXX20_REMOVED_FEATURES) # define _LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_MEMBERS # define _LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_VOID_SPECIALIZATION diff --git a/contrib/llvm-project/libcxx/include/atomic b/contrib/llvm-project/libcxx/include/atomic index 6cdc839c1715..28c86ce5daa2 100644 --- a/contrib/llvm-project/libcxx/include/atomic +++ b/contrib/llvm-project/libcxx/include/atomic @@ -1113,6 +1113,12 @@ _Tp kill_dependency(_Tp __y) _NOEXCEPT # define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE #endif +template +struct __libcpp_is_always_lock_free { + // __atomic_always_lock_free is available in all Standard modes + static const bool __value = __atomic_always_lock_free(sizeof(_Tp), 0); +}; + #ifdef _LIBCPP_ATOMIC_ONLY_USE_BUILTINS template @@ -1404,42 +1410,8 @@ _Tp __cxx_atomic_fetch_xor(__cxx_atomic_lock_impl<_Tp>* __a, return __old; } -#ifdef __cpp_lib_atomic_is_always_lock_free - -template struct __cxx_is_always_lock_free { - enum { __value = __atomic_always_lock_free(sizeof(_Tp), 0) }; }; - -#else - -template struct __cxx_is_always_lock_free { enum { __value = false }; }; -// Implementations must match the C ATOMIC_*_LOCK_FREE macro values. -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_BOOL_LOCK_FREE }; }; -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_CHAR_LOCK_FREE }; }; -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_CHAR_LOCK_FREE }; }; -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_CHAR_LOCK_FREE }; }; -#ifndef _LIBCPP_HAS_NO_CHAR8_T -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_CHAR8_T_LOCK_FREE }; }; -#endif -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_CHAR16_T_LOCK_FREE }; }; -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_CHAR32_T_LOCK_FREE }; }; -#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_WCHAR_T_LOCK_FREE }; }; -#endif -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_SHORT_LOCK_FREE }; }; -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_SHORT_LOCK_FREE }; }; -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_INT_LOCK_FREE }; }; -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_INT_LOCK_FREE }; }; -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_LONG_LOCK_FREE }; }; -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_LONG_LOCK_FREE }; }; -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_LLONG_LOCK_FREE }; }; -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_LLONG_LOCK_FREE }; }; -template struct __cxx_is_always_lock_free<_Tp*> { enum { __value = 2 == ATOMIC_POINTER_LOCK_FREE }; }; -template<> struct __cxx_is_always_lock_free { enum { __value = 2 == ATOMIC_POINTER_LOCK_FREE }; }; - -#endif //__cpp_lib_atomic_is_always_lock_free - template ::__value, + typename _Base = typename conditional<__libcpp_is_always_lock_free<_Tp>::__value, __cxx_atomic_base_impl<_Tp>, __cxx_atomic_lock_impl<_Tp> >::type> #else @@ -1562,7 +1534,7 @@ struct __atomic_base // false mutable __cxx_atomic_impl<_Tp> __a_; #if defined(__cpp_lib_atomic_is_always_lock_free) - static _LIBCPP_CONSTEXPR bool is_always_lock_free = __atomic_always_lock_free(sizeof(__a_), 0); + static _LIBCPP_CONSTEXPR bool is_always_lock_free = __libcpp_is_always_lock_free<__cxx_atomic_impl<_Tp> >::__value; #endif _LIBCPP_INLINE_VISIBILITY @@ -2665,7 +2637,7 @@ typedef atomic atomic_uintmax_t; // atomic_*_lock_free : prefer the contention type most highly, then the largest lock-free type #ifdef __cpp_lib_atomic_is_always_lock_free -# define _LIBCPP_CONTENTION_LOCK_FREE __atomic_always_lock_free(sizeof(__cxx_contention_t), 0) +# define _LIBCPP_CONTENTION_LOCK_FREE ::std::__libcpp_is_always_lock_free<__cxx_contention_t>::__value #else # define _LIBCPP_CONTENTION_LOCK_FREE false #endif diff --git a/contrib/llvm-project/libcxx/include/stdatomic.h b/contrib/llvm-project/libcxx/include/stdatomic.h index d9550c44061c..ff2a5682f5bb 100644 --- a/contrib/llvm-project/libcxx/include/stdatomic.h +++ b/contrib/llvm-project/libcxx/include/stdatomic.h @@ -121,7 +121,7 @@ using std::atomic_signal_fence // see below # pragma GCC system_header #endif -#if _LIBCPP_STD_VER > 20 +#if defined(__cplusplus) && _LIBCPP_STD_VER > 20 #include #include @@ -230,6 +230,6 @@ using std::atomic_thread_fence _LIBCPP_USING_IF_EXISTS; # include_next # endif -#endif // _LIBCPP_STD_VER > 20 +#endif // defined(__cplusplus) && _LIBCPP_STD_VER > 20 #endif // _LIBCPP_STDATOMIC_H diff --git a/contrib/llvm-project/libcxx/include/version b/contrib/llvm-project/libcxx/include/version index 8ffb1747eb27..d0c6fe466e70 100644 --- a/contrib/llvm-project/libcxx/include/version +++ b/contrib/llvm-project/libcxx/include/version @@ -332,7 +332,7 @@ __cpp_lib_void_t 201411L # undef __cpp_lib_execution // # define __cpp_lib_execution 201902L # if !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_format) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_FORMAT) -# define __cpp_lib_format 202106L +// # define __cpp_lib_format 202106L # endif # define __cpp_lib_generic_unordered_lookup 201811L # define __cpp_lib_int_pow2 202002L diff --git a/contrib/llvm-project/lld/COFF/Symbols.h b/contrib/llvm-project/lld/COFF/Symbols.h index c8865d128fb8..a4c6f893f10c 100644 --- a/contrib/llvm-project/lld/COFF/Symbols.h +++ b/contrib/llvm-project/lld/COFF/Symbols.h @@ -106,7 +106,10 @@ protected: : symbolKind(k), isExternal(true), isCOMDAT(false), writtenToSymtab(false), pendingArchiveLoad(false), isGCRoot(false), isRuntimePseudoReloc(false), deferUndefined(false), canInline(true), - nameSize(n.size()), nameData(n.empty() ? nullptr : n.data()) {} + nameSize(n.size()), nameData(n.empty() ? nullptr : n.data()) { + assert((!n.empty() || k <= LastDefinedCOFFKind) && + "If the name is empty, the Symbol must be a DefinedCOFF."); + } const unsigned symbolKind : 8; unsigned isExternal : 1; diff --git a/contrib/llvm-project/lld/COFF/Writer.cpp b/contrib/llvm-project/lld/COFF/Writer.cpp index df60c9032b2d..f39697d5d381 100644 --- a/contrib/llvm-project/lld/COFF/Writer.cpp +++ b/contrib/llvm-project/lld/COFF/Writer.cpp @@ -395,7 +395,7 @@ getThunk(DenseMap &lastThunks, Defined *target, uint64_t p, default: llvm_unreachable("Unexpected architecture"); } - Defined *d = make("", c); + Defined *d = make("range_extension_thunk", c); lastThunk = d; return {d, true}; } diff --git a/contrib/llvm-project/lld/ELF/Arch/RISCV.cpp b/contrib/llvm-project/lld/ELF/Arch/RISCV.cpp index 8fca1a686a79..56a516f9cdc1 100644 --- a/contrib/llvm-project/lld/ELF/Arch/RISCV.cpp +++ b/contrib/llvm-project/lld/ELF/Arch/RISCV.cpp @@ -750,12 +750,13 @@ void elf::riscvFinalizeRelax(int passes) { p += size; // For R_RISCV_ALIGN, we will place `offset` in a location (among NOPs) - // to satisfy the alignment requirement. If `remove` is a multiple of 4, - // it is as if we have skipped some NOPs. Otherwise we are in the middle - // of a 4-byte NOP, and we need to rewrite the NOP sequence. + // to satisfy the alignment requirement. If both `remove` and r.addend + // are multiples of 4, it is as if we have skipped some NOPs. Otherwise + // we are in the middle of a 4-byte NOP, and we need to rewrite the NOP + // sequence. int64_t skip = 0; if (r.type == R_RISCV_ALIGN) { - if (remove % 4 != 0) { + if (remove % 4 || r.addend % 4) { skip = r.addend - remove; int64_t j = 0; for (; j + 4 <= skip; j += 4) diff --git a/contrib/llvm-project/lld/MachO/InputFiles.cpp b/contrib/llvm-project/lld/MachO/InputFiles.cpp index fd0e4ec8834c..87034d41e87d 100644 --- a/contrib/llvm-project/lld/MachO/InputFiles.cpp +++ b/contrib/llvm-project/lld/MachO/InputFiles.cpp @@ -1587,6 +1587,15 @@ void ObjFile::registerEhFrames(Section &ehFrameSection) { funcSym->unwindEntry = isec; ehRelocator.commit(); } + + // __eh_frame is marked as S_ATTR_LIVE_SUPPORT in input files, because FDEs + // are normally required to be kept alive if they reference a live symbol. + // However, we've explicitly created a dependency from a symbol to its FDE, so + // dead-stripping will just work as usual, and S_ATTR_LIVE_SUPPORT will only + // serve to incorrectly prevent us from dead-stripping duplicate FDEs for a + // live symbol (e.g. if there were multiple weak copies). Remove this flag to + // let dead-stripping proceed correctly. + ehFrameSection.flags &= ~S_ATTR_LIVE_SUPPORT; } std::string ObjFile::sourceFile() const { diff --git a/contrib/llvm-project/lld/MachO/UnwindInfoSection.cpp b/contrib/llvm-project/lld/MachO/UnwindInfoSection.cpp index c3f563d5572b..ca6cbdfbb8bb 100644 --- a/contrib/llvm-project/lld/MachO/UnwindInfoSection.cpp +++ b/contrib/llvm-project/lld/MachO/UnwindInfoSection.cpp @@ -196,13 +196,13 @@ UnwindInfoSection::UnwindInfoSection() // Record function symbols that may need entries emitted in __unwind_info, which // stores unwind data for address ranges. // -// Note that if several adjacent functions have the same unwind encoding, LSDA, -// and personality function, they share one unwind entry. For this to work, -// functions without unwind info need explicit "no unwind info" unwind entries -// -- else the unwinder would think they have the unwind info of the closest -// function with unwind info right before in the image. Thus, we add function -// symbols for each unique address regardless of whether they have associated -// unwind info. +// Note that if several adjacent functions have the same unwind encoding and +// personality function and no LSDA, they share one unwind entry. For this to +// work, functions without unwind info need explicit "no unwind info" unwind +// entries -- else the unwinder would think they have the unwind info of the +// closest function with unwind info right before in the image. Thus, we add +// function symbols for each unique address regardless of whether they have +// associated unwind info. void UnwindInfoSection::addSymbol(const Defined *d) { if (d->unwindEntry) allEntriesAreOmitted = false; @@ -427,9 +427,9 @@ void UnwindInfoSectionImpl::finalize() { // assigned, so we can relocate the __LD,__compact_unwind entries // into a temporary buffer. Relocation is necessary in order to sort // the CU entries by function address. Sorting is necessary so that - // we can fold adjacent CU entries with identical - // encoding+personality+lsda. Folding is necessary because it reduces - // the number of CU entries by as much as 3 orders of magnitude! + // we can fold adjacent CU entries with identical encoding+personality + // and without any LSDA. Folding is necessary because it reduces the + // number of CU entries by as much as 3 orders of magnitude! cuEntries.resize(symbols.size()); // The "map" part of the symbols MapVector was only needed for deduplication // in addSymbol(). Now that we are done adding, move the contents to a plain @@ -445,7 +445,7 @@ void UnwindInfoSectionImpl::finalize() { return cuEntries[a].functionAddress < cuEntries[b].functionAddress; }); - // Fold adjacent entries with matching encoding+personality+lsda + // Fold adjacent entries with matching encoding+personality and without LSDA // We use three iterators on the same cuIndices to fold in-situ: // (1) `foldBegin` is the first of a potential sequence of matching entries // (2) `foldEnd` is the first non-matching entry after `foldBegin`. @@ -455,11 +455,32 @@ void UnwindInfoSectionImpl::finalize() { auto foldWrite = cuIndices.begin(); for (auto foldBegin = cuIndices.begin(); foldBegin < cuIndices.end();) { auto foldEnd = foldBegin; + // Common LSDA encodings (e.g. for C++ and Objective-C) contain offsets from + // a base address. The base address is normally not contained directly in + // the LSDA, and in that case, the personality function treats the starting + // address of the function (which is computed by the unwinder) as the base + // address and interprets the LSDA accordingly. The unwinder computes the + // starting address of a function as the address associated with its CU + // entry. For this reason, we cannot fold adjacent entries if they have an + // LSDA, because folding would make the unwinder compute the wrong starting + // address for the functions with the folded entries, which in turn would + // cause the personality function to misinterpret the LSDA for those + // functions. In the very rare case where the base address is encoded + // directly in the LSDA, two functions at different addresses would + // necessarily have different LSDAs, so their CU entries would not have been + // folded anyway. while (++foldEnd < cuIndices.end() && cuEntries[*foldBegin].encoding == cuEntries[*foldEnd].encoding && + !cuEntries[*foldBegin].lsda && !cuEntries[*foldEnd].lsda && + // If we've gotten to this point, we don't have an LSDA, which should + // also imply that we don't have a personality function, since in all + // likelihood a personality function needs the LSDA to do anything + // useful. It can be technically valid to have a personality function + // and no LSDA though (e.g. the C++ personality __gxx_personality_v0 + // is just a no-op without LSDA), so we still check for personality + // function equivalence to handle that case. cuEntries[*foldBegin].personality == cuEntries[*foldEnd].personality && - cuEntries[*foldBegin].lsda == cuEntries[*foldEnd].lsda && canFoldEncoding(cuEntries[*foldEnd].encoding)) ; *foldWrite++ = *foldBegin; diff --git a/contrib/llvm-project/llvm/include/llvm/ADT/GenericCycleImpl.h b/contrib/llvm-project/llvm/include/llvm/ADT/GenericCycleImpl.h index ea2847f8c8ee..07ac1768ea27 100644 --- a/contrib/llvm-project/llvm/include/llvm/ADT/GenericCycleImpl.h +++ b/contrib/llvm-project/llvm/include/llvm/ADT/GenericCycleImpl.h @@ -144,8 +144,12 @@ private: }; template -auto GenericCycleInfo::getTopLevelParentCycle( - const BlockT *Block) const -> CycleT * { +auto GenericCycleInfo::getTopLevelParentCycle(BlockT *Block) + -> CycleT * { + auto Cycle = BlockMapTopLevel.find(Block); + if (Cycle != BlockMapTopLevel.end()) + return Cycle->second; + auto MapIt = BlockMap.find(Block); if (MapIt == BlockMap.end()) return nullptr; @@ -153,12 +157,15 @@ auto GenericCycleInfo::getTopLevelParentCycle( auto *C = MapIt->second; while (C->ParentCycle) C = C->ParentCycle; + BlockMapTopLevel.try_emplace(Block, C); return C; } template -void GenericCycleInfo::moveToNewParent(CycleT *NewParent, - CycleT *Child) { +void GenericCycleInfo::moveTopLevelCycleToNewParent(CycleT *NewParent, + CycleT *Child) { + assert((!Child->ParentCycle && !NewParent->ParentCycle) && + "NewParent and Child must be both top level cycle!\n"); auto &CurrentContainer = Child->ParentCycle ? Child->ParentCycle->Children : TopLevelCycles; auto Pos = llvm::find_if(CurrentContainer, [=](const auto &Ptr) -> bool { @@ -169,6 +176,13 @@ void GenericCycleInfo::moveToNewParent(CycleT *NewParent, *Pos = std::move(CurrentContainer.back()); CurrentContainer.pop_back(); Child->ParentCycle = NewParent; + + NewParent->Blocks.insert(NewParent->Blocks.end(), Child->block_begin(), + Child->block_end()); + + for (auto &It : BlockMapTopLevel) + if (It.second == Child) + It.second = NewParent; } /// \brief Main function of the cycle info computations. @@ -240,10 +254,7 @@ void GenericCycleInfoCompute::run(BlockT *EntryBlock) { << "discovered child cycle " << Info.Context.print(BlockParent->getHeader()) << "\n"); // Make BlockParent the child of NewCycle. - Info.moveToNewParent(NewCycle.get(), BlockParent); - NewCycle->Blocks.insert(NewCycle->Blocks.end(), - BlockParent->block_begin(), - BlockParent->block_end()); + Info.moveTopLevelCycleToNewParent(NewCycle.get(), BlockParent); for (auto *ChildEntry : BlockParent->entries()) ProcessPredecessors(ChildEntry); @@ -257,6 +268,7 @@ void GenericCycleInfoCompute::run(BlockT *EntryBlock) { assert(!is_contained(NewCycle->Blocks, Block)); NewCycle->Blocks.push_back(Block); ProcessPredecessors(Block); + Info.BlockMapTopLevel.try_emplace(Block, NewCycle.get()); } } while (!Worklist.empty()); @@ -336,6 +348,7 @@ void GenericCycleInfoCompute::dfs(BlockT *EntryBlock) { template void GenericCycleInfo::clear() { TopLevelCycles.clear(); BlockMap.clear(); + BlockMapTopLevel.clear(); } /// \brief Compute the cycle info for a function. diff --git a/contrib/llvm-project/llvm/include/llvm/ADT/GenericCycleInfo.h b/contrib/llvm-project/llvm/include/llvm/ADT/GenericCycleInfo.h index 970664b85715..5f851b795cbc 100644 --- a/contrib/llvm-project/llvm/include/llvm/ADT/GenericCycleInfo.h +++ b/contrib/llvm-project/llvm/include/llvm/ADT/GenericCycleInfo.h @@ -232,15 +232,24 @@ public: private: ContextT Context; - /// Map basic blocks to their inner-most containing loop. + /// Map basic blocks to their inner-most containing cycle. DenseMap BlockMap; + /// Map basic blocks to their top level containing cycle. + DenseMap BlockMapTopLevel; + /// Outermost cycles discovered by any DFS. /// /// Note: The implementation treats the nullptr as the parent of /// every top-level cycle. See \ref contains for an example. std::vector> TopLevelCycles; + /// Move \p Child to \p NewParent by manipulating Children vectors. + /// + /// Note: This is an incomplete operation that does not update the depth of + /// the subtree. + void moveTopLevelCycleToNewParent(CycleT *NewParent, CycleT *Child); + public: GenericCycleInfo() = default; GenericCycleInfo(GenericCycleInfo &&) = default; @@ -254,13 +263,7 @@ public: CycleT *getCycle(const BlockT *Block) const; unsigned getCycleDepth(const BlockT *Block) const; - CycleT *getTopLevelParentCycle(const BlockT *Block) const; - - /// Move \p Child to \p NewParent by manipulating Children vectors. - /// - /// Note: This is an incomplete operation that does not update the - /// list of blocks in the new parent or the depth of the subtree. - void moveToNewParent(CycleT *NewParent, CycleT *Child); + CycleT *getTopLevelParentCycle(BlockT *Block); /// Methods for debug and self-test. //@{ diff --git a/contrib/llvm-project/llvm/include/llvm/Object/ELF.h b/contrib/llvm-project/llvm/include/llvm/Object/ELF.h index 794d29fd9913..5eb43777a951 100644 --- a/contrib/llvm-project/llvm/include/llvm/Object/ELF.h +++ b/contrib/llvm-project/llvm/include/llvm/Object/ELF.h @@ -1028,7 +1028,7 @@ ELFFile::getVersionDependencies(const Elf_Shdr &Sec, VN.Offset = VerneedBuf - Start; if (Verneed->vn_file < StrTab.size()) - VN.File = std::string(StrTab.drop_front(Verneed->vn_file)); + VN.File = std::string(StrTab.data() + Verneed->vn_file); else VN.File = ("vn_file) + ">").str(); diff --git a/contrib/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp b/contrib/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp index 2958a5054afc..c784c27d36b4 100644 --- a/contrib/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp +++ b/contrib/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp @@ -5917,8 +5917,13 @@ const SCEV *ScalarEvolution::createNodeForPHI(PHINode *PN) { if (const SCEV *S = createNodeFromSelectLikePHI(PN)) return S; + // If the PHI has a single incoming value, follow that value, unless the + // PHI's incoming blocks are in a different loop, in which case doing so + // risks breaking LCSSA form. Instcombine would normally zap these, but + // it doesn't have DominatorTree information, so it may miss cases. if (Value *V = simplifyInstruction(PN, {getDataLayout(), &TLI, &DT, &AC})) - return getSCEV(V); + if (LI.replacementPreservesLCSSAForm(PN, V)) + return getSCEV(V); // If it's not a loop phi, we can't handle it yet. return getUnknown(PN); diff --git a/contrib/llvm-project/llvm/lib/Analysis/ValueTracking.cpp b/contrib/llvm-project/llvm/lib/Analysis/ValueTracking.cpp index 2dd671b4ab9e..569ee6b3ea86 100644 --- a/contrib/llvm-project/llvm/lib/Analysis/ValueTracking.cpp +++ b/contrib/llvm-project/llvm/lib/Analysis/ValueTracking.cpp @@ -3593,14 +3593,23 @@ static bool cannotBeOrderedLessThanZeroImpl(const Value *V, // Unsigned integers are always nonnegative. case Instruction::UIToFP: return true; - case Instruction::FMul: case Instruction::FDiv: - // X * X is always non-negative or a NaN. // X / X is always exactly 1.0 or a NaN. if (I->getOperand(0) == I->getOperand(1) && (!SignBitOnly || cast(I)->hasNoNaNs())) return true; + // Set SignBitOnly for RHS, because X / -0.0 is -Inf (or NaN). + return cannotBeOrderedLessThanZeroImpl(I->getOperand(0), TLI, SignBitOnly, + Depth + 1) && + cannotBeOrderedLessThanZeroImpl(I->getOperand(1), TLI, + /*SignBitOnly*/ true, Depth + 1); + case Instruction::FMul: + // X * X is always non-negative or a NaN. + if (I->getOperand(0) == I->getOperand(1) && + (!SignBitOnly || cast(I)->hasNoNaNs())) + return true; + LLVM_FALLTHROUGH; case Instruction::FAdd: case Instruction::FRem: diff --git a/contrib/llvm-project/llvm/lib/CodeGen/DwarfEHPrepare.cpp b/contrib/llvm-project/llvm/lib/CodeGen/DwarfEHPrepare.cpp index fb8a3e383950..aa81f618dc59 100644 --- a/contrib/llvm-project/llvm/lib/CodeGen/DwarfEHPrepare.cpp +++ b/contrib/llvm-project/llvm/lib/CodeGen/DwarfEHPrepare.cpp @@ -25,6 +25,7 @@ #include "llvm/CodeGen/TargetSubtargetInfo.h" #include "llvm/IR/BasicBlock.h" #include "llvm/IR/Constants.h" +#include "llvm/IR/DebugInfoMetadata.h" #include "llvm/IR/DerivedTypes.h" #include "llvm/IR/Dominators.h" #include "llvm/IR/Function.h" @@ -247,6 +248,13 @@ bool DwarfEHPrepare::InsertUnwindResumeCalls() { // Call the rewind function. CallInst *CI = CallInst::Create(RewindFunction, RewindFunctionArgs, "", UnwindBB); + // The verifier requires that all calls of debug-info-bearing functions + // from debug-info-bearing functions have a debug location (for inlining + // purposes). Assign a dummy location to satisfy the constraint. + Function *RewindFn = dyn_cast(RewindFunction.getCallee()); + if (RewindFn && RewindFn->getSubprogram()) + if (DISubprogram *SP = F.getSubprogram()) + CI->setDebugLoc(DILocation::get(SP->getContext(), 0, 0, SP)); CI->setCallingConv(RewindFunctionCallingConv); // We never expect _Unwind_Resume to return. diff --git a/contrib/llvm-project/llvm/lib/CodeGen/PrologEpilogInserter.cpp b/contrib/llvm-project/llvm/lib/CodeGen/PrologEpilogInserter.cpp index 89a43c4f57f6..85d051cfdbe7 100644 --- a/contrib/llvm-project/llvm/lib/CodeGen/PrologEpilogInserter.cpp +++ b/contrib/llvm-project/llvm/lib/CodeGen/PrologEpilogInserter.cpp @@ -1262,9 +1262,10 @@ void PEI::insertZeroCallUsedRegs(MachineFunction &MF) { } } - // Don't clear registers that are reset before exiting. - for (const CalleeSavedInfo &CSI : MF.getFrameInfo().getCalleeSavedInfo()) - for (MCRegister Reg : TRI.sub_and_superregs_inclusive(CSI.getReg())) + // Don't clear registers that must be preserved. + for (const MCPhysReg *CSRegs = TRI.getCalleeSavedRegs(&MF); + MCPhysReg CSReg = *CSRegs; ++CSRegs) + for (MCRegister Reg : TRI.sub_and_superregs_inclusive(CSReg)) RegsToZero.reset(Reg); const TargetFrameLowering &TFI = *MF.getSubtarget().getFrameLowering(); diff --git a/contrib/llvm-project/llvm/lib/Support/X86TargetParser.cpp b/contrib/llvm-project/llvm/lib/Support/X86TargetParser.cpp index 2567f3ed8034..0daaa6d815bf 100644 --- a/contrib/llvm-project/llvm/lib/Support/X86TargetParser.cpp +++ b/contrib/llvm-project/llvm/lib/Support/X86TargetParser.cpp @@ -203,10 +203,10 @@ constexpr FeatureBitset FeaturesTigerlake = FeatureCLWB | FeatureMOVDIRI | FeatureSHSTK | FeatureKL | FeatureWIDEKL; constexpr FeatureBitset FeaturesSapphireRapids = FeaturesICLServer | FeatureAMX_BF16 | FeatureAMX_INT8 | FeatureAMX_TILE | - FeatureAVX512BF16 | FeatureAVX512FP16 | FeatureAVX512VP2INTERSECT | - FeatureAVXVNNI | FeatureCLDEMOTE | FeatureENQCMD | FeatureMOVDIR64B | - FeatureMOVDIRI | FeaturePTWRITE | FeatureSERIALIZE | FeatureSHSTK | - FeatureTSXLDTRK | FeatureUINTR | FeatureWAITPKG; + FeatureAVX512BF16 | FeatureAVX512FP16 | FeatureAVXVNNI | FeatureCLDEMOTE | + FeatureENQCMD | FeatureMOVDIR64B | FeatureMOVDIRI | FeaturePTWRITE | + FeatureSERIALIZE | FeatureSHSTK | FeatureTSXLDTRK | FeatureUINTR | + FeatureWAITPKG; // Intel Atom processors. // Bonnell has feature parity with Core2 and adds MOVBE. @@ -367,7 +367,7 @@ constexpr ProcInfo Processors[] = { // Tigerlake microarchitecture based processors. { {"tigerlake"}, CK_Tigerlake, FEATURE_AVX512VP2INTERSECT, FeaturesTigerlake }, // Sapphire Rapids microarchitecture based processors. - { {"sapphirerapids"}, CK_SapphireRapids, FEATURE_AVX512VP2INTERSECT, FeaturesSapphireRapids }, + { {"sapphirerapids"}, CK_SapphireRapids, FEATURE_AVX512BF16, FeaturesSapphireRapids }, // Alderlake microarchitecture based processors. { {"alderlake"}, CK_Alderlake, FEATURE_AVX2, FeaturesAlderlake }, // Knights Landing processor. diff --git a/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp b/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp index bd0232c71d48..f37c50900adb 100644 --- a/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp +++ b/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp @@ -149,6 +149,7 @@ private: Align H) : Inst(I), Addr(A), ValTy(T), HaveAlign(H), NeedAlign(HVC.getTypeAlignment(ValTy)) {} + AddrInfo &operator=(const AddrInfo &) = default; // XXX: add Size member? Instruction *Inst; @@ -185,6 +186,7 @@ private: Segment(Value *Val, int Begin, int Len) : Val(Val), Start(Begin), Size(Len) {} Segment(const Segment &Seg) = default; + Segment &operator=(const Segment &Seg) = default; Value *Val; // Value representable as a sequence of bytes. int Start; // First byte of the value that belongs to the segment. int Size; // Number of bytes in the segment. @@ -195,6 +197,7 @@ private: Block(Value *Val, int Off, int Len, int Pos) : Seg(Val, Off, Len), Pos(Pos) {} Block(const Block &Blk) = default; + Block &operator=(const Block &Blk) = default; Segment Seg; // Value segment. int Pos; // Position (offset) of the segment in the Block. }; diff --git a/contrib/llvm-project/llvm/lib/Target/SPIRV/SPIRVDuplicatesTracker.cpp b/contrib/llvm-project/llvm/lib/Target/SPIRV/SPIRVDuplicatesTracker.cpp index 1926977ea66e..2e426bb79cae 100644 --- a/contrib/llvm-project/llvm/lib/Target/SPIRV/SPIRVDuplicatesTracker.cpp +++ b/contrib/llvm-project/llvm/lib/Target/SPIRV/SPIRVDuplicatesTracker.cpp @@ -70,6 +70,7 @@ void SPIRVGeneralDuplicatesTracker::buildDepsGraph( } } +#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) if (MMI) { const Module *M = MMI->getModule(); for (auto F = M->begin(), E = M->end(); F != E; ++F) { @@ -92,4 +93,5 @@ void SPIRVGeneralDuplicatesTracker::buildDepsGraph( } } } +#endif } diff --git a/contrib/llvm-project/llvm/lib/Target/X86/X86.td b/contrib/llvm-project/llvm/lib/Target/X86/X86.td index fa0a6bd415dc..f98916e81cee 100644 --- a/contrib/llvm-project/llvm/lib/Target/X86/X86.td +++ b/contrib/llvm-project/llvm/lib/Target/X86/X86.td @@ -909,7 +909,6 @@ def ProcessorFeatures { FeatureTSXLDTRK, FeatureENQCMD, FeatureSHSTK, - FeatureVP2INTERSECT, FeatureMOVDIRI, FeatureMOVDIR64B, FeatureUINTR]; diff --git a/contrib/llvm-project/llvm/lib/Transforms/Utils/LoopVersioning.cpp b/contrib/llvm-project/llvm/lib/Transforms/Utils/LoopVersioning.cpp index 97f29527bb95..6309eed7963d 100644 --- a/contrib/llvm-project/llvm/lib/Transforms/Utils/LoopVersioning.cpp +++ b/contrib/llvm-project/llvm/lib/Transforms/Utils/LoopVersioning.cpp @@ -137,8 +137,10 @@ void LoopVersioning::addPHINodes( // See if we have a single-operand PHI with the value defined by the // original loop. for (auto I = PHIBlock->begin(); (PN = dyn_cast(I)); ++I) { - if (PN->getIncomingValue(0) == Inst) + if (PN->getIncomingValue(0) == Inst) { + SE->forgetValue(PN); break; + } } // If not create it. if (!PN) { diff --git a/contrib/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/contrib/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp index 91bc7dbad1d0..5fd4e45d80fb 100644 --- a/contrib/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/contrib/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -8149,9 +8149,15 @@ VPRecipeBase *VPRecipeBuilder::tryToOptimizeInductionPHI( *PSE.getSE(), *OrigLoop, Range); // Check if this is pointer induction. If so, build the recipe for it. - if (auto *II = Legal->getPointerInductionDescriptor(Phi)) - return new VPWidenPointerInductionRecipe(Phi, Operands[0], *II, - *PSE.getSE()); + if (auto *II = Legal->getPointerInductionDescriptor(Phi)) { + return new VPWidenPointerInductionRecipe( + Phi, Operands[0], *II, *PSE.getSE(), + LoopVectorizationPlanner::getDecisionAndClampRange( + [&](ElementCount VF) { + return CM.isScalarAfterVectorization(Phi, VF); + }, + Range)); + } return nullptr; } diff --git a/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlan.h b/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlan.h index f009a7ee6b4b..7a6bc48e2aee 100644 --- a/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlan.h +++ b/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlan.h @@ -1187,15 +1187,19 @@ class VPWidenPointerInductionRecipe : public VPHeaderPHIRecipe { /// explicitly. ScalarEvolution &SE; + bool IsScalarAfterVectorization; + public: /// Create a new VPWidenPointerInductionRecipe for \p Phi with start value \p /// Start. VPWidenPointerInductionRecipe(PHINode *Phi, VPValue *Start, const InductionDescriptor &IndDesc, - ScalarEvolution &SE) + ScalarEvolution &SE, + bool IsScalarAfterVectorization) : VPHeaderPHIRecipe(VPVWidenPointerInductionSC, VPWidenPointerInductionSC, Phi), - IndDesc(IndDesc), SE(SE) { + IndDesc(IndDesc), SE(SE), + IsScalarAfterVectorization(IsScalarAfterVectorization) { addOperand(Start); } diff --git a/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp b/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp index cb7507264667..9a404640b4b8 100644 --- a/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp +++ b/contrib/llvm-project/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp @@ -983,10 +983,8 @@ void VPCanonicalIVPHIRecipe::print(raw_ostream &O, const Twine &Indent, #endif bool VPWidenPointerInductionRecipe::onlyScalarsGenerated(ElementCount VF) { - bool IsUniform = vputils::onlyFirstLaneUsed(this); - return all_of(users(), - [&](const VPUser *U) { return U->usesScalars(this); }) && - (IsUniform || !VF.isScalable()); + return IsScalarAfterVectorization && + (!VF.isScalable() || vputils::onlyFirstLaneUsed(this)); } #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) diff --git a/contrib/llvm-project/llvm/tools/llvm-objdump/ELFDump.cpp b/contrib/llvm-project/llvm/tools/llvm-objdump/ELFDump.cpp index ca73dafe2b8e..61676b4323d2 100644 --- a/contrib/llvm-project/llvm/tools/llvm-objdump/ELFDump.cpp +++ b/contrib/llvm-project/llvm/tools/llvm-objdump/ELFDump.cpp @@ -282,27 +282,28 @@ static void printProgramHeaders(const ELFFile &Obj, StringRef FileName) { } template -static void printSymbolVersionDependency(ArrayRef Contents, - StringRef StrTab) { +static void printSymbolVersionDependency(StringRef FileName, + const ELFFile &Obj, + const typename ELFT::Shdr &Sec) { outs() << "\nVersion References:\n"; - const uint8_t *Buf = Contents.data(); - while (Buf) { - auto *Verneed = reinterpret_cast(Buf); - outs() << " required from " - << StringRef(StrTab.drop_front(Verneed->vn_file).data()) << ":\n"; + auto WarningHandler = [&](const Twine &Msg) { + reportWarning(Msg, FileName); + return Error::success(); + }; + Expected> V = + Obj.getVersionDependencies(Sec, WarningHandler); + if (!V) { + reportWarning(toString(V.takeError()), FileName); + return; + } - const uint8_t *BufAux = Buf + Verneed->vn_aux; - while (BufAux) { - auto *Vernaux = reinterpret_cast(BufAux); - outs() << " " - << format("0x%08" PRIx32 " ", (uint32_t)Vernaux->vna_hash) - << format("0x%02" PRIx16 " ", (uint16_t)Vernaux->vna_flags) - << format("%02" PRIu16 " ", (uint16_t)Vernaux->vna_other) - << StringRef(StrTab.drop_front(Vernaux->vna_name).data()) << '\n'; - BufAux = Vernaux->vna_next ? BufAux + Vernaux->vna_next : nullptr; - } - Buf = Verneed->vn_next ? Buf + Verneed->vn_next : nullptr; + raw_fd_ostream &OS = outs(); + for (const VerNeed &VN : *V) { + OS << " required from " << VN.File << ":\n"; + for (const VernAux &Aux : VN.AuxV) + OS << format(" 0x%08x 0x%02x %02u %s\n", Aux.Hash, Aux.Flags, + Aux.Other, Aux.Name.c_str()); } } @@ -355,7 +356,7 @@ static void printSymbolVersionInfo(const ELFFile &Elf, StringRef StrTab = unwrapOrError(Elf.getStringTable(*StrTabSec), FileName); if (Shdr.sh_type == ELF::SHT_GNU_verneed) - printSymbolVersionDependency(Contents, StrTab); + printSymbolVersionDependency(FileName, Elf, Shdr); else printSymbolVersionDefinition(Shdr, Contents, StrTab); } diff --git a/etc/mtree/BSD.debug.dist b/etc/mtree/BSD.debug.dist index 053d76eb05c7..75ac69ff3d7c 100644 --- a/etc/mtree/BSD.debug.dist +++ b/etc/mtree/BSD.debug.dist @@ -31,7 +31,7 @@ .. lib clang - 15.0.0 + 15.0.3 lib freebsd .. diff --git a/etc/mtree/BSD.usr.dist b/etc/mtree/BSD.usr.dist index 2e524863fa00..0d57b75ffd8c 100644 --- a/etc/mtree/BSD.usr.dist +++ b/etc/mtree/BSD.usr.dist @@ -37,7 +37,7 @@ .. lib clang - 15.0.0 + 15.0.3 include cuda_wrappers .. diff --git a/lib/clang/headers/Makefile b/lib/clang/headers/Makefile index 58a5d458667f..c0f80c95e1d4 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.0/include +INCSDIR= ${LIBDIR}/clang/15.0.3/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 4441e4d4aafa..8b9c83471140 100644 --- a/lib/clang/include/VCSVersion.inc +++ b/lib/clang/include/VCSVersion.inc @@ -1,10 +1,10 @@ // $FreeBSD$ -#define LLVM_REVISION "llvmorg-15.0.0-9-g1c73596d3454" +#define LLVM_REVISION "llvmorg-15.0.2-10-gf3c5289e7846" #define LLVM_REPOSITORY "https://github.com/llvm/llvm-project.git" -#define CLANG_REVISION "llvmorg-15.0.0-9-g1c73596d3454" +#define CLANG_REVISION "llvmorg-15.0.2-10-gf3c5289e7846" #define CLANG_REPOSITORY "https://github.com/llvm/llvm-project.git" -#define LLDB_REVISION "llvmorg-15.0.0-9-g1c73596d3454" +#define LLDB_REVISION "llvmorg-15.0.2-10-gf3c5289e7846" #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 a7851f10eb7a..dfac74612407 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.0 -#define CLANG_VERSION_STRING "15.0.0" +#define CLANG_VERSION 15.0.3 +#define CLANG_VERSION_STRING "15.0.3" #define CLANG_VERSION_MAJOR 15 #define CLANG_VERSION_MINOR 0 -#define CLANG_VERSION_PATCHLEVEL 0 +#define CLANG_VERSION_PATCHLEVEL 3 #define CLANG_VENDOR "FreeBSD " diff --git a/lib/clang/include/clang/Config/config.h b/lib/clang/include/clang/Config/config.h index 6c3208239419..92267b160d05 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.0" +#define BACKEND_PACKAGE_STRING "LLVM 15.0.3" /* 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 7325d25e08a6..cf87a5e72363 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.0 (FreeBSD llvmorg-15.0.0-9-g1c73596d3454-" __XSTRING(LLD_FREEBSD_VERSION) ")" +#define LLD_VERSION_STRING "15.0.3 (FreeBSD llvmorg-15.0.2-10-gf3c5289e7846-" __XSTRING(LLD_FREEBSD_VERSION) ")" diff --git a/lib/clang/include/lldb/Version/Version.inc b/lib/clang/include/lldb/Version/Version.inc index 919499091d2a..30970de1d1d9 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.0 -#define LLDB_VERSION_STRING "15.0.0" +#define LLDB_VERSION 15.0.3 +#define LLDB_VERSION_STRING "15.0.3" #define LLDB_VERSION_MAJOR 15 #define LLDB_VERSION_MINOR 0 -#define LLDB_VERSION_PATCH 0 +#define LLDB_VERSION_PATCH 3 /* #undef LLDB_FULL_VERSION_STRING */ diff --git a/lib/clang/include/llvm/Config/config.h b/lib/clang/include/llvm/Config/config.h index 4834ac961e39..4343e1a77f1c 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.0" +#define PACKAGE_STRING "LLVM 15.0.3" /* Define to the version of this package. */ -#define PACKAGE_VERSION "15.0.0" +#define PACKAGE_VERSION "15.0.3" /* 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 e0f50991ec6d..3cb632668e85 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 0 +#define LLVM_VERSION_PATCH 3 /* LLVM version string */ -#define LLVM_VERSION_STRING "15.0.0" +#define LLVM_VERSION_STRING "15.0.3" /* 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 a655458a3666..36e2fcbcd33c 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.0-9-g1c73596d3454" +#define LLVM_REVISION "llvmorg-15.0.2-10-gf3c5289e7846" #define LLVM_REPOSITORY "https://github.com/llvm/llvm-project.git" diff --git a/lib/libc++/module.modulemap b/lib/libc++/module.modulemap index 900e077944f6..6d788743f68b 100644 --- a/lib/libc++/module.modulemap +++ b/lib/libc++/module.modulemap @@ -59,7 +59,10 @@ module std [system] { // FIXME: is missing. // provided by C library. // provided by compiler. - // provided by compiler. + module stdbool_h { + // 's __bool_true_false_are_defined macro requires textual inclusion. + textual header "stdbool.h" + } module stddef_h { // 's __need_* macros require textual inclusion. textual header "stddef.h" @@ -311,6 +314,7 @@ module std [system] { module ranges_all_of { private header "__algorithm/ranges_all_of.h" } module ranges_any_of { private header "__algorithm/ranges_any_of.h" } module ranges_binary_search { private header "__algorithm/ranges_binary_search.h" } + module ranges_clamp { private header "__algorithm/ranges_clamp.h" } module ranges_copy { private header "__algorithm/ranges_copy.h" } module ranges_copy_backward { private header "__algorithm/ranges_copy_backward.h" } module ranges_copy_if { private header "__algorithm/ranges_copy_if.h" } @@ -335,6 +339,7 @@ module std [system] { module ranges_is_heap { private header "__algorithm/ranges_is_heap.h" } module ranges_is_heap_until { private header "__algorithm/ranges_is_heap_until.h" } module ranges_is_partitioned { private header "__algorithm/ranges_is_partitioned.h" } + module ranges_is_permutation { private header "__algorithm/ranges_is_permutation.h" } module ranges_is_sorted { private header "__algorithm/ranges_is_sorted.h" } module ranges_is_sorted_until { private header "__algorithm/ranges_is_sorted_until.h" } module ranges_iterator_concept { private header "__algorithm/ranges_iterator_concept.h" } @@ -351,6 +356,7 @@ module std [system] { module ranges_mismatch { private header "__algorithm/ranges_mismatch.h" } module ranges_move { private header "__algorithm/ranges_move.h" } module ranges_move_backward { private header "__algorithm/ranges_move_backward.h" } + module ranges_next_permutation { private header "__algorithm/ranges_next_permutation.h" } module ranges_none_of { private header "__algorithm/ranges_none_of.h" } module ranges_nth_element { private header "__algorithm/ranges_nth_element.h" } module ranges_partial_sort { private header "__algorithm/ranges_partial_sort.h" } @@ -359,6 +365,7 @@ module std [system] { module ranges_partition_copy { private header "__algorithm/ranges_partition_copy.h" } module ranges_partition_point { private header "__algorithm/ranges_partition_point.h" } module ranges_pop_heap { private header "__algorithm/ranges_pop_heap.h" } + module ranges_prev_permutation { private header "__algorithm/ranges_prev_permutation.h" } module ranges_push_heap { private header "__algorithm/ranges_push_heap.h" } module ranges_remove { private header "__algorithm/ranges_remove.h" } module ranges_remove_copy { private header "__algorithm/ranges_remove_copy.h" } @@ -370,7 +377,9 @@ module std [system] { module ranges_replace_if { private header "__algorithm/ranges_replace_if.h" } module ranges_reverse { private header "__algorithm/ranges_reverse.h" } module ranges_reverse_copy { private header "__algorithm/ranges_reverse_copy.h" } + module ranges_rotate { private header "__algorithm/ranges_rotate.h" } module ranges_rotate_copy { private header "__algorithm/ranges_rotate_copy.h" } + module ranges_sample { private header "__algorithm/ranges_sample.h" } module ranges_search { private header "__algorithm/ranges_search.h" } module ranges_search_n { private header "__algorithm/ranges_search_n.h" } module ranges_set_difference { private header "__algorithm/ranges_set_difference.h" } @@ -384,6 +393,9 @@ module std [system] { module ranges_stable_sort { private header "__algorithm/ranges_stable_sort.h" } module ranges_swap_ranges { private header "__algorithm/ranges_swap_ranges.h" } module ranges_transform { private header "__algorithm/ranges_transform.h" } + module uniform_random_bit_generator_adaptor { + private header "__algorithm/uniform_random_bit_generator_adaptor.h" + } module ranges_unique { private header "__algorithm/ranges_unique.h" } module ranges_unique_copy { private header "__algorithm/ranges_unique_copy.h" } module ranges_upper_bound { private header "__algorithm/ranges_upper_bound.h" } @@ -419,6 +431,7 @@ module std [system] { module unique { private header "__algorithm/unique.h" } module unique_copy { private header "__algorithm/unique_copy.h" } module unwrap_iter { private header "__algorithm/unwrap_iter.h" } + module unwrap_range { private header "__algorithm/unwrap_range.h" } module upper_bound { private header "__algorithm/upper_bound.h" } } } @@ -832,6 +845,7 @@ module std [system] { module ranges_uninitialized_algorithms { private header "__memory/ranges_uninitialized_algorithms.h" } module raw_storage_iterator { private header "__memory/raw_storage_iterator.h" } module shared_ptr { private header "__memory/shared_ptr.h" } + module swap_allocator { private header "__memory/swap_allocator.h" } module temporary_buffer { private header "__memory/temporary_buffer.h" } module uninitialized_algorithms { private header "__memory/uninitialized_algorithms.h" } module unique_ptr { private header "__memory/unique_ptr.h" } @@ -1090,10 +1104,16 @@ module std [system] { module add_pointer { private header "__type_traits/add_pointer.h" } module add_rvalue_reference { private header "__type_traits/add_rvalue_reference.h" } module add_volatile { private header "__type_traits/add_volatile.h" } + module aligned_storage { private header "__type_traits/aligned_storage.h" } + module aligned_union { private header "__type_traits/aligned_union.h" } module alignment_of { private header "__type_traits/alignment_of.h" } module apply_cv { private header "__type_traits/apply_cv.h" } + module common_reference { private header "__type_traits/common_reference.h" } + module common_type { private header "__type_traits/common_type.h" } module conditional { private header "__type_traits/conditional.h" } module conjunction { private header "__type_traits/conjunction.h" } + module copy_cv { private header "__type_traits/copy_cv.h" } + module copy_cvref { private header "__type_traits/copy_cvref.h" } module decay { private header "__type_traits/decay.h" } module disjunction { private header "__type_traits/disjunction.h" } module enable_if { private header "__type_traits/enable_if.h" } @@ -1135,6 +1155,7 @@ module std [system] { module is_move_constructible { private header "__type_traits/is_move_constructible.h" } module is_nothrow_assignable { private header "__type_traits/is_nothrow_assignable.h" } module is_nothrow_constructible { private header "__type_traits/is_nothrow_constructible.h" } + module is_nothrow_convertible { private header "__type_traits/is_nothrow_convertible.h" } module is_nothrow_copy_assignable { private header "__type_traits/is_nothrow_copy_assignable.h" } module is_nothrow_copy_constructible { private header "__type_traits/is_nothrow_copy_constructible.h" } module is_nothrow_default_constructible { private header "__type_traits/is_nothrow_default_constructible.h" } @@ -1146,6 +1167,7 @@ module std [system] { module is_pod { private header "__type_traits/is_pod.h" } module is_pointer { private header "__type_traits/is_pointer.h" } module is_polymorphic { private header "__type_traits/is_polymorphic.h" } + module is_primary_template { private header "__type_traits/is_primary_template.h" } module is_reference { private header "__type_traits/is_reference.h" } module is_reference_wrapper { private header "__type_traits/is_reference_wrapper.h" } module is_referenceable { private header "__type_traits/is_referenceable.h" } @@ -1153,6 +1175,7 @@ module std [system] { module is_scalar { private header "__type_traits/is_scalar.h" } module is_scoped_enum { private header "__type_traits/is_scoped_enum.h" } module is_signed { private header "__type_traits/is_signed.h" } + module is_signed_integer { private header "__type_traits/is_signed_integer.h" } module is_standard_layout { private header "__type_traits/is_standard_layout.h" } module is_trivial { private header "__type_traits/is_trivial.h" } module is_trivially_assignable { private header "__type_traits/is_trivially_assignable.h" } @@ -1167,18 +1190,28 @@ module std [system] { module is_unbounded_array { private header "__type_traits/is_unbounded_array.h" } module is_union { private header "__type_traits/is_union.h" } module is_unsigned { private header "__type_traits/is_unsigned.h" } + module is_unsigned_integer { private header "__type_traits/is_unsigned_integer.h" } + module is_valid_expansion { private header "__type_traits/is_valid_expansion.h" } module is_void { private header "__type_traits/is_void.h" } module is_volatile { private header "__type_traits/is_volatile.h" } + module lazy { private header "__type_traits/lazy.h" } + module make_32_64_or_128_bit { private header "__type_traits/make_32_64_or_128_bit.h" } + module make_signed { private header "__type_traits/make_signed.h" } + module make_unsigned { private header "__type_traits/make_unsigned.h" } + module nat { private header "__type_traits/nat.h" } module negation { private header "__type_traits/negation.h" } + module promote { private header "__type_traits/promote.h" } module rank { private header "__type_traits/rank.h" } module remove_all_extents { private header "__type_traits/remove_all_extents.h" } module remove_const { private header "__type_traits/remove_const.h" } module remove_cv { private header "__type_traits/remove_cv.h" } + module remove_cvref { private header "__type_traits/remove_cvref.h" } module remove_extent { private header "__type_traits/remove_extent.h" } module remove_pointer { private header "__type_traits/remove_pointer.h" } module remove_reference { private header "__type_traits/remove_reference.h" } module remove_volatile { private header "__type_traits/remove_volatile.h" } module type_identity { private header "__type_traits/type_identity.h" } + module type_list { private header "__type_traits/type_list.h" } module underlying_type { private header "__type_traits/underlying_type.h" } module void_t { private header "__type_traits/void_t.h" } } @@ -1272,6 +1305,7 @@ module std [system] { module __tree { header "__tree" export * } module __tuple { private header "__tuple" export * } module __undef_macros { header "__undef_macros" export * } + module __verbose_abort { header "__verbose_abort" export * } module experimental { requires cplusplus11 diff --git a/lib/libclang_rt/compiler-rt-vars.mk b/lib/libclang_rt/compiler-rt-vars.mk index 7f87af108e38..6939d5287055 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.0 +CLANG_SUBDIR=clang/15.0.3 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 2f7e913a3739..1a6b9582a960 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.0/include/cuda_wrappers/algorithm -OLD_FILES+=usr/lib/clang/15.0.0/include/cuda_wrappers/complex -OLD_FILES+=usr/lib/clang/15.0.0/include/cuda_wrappers/new -OLD_DIRS+=usr/lib/clang/15.0.0/include/cuda_wrappers -OLD_FILES+=usr/lib/clang/15.0.0/include/fuzzer/FuzzedDataProvider.h -OLD_DIRS+=usr/lib/clang/15.0.0/include/fuzzer -OLD_FILES+=usr/lib/clang/15.0.0/include/hlsl/hlsl_basic_types.h -OLD_FILES+=usr/lib/clang/15.0.0/include/hlsl/hlsl_intrinsics.h -OLD_DIRS+=usr/lib/clang/15.0.0/include/hlsl -OLD_FILES+=usr/lib/clang/15.0.0/include/openmp_wrappers/__clang_openmp_device_functions.h -OLD_FILES+=usr/lib/clang/15.0.0/include/openmp_wrappers/cmath -OLD_FILES+=usr/lib/clang/15.0.0/include/openmp_wrappers/complex -OLD_FILES+=usr/lib/clang/15.0.0/include/openmp_wrappers/complex.h -OLD_FILES+=usr/lib/clang/15.0.0/include/openmp_wrappers/complex_cmath.h -OLD_FILES+=usr/lib/clang/15.0.0/include/openmp_wrappers/math.h -OLD_FILES+=usr/lib/clang/15.0.0/include/openmp_wrappers/new -OLD_DIRS+=usr/lib/clang/15.0.0/include/openmp_wrappers -OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/bmi2intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/bmiintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/emmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/immintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/mm_malloc.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/mmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/pmmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/smmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/tmmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/x86gprintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/x86intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/xmmintrin.h -OLD_DIRS+=usr/lib/clang/15.0.0/include/ppc_wrappers -OLD_FILES+=usr/lib/clang/15.0.0/include/profile/InstrProfData.inc -OLD_FILES+=usr/lib/clang/15.0.0/include/profile/MemProfData.inc -OLD_DIRS+=usr/lib/clang/15.0.0/include/profile -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/allocator_interface.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/asan_interface.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/common_interface_defs.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/coverage_interface.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/dfsan_interface.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/hwasan_interface.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/linux_syscall_hooks.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/lsan_interface.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/memprof_interface.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/msan_interface.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/netbsd_syscall_hooks.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/scudo_interface.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/tsan_interface.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/tsan_interface_atomic.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/ubsan_interface.h -OLD_DIRS+=usr/lib/clang/15.0.0/include/sanitizer -OLD_FILES+=usr/lib/clang/15.0.0/include/xray/xray_interface.h -OLD_FILES+=usr/lib/clang/15.0.0/include/xray/xray_log_interface.h -OLD_FILES+=usr/lib/clang/15.0.0/include/xray/xray_records.h -OLD_DIRS+=usr/lib/clang/15.0.0/include/xray -OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_builtin_vars.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_cmath.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_complex_builtins.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_device_functions.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_intrinsics.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_libdevice_declares.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_math.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_math_forward_declares.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_runtime_wrapper.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_texture_intrinsics.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_hip_cmath.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_hip_libdevice_declares.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_hip_math.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_hip_runtime_wrapper.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__stddef_max_align_t.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__wmmintrin_aes.h -OLD_FILES+=usr/lib/clang/15.0.0/include/__wmmintrin_pclmul.h -OLD_FILES+=usr/lib/clang/15.0.0/include/adxintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/altivec.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ammintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/amxintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/arm64intr.h -OLD_FILES+=usr/lib/clang/15.0.0/include/arm_acle.h -OLD_FILES+=usr/lib/clang/15.0.0/include/arm_bf16.h -OLD_FILES+=usr/lib/clang/15.0.0/include/arm_cde.h -OLD_FILES+=usr/lib/clang/15.0.0/include/arm_cmse.h -OLD_FILES+=usr/lib/clang/15.0.0/include/arm_fp16.h -OLD_FILES+=usr/lib/clang/15.0.0/include/arm_mve.h -OLD_FILES+=usr/lib/clang/15.0.0/include/arm_neon.h -OLD_FILES+=usr/lib/clang/15.0.0/include/arm_neon_sve_bridge.h -OLD_FILES+=usr/lib/clang/15.0.0/include/arm_sve.h -OLD_FILES+=usr/lib/clang/15.0.0/include/armintr.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx2intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512bf16intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512bitalgintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512bwintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512cdintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512dqintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512erintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512fintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512fp16intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512ifmaintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512ifmavlintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512pfintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vbmi2intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vbmiintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vbmivlintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlbf16intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlbitalgintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlbwintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlcdintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vldqintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlfp16intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlvbmi2intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlvnniintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlvp2intersectintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vnniintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vp2intersectintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vpopcntdqintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vpopcntdqvlintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avxintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/avxvnniintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/bmi2intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/bmiintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/builtins.h -OLD_FILES+=usr/lib/clang/15.0.0/include/cet.h -OLD_FILES+=usr/lib/clang/15.0.0/include/cetintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/cldemoteintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/clflushoptintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/clwbintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/clzerointrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/cpuid.h -OLD_FILES+=usr/lib/clang/15.0.0/include/crc32intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/emmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/enqcmdintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/f16cintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/float.h -OLD_FILES+=usr/lib/clang/15.0.0/include/fma4intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/fmaintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/fxsrintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/gfniintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/hexagon_circ_brev_intrinsics.h -OLD_FILES+=usr/lib/clang/15.0.0/include/hexagon_protos.h -OLD_FILES+=usr/lib/clang/15.0.0/include/hexagon_types.h -OLD_FILES+=usr/lib/clang/15.0.0/include/hlsl.h -OLD_FILES+=usr/lib/clang/15.0.0/include/hresetintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/htmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/htmxlintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/hvx_hexagon_protos.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ia32intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/immintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/inttypes.h -OLD_FILES+=usr/lib/clang/15.0.0/include/invpcidintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/iso646.h -OLD_FILES+=usr/lib/clang/15.0.0/include/keylockerintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/limits.h -OLD_FILES+=usr/lib/clang/15.0.0/include/lwpintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/lzcntintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/mm3dnow.h -OLD_FILES+=usr/lib/clang/15.0.0/include/mm_malloc.h -OLD_FILES+=usr/lib/clang/15.0.0/include/mmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/module.modulemap -OLD_FILES+=usr/lib/clang/15.0.0/include/movdirintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/msa.h -OLD_FILES+=usr/lib/clang/15.0.0/include/mwaitxintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/nmmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/omp-tools.h -OLD_FILES+=usr/lib/clang/15.0.0/include/omp.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ompt.h -OLD_FILES+=usr/lib/clang/15.0.0/include/opencl-c-base.h -OLD_FILES+=usr/lib/clang/15.0.0/include/opencl-c.h -OLD_FILES+=usr/lib/clang/15.0.0/include/pconfigintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/pkuintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/pmmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/popcntintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/prfchwintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/ptwriteintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/rdpruintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/rdseedintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/riscv_vector.h -OLD_FILES+=usr/lib/clang/15.0.0/include/rtmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/s390intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/serializeintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/sgxintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/shaintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/smmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/stdalign.h -OLD_FILES+=usr/lib/clang/15.0.0/include/stdarg.h -OLD_FILES+=usr/lib/clang/15.0.0/include/stdatomic.h -OLD_FILES+=usr/lib/clang/15.0.0/include/stdbool.h -OLD_FILES+=usr/lib/clang/15.0.0/include/stddef.h -OLD_FILES+=usr/lib/clang/15.0.0/include/stdint.h -OLD_FILES+=usr/lib/clang/15.0.0/include/stdnoreturn.h -OLD_FILES+=usr/lib/clang/15.0.0/include/tbmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/tgmath.h -OLD_FILES+=usr/lib/clang/15.0.0/include/tmmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/tsxldtrkintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/uintrintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/unwind.h -OLD_FILES+=usr/lib/clang/15.0.0/include/vadefs.h -OLD_FILES+=usr/lib/clang/15.0.0/include/vaesintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/varargs.h -OLD_FILES+=usr/lib/clang/15.0.0/include/vecintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/velintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/velintrin_approx.h -OLD_FILES+=usr/lib/clang/15.0.0/include/velintrin_gen.h -OLD_FILES+=usr/lib/clang/15.0.0/include/vpclmulqdqintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/waitpkgintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/wasm_simd128.h -OLD_FILES+=usr/lib/clang/15.0.0/include/wbnoinvdintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/wmmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/x86gprintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/x86intrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/xmmintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/xopintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/xsavecintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/xsaveintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/xsaveoptintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/xsavesintrin.h -OLD_FILES+=usr/lib/clang/15.0.0/include/xtestintrin.h -OLD_DIRS+=usr/lib/clang/15.0.0/include -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-aarch64.so -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-arm.so -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-armhf.so -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-i386.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-i386.so -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-preinit-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-preinit-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-preinit-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-preinit-i386.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-preinit-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-x86_64.so -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan_cxx-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan_cxx-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan_cxx-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan_cxx-i386.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan_static-i386.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan_static-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi-i386.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi_diag-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi_diag-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi_diag-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi_diag-i386.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi_diag-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.dd-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.dd-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.fuzzer-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.fuzzer-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.fuzzer_interceptors-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.msan-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.msan-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.msan_cxx-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.msan_cxx-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-i386.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-powerpc.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-powerpc64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-powerpc64le.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.safestack-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.safestack-i386.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.safestack-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats-i386.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats_client-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats_client-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats_client-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats_client-i386.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats_client-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.tsan-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.tsan-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_minimal-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_minimal-i386.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-basic-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-basic-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-basic-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-basic-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-fdr-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-fdr-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-fdr-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-fdr-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-profiling-aarch64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-profiling-arm.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-profiling-armhf.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-profiling-x86_64.a -OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-x86_64.a -OLD_DIRS+=usr/lib/clang/15.0.0/lib/freebsd -OLD_DIRS+=usr/lib/clang/15.0.0/lib -OLD_FILES+=usr/lib/clang/15.0.0/share/asan_ignorelist.txt -OLD_FILES+=usr/lib/clang/15.0.0/share/cfi_ignorelist.txt -OLD_FILES+=usr/lib/clang/15.0.0/share/msan_ignorelist.txt -OLD_DIRS+=usr/lib/clang/15.0.0/share -OLD_DIRS+=usr/lib/clang/15.0.0 +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_DIRS+=usr/lib/clang OLD_FILES+=usr/share/doc/llvm/clang/LICENSE.TXT OLD_DIRS+=usr/share/doc/llvm/clang