llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-amdgpu

Author: None (blazie2004)

<details>
<summary>Changes</summary>



---

Patch is 75.64 MiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/136829.diff


4551 Files Affected:

- (added) check_remote_class_check.py (+86) 
- (added) check_remote_llvmheader.py (+83) 
- (added) check_remote_naming_conventions.py (+182) 
- (added) check_remote_pr_format.py (+182) 
- (added) check_remote_tidy_format.py (+64) 
- (added) clang-format-diff.py (+197) 
- (added) clang-tidy-diff.py (+423) 
- (modified) clang/lib/AST/ASTConsumer.cpp (+20-8) 
- (added) config.yaml (+16) 
- (added) install/bin/amdgpu-arch (+1) 
- (added) install/bin/analyze-build (+17) 
- (added) install/bin/bugpoint () 
- (added) install/bin/c-index-test () 
- (added) install/bin/clang (+1) 
- (added) install/bin/clang++ (+1) 
- (added) install/bin/clang-21 () 
- (added) install/bin/clang-apply-replacements () 
- (added) install/bin/clang-change-namespace () 
- (added) install/bin/clang-check () 
- (added) install/bin/clang-cl (+1) 
- (added) install/bin/clang-cpp (+1) 
- (added) install/bin/clang-doc () 
- (added) install/bin/clang-extdef-mapping () 
- (added) install/bin/clang-format () 
- (added) install/bin/clang-include-cleaner () 
- (added) install/bin/clang-include-fixer () 
- (added) install/bin/clang-installapi () 
- (added) install/bin/clang-linker-wrapper () 
- (added) install/bin/clang-move () 
- (added) install/bin/clang-nvlink-wrapper () 
- (added) install/bin/clang-offload-bundler () 
- (added) install/bin/clang-offload-packager () 
- (added) install/bin/clang-query () 
- (added) install/bin/clang-refactor () 
- (added) install/bin/clang-reorder-fields () 
- (added) install/bin/clang-repl () 
- (added) install/bin/clang-scan-deps () 
- (added) install/bin/clang-sycl-linker () 
- (added) install/bin/clang-tblgen () 
- (added) install/bin/clang-tidy () 
- (added) install/bin/clangd () 
- (added) install/bin/diagtool () 
- (added) install/bin/dsymutil () 
- (added) install/bin/find-all-symbols () 
- (added) install/bin/git-clang-format (+858) 
- (added) install/bin/hmaptool (+297) 
- (added) install/bin/intercept-build (+17) 
- (added) install/bin/llc () 
- (added) install/bin/lli () 
- (added) install/bin/llvm-addr2line (+1) 
- (added) install/bin/llvm-ar () 
- (added) install/bin/llvm-as () 
- (added) install/bin/llvm-bcanalyzer () 
- (added) install/bin/llvm-bitcode-strip (+1) 
- (added) install/bin/llvm-c-test () 
- (added) install/bin/llvm-cat () 
- (added) install/bin/llvm-cfi-verify () 
- (added) install/bin/llvm-cgdata () 
- (added) install/bin/llvm-config () 
- (added) install/bin/llvm-cov () 
- (added) install/bin/llvm-ctxprof-util () 
- (added) install/bin/llvm-cvtres () 
- (added) install/bin/llvm-cxxdump () 
- (added) install/bin/llvm-cxxfilt () 
- (added) install/bin/llvm-cxxmap () 
- (added) install/bin/llvm-debuginfo-analyzer () 
- (added) install/bin/llvm-debuginfod () 
- (added) install/bin/llvm-debuginfod-find () 
- (added) install/bin/llvm-diff () 
- (added) install/bin/llvm-dis () 
- (added) install/bin/llvm-dlltool (+1) 
- (added) install/bin/llvm-dwarfdump () 
- (added) install/bin/llvm-dwarfutil () 
- (added) install/bin/llvm-dwp () 
- (added) install/bin/llvm-exegesis () 
- (added) install/bin/llvm-extract () 
- (added) install/bin/llvm-gsymutil () 
- (added) install/bin/llvm-ifs () 
- (added) install/bin/llvm-install-name-tool (+1) 
- (added) install/bin/llvm-jitlink () 
- (added) install/bin/llvm-lib (+1) 
- (added) install/bin/llvm-libtool-darwin () 
- (added) install/bin/llvm-link () 
- (added) install/bin/llvm-lipo () 
- (added) install/bin/llvm-lto () 
- (added) install/bin/llvm-lto2 () 
- (added) install/bin/llvm-mc () 
- (added) install/bin/llvm-mca () 
- (added) install/bin/llvm-ml () 
- (added) install/bin/llvm-ml64 (+1) 
- (added) install/bin/llvm-modextract () 
- (added) install/bin/llvm-mt () 
- (added) install/bin/llvm-nm () 
- (added) install/bin/llvm-objcopy () 
- (added) install/bin/llvm-objdump () 
- (added) install/bin/llvm-opt-report () 
- (added) install/bin/llvm-otool (+1) 
- (added) install/bin/llvm-pdbutil () 
- (added) install/bin/llvm-profdata () 
- (added) install/bin/llvm-profgen () 
- (added) install/bin/llvm-ranlib (+1) 
- (added) install/bin/llvm-rc () 
- (added) install/bin/llvm-readelf (+1) 
- (added) install/bin/llvm-readobj () 
- (added) install/bin/llvm-readtapi () 
- (added) install/bin/llvm-reduce () 
- (added) install/bin/llvm-remarkutil () 
- (added) install/bin/llvm-rtdyld () 
- (added) install/bin/llvm-sim () 
- (added) install/bin/llvm-size () 
- (added) install/bin/llvm-split () 
- (added) install/bin/llvm-stress () 
- (added) install/bin/llvm-strings () 
- (added) install/bin/llvm-strip (+1) 
- (added) install/bin/llvm-symbolizer () 
- (added) install/bin/llvm-tblgen () 
- (added) install/bin/llvm-tli-checker () 
- (added) install/bin/llvm-undname () 
- (added) install/bin/llvm-windres (+1) 
- (added) install/bin/llvm-xray () 
- (added) install/bin/modularize () 
- (added) install/bin/nvptx-arch (+1) 
- (added) install/bin/offload-arch () 
- (added) install/bin/opt () 
- (added) install/bin/pp-trace () 
- (added) install/bin/reduce-chunk-list () 
- (added) install/bin/run-clang-tidy (+627) 
- (added) install/bin/sancov () 
- (added) install/bin/sanstats () 
- (added) install/bin/scan-build (+1985) 
- (added) install/bin/scan-build-py (+17) 
- (added) install/bin/scan-view (+149) 
- (added) install/bin/verify-uselistorder () 
- (added) install/include/clang-c/BuildSystem.h (+153) 
- (added) install/include/clang-c/CXCompilationDatabase.h (+174) 
- (added) install/include/clang-c/CXDiagnostic.h (+379) 
- (added) install/include/clang-c/CXErrorCode.h (+62) 
- (added) install/include/clang-c/CXFile.h (+83) 
- (added) install/include/clang-c/CXSourceLocation.h (+296) 
- (added) install/include/clang-c/CXString.h (+73) 
- (added) install/include/clang-c/Documentation.h (+619) 
- (added) install/include/clang-c/ExternC.h (+39) 
- (added) install/include/clang-c/FatalErrorHandler.h (+32) 
- (added) install/include/clang-c/Index.h (+6829) 
- (added) install/include/clang-c/Platform.h (+53) 
- (added) install/include/clang-c/Rewrite.h (+63) 
- (added) install/include/clang-tidy/ClangTidy.h (+125) 
- (added) install/include/clang-tidy/ClangTidyCheck.h (+537) 
- (added) install/include/clang-tidy/ClangTidyDiagnosticConsumer.h (+332) 
- (added) install/include/clang-tidy/ClangTidyForceLinker.h (+142) 
- (added) install/include/clang-tidy/ClangTidyModule.h (+98) 
- (added) install/include/clang-tidy/ClangTidyModuleRegistry.h (+25) 
- (added) install/include/clang-tidy/ClangTidyOptions.h (+340) 
- (added) install/include/clang-tidy/ClangTidyProfiling.h (+55) 
- (added) install/include/clang-tidy/ExpandModularHeadersPPCallbacks.h (+146) 
- (added) install/include/clang-tidy/FileExtensionsSet.h (+19) 
- (added) install/include/clang-tidy/GlobList.h (+70) 
- (added) install/include/clang-tidy/NoLintDirectiveHandler.h (+49) 
- (added) install/include/clang-tidy/abseil/AbseilMatcher.h (+59) 
- (added) install/include/clang-tidy/abseil/CleanupCtadCheck.h (+33) 
- (added) install/include/clang-tidy/abseil/DurationAdditionCheck.h (+31) 
- (added) install/include/clang-tidy/abseil/DurationComparisonCheck.h (+31) 
- (added) install/include/clang-tidy/abseil/DurationConversionCastCheck.h (+31) 
- (added) install/include/clang-tidy/abseil/DurationDivisionCheck.h (+33) 
- (added) install/include/clang-tidy/abseil/DurationFactoryFloatCheck.h (+33) 
- (added) install/include/clang-tidy/abseil/DurationFactoryScaleCheck.h (+33) 
- (added) install/include/clang-tidy/abseil/DurationRewriter.h (+138) 
- (added) install/include/clang-tidy/abseil/DurationSubtractionCheck.h (+31) 
- (added) 
install/include/clang-tidy/abseil/DurationUnnecessaryConversionCheck.h (+31) 
- (added) install/include/clang-tidy/abseil/FasterStrsplitDelimiterCheck.h 
(+34) 
- (added) install/include/clang-tidy/abseil/NoInternalDependenciesCheck.h (+34) 
- (added) install/include/clang-tidy/abseil/NoNamespaceCheck.h (+34) 
- (added) install/include/clang-tidy/abseil/RedundantStrcatCallsCheck.h (+37) 
- (added) install/include/clang-tidy/abseil/StrCatAppendCheck.h (+34) 
- (added) install/include/clang-tidy/abseil/StringFindStartswithCheck.h (+46) 
- (added) install/include/clang-tidy/abseil/StringFindStrContainsCheck.h (+35) 
- (added) install/include/clang-tidy/abseil/TimeComparisonCheck.h (+31) 
- (added) install/include/clang-tidy/abseil/TimeSubtractionCheck.h (+34) 
- (added) install/include/clang-tidy/abseil/UpgradeDurationConversionsCheck.h 
(+39) 
- (added) install/include/clang-tidy/altera/IdDependentBackwardBranchCheck.h 
(+79) 
- (added) install/include/clang-tidy/altera/KernelNameRestrictionCheck.h (+31) 
- (added) install/include/clang-tidy/altera/SingleWorkItemBarrierCheck.h (+36) 
- (added) install/include/clang-tidy/altera/StructPackAlignCheck.h (+37) 
- (added) install/include/clang-tidy/altera/UnrollLoopsCheck.h (+74) 
- (added) install/include/clang-tidy/android/CloexecAccept4Check.h (+30) 
- (added) install/include/clang-tidy/android/CloexecAcceptCheck.h (+30) 
- (added) install/include/clang-tidy/android/CloexecCheck.h (+100) 
- (added) install/include/clang-tidy/android/CloexecCreatCheck.h (+30) 
- (added) install/include/clang-tidy/android/CloexecDupCheck.h (+31) 
- (added) install/include/clang-tidy/android/CloexecEpollCreate1Check.h (+30) 
- (added) install/include/clang-tidy/android/CloexecEpollCreateCheck.h (+30) 
- (added) install/include/clang-tidy/android/CloexecFopenCheck.h (+33) 
- (added) install/include/clang-tidy/android/CloexecInotifyInit1Check.h (+30) 
- (added) install/include/clang-tidy/android/CloexecInotifyInitCheck.h (+30) 
- (added) install/include/clang-tidy/android/CloexecMemfdCreateCheck.h (+30) 
- (added) install/include/clang-tidy/android/CloexecOpenCheck.h (+35) 
- (added) install/include/clang-tidy/android/CloexecPipe2Check.h (+30) 
- (added) install/include/clang-tidy/android/CloexecPipeCheck.h (+30) 
- (added) install/include/clang-tidy/android/CloexecSocketCheck.h (+30) 
- (added) 
install/include/clang-tidy/android/ComparisonInTempFailureRetryCheck.h (+38) 
- (added) install/include/clang-tidy/boost/UseRangesCheck.h (+44) 
- (added) install/include/clang-tidy/boost/UseToStringCheck.h (+35) 
- (added) install/include/clang-tidy/bugprone/ArgumentCommentCheck.h (+61) 
- (added) install/include/clang-tidy/bugprone/AssertSideEffectCheck.h (+48) 
- (added) install/include/clang-tidy/bugprone/AssignmentInIfConditionCheck.h 
(+31) 
- (added) install/include/clang-tidy/bugprone/BadSignalToKillThreadCheck.h 
(+34) 
- (added) install/include/clang-tidy/bugprone/BitwisePointerCastCheck.h (+34) 
- (added) 
install/include/clang-tidy/bugprone/BoolPointerImplicitConversionCheck.h (+37) 
- (added) install/include/clang-tidy/bugprone/BranchCloneCheck.h (+37) 
- (added) 
install/include/clang-tidy/bugprone/CapturingThisInMemberVariableCheck.h (+45) 
- (added) install/include/clang-tidy/bugprone/CastingThroughVoidCheck.h (+32) 
- (added) install/include/clang-tidy/bugprone/ChainedComparisonCheck.h (+34) 
- (added) 
install/include/clang-tidy/bugprone/ComparePointerToMemberVirtualFunctionCheck.h
 (+36) 
- (added) install/include/clang-tidy/bugprone/CopyConstructorInitCheck.h (+34) 
- (added) 
install/include/clang-tidy/bugprone/CrtpConstructorAccessibilityCheck.h (+32) 
- (added) install/include/clang-tidy/bugprone/DanglingHandleCheck.h (+38) 
- (added) install/include/clang-tidy/bugprone/DynamicStaticInitializersCheck.h 
(+33) 
- (added) install/include/clang-tidy/bugprone/EasilySwappableParametersCheck.h 
(+62) 
- (added) install/include/clang-tidy/bugprone/EmptyCatchCheck.h (+37) 
- (added) install/include/clang-tidy/bugprone/ExceptionEscapeCheck.h (+45) 
- (added) install/include/clang-tidy/bugprone/FoldInitTypeCheck.h (+39) 
- (added) 
install/include/clang-tidy/bugprone/ForwardDeclarationNamespaceCheck.h (+54) 
- (added) 
install/include/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.h (+40) 
- (added) 
install/include/clang-tidy/bugprone/ImplicitWideningOfMultiplicationResultCheck.h
 (+50) 
- (added) install/include/clang-tidy/bugprone/InaccurateEraseCheck.h (+39) 
- (added) install/include/clang-tidy/bugprone/IncDecInConditionsCheck.h (+35) 
- (added) install/include/clang-tidy/bugprone/IncorrectEnableIfCheck.h (+34) 
- (added) 
install/include/clang-tidy/bugprone/IncorrectEnableSharedFromThisCheck.h (+35) 
- (added) install/include/clang-tidy/bugprone/IncorrectRoundingsCheck.h (+34) 
- (added) install/include/clang-tidy/bugprone/InfiniteLoopCheck.h (+31) 
- (added) install/include/clang-tidy/bugprone/IntegerDivisionCheck.h (+31) 
- (added) install/include/clang-tidy/bugprone/LambdaFunctionNameCheck.h (+49) 
- (added) install/include/clang-tidy/bugprone/MacroParenthesesCheck.h (+39) 
- (added) install/include/clang-tidy/bugprone/MacroRepeatedSideEffectsCheck.h 
(+27) 
- (added) 
install/include/clang-tidy/bugprone/MisplacedOperatorInStrlenInAllocCheck.h 
(+32) 
- (added) 
install/include/clang-tidy/bugprone/MisplacedPointerArithmeticInAllocCheck.h 
(+32) 
- (added) install/include/clang-tidy/bugprone/MisplacedWideningCastCheck.h 
(+41) 
- (added) install/include/clang-tidy/bugprone/MoveForwardingReferenceCheck.h 
(+47) 
- (added) 
install/include/clang-tidy/bugprone/MultiLevelImplicitPointerConversionCheck.h 
(+33) 
- (added) install/include/clang-tidy/bugprone/MultipleNewInOneExpressionCheck.h 
(+31) 
- (added) install/include/clang-tidy/bugprone/MultipleStatementMacroCheck.h 
(+32) 
- (added) install/include/clang-tidy/bugprone/NarrowingConversionsCheck.h 
(+109) 
- (added) install/include/clang-tidy/bugprone/NoEscapeCheck.h (+35) 
- (added) 
install/include/clang-tidy/bugprone/NonZeroEnumToBoolConversionCheck.h (+36) 
- (added) 
install/include/clang-tidy/bugprone/NondeterministicPointerIterationOrderCheck.h
 (+39) 
- (added) install/include/clang-tidy/bugprone/NotNullTerminatedResultCheck.h 
(+63) 
- (added) install/include/clang-tidy/bugprone/OptionalValueConversionCheck.h 
(+38) 
- (added) install/include/clang-tidy/bugprone/ParentVirtualCallCheck.h (+30) 
- (added) 
install/include/clang-tidy/bugprone/PointerArithmeticOnPolymorphicObjectCheck.h 
(+41) 
- (added) install/include/clang-tidy/bugprone/PosixReturnCheck.h (+26) 
- (added) install/include/clang-tidy/bugprone/RedundantBranchConditionCheck.h 
(+34) 
- (added) install/include/clang-tidy/bugprone/ReservedIdentifierCheck.h (+55) 
- (added) 
install/include/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.h (+40) 
- (added) install/include/clang-tidy/bugprone/SharedPtrArrayMismatchCheck.h 
(+34) 
- (added) install/include/clang-tidy/bugprone/SignalHandlerCheck.h (+79) 
- (added) install/include/clang-tidy/bugprone/SignedCharMisuseCheck.h (+44) 
- (added) install/include/clang-tidy/bugprone/SizeofContainerCheck.h (+31) 
- (added) install/include/clang-tidy/bugprone/SizeofExpressionCheck.h (+39) 
- (added) install/include/clang-tidy/bugprone/SmartPtrArrayMismatchCheck.h 
(+48) 
- (added) install/include/clang-tidy/bugprone/SpuriouslyWakeUpFunctionsCheck.h 
(+33) 
- (added) install/include/clang-tidy/bugprone/StandaloneEmptyCheck.h (+34) 
- (added) install/include/clang-tidy/bugprone/StringConstructorCheck.h (+39) 
- (added) install/include/clang-tidy/bugprone/StringIntegerAssignmentCheck.h 
(+33) 
- (added) 
install/include/clang-tidy/bugprone/StringLiteralWithEmbeddedNulCheck.h (+30) 
- (added) install/include/clang-tidy/bugprone/StringviewNullptrCheck.h (+45) 
- (added) install/include/clang-tidy/bugprone/SuspiciousEnumUsageCheck.h (+37) 
- (added) install/include/clang-tidy/bugprone/SuspiciousIncludeCheck.h (+38) 
- (added) install/include/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.h 
(+31) 
- (added) install/include/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.h 
(+33) 
- (added) install/include/clang-tidy/bugprone/SuspiciousMissingCommaCheck.h 
(+39) 
- (added) install/include/clang-tidy/bugprone/SuspiciousReallocUsageCheck.h 
(+32) 
- (added) install/include/clang-tidy/bugprone/SuspiciousSemicolonCheck.h (+31) 
- (added) install/include/clang-tidy/bugprone/SuspiciousStringCompareCheck.h 
(+35) 
- (added) 
install/include/clang-tidy/bugprone/SuspiciousStringviewDataUsageCheck.h (+38) 
- (added) install/include/clang-tidy/bugprone/SwappedArgumentsCheck.h (+27) 
- (added) install/include/clang-tidy/bugprone/SwitchMissingDefaultCaseCheck.h 
(+38) 
- (added) install/include/clang-tidy/bugprone/TaggedUnionMemberCountCheck.h 
(+41) 
- (added) install/include/clang-tidy/bugprone/TerminatingContinueCheck.h (+31) 
- (added) install/include/clang-tidy/bugprone/ThrowKeywordMissingCheck.h (+37) 
- (added) install/include/clang-tidy/bugprone/TooSmallLoopVariableCheck.h (+42) 
- (added) install/include/clang-tidy/bugprone/UncheckedOptionalAccessCheck.h 
(+45) 
- (added) 
install/include/clang-tidy/bugprone/UndefinedMemoryManipulationCheck.h (+32) 
- (added) install/include/clang-tidy/bugprone/UndelegatedConstructorCheck.h 
(+34) 
- (added) install/include/clang-tidy/bugprone/UnhandledExceptionAtNewCheck.h 
(+34) 
- (added) install/include/clang-tidy/bugprone/UnhandledSelfAssignmentCheck.h 
(+39) 
- (added) 
install/include/clang-tidy/bugprone/UnintendedCharOstreamOutputCheck.h (+39) 
- (added) install/include/clang-tidy/bugprone/UniquePtrArrayMismatchCheck.h 
(+34) 
- (added) install/include/clang-tidy/bugprone/UnsafeFunctionsCheck.h (+60) 
- (added) 
install/include/clang-tidy/bugprone/UnusedLocalNonTrivialVariableCheck.h (+44) 
- (added) install/include/clang-tidy/bugprone/UnusedRaiiCheck.h (+36) 
- (added) install/include/clang-tidy/bugprone/UnusedReturnValueCheck.h (+47) 
- (added) install/include/clang-tidy/bugprone/UseAfterMoveCheck.h (+34) 
- (added) install/include/clang-tidy/bugprone/VirtualNearMissCheck.h (+63) 
- (added) install/include/clang-tidy/cert/CommandProcessorCheck.h (+33) 
- (added) install/include/clang-tidy/cert/DefaultOperatorNewAlignmentCheck.h 
(+34) 
- (added) install/include/clang-tidy/cert/DontModifyStdNamespaceCheck.h (+34) 
- (added) install/include/clang-tidy/cert/FloatLoopCounter.h (+32) 
- (added) install/include/clang-tidy/cert/LimitedRandomnessCheck.h (+33) 
- (added) install/include/clang-tidy/cert/MutatingCopyCheck.h (+34) 
- (added) install/include/clang-tidy/cert/NonTrivialTypesLibcMemoryCallsCheck.h 
(+40) 
- (added) install/include/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.h 
(+42) 
- (added) install/include/clang-tidy/cert/SetLongJmpCheck.h (+35) 
- (added) install/include/clang-tidy/cert/StaticObjectExceptionCheck.h (+34) 
- (added) install/include/clang-tidy/cert/StrToNumCheck.h (+31) 
- (added) install/include/clang-tidy/cert/ThrownExceptionTypeCheck.h (+33) 
- (added) install/include/clang-tidy/cert/VariadicFunctionDefCheck.h (+33) 
- (added) install/include/clang-tidy/concurrency/MtUnsafeCheck.h (+39) 
- (added) 
install/include/clang-tidy/concurrency/ThreadCanceltypeAsynchronousCheck.h 
(+30) 
- (added) 
install/include/clang-tidy/cppcoreguidelines/AvoidCapturingLambdaCoroutinesCheck.h
 (+33) 
- (added) 
install/include/clang-tidy/cppcoreguidelines/AvoidConstOrRefDataMembersCheck.h 
(+34) 
- (added) install/include/clang-tidy/cppcoreguidelines/AvoidDoWhileCheck.h 
(+37) 
- (added) install/include/clang-tidy/cppcoreguidelines/AvoidGotoCheck.h (+34) 
- (added) 
install/include/clang-tidy/cppcoreguidelines/AvoidNonConstGlobalVariablesCheck.h
 (+34) 
- (added) 
install/include/clang-tidy/cppcoreguidelines/AvoidReferenceCoroutineParametersCheck.h
 (+36) 
- (added) install/include/clang-tidy/cppcoreguidelines/InitVariablesCheck.h 
(+38) 
- (added) 
install/include/clang-tidy/cppcoreguidelines/InterfacesGlobalInitCheck.h (+30) 
- (added) install/include/clang-tidy/cppcoreguidelines/MacroUsageCheck.h (+53) 
- (added) 
install/include/clang-tidy/cppcoreguidelines/MisleadingCaptureDefaultByValueCheck.h
 (+36) 
- (added) install/include/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.h 
(+38) 
- (added) install/include/clang-tidy/cppcoreguidelines/NoMallocCheck.h (+59) 
- (added) install/include/clang-tidy/cppcoreguidelines/NoSuspendWithLockCheck.h 
(+44) 
- (added) install/include/clang-tidy/cppcoreguidelines/OwningMemoryCheck.h 
(+64) 
- (added) 
install/include/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.h 
(+33) 
- (added) 
install/include/clang-tidy/cppcoreguidelines/ProBoundsArrayToPointerDecayCheck.h
 (+33) 
- (added) 
install/include/clang-tidy/cppcoreguidelines/ProBoundsConstantArrayIndexCheck.h 
(+40) 
- (added) 
install/include/clang-tidy/cppcoreguidelines/ProBoundsPointerArithmeticCheck.h 
(+32) 
- (added) install/include/clang-tidy/cppcoreguidelines/ProTypeConstCastCheck.h 
(+39) 


``````````diff
diff --git a/check_remote_class_check.py b/check_remote_class_check.py
new file mode 100644
index 0000000000000..2bd8f75ee9084
--- /dev/null
+++ b/check_remote_class_check.py
@@ -0,0 +1,86 @@
+import subprocess
+import sys
+import re
+import requests
+import yaml
+
+with open("config.yaml", "r") as f:
+    config = yaml.safe_load(f)
+
+
+
+
+PR_NUMBER = str(config["project"]["pr_number"])
+OWNER = config["project"]["owner"]
+REPO = config["project"]["repo"]
+
+# GitHub API to fetch the PR diff
+url = f"https://api.github.com/repos/{OWNER}/{REPO}/pulls/{PR_NUMBER}";
+diff_url = f"{url}.diff"
+
+# Fetch the diff from GitHub API
+print(f"šŸ“„ Fetching PR diff for PR #{PR_NUMBER} from GitHub...")
+response = requests.get(diff_url, headers={"Accept": 
"application/vnd.github.v3.diff"})
+
+if response.status_code != 200:
+    print(f"āŒ Failed to fetch PR diff or no changes found. Status Code: 
{response.status_code}")
+    sys.exit(1)
+
+# Get the diff content (only .cpp and .h files)
+diff_text = response.text
+if not diff_text.strip():
+    print("āœ… No changes in the PR.")
+    sys.exit(0)
+
+# Get the list of modified .cpp and .h files in the PR
+pr_files = [line.split(" ")[1][2:] for line in diff_text.splitlines() if 
line.startswith("+++")]
+pr_files = [file for file in pr_files if file.endswith(".cpp") or 
file.endswith(".h")]
+
+if not pr_files:
+    print("āŒ No relevant .cpp or .h files to check in PR #$PR_NUMBER.")
+    sys.exit(0)
+
+# Initialize a list to store missing documentation info
+missing_docs = []
+
+# Process each file in the diff
+for file in pr_files:
+    # Check if the file is a .cpp or .h file
+    if file.endswith(".cpp") or file.endswith(".h"):
+        # Get the diff for the modified file
+        file_diff = "\n".join(
+            [line[1:] for line in diff_text.splitlines() if 
line.startswith(('+', '-')) and line[2:].startswith(file)]
+        )
+
+        # Loop through each modified line in the file
+        for line in file_diff.splitlines():
+            # Check if the line creates a class (i.e., contains "class ")
+            if "class " in line:
+                # Check the previous line to see if it has Doxygen 
documentation
+                prev_line = None
+                lines = file_diff.splitlines()
+                idx = lines.index(line)
+                if idx > 0:
+                    prev_line = lines[idx - 1]
+
+                # If the previous line is not a Doxygen comment, it's missing 
documentation
+                if prev_line and not prev_line.strip().startswith("/**"):
+                    missing_docs.append((file, line))
+                    print(f"The following class is missing documentation: 
{file}")
+                    print(f"Before: {prev_line}")
+                    print(f"After: {line}")
+                    print("Action: Please add a Doxygen comment above this 
class explaining its purpose and functionality.")
+                    print("Example:")
+                    print("  /**")
+                    print("   * @brief Class description: What this class 
does.")
+                    print("   * @details More detailed explanation if needed.")
+                    print("   */")
+                    print()
+
+# If missing documentation was found, exit with status 1
+if missing_docs:
+    sys.exit(1)
+else:
+    print("All modified classes are properly documented.")
+
+print("LLVM CLASS CHECK COMPLETE")
diff --git a/check_remote_llvmheader.py b/check_remote_llvmheader.py
new file mode 100644
index 0000000000000..91ef567e166ad
--- /dev/null
+++ b/check_remote_llvmheader.py
@@ -0,0 +1,83 @@
+import sys
+import subprocess
+import re
+import yaml
+import requests
+
+# === Load config.yaml ===
+with open("config.yaml", "r") as f:
+    config = yaml.safe_load(f)
+
+# === Configuration ===
+PR_NUMBER = str(config["project"]["pr_number"])
+OWNER = config["project"]["owner"]
+REPO = config["project"]["repo"]
+LLVM_HEADER_TEMPLATE = 
"//===----------------------------------------------------------------------===//"
+LLVM_LICENSE = "// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception"
+FILE_EXTENSIONS = (".cpp", ".h")
+
+# === GitHub PR Diff URL ===
+DIFF_URL = 
f"https://api.github.com/repos/{OWNER}/{REPO}/pulls/{PR_NUMBER}.diff";
+
+# === Fetch PR Diff ===
+print(f"šŸ“„ Fetching PR diff for PR #{PR_NUMBER}...")
+response = requests.get(DIFF_URL, headers={"Accept": 
"application/vnd.github.v3.diff"})
+
+if response.status_code != 200:
+    print(f"āŒ Failed to fetch PR diff. Status: {response.status_code}")
+    sys.exit(1)
+
+diff_text = response.text
+if not diff_text.strip():
+    print("āœ… No changes in the PR.")
+    sys.exit(0)
+
+# === Extract Modified .cpp/.h Files ===
+pr_files = [
+    line.split(" ")[1][2:] for line in diff_text.splitlines()
+    if line.startswith("+++ b/") and line.endswith(FILE_EXTENSIONS)
+]
+
+if not pr_files:
+    print("āœ… No .cpp or .h files modified in this PR.")
+    sys.exit(0)
+
+print("\nšŸ” Checking headers in the following modified files:")
+for file in pr_files:
+    print("  •", file)
+
+# === Check Each File for LLVM Header in Modified Lines ===
+missing_header_files = []
+
+for file in pr_files:
+    raw_url = 
f"https://raw.githubusercontent.com/{OWNER}/{REPO}/pull/{PR_NUMBER}/head/{file}";
+    file_response = requests.get(raw_url)
+
+    if file_response.status_code != 200:
+        continue  # Skip without printing a message if file is not found in PR 
head
+
+    content = file_response.text
+    # Extract modified lines from the diff
+    modified_lines = [
+        line[1:] for line in diff_text.splitlines() if line.startswith("+") 
and line[1:] not in content
+    ]
+    
+    # Check only the modified lines for the header
+    header_found = any(
+        LLVM_HEADER_TEMPLATE in line or LLVM_LICENSE in line for line in 
modified_lines
+    )
+
+    if not header_found:
+        print(f"\nāŒ Missing or incorrect LLVM-style header in the modified 
lines of: {file}")
+        print("Expected header must include:")
+        print(f"  {LLVM_HEADER_TEMPLATE}")
+        print(f"  {LLVM_LICENSE}")
+        missing_header_files.append(file)
+
+# === Final Report ===
+if missing_header_files:
+    print(f"\nāŒ {len(missing_header_files)} file(s) missing proper LLVM-style 
headers in modified lines.")
+    sys.exit(1)
+else:
+    print("\nāœ… All modified files contain correct LLVM-style headers in 
modified lines!")
+    sys.exit(0)
diff --git a/check_remote_naming_conventions.py 
b/check_remote_naming_conventions.py
new file mode 100644
index 0000000000000..10b68b83a7ef3
--- /dev/null
+++ b/check_remote_naming_conventions.py
@@ -0,0 +1,182 @@
+import sys
+import requests
+import re
+import yaml
+
+# === Load Configuration ===
+with open("config.yaml", "r") as f:
+    config = yaml.safe_load(f)
+
+PR_NUMBER = str(config["project"]["pr_number"])
+OWNER = config["project"]["owner"]
+REPO = config["project"]["repo"]
+
+EXTENSIONS = (".cpp", ".h")
+DIFF_URL = 
f"https://api.github.com/repos/{OWNER}/{REPO}/pulls/{PR_NUMBER}.diff";
+
+# === Fetch PR Diff ===
+print(f"šŸ“„ Fetching PR diff for PR #{PR_NUMBER}...")
+response = requests.get(DIFF_URL, headers={"Accept": 
"application/vnd.github.v3.diff"})
+
+if response.status_code != 200:
+    print(f"āŒ Failed to fetch PR diff. Status: {response.status_code}")
+    sys.exit(1)
+
+diff_text = response.text
+if not diff_text.strip():
+    print("āœ… No changes in the PR.")
+    sys.exit(0)
+
+# === Regex Patterns ===
+class_pattern = re.compile(r"\bclass\s+([a-z]\w*)")
+var_pattern = re.compile(r"\b(?:int|float|double|char|bool)\s+([A-Z]\w*)")
+func_pattern = re.compile(r"\bvoid\s+([A-Z]\w*)\s*\(")
+enum_pattern = re.compile(r"\benum\s+([a-z]\w*)")
+enum_kind_pattern = re.compile(r"\benum\s+(?!.*Kind\b)(\w+)\b")
+
+# === Exempted Names ===
+EXEMPT_NAMES = {'RecursiveASTVisitor'}  # Add any class or function names that 
you want to exempt
+
+violations = []
+current_file = None
+line_number = 0
+
+# === Process Diff ===
+for line in diff_text.splitlines():
+    if line.startswith("+++ b/") and line.endswith(EXTENSIONS):
+        current_file = line[6:]
+        line_number = 0
+        continue
+
+    if not current_file:
+        continue
+
+    if line.startswith("@@"):
+        match = re.search(r"\+(\d+)", line)
+        if match:
+            line_number = int(match.group(1)) - 1
+        continue
+
+    if line.startswith("+") and not line.startswith("+++"):
+
+        line_number += 1
+        code_line = line[1:]
+
+        if (m := class_pattern.search(code_line)):
+            class_name = m.group(1)
+            # Skip if the class is in the exempted list
+            if class_name not in EXEMPT_NAMES:
+                violations.append((current_file, line_number, code_line, 
f"Class '{class_name}' should start with an uppercase letter."))
+
+        if (m := var_pattern.search(code_line)):
+            var_name = m.group(1)
+            # Skip if the variable is in the exempted list
+            if var_name not in EXEMPT_NAMES:
+                violations.append((current_file, line_number, code_line, 
f"Variable '{var_name}' should start with a lowercase letter in camelCase."))
+
+        if (m := func_pattern.search(code_line)):
+            func_name = m.group(1)
+            # Skip if the function is inimport sys
+import requests
+import re
+import yaml
+
+# === Load Configuration ===
+with open("config.yaml", "r") as f:
+    config = yaml.safe_load(f)
+
+PR_NUMBER = str(config["project"]["pr_number"])
+OWNER = config["project"]["owner"]
+REPO = config["project"]["repo"]
+
+EXTENSIONS = (".cpp", ".h")
+DIFF_URL = 
f"https://api.github.com/repos/{OWNER}/{REPO}/pulls/{PR_NUMBER}.diff";
+
+# === Fetch PR Diff ===
+print(f"šŸ“„ Fetching PR diff for PR #{PR_NUMBER}...")
+response = requests.get(DIFF_URL, headers={"Accept": 
"application/vnd.github.v3.diff"})
+
+if response.status_code != 200:
+    print(f"āŒ Failed to fetch PR diff. Status: {response.status_code}")
+    sys.exit(1)
+
+diff_text = response.text
+if not diff_text.strip():
+    print("āœ… No changes in the PR.")
+    sys.exit(0)
+
+# === Regex Patterns ===
+class_pattern = re.compile(r"\bclass\s+([a-z]\w*)")
+var_pattern = re.compile(r"\b(?:int|float|double|char|bool)\s+([A-Z]\w*)")
+func_pattern = re.compile(r"\bvoid\s+([A-Z]\w*)\s*\(")
+enum_pattern = re.compile(r"\benum\s+([a-z]\w*)")
+enum_kind_pattern = re.compile(r"\benum\s+(?!.*Kind\b)(\w+)\b")
+
+# === Exempted Names ===
+EXEMPT_NAMES = {'RecursiveASTVisitor'}  # Add any class or function names that 
you want to exempt
+
+violations = []
+current_file = None
+line_number = 0
+
+# === Process Diff ===
+for line in diff_text.splitlines():
+    if line.startswith("+++ b/") and line.endswith(EXTENSIONS):
+        current_file = line[6:]
+        line_number = 0
+        continue
+
+    if not current_file:
+        continue
+
+    if line.startswith("@@"):
+        match = re.search(r"\+(\d+)", line)
+        if match:
+            line_number = int(match.group(1)) - 1
+        continue
+
+    if line.startswith("+") and not line.startswith("+++"):
+
+        line_number += 1
+        code_line = line[1:]
+
+        if (m := class_pattern.search(code_line)):
+            class_name = m.group(1)
+            # Skip if the class is in the exempted list
+            if class_name not in EXEMPT_NAMES:
+                violations.append((current_file, line_number, code_line, 
f"Class '{class_name}' should start with an uppercase letter."))
+
+        if (m := var_pattern.search(code_line)):
+            var_name = m.group(1)
+            # Skip if the variable is in the exempted list
+            if var_name not in EXEMPT_NAMES:
+                violations.append((current_file, line_number, code_line, 
f"Variable '{var_name}' should start with a lowercase letter in camelCase."))
+
+        if (m := func_pattern.search(code_line)):
+            func_name = m.group(1)
+            # Skip if the function is in the exempted list
+            if func_name not in EXEMPT_NAMES:
+                violations.append((current_file, line_number, code_line, 
f"Function '{func_name}' should start with a lowercase letter in camelCase."))
+
+        if (m := enum_pattern.search(code_line)):
+            enum_name = m.group(1)
+            violations.append((current_file, line_number, code_line, f"Enum 
'{enum_name}' should start with an uppercase letter."))
+
+        if (m := enum_kind_pattern.search(code_line)):
+            enum_kind_name = m.group(1)
+            violations.append((current_file, line_number, code_line, f"Enum 
type '{enum_kind_name}' should end with 'Kind' if used as a discriminator."))
+
+    elif line.startswith("-") or line.startswith(" "):
+        line_number += 1
+
+# === Report Violations ===
+if violations:
+    print("\nāŒ Naming convention violations found:\n")
+    for file, line, code, message in violations:
+        print(f"šŸ”ø File: {file}, Line: {line}")
+        print(f"šŸ”¹ Code: {code.strip()}")
+        print(f"āš ļø  {message}\n")
+    sys.exit(1)
+else:
+    print("\nāœ… All modified lines follow naming conventions.")
+    sys.exit(0)
diff --git a/check_remote_pr_format.py b/check_remote_pr_format.py
new file mode 100644
index 0000000000000..10b68b83a7ef3
--- /dev/null
+++ b/check_remote_pr_format.py
@@ -0,0 +1,182 @@
+import sys
+import requests
+import re
+import yaml
+
+# === Load Configuration ===
+with open("config.yaml", "r") as f:
+    config = yaml.safe_load(f)
+
+PR_NUMBER = str(config["project"]["pr_number"])
+OWNER = config["project"]["owner"]
+REPO = config["project"]["repo"]
+
+EXTENSIONS = (".cpp", ".h")
+DIFF_URL = 
f"https://api.github.com/repos/{OWNER}/{REPO}/pulls/{PR_NUMBER}.diff";
+
+# === Fetch PR Diff ===
+print(f"šŸ“„ Fetching PR diff for PR #{PR_NUMBER}...")
+response = requests.get(DIFF_URL, headers={"Accept": 
"application/vnd.github.v3.diff"})
+
+if response.status_code != 200:
+    print(f"āŒ Failed to fetch PR diff. Status: {response.status_code}")
+    sys.exit(1)
+
+diff_text = response.text
+if not diff_text.strip():
+    print("āœ… No changes in the PR.")
+    sys.exit(0)
+
+# === Regex Patterns ===
+class_pattern = re.compile(r"\bclass\s+([a-z]\w*)")
+var_pattern = re.compile(r"\b(?:int|float|double|char|bool)\s+([A-Z]\w*)")
+func_pattern = re.compile(r"\bvoid\s+([A-Z]\w*)\s*\(")
+enum_pattern = re.compile(r"\benum\s+([a-z]\w*)")
+enum_kind_pattern = re.compile(r"\benum\s+(?!.*Kind\b)(\w+)\b")
+
+# === Exempted Names ===
+EXEMPT_NAMES = {'RecursiveASTVisitor'}  # Add any class or function names that 
you want to exempt
+
+violations = []
+current_file = None
+line_number = 0
+
+# === Process Diff ===
+for line in diff_text.splitlines():
+    if line.startswith("+++ b/") and line.endswith(EXTENSIONS):
+        current_file = line[6:]
+        line_number = 0
+        continue
+
+    if not current_file:
+        continue
+
+    if line.startswith("@@"):
+        match = re.search(r"\+(\d+)", line)
+        if match:
+            line_number = int(match.group(1)) - 1
+        continue
+
+    if line.startswith("+") and not line.startswith("+++"):
+
+        line_number += 1
+        code_line = line[1:]
+
+        if (m := class_pattern.search(code_line)):
+            class_name = m.group(1)
+            # Skip if the class is in the exempted list
+            if class_name not in EXEMPT_NAMES:
+                violations.append((current_file, line_number, code_line, 
f"Class '{class_name}' should start with an uppercase letter."))
+
+        if (m := var_pattern.search(code_line)):
+            var_name = m.group(1)
+            # Skip if the variable is in the exempted list
+            if var_name not in EXEMPT_NAMES:
+                violations.append((current_file, line_number, code_line, 
f"Variable '{var_name}' should start with a lowercase letter in camelCase."))
+
+        if (m := func_pattern.search(code_line)):
+            func_name = m.group(1)
+            # Skip if the function is inimport sys
+import requests
+import re
+import yaml
+
+# === Load Configuration ===
+with open("config.yaml", "r") as f:
+    config = yaml.safe_load(f)
+
+PR_NUMBER = str(config["project"]["pr_number"])
+OWNER = config["project"]["owner"]
+REPO = config["project"]["repo"]
+
+EXTENSIONS = (".cpp", ".h")
+DIFF_URL = 
f"https://api.github.com/repos/{OWNER}/{REPO}/pulls/{PR_NUMBER}.diff";
+
+# === Fetch PR Diff ===
+print(f"šŸ“„ Fetching PR diff for PR #{PR_NUMBER}...")
+response = requests.get(DIFF_URL, headers={"Accept": 
"application/vnd.github.v3.diff"})
+
+if response.status_code != 200:
+    print(f"āŒ Failed to fetch PR diff. Status: {response.status_code}")
+    sys.exit(1)
+
+diff_text = response.text
+if not diff_text.strip():
+    print("āœ… No changes in the PR.")
+    sys.exit(0)
+
+# === Regex Patterns ===
+class_pattern = re.compile(r"\bclass\s+([a-z]\w*)")
+var_pattern = re.compile(r"\b(?:int|float|double|char|bool)\s+([A-Z]\w*)")
+func_pattern = re.compile(r"\bvoid\s+([A-Z]\w*)\s*\(")
+enum_pattern = re.compile(r"\benum\s+([a-z]\w*)")
+enum_kind_pattern = re.compile(r"\benum\s+(?!.*Kind\b)(\w+)\b")
+
+# === Exempted Names ===
+EXEMPT_NAMES = {'RecursiveASTVisitor'}  # Add any class or function names that 
you want to exempt
+
+violations = []
+current_file = None
+line_number = 0
+
+# === Process Diff ===
+for line in diff_text.splitlines():
+    if line.startswith("+++ b/") and line.endswith(EXTENSIONS):
+        current_file = line[6:]
+        line_number = 0
+        continue
+
+    if not current_file:
+        continue
+
+    if line.startswith("@@"):
+        match = re.search(r"\+(\d+)", line)
+        if match:
+            line_number = int(match.group(1)) - 1
+        continue
+
+    if line.startswith("+") and not line.startswith("+++"):
+
+        line_number += 1
+        code_line = line[1:]
+
+        if (m := class_pattern.search(code_line)):
+            class_name = m.group(1)
+            # Skip if the class is in the exempted list
+            if class_name not in EXEMPT_NAMES:
+                violations.append((current_file, line_number, code_line, 
f"Class '{class_name}' should start with an uppercase letter."))
+
+        if (m := var_pattern.search(code_line)):
+            var_name = m.group(1)
+            # Skip if the variable is in the exempted list
+            if var_name not in EXEMPT_NAMES:
+                violations.append((current_file, line_number, code_line, 
f"Variable '{var_name}' should start with a lowercase letter in camelCase."))
+
+        if (m := func_pattern.search(code_line)):
+            func_name = m.group(1)
+            # Skip if the function is in the exempted list
+            if func_name not in EXEMPT_NAMES:
+                violations.append((current_file, line_number, code_line, 
f"Function '{func_name}' should start with a lowercase letter in camelCase."))
+
+        if (m := enum_pattern.search(code_line)):
+            enum_name = m.group(1)
+            violations.append((current_file, line_number, code_line, f"Enum 
'{enum_name}' should start with an uppercase letter."))
+
+        if (m := enum_kind_pattern.search(code_line)):
+            enum_kind_name = m.group(1)
+            violations.append((current_file, line_number, code_line, f"Enum 
type '{enum_kind_name}' should end with 'Kind' if used as a discriminator."))
+
+    elif line.startswith("-") or line.startswith(" "):
+        line_number += 1
+
+# === Report Violations ===
+if violations:
+    print("\nāŒ Naming convention violations found:\n")
+    for file, line, code, message in violations:
+        print(f"šŸ”ø File: {file}, Line: {line}")
+        print(f"šŸ”¹ Code: {code.strip()}")
+        print(f"āš ļø  {message}\n")
+    sys.exit(1)
+else:
+    print("\nāœ… All modified lines follow naming conventions.")
+    sys.exit(0)
diff --git a/check_remote_tidy_format.py b/check_remote_tidy_format.py
new file mode 100644
index 0000000000000..b4d7c4dfdd048
--- /dev/null
+++ b/check_remote_tidy_format.py
@@ -0,0 +1,64 @@
+import subprocess
+import sys
+import re
+import requests
+import yaml
+
+# === Load config.yaml ===
+with open("config.yaml", "r") as f:
+    config = yaml.safe_load(f)
+
+# === Configuration ===
+PR_NUMBER = str(config["project"]["pr_number"])
+OWNER = config["project"]["owner"]
+REPO = config["project"]["repo"]
+
+headers = {
+    "Accept": "application/vnd.github.v3.diff"
+}
+
+# === Fetch PR Diff ===
+url = f"https://api.github.com/repos/{OWNER}/{REPO}/pulls/{PR_NUMBER}";
+diff_url = f"{url}.diff"
+
+print(f"šŸ“„ F...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/136829
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to