[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