[clang] [clang][docs] Fix Sphinx 8.2 and MyST build errors in Clang docs (PR #220108)
Andrew Lazarev via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 31 15:01:12 PDT 2026
https://github.com/alazarev created https://github.com/llvm/llvm-project/pull/220108
Commit 66617db9163d bumped Sphinx to 8.2, Docutils to 0.22, and MyST-Parser to 4.0.1.
When building Clang documentation with `-W`, this surfaced two breakages:
1. `ControlFlowIntegrityDesign.md`: Dangling `[^ivtbl]` footnote references without a matching footnote definition, leading to a docutils `ERROR: Too many autonumbered footnote references: only 0 corresponding footnote available` / `ERROR: Unknown target name: "ivtbl"`.
2. `ScalableStaticAnalysis/developer-docs/index.md`: `:numbered: true` caused a `ValueError: invalid literal for int() with base 10: 'true'` in MyST because `:numbered:` takes an integer depth or no argument. Fix it to `:numbered:`.
AI tool usage: An AI assistant was used to help research and draft the documentation updates.
>From 014d575fade4d89413be22d4c8ac7ffc7e763094 Mon Sep 17 00:00:00 2001
From: Andrew Lazarev <alazarev at google.com>
Date: Mon, 31 Aug 2026 22:00:47 +0000
Subject: [PATCH] [clang][docs] Fix Sphinx 8.2 and MyST build errors in Clang
docs
Commit 66617db9163d bumped Sphinx to 8.2, Docutils to 0.22, and MyST-Parser to 4.0.1.
When building Clang documentation with -W, this surfaced two breakages:
1. ControlFlowIntegrityDesign.md: Dangling [^ivtbl] footnote references
without a matching footnote definition, leading to a docutils ERROR.
2. ScalableStaticAnalysis/developer-docs/index.md: ":numbered: true"
caused a ValueError in MyST because :numbered: takes an integer depth or
no argument. Fix it to ":numbered:".
AI tool usage: An AI assistant was used to help research and draft the documentation updates.
---
clang/docs/ControlFlowIntegrityDesign.md | 2 ++
clang/docs/ScalableStaticAnalysis/developer-docs/index.md | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/clang/docs/ControlFlowIntegrityDesign.md b/clang/docs/ControlFlowIntegrityDesign.md
index a349b2cc63349..0885b7a7b5891 100644
--- a/clang/docs/ControlFlowIntegrityDesign.md
+++ b/clang/docs/ControlFlowIntegrityDesign.md
@@ -279,6 +279,8 @@ The interleaving scheme implemented in LLVM is inspired by
by Dimitar Bounov, Rami Gökhan Kıcı, and Sorin Lerner, but has its own
enhancements (more in [Interleave virtual tables]).
+[^ivtbl]: [Protecting C++ Dynamic Dispatch Through VTable Interleaving](https://cseweb.ucsd.edu/~lerner/papers/ivtbl-ndss16.pdf). Dimitar Bounov, Rami Gökhan Kıcı, Sorin Lerner.
+
#### Split virtual table groups into separate virtual tables
The Itanium C++ ABI glues multiple individual virtual tables for a class into a combined virtual table (virtual table group).
diff --git a/clang/docs/ScalableStaticAnalysis/developer-docs/index.md b/clang/docs/ScalableStaticAnalysis/developer-docs/index.md
index 685f8e88d2d90..c39537463213a 100644
--- a/clang/docs/ScalableStaticAnalysis/developer-docs/index.md
+++ b/clang/docs/ScalableStaticAnalysis/developer-docs/index.md
@@ -3,7 +3,7 @@
```{toctree}
:glob: true
:maxdepth: 2
-:numbered: true
+:numbered:
*
```
More information about the cfe-commits
mailing list