[clang] [llvm] Checking scripts (PR #136829)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Apr 23 01:58:57 PDT 2025
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
More information about the cfe-commits
mailing list