github-actions[bot] wrote: <!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning: <details> <summary> You can test this locally with the following command: </summary> ``````````bash git-clang-format --diff HEAD~1 HEAD --extensions cpp,c,h -- clang/test/CodeGen/ptrauth-stripping.c clang/test/Sema/ptrauth-qualifier-options.c clang/include/clang/Basic/LangOptions.h clang/include/clang/Sema/Sema.h clang/lib/Parse/ParseDecl.cpp clang/lib/Sema/SemaType.cpp clang/test/Parser/ptrauth-qualifier.c clang/test/Sema/ptrauth-qualifier.c `````````` </details> <details> <summary> View the diff from clang-format here. </summary> ``````````diff diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h index 469eec535..a379a271b 100644 --- a/clang/include/clang/Sema/Sema.h +++ b/clang/include/clang/Sema/Sema.h @@ -5691,7 +5691,11 @@ public: void ActOnFinishDelayedCXXMethodDeclaration(Scope *S, Decl *Method); void ActOnFinishDelayedMemberInitializers(Decl *Record); - enum class StringEvaluationContext { StaticAssert = 0, Asm = 1, PtrauthOptions = 2 }; + enum class StringEvaluationContext { + StaticAssert = 0, + Asm = 1, + PtrauthOptions = 2 + }; bool EvaluateAsString(Expr *Message, APValue &Result, ASTContext &Ctx, StringEvaluationContext EvalContext, diff --git a/clang/lib/Sema/SemaType.cpp b/clang/lib/Sema/SemaType.cpp index fbb8a94e5..9aa548ef6 100644 --- a/clang/lib/Sema/SemaType.cpp +++ b/clang/lib/Sema/SemaType.cpp @@ -8379,37 +8379,52 @@ static void HandlePtrAuthQualifier(ASTContext &Ctx, QualType &T, std::optional<PointerAuthenticationMode> AuthenticationMode = std::nullopt; SourceRange AuthenticationModeRange; - if (AuthenticationOptionsArg && !AuthenticationOptionsArg->containsErrors() ) { + if (AuthenticationOptionsArg && !AuthenticationOptionsArg->containsErrors()) { std::string OptionsString; bool IsInitialized = false; - const StringLiteral *OptionsStringLiteral = dyn_cast<StringLiteral>(AuthenticationOptionsArg); - auto ReportEvaluationOfExpressionIfNeeded = [&](){ + const StringLiteral *OptionsStringLiteral = + dyn_cast<StringLiteral>(AuthenticationOptionsArg); + auto ReportEvaluationOfExpressionIfNeeded = [&]() { if (OptionsStringLiteral || !IsInitialized) return; S.Diag(AuthenticationOptionsArg->getBeginLoc(), - diag::note_ptrauth_evaluating_options) << OptionsString << AuthenticationOptionsArg->getSourceRange(); + diag::note_ptrauth_evaluating_options) + << OptionsString << AuthenticationOptionsArg->getSourceRange(); }; - auto DiagnoseInvalidOptionsParameter = [&](llvm::StringRef Reason, std::optional<char> InvalidCh, auto Location) { + auto DiagnoseInvalidOptionsParameter = [&](llvm::StringRef Reason, + std::optional<char> InvalidCh, + auto Location) { S.Diag(AuthenticationOptionsArg->getExprLoc(), diag::err_ptrauth_invalid_option) - << AttrName << Reason << Location << !!InvalidCh << (InvalidCh ? *InvalidCh : '\0'); + << AttrName << Reason << Location << !!InvalidCh + << (InvalidCh ? *InvalidCh : '\0'); Attr.setInvalid(); ReportEvaluationOfExpressionIfNeeded(); }; - if (AuthenticationOptionsArg->isValueDependent() || AuthenticationOptionsArg->isTypeDependent()) { - DiagnoseInvalidOptionsParameter("is dependent", std::nullopt, AuthenticationOptionsArg->getSourceRange()); + if (AuthenticationOptionsArg->isValueDependent() || + AuthenticationOptionsArg->isTypeDependent()) { + DiagnoseInvalidOptionsParameter( + "is dependent", std::nullopt, + AuthenticationOptionsArg->getSourceRange()); return; } if (OptionsStringLiteral) { if (OptionsStringLiteral->containsNonAsciiOrNull()) { - DiagnoseInvalidOptionsParameter("contains invalid characters", std::nullopt, AuthenticationOptionsArg->getSourceRange()); + DiagnoseInvalidOptionsParameter( + "contains invalid characters", std::nullopt, + AuthenticationOptionsArg->getSourceRange()); return; } OptionsString = OptionsStringLiteral->getString(); - } else if (S.EvaluateAsString(AuthenticationOptionsArg, OptionsString, S.Context, Sema::StringEvaluationContext::PtrauthOptions, /*ErrorOnInvalidMessage=*/false)) { + } else if (S.EvaluateAsString(AuthenticationOptionsArg, OptionsString, + S.Context, + Sema::StringEvaluationContext::PtrauthOptions, + /*ErrorOnInvalidMessage=*/false)) { for (char Ch : OptionsString) { if (!Ch || !isascii(Ch)) { - DiagnoseInvalidOptionsParameter("contains invalid characters", Ch, AuthenticationOptionsArg->getSourceRange()); + DiagnoseInvalidOptionsParameter( + "contains invalid characters", Ch, + AuthenticationOptionsArg->getSourceRange()); return; } } @@ -8423,14 +8438,16 @@ static void HandlePtrAuthQualifier(ASTContext &Ctx, QualType &T, auto OptionStringIdxLocation = [&](unsigned Idx) { if (OptionsStringLiteral) - return OptionsStringLiteral->getLocationOfByte(Idx, Ctx.getSourceManager(), Ctx.getLangOpts(), Ctx.getTargetInfo()); + return OptionsStringLiteral->getLocationOfByte( + Idx, Ctx.getSourceManager(), Ctx.getLangOpts(), + Ctx.getTargetInfo()); return AuthenticationOptionsArg->getBeginLoc(); }; auto OptionStringRange = [&](unsigned StartIdx, unsigned EndIdx) { if (!OptionsStringLiteral) return AuthenticationOptionsArg->getSourceRange(); return SourceRange(OptionStringIdxLocation(StartIdx), - OptionStringIdxLocation(EndIdx)); + OptionStringIdxLocation(EndIdx)); }; auto NextOption = [&]() -> std::optional<std::pair<unsigned, unsigned>> { auto ConsumeChar = [&](auto Filter) -> char { @@ -8448,7 +8465,7 @@ static void HandlePtrAuthQualifier(ASTContext &Ctx, QualType &T, } }; auto MatchCharacter = [](char MatchChar) { - return [MatchChar](char Ch){ return MatchChar == Ch; }; + return [MatchChar](char Ch) { return MatchChar == Ch; }; }; SkipWhiteSpace(); if (CurrentIdx == OptionsString.size()) @@ -8457,7 +8474,7 @@ static void HandlePtrAuthQualifier(ASTContext &Ctx, QualType &T, if (!ConsumeChar(MatchCharacter(','))) { SourceLocation ErrorLocation = OptionStringIdxLocation(CurrentIdx); S.Diag(ErrorLocation, diag::err_ptrauth_option_missing_comma) - << AttrName << ErrorLocation; + << AttrName << ErrorLocation; ReportEvaluationOfExpressionIfNeeded(); return std::nullopt; } @@ -8478,7 +8495,8 @@ static void HandlePtrAuthQualifier(ASTContext &Ctx, QualType &T, if (OptionStartIdx == OptionEndIdx) { StringRef ErrorString(&OptionsString[CurrentIdx], 1); SourceLocation ErrorLocation = OptionStringIdxLocation(OptionStartIdx); - S.Diag(ErrorLocation, diag::err_ptrauth_option_unexpected_token) << ErrorString << AttrName << ErrorLocation; + S.Diag(ErrorLocation, diag::err_ptrauth_option_unexpected_token) + << ErrorString << AttrName << ErrorLocation; ReportEvaluationOfExpressionIfNeeded(); IsInvalid = true; return std::nullopt; @@ -8487,7 +8505,8 @@ static void HandlePtrAuthQualifier(ASTContext &Ctx, QualType &T, }; auto OptionHandler = [&](StringRef TokenStr, SourceRange TokenRange, - auto Value, auto *Option, SourceRange *OptionRange) { + auto Value, auto *Option, + SourceRange *OptionRange) { SourceRange DiagnosedRange = TokenRange; if (!OptionsStringLiteral) DiagnosedRange = AuthenticationOptionsArg->getSourceRange(); @@ -8497,40 +8516,42 @@ static void HandlePtrAuthQualifier(ASTContext &Ctx, QualType &T, return true; } bool IsAuthenticationMode = - std::is_same_v<decltype(Value), PointerAuthenticationMode>; - S.Diag(OptionRange->getBegin(), diag::err_ptrauth_repeated_authentication_option) + std::is_same_v<decltype(Value), PointerAuthenticationMode>; + S.Diag(OptionRange->getBegin(), + diag::err_ptrauth_repeated_authentication_option) << AttrName << !IsAuthenticationMode << *OptionRange; IsInvalid = true; if (OptionsStringLiteral) S.Diag(OptionRange->getBegin(), diag::note_ptrauth_previous_authentication_option) - << AttrName << !IsAuthenticationMode << *OptionRange; + << AttrName << !IsAuthenticationMode << *OptionRange; return false; }; - llvm::DenseMap<StringRef, std::function<bool(llvm::StringRef, SourceRange)>> OptionHandlers = { - {PointerAuthenticationOptionStrip, - [&](StringRef TokenStr, SourceRange Range) { - return OptionHandler(TokenStr, Range, - PointerAuthenticationMode::Strip, - &AuthenticationMode, &AuthenticationModeRange); - }}, - {PointerAuthenticationOptionSignAndStrip, - [&](StringRef TokenStr, SourceRange Range) { - return OptionHandler(TokenStr, Range, - PointerAuthenticationMode::SignAndStrip, - &AuthenticationMode, &AuthenticationModeRange); - }}, - {PointerAuthenticationOptionSignAndAuth, - [&](StringRef TokenStr, SourceRange Range) { - return OptionHandler(TokenStr, Range, - PointerAuthenticationMode::SignAndAuth, - &AuthenticationMode, &AuthenticationModeRange); - }}}; + llvm::DenseMap<StringRef, std::function<bool(llvm::StringRef, SourceRange)>> + OptionHandlers = { + {PointerAuthenticationOptionStrip, + [&](StringRef TokenStr, SourceRange Range) { + return OptionHandler( + TokenStr, Range, PointerAuthenticationMode::Strip, + &AuthenticationMode, &AuthenticationModeRange); + }}, + {PointerAuthenticationOptionSignAndStrip, + [&](StringRef TokenStr, SourceRange Range) { + return OptionHandler( + TokenStr, Range, PointerAuthenticationMode::SignAndStrip, + &AuthenticationMode, &AuthenticationModeRange); + }}, + {PointerAuthenticationOptionSignAndAuth, + [&](StringRef TokenStr, SourceRange Range) { + return OptionHandler( + TokenStr, Range, PointerAuthenticationMode::SignAndAuth, + &AuthenticationMode, &AuthenticationModeRange); + }}}; while (std::optional<std::pair<unsigned, unsigned>> Option = NextOption()) { StringRef OptionString(&OptionsString[Option->first], Option->second - Option->first); - SourceRange OptionRange = OptionStringRange(Option->first, - Option->second); + SourceRange OptionRange = + OptionStringRange(Option->first, Option->second); auto Handler = OptionHandlers.find(OptionString); if (Handler == OptionHandlers.end()) { S.Diag(OptionStringIdxLocation(Option->first), @@ -8560,7 +8581,7 @@ static void HandlePtrAuthQualifier(ASTContext &Ctx, QualType &T, if (T.getPointerAuth()) { S.Diag(Attr.getLoc(), diag::err_ptrauth_qualifier_redundant) - << T << AttrName; + << T << AttrName; Attr.setInvalid(); return; } `````````` </details> https://github.com/llvm/llvm-project/pull/136828 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits