[llvm-branch-commits] [clang-tools-extra] [clang-tidy][docs] Generate static analyzer check docs as Markdown (PR #211449)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Jul 22 19:52:19 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-tidy
Author: Reid Kleckner (rnk)
<details>
<summary>Changes</summary>
Tracking issue: #<!-- -->201242
See the [migration guide] for more information.
[migration guide]: https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
This is a stacked PR based on #<!-- -->211448 , which will be a standalone commit that
renames *.rst -> *.md before this PR lands for history preservation purposes.
Unlike the other changes in this series, most of these changes are from the generator script. Ignore all files under checks/ except `list.md`, that is hand-modified. I confirmed that running the generator script produces no changes.
Notably, the generator script *added new files*, since it seems there are new checks since the script was run.
-----
HTML tearoff links below for review convenience:
| Source file | Before HTML | After HTML |
| --- | --- | --- |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.BitwiseShift.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.BitwiseShift.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.BitwiseShift.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.CallAndMessage.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.CallAndMessage.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.CallAndMessage.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.DivideZero.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.DivideZero.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.DivideZero.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.NonNullParamChecker.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.NonNullParamChecker.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.NonNullParamChecker.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.NullDereference.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.NullDereference.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.NullDereference.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.StackAddressEscape.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.StackAddressEscape.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.StackAddressEscape.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.UndefinedBinaryOperatorResult.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.UndefinedBinaryOperatorResult.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.UndefinedBinaryOperatorResult.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.VLASize.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.VLASize.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.VLASize.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.ArraySubscript.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.ArraySubscript.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.ArraySubscript.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.Assign.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.Assign.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.Assign.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.Branch.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.Branch.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.Branch.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.CapturedBlockVariable.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.CapturedBlockVariable.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.CapturedBlockVariable.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.NewArraySize.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.NewArraySize.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.NewArraySize.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.UndefReturn.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.UndefReturn.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.UndefReturn.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.ArrayDelete.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/cplusplus.ArrayDelete.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.ArrayDelete.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.InnerPointer.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/cplusplus.InnerPointer.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.InnerPointer.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.Move.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/cplusplus.Move.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.Move.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.NewDelete.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/cplusplus.NewDelete.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.NewDelete.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.NewDeleteLeaks.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/cplusplus.NewDeleteLeaks.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.NewDeleteLeaks.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.PlacementNew.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/cplusplus.PlacementNew.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.PlacementNew.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.SelfAssignment.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/cplusplus.SelfAssignment.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.SelfAssignment.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.StringChecker.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/cplusplus.StringChecker.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.StringChecker.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/deadcode.DeadStores.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/deadcode.DeadStores.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/deadcode.DeadStores.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/fuchsia.HandleChecker.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/fuchsia.HandleChecker.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/fuchsia.HandleChecker.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullPassedToNonnull.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/nullability.NullPassedToNonnull.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullPassedToNonnull.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullReturnedFromNonnull.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/nullability.NullReturnedFromNonnull.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullReturnedFromNonnull.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullableDereferenced.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/nullability.NullableDereferenced.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullableDereferenced.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullablePassedToNonnull.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/nullability.NullablePassedToNonnull.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullablePassedToNonnull.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullableReturnedFromNonnull.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/nullability.NullableReturnedFromNonnull.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullableReturnedFromNonnull.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.core.EnumCastOutOfRange.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/optin.core.EnumCastOutOfRange.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.core.EnumCastOutOfRange.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.cplusplus.UninitializedObject.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/optin.cplusplus.UninitializedObject.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.cplusplus.UninitializedObject.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.cplusplus.VirtualCall.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/optin.cplusplus.VirtualCall.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.cplusplus.VirtualCall.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.mpi.MPI-Checker.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/optin.mpi.MPI-Checker.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.mpi.MPI-Checker.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.osx.cocoa.localizability.EmptyLocalizationContextChecker.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/optin.osx.cocoa.localizability.EmptyLocalizationContextChecker.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.osx.cocoa.localizability.EmptyLocalizationContextChecker.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.osx.cocoa.localizability.NonLocalizedStringChecker.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/optin.osx.cocoa.localizability.NonLocalizedStringChecker.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.osx.cocoa.localizability.NonLocalizedStringChecker.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.performance.GCDAntipattern.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/optin.performance.GCDAntipattern.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.performance.GCDAntipattern.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.performance.Padding.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/optin.performance.Padding.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.performance.Padding.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.portability.UnixAPI.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/optin.portability.UnixAPI.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.portability.UnixAPI.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.taint.TaintedAlloc.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/optin.taint.TaintedAlloc.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.taint.TaintedAlloc.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.API.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.API.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.API.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.NumberObjectConversion.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.NumberObjectConversion.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.NumberObjectConversion.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.ObjCProperty.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.ObjCProperty.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.ObjCProperty.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.SecKeychainAPI.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.SecKeychainAPI.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.SecKeychainAPI.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.AtSync.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.AtSync.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.AtSync.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.AutoreleaseWrite.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.AutoreleaseWrite.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.AutoreleaseWrite.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.ClassRelease.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.ClassRelease.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.ClassRelease.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.Dealloc.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.Dealloc.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.Dealloc.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.IncompatibleMethodTypes.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.IncompatibleMethodTypes.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.IncompatibleMethodTypes.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.Loops.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.Loops.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.Loops.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.MissingSuperCall.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.MissingSuperCall.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.MissingSuperCall.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NSAutoreleasePool.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NSAutoreleasePool.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NSAutoreleasePool.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NSError.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NSError.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NSError.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NilArg.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NilArg.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NilArg.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NonNilReturnValue.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NonNilReturnValue.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NonNilReturnValue.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.ObjCGenerics.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.ObjCGenerics.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.ObjCGenerics.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.RetainCount.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.RetainCount.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.RetainCount.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.RunLoopAutoreleaseLeak.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.RunLoopAutoreleaseLeak.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.RunLoopAutoreleaseLeak.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.SelfInit.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.SelfInit.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.SelfInit.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.SuperDealloc.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.SuperDealloc.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.SuperDealloc.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.UnusedIvars.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.UnusedIvars.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.UnusedIvars.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.VariadicMethodTypes.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.VariadicMethodTypes.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.VariadicMethodTypes.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.CFError.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.CFError.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.CFError.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.CFNumber.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.CFNumber.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.CFNumber.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.CFRetainRelease.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.CFRetainRelease.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.CFRetainRelease.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.containers.OutOfBounds.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.containers.OutOfBounds.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.containers.OutOfBounds.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.containers.PointerSizedValues.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.containers.PointerSizedValues.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.containers.PointerSizedValues.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.FloatLoopCounter.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.FloatLoopCounter.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.FloatLoopCounter.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.PutenvStackArray.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.PutenvStackArray.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.PutenvStackArray.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.SetgidSetuidOrder.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.SetgidSetuidOrder.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.SetgidSetuidOrder.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.cert.env.InvalidPtr.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.cert.env.InvalidPtr.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.cert.env.InvalidPtr.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.DeprecatedOrUnsafeBufferHandling.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.DeprecatedOrUnsafeBufferHandling.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.DeprecatedOrUnsafeBufferHandling.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.UncheckedReturn.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.UncheckedReturn.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.UncheckedReturn.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.bcmp.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.bcmp.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.bcmp.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.bcopy.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.bcopy.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.bcopy.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.bzero.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.bzero.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.bzero.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.decodeValueOfObjCType.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.decodeValueOfObjCType.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.decodeValueOfObjCType.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.getpw.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.getpw.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.getpw.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.gets.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.gets.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.gets.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.mkstemp.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.mkstemp.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.mkstemp.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.mktemp.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.mktemp.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.mktemp.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.rand.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.rand.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.rand.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.strcpy.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.strcpy.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.strcpy.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.vfork.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.vfork.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.vfork.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.API.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/unix.API.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.API.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.BlockInCriticalSection.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/unix.BlockInCriticalSection.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.BlockInCriticalSection.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Errno.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/unix.Errno.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Errno.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Malloc.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/unix.Malloc.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Malloc.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.MallocSizeof.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/unix.MallocSizeof.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.MallocSizeof.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.MismatchedDeallocator.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/unix.MismatchedDeallocator.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.MismatchedDeallocator.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.StdCLibraryFunctions.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/unix.StdCLibraryFunctions.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.StdCLibraryFunctions.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Stream.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/unix.Stream.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Stream.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Vfork.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/unix.Vfork.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Vfork.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.cstring.BadSizeArg.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/unix.cstring.BadSizeArg.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.cstring.BadSizeArg.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.cstring.NullArg.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/unix.cstring.NullArg.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.cstring.NullArg.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/webkit.NoUncountedMemberChecker.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/webkit.NoUncountedMemberChecker.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/webkit.NoUncountedMemberChecker.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/webkit.RefCntblBaseVirtualDtor.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/webkit.RefCntblBaseVirtualDtor.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/webkit.RefCntblBaseVirtualDtor.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/webkit.UncountedLambdaCapturesChecker.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/webkit.UncountedLambdaCapturesChecker.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/webkit.UncountedLambdaCapturesChecker.html) |
| `clang-tools-extra/docs/clang-tidy/checks/list.md` | [before](https://llvm.org/docs/clang-tidy/checks/list.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/list.html) |
---
Patch is 292.97 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/211449.diff
125 Files Affected:
- (modified) clang-tools-extra/clang-tidy/add_new_check.py (+49-48)
- (modified) clang-tools-extra/clang-tidy/performance/NoexceptDestructorCheck.cpp (+1-1)
- (modified) clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp (+1-1)
- (modified) clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.cpp (+1-1)
- (modified) clang-tools-extra/clang-tidy/tool/check_alphabetical_order.py (+26-24)
- (modified) clang-tools-extra/clang-tidy/tool/check_alphabetical_order_test.py (+29-33)
- (modified) clang-tools-extra/clang-tidy/tool/check_update_docs.py (+4-6)
- (modified) clang-tools-extra/docs/clang-tidy/Contributing.rst (+1-1)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.BitwiseShift.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.CallAndMessage.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.DivideZero.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.NonNullParamChecker.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.NullDereference.md (+7-5)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.NullPointerArithm.md (+15)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.StackAddressEscape.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.UndefinedBinaryOperatorResult.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.VLASize.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.ArraySubscript.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.Assign.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.Branch.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.CapturedBlockVariable.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.NewArraySize.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.uninitialized.UndefReturn.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.ArrayDelete.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.InnerPointer.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.Move.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.NewDelete.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.NewDeleteLeaks.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.PlacementNew.md (+7-5)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.PureVirtualCall.md (+15)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.SelfAssignment.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/cplusplus.StringChecker.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/deadcode.DeadStores.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/fuchsia.HandleChecker.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullPassedToNonnull.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullReturnedFromNonnull.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullableDereferenced.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullablePassedToNonnull.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/nullability.NullableReturnedFromNonnull.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.core.EnumCastOutOfRange.md (+7-5)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.core.FixedAddressDereference.md (+15)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.core.UnconditionalVAArg.md (+15)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.cplusplus.UninitializedObject.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.cplusplus.VirtualCall.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.mpi.MPI-Checker.md (+7-5)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.osx.OSObjectCStyleCast.md (+9)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.osx.cocoa.localizability.EmptyLocalizationContextChecker.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.osx.cocoa.localizability.NonLocalizedStringChecker.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.performance.GCDAntipattern.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.performance.Padding.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.portability.UnixAPI.md (+8-6)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.taint.GenericTaint.md (+15)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.taint.TaintedAlloc.md (+7-5)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/optin.taint.TaintedDiv.md (+16)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.API.md (+7-5)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.MIG.md (+9)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.NumberObjectConversion.md (+7-5)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.OSObjectRetainCount.md (+9)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.ObjCProperty.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.SecKeychainAPI.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.AtSync.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.AutoreleaseWrite.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.ClassRelease.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.Dealloc.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.IncompatibleMethodTypes.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.Loops.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.MissingSuperCall.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NSAutoreleasePool.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NSError.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NilArg.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.NonNilReturnValue.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.ObjCGenerics.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.RetainCount.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.RunLoopAutoreleaseLeak.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.SelfInit.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.SuperDealloc.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.UnusedIvars.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.cocoa.VariadicMethodTypes.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.CFError.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.CFNumber.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.CFRetainRelease.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.containers.OutOfBounds.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/osx.coreFoundation.containers.PointerSizedValues.md (+7-5)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.ArrayBound.md (+15)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.FloatLoopCounter.md (+7-5)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.MmapWriteExec.md (+15)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.PointerSub.md (+16)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.PutenvStackArray.md (+7-14)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.SetgidSetuidOrder.md (+7-16)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.VAList.md (+15)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.cert.env.InvalidPtr.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.DeprecatedOrUnsafeBufferHandling.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.UncheckedReturn.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.bcmp.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.bcopy.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.bzero.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.decodeValueOfObjCType.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.getpw.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.gets.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.mkstemp.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.mktemp.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.rand.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.strcpy.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.insecureAPI.vfork.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.API.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.BlockInCriticalSection.md (+7-5)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Chroot.md (+15)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Errno.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Malloc.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.MallocSizeof.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.MismatchedDeallocator.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.StdCLibraryFunctions.md (+9-7)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Stream.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.Vfork.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.cstring.BadSizeArg.md (+7-5)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.cstring.NotNullTerminated.md (+16)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.cstring.NullArg.md (+7-5)
- (added) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/unix.cstring.UninitializedRead.md (+15)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/webkit.NoUncountedMemberChecker.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/webkit.RefCntblBaseVirtualDtor.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/webkit.UncountedLambdaCapturesChecker.md (+7-5)
- (modified) clang-tools-extra/docs/clang-tidy/checks/gen-static-analyzer-docs.py (+35-22)
- (modified) clang-tools-extra/docs/clang-tidy/checks/list.md (+619-606)
- (modified) clang-tools-extra/test/clang-tidy/infrastructure/alphabetical-order.test (+2-2)
- (modified) clang-tools-extra/test/clang-tidy/infrastructure/update-checks-list.test (+2-2)
``````````diff
diff --git a/clang-tools-extra/clang-tidy/add_new_check.py b/clang-tools-extra/clang-tidy/add_new_check.py
index 1792850c5bff0..3990668972cf8 100755
--- a/clang-tools-extra/clang-tidy/add_new_check.py
+++ b/clang-tools-extra/clang-tidy/add_new_check.py
@@ -368,8 +368,8 @@ def get_actual_filename(dirname: str, filename: str) -> str:
# Recreates the list of checks in the docs/clang-tidy/checks directory.
def update_checks_list(clang_tidy_path: str) -> None:
docs_dir = os.path.join(clang_tidy_path, "../docs/clang-tidy/checks")
- filename = os.path.normpath(os.path.join(docs_dir, "list.rst"))
- # Read the content of the current list.rst file
+ filename = os.path.normpath(os.path.join(docs_dir, "list.md"))
+ # Read the content of the current list.md file.
with open(filename, "r", encoding="utf8") as f:
lines = f.readlines()
# Get all existing docs
@@ -377,6 +377,8 @@ def update_checks_list(clang_tidy_path: str) -> None:
for subdir in filter(
lambda s: os.path.isdir(os.path.join(docs_dir, s)), os.listdir(docs_dir)
):
+ if subdir == "clang-analyzer":
+ continue
for file in os.listdir(os.path.join(docs_dir, subdir)):
# TODO: Stop discovering reST files once all clang-tidy check
# documentation has been migrated to MyST.
@@ -384,6 +386,15 @@ def update_checks_list(clang_tidy_path: str) -> None:
doc_files.append((subdir, file))
doc_files.sort()
+ # Filter the file for the rows in the table corresponding to CSA check
+ # aliases.
+ check_alias_lines = lines[lines.index("## Check aliases\n") :]
+ clang_analyzer_alias_rows = [
+ row
+ for row in check_alias_lines
+ if re.match(r"^\| \{doc\}`.*clang-analyzer", row)
+ ]
+
# We couldn't find the source file from the check name, so try to find the
# class name that corresponds to the check in the module file.
def filename_from_module(module_name: str, check_name: str) -> str:
@@ -528,9 +539,11 @@ def detect_alias_target(check_name: str, content: str) -> Optional[str]:
return match.group(1)
return None
+ def doc_file_stem(doc_file: Tuple[str, str]) -> str:
+ return os.path.splitext(doc_file[1])[0]
+
def process_doc(doc_file: Tuple[str, str]) -> Tuple[str, Optional[str]]:
- check_file = os.path.splitext(doc_file[1])[0]
- check_name = f"{doc_file[0]}-{check_file}"
+ check_name = f"{doc_file[0]}-{doc_file_stem(doc_file)}"
with open(os.path.join(docs_dir, *doc_file), "r", encoding="utf8") as doc:
content = doc.read()
@@ -544,13 +557,18 @@ def process_doc(doc_file: Tuple[str, str]) -> Tuple[str, Optional[str]]:
return check_name, detect_alias_target(check_name, content)
+ def format_doc_ref(label: str, module: str, check_file: str) -> str:
+ return f"{{doc}}`{label} <{module}/{check_file}>`"
+
+ def has_auto_fix_cell(check_name: str) -> str:
+ return has_auto_fix(check_name).strip().strip('"')
+
def format_link(doc_file: Tuple[str, str]) -> str:
check_name, match = process_doc(doc_file)
if not match and check_name and not check_name.startswith("clang-analyzer-"):
- check_file = os.path.splitext(doc_file[1])[0]
return (
- f" :doc:`{check_name} <{doc_file[0]}/{check_file}>`,"
- f"{has_auto_fix(check_name)}\n"
+ f"| {format_doc_ref(check_name, doc_file[0], doc_file_stem(doc_file))} | "
+ f"{has_auto_fix_cell(check_name)} |\n"
)
else:
return ""
@@ -558,57 +576,40 @@ def format_link(doc_file: Tuple[str, str]) -> str:
def format_link_alias(doc_file: Tuple[str, str]) -> str:
check_name, match = process_doc(doc_file)
is_clang_analyzer = check_name.startswith("clang-analyzer-")
- if not check_name or (not match and not is_clang_analyzer):
+ if not check_name or is_clang_analyzer or not match:
return ""
module = doc_file[0]
- check_file = os.path.splitext(doc_file[1])[0]
- if is_clang_analyzer:
- title = f"Clang Static Analyzer {check_file}"
- # Clang Static Analyzer aliases still need the external redirect
- # target so list.rst can link to the upstream analyzer docs.
- with open(os.path.join(docs_dir, *doc_file), "r", encoding="utf8") as doc:
- content = doc.read()
- redirect = re.search(r"http-equiv=refresh.*?URL=([^\"'\s]+)", content)
- # Preserve any anchor in checkers.html as part of the redirect target.
- target = "" if not redirect else redirect.group(1)
- autofix = ""
- ref_begin = ""
- ref_end = "_"
- else:
- # Match neighbour or current-directory doc targets.
- redirect_parts = re.search(r"^(?:\.\./([^/]+)/)?([^/]+)$", match)
- assert redirect_parts
- redirect_module = redirect_parts[1] or module
- title = f"{redirect_module}-{redirect_parts[2]}"
- target = f"{redirect_module}/{redirect_parts[2]}"
- autofix = has_auto_fix(title)
- ref_begin = ":doc:"
- ref_end = ""
-
- if target:
- # The checker is just a redirect.
- return (
- f" :doc:`{check_name} <{module}/{check_file}>`, "
- f"{ref_begin}`{title} <{target}>`{ref_end},{autofix}\n"
- )
-
- # The checker is just a alias without redirect.
- return f" :doc:`{check_name} <{module}/{check_file}>`, {title},{autofix}\n"
+ check_file = doc_file_stem(doc_file)
+ # Match neighbour or current-directory doc targets.
+ redirect_parts = re.search(r"^(?:\.\./([^/]+)/)?([^/]+)$", match)
+ assert redirect_parts
+ redirect_module = redirect_parts[1] or module
+ redirect_check = redirect_parts[2]
+ title = f"{redirect_module}-{redirect_check}"
+ redirect = format_doc_ref(title, redirect_module, redirect_check)
+ autofix = has_auto_fix_cell(title)
+
+ return (
+ f"| {format_doc_ref(check_name, module, check_file)} | "
+ f"{redirect} | {autofix} |\n"
+ )
print(f"Updating {filename}...")
with open(filename, "w", encoding="utf8", newline="\n") as f:
for line in lines:
f.write(line)
- if line.strip() == ".. csv-table::":
+ if line == "| Name | Offers fixes |\n":
# We dump the checkers
- f.write(' :header: "Name", "Offers fixes"\n\n')
- f.writelines(map(format_link, doc_files))
+ f.write("| --- | --- |\n")
+ f.writelines(sorted(filter(None, map(format_link, doc_files))))
# and the aliases
- f.write("\nCheck aliases\n-------------\n\n")
- f.write(".. csv-table::\n")
- f.write(' :header: "Name", "Redirect", "Offers fixes"\n\n')
- f.writelines(map(format_link_alias, doc_files))
+ f.write("\n## Check aliases\n\n")
+ f.write("| Name | Redirect | Offers fixes |\n")
+ f.write("| --- | --- | --- |\n")
+ alias_rows = list(map(format_link_alias, doc_files))
+ alias_rows.extend(clang_analyzer_alias_rows)
+ f.writelines(sorted(filter(None, alias_rows)))
break
diff --git a/clang-tools-extra/clang-tidy/performance/NoexceptDestructorCheck.cpp b/clang-tools-extra/clang-tidy/performance/NoexceptDestructorCheck.cpp
index dc293facb2ae1..d353ff0f65e00 100644
--- a/clang-tools-extra/clang-tidy/performance/NoexceptDestructorCheck.cpp
+++ b/clang-tools-extra/clang-tidy/performance/NoexceptDestructorCheck.cpp
@@ -11,7 +11,7 @@
using namespace clang::ast_matchers;
-// FixItHint - comment added to fix list.rst generation in add_new_check.py.
+// FixItHint - comment added to fix list.md generation in add_new_check.py.
// Do not remove. Fixes are generated in base class.
namespace clang::tidy::performance {
diff --git a/clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp b/clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp
index 8691db34ac298..12b87d215ff2e 100644
--- a/clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp
+++ b/clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp
@@ -11,7 +11,7 @@
using namespace clang::ast_matchers;
-// FixItHint - comment added to fix list.rst generation in add_new_check.py.
+// FixItHint - comment added to fix list.md generation in add_new_check.py.
// Do not remove. Fixes are generated in base class.
namespace clang::tidy::performance {
diff --git a/clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.cpp b/clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.cpp
index 9ab6608edffee..9ee8dae440761 100644
--- a/clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.cpp
+++ b/clang-tools-extra/clang-tidy/performance/NoexceptSwapCheck.cpp
@@ -11,7 +11,7 @@
using namespace clang::ast_matchers;
-// FixItHint - comment added to fix list.rst generation in add_new_check.py.
+// FixItHint - comment added to fix list.md generation in add_new_check.py.
// Do not remove. Fixes are generated in base class.
namespace clang::tidy::performance {
diff --git a/clang-tools-extra/clang-tidy/tool/check_alphabetical_order.py b/clang-tools-extra/clang-tidy/tool/check_alphabetical_order.py
index 9493380bba8eb..56dc0fafa31b2 100644
--- a/clang-tools-extra/clang-tidy/tool/check_alphabetical_order.py
+++ b/clang-tools-extra/clang-tidy/tool/check_alphabetical_order.py
@@ -16,7 +16,7 @@
Normalize Clang-Tidy documentation with deterministic sorting for linting/tests.
Behavior:
-- Sort entries in docs/clang-tidy/checks/list.rst csv-table.
+- Sort entries in docs/clang-tidy/checks/list.md Markdown tables.
- Sort key sections in docs/ReleaseNotes.rst.
- Detect duplicated entries in 'Changes in existing checks'.
@@ -47,16 +47,16 @@
# items by their label.
DOC_LABEL_RN_RE: Final = re.compile(r":doc:`(?P<label>[^`<]+)\s*(?:<[^>]+>)?`")
-# Matches a single csv-table row line in list.rst that begins with a :doc:
-# reference, capturing the label. Used to extract the sort key per row.
-DOC_LINE_RE: Final = re.compile(r"^\s*:doc:`(?P<label>[^`<]+?)\s*<[^>]+>`.*$")
+# Matches a single Markdown table row line in list.md that begins with a
+# {doc} reference, capturing the label. Used to extract the sort key per row.
+DOC_LINE_RE: Final = re.compile(r"^\|\s*\{doc\}`(?P<label>[^`<]+?)\s*<[^>]+>`.*$")
EXTRA_DIR: Final = os.path.join(os.path.dirname(__file__), "../..")
DOCS_DIR: Final = os.path.join(EXTRA_DIR, "docs")
CLANG_TIDY_DOCS_DIR: Final = os.path.join(DOCS_DIR, "clang-tidy")
CHECKS_DOCS_DIR: Final = os.path.join(CLANG_TIDY_DOCS_DIR, "checks")
-LIST_DOC: Final = os.path.join(CHECKS_DOCS_DIR, "list.rst")
+LIST_DOC: Final = os.path.join(CHECKS_DOCS_DIR, "list.md")
RELEASE_NOTES_DOC: Final = os.path.join(DOCS_DIR, "ReleaseNotes.rst")
@@ -136,8 +136,16 @@ def write_text(path: str, content: str) -> None:
f.write(content)
-def _normalize_list_rst_lines(lines: Sequence[str]) -> List[str]:
- """Return normalized content of checks list.rst as a list of lines."""
+def _is_markdown_table_header(lines: Sequence[str], index: int) -> bool:
+ return (
+ index + 1 < len(lines)
+ and lines[index].startswith("| Name |")
+ and lines[index + 1].startswith("| ---")
+ )
+
+
+def _normalize_list_md_lines(lines: Sequence[str]) -> List[str]:
+ """Return normalized content of checks list.md as a list of lines."""
out: List[str] = []
i = 0
n = len(lines)
@@ -148,19 +156,13 @@ def check_name(line: str) -> Tuple[int, CheckLabel]:
return (1, "")
while i < n:
- line = lines[i]
- if line.lstrip().startswith(".. csv-table::"):
- out.append(line)
- i += 1
-
- while i < n and (lines[i].startswith(" ") or lines[i].strip() == ""):
- if DOC_LINE_RE.match(lines[i]):
- break
- out.append(lines[i])
- i += 1
+ if _is_markdown_table_header(lines, i):
+ out.append(lines[i])
+ out.append(lines[i + 1])
+ i += 2
entries: List[str] = []
- while i < n and lines[i].startswith(" "):
+ while i < n and lines[i].startswith("| "):
entries.append(lines[i])
i += 1
@@ -168,16 +170,16 @@ def check_name(line: str) -> Tuple[int, CheckLabel]:
out.extend(entries_sorted)
continue
- out.append(line)
+ out.append(lines[i])
i += 1
return out
-def normalize_list_rst(data: str) -> str:
- """Normalize list.rst content and return a string."""
+def normalize_list_md(data: str) -> str:
+ """Normalize list.md content and return a string."""
lines = data.splitlines(True)
- return "".join(_normalize_list_rst_lines(lines))
+ return "".join(_normalize_list_md_lines(lines))
def find_heading(lines: Sequence[str], title: str) -> Optional[int]:
@@ -395,11 +397,11 @@ def process_release_notes(out_path: str, rn_doc: str) -> int:
def process_checks_list(out_path: str, list_doc: str) -> int:
text = read_text(list_doc)
- normalized = normalize_list_rst(text)
+ normalized = normalize_list_md(text)
if text != normalized:
sys.stderr.write(
- "\nChecks in 'clang-tools-extra/docs/clang-tidy/checks/list.rst' csv-table are not alphabetically sorted.\n"
+ "\nChecks in 'clang-tools-extra/docs/clang-tidy/checks/list.md' tables are not alphabetically sorted.\n"
"Fix the ordering by applying diff printed below.\n\n"
)
diff --git a/clang-tools-extra/clang-tidy/tool/check_alphabetical_order_test.py b/clang-tools-extra/clang-tidy/tool/check_alphabetical_order_test.py
index ae8b923be2753..24f154c12ffec 100644
--- a/clang-tools-extra/clang-tidy/tool/check_alphabetical_order_test.py
+++ b/clang-tools-extra/clang-tidy/tool/check_alphabetical_order_test.py
@@ -16,32 +16,30 @@
class TestAlphabeticalOrderCheck(unittest.TestCase):
- def test_normalize_list_rst_sorts_rows(self) -> None:
+ def test_normalize_list_md_sorts_rows(self) -> None:
input_text = textwrap.dedent(
"""\
- .. csv-table:: Clang-Tidy checks
- :header: "Name", "Offers fixes"
-
- :doc:`bugprone-virtual-near-miss <bugprone/virtual-near-miss>`, "Yes"
- :doc:`cert-flp30-c <cert/flp30-c>`,
- :doc:`abseil-cleanup-ctad <abseil/cleanup-ctad>`, "Yes"
- A non-doc row that should stay after docs
+ | Name | Offers fixes |
+ | --- | --- |
+ | {doc}`bugprone-virtual-near-miss <bugprone/virtual-near-miss>` | Yes |
+ | {doc}`cert-flp30-c <cert/flp30-c>` | |
+ | {doc}`abseil-cleanup-ctad <abseil/cleanup-ctad>` | Yes |
+ | A non-doc row that should stay after docs | |
"""
)
expected_text = textwrap.dedent(
"""\
- .. csv-table:: Clang-Tidy checks
- :header: "Name", "Offers fixes"
-
- :doc:`abseil-cleanup-ctad <abseil/cleanup-ctad>`, "Yes"
- :doc:`bugprone-virtual-near-miss <bugprone/virtual-near-miss>`, "Yes"
- :doc:`cert-flp30-c <cert/flp30-c>`,
- A non-doc row that should stay after docs
+ | Name | Offers fixes |
+ | --- | --- |
+ | {doc}`abseil-cleanup-ctad <abseil/cleanup-ctad>` | Yes |
+ | {doc}`bugprone-virtual-near-miss <bugprone/virtual-near-miss>` | Yes |
+ | {doc}`cert-flp30-c <cert/flp30-c>` | |
+ | A non-doc row that should stay after docs | |
"""
)
- out_str = _mod.normalize_list_rst(input_text)
+ out_str = _mod.normalize_list_md(input_text)
self.assertEqual(out_str, expected_text)
def test_find_heading(self) -> None:
@@ -405,18 +403,17 @@ def test_release_notes_handles_multiline_doc(self) -> None:
def test_process_checks_list_normalizes_output(self) -> None:
list_text = textwrap.dedent(
"""\
- .. csv-table:: List
- :header: "Name", "Redirect", "Offers fixes"
-
- :doc:`cert-dcl16-c <cert/dcl16-c>`, :doc:`readability-uppercase-literal-suffix <readability/uppercase-literal-suffix>`, "Yes"
- :doc:`cert-con36-c <cert/con36-c>`, :doc:`bugprone-spuriously-wake-up-functions <bugprone/spuriously-wake-up-functions>`,
- :doc:`cert-dcl37-c <cert/dcl37-c>`, :doc:`bugprone-reserved-identifier <bugprone/reserved-identifier>`, "Yes"
- :doc:`cert-arr39-c <cert/arr39-c>`, :doc:`bugprone-sizeof-expression <bugprone/sizeof-expression>`,
+ | Name | Redirect | Offers fixes |
+ | --- | --- | --- |
+ | {doc}`cert-dcl16-c <cert/dcl16-c>` | {doc}`readability-uppercase-literal-suffix <readability/uppercase-literal-suffix>` | Yes |
+ | {doc}`cert-con36-c <cert/con36-c>` | {doc}`bugprone-spuriously-wake-up-functions <bugprone/spuriously-wake-up-functions>` | |
+ | {doc}`cert-dcl37-c <cert/dcl37-c>` | {doc}`bugprone-reserved-identifier <bugprone/reserved-identifier>` | Yes |
+ | {doc}`cert-arr39-c <cert/arr39-c>` | {doc}`bugprone-sizeof-expression <bugprone/sizeof-expression>` | |
"""
)
with tempfile.TemporaryDirectory() as td:
- in_doc = os.path.join(td, "list.rst")
- out_doc = os.path.join(td, "out.rst")
+ in_doc = os.path.join(td, "list.md")
+ out_doc = os.path.join(td, "out.md")
with open(in_doc, "w", encoding="utf-8") as f:
f.write(list_text)
buf = io.StringIO()
@@ -424,7 +421,7 @@ def test_process_checks_list_normalizes_output(self) -> None:
rc = _mod.process_checks_list(out_doc, in_doc)
self.assertEqual(rc, 0)
self.assertIn(
- "Checks in 'clang-tools-extra/docs/clang-tidy/checks/list.rst' csv-table are not alphabetically sorted.",
+ "Checks in 'clang-tools-extra/docs/clang-tidy/checks/list.md' tables are not alphabetically sorted.",
buf.getvalue(),
)
self.assertEqual(rc, 0)
@@ -433,13 +430,12 @@ def test_process_checks_list_normalizes_output(self) -> None:
expected_out = textwrap.dedent(
"""\
- .. csv-table:: List
- :header: "Name", "Redirect", "Offers fixes"
-
- :doc:`cert-arr39-c <cert/arr39-c>`, :doc:`bugprone-sizeof-expression <bugprone/sizeof-expression>`,
- :doc:`cert-con36-c <cert/con36-c>`, :doc:`bugprone-spuriously-wake-up-functions <bugprone/spuriously-wake-up-functions>`,
- :doc:`cert-dcl16-c <cert/dcl16-c>`, :doc:`readability-uppercase-literal-suffix <readability/uppercase-literal-suffix>`, "Yes"
- :doc:`cert-dcl37-c <cert/dcl37-c>`, :doc:`bugprone-reserved-identifier <bugprone/reserved-identifier>`, "Yes"
+ | Name | Redirect | Offers fixes |
+ | --- | --- | --- |
+ | {doc}`cert-arr39-c <cert/arr39-c>` | {doc}`bugprone-sizeof-expression <bugprone/sizeof-expression>` | |
+ | {doc}`cert-con36-c <cert/con36-c>` | {doc}`bugprone-spuriously-wake-up-functions <bugprone/spuriously-wake-up-functions>` | |
+ | {doc}`cert-dcl16-c <cert/dcl16-c>` | {doc}`readability-uppercase-literal-suffix <readability/uppercase-literal-suffix>` | Yes |
+ | {doc}`cert-dcl37-c <cert/dcl37-c>` | {doc}`bugprone-reserved-identifier <bugprone/reserved-identifier>` | Yes |
"""
)
self.assertEqual(out, expected_out)
diff --git a/clang-tools-extra/clang-tidy/tool/check_update_docs.py b/clang-tools-extra/clang-tidy/tool/check_update_docs.py
index 6f026739f8c54..d4e679e9ce236 100644
--- a/clang-tools-ext...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/211449
More information about the llvm-branch-commits
mailing list