From 7fd8b624a9be64b30a1b811428487ba45d6f69eb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= <tkoeppe@google.com>
Date: Sat, 17 Sep 2022 11:46:17 +0100
Subject: [PATCH] [support, etc.] New subclause "Arithmetic types".

The new subclause contains both "integer types" (<cstdint>)
and "extended floating-point types" (<stdfloat>).

Previously, the newly added <stdfloat> synopsis was somewhat
disconnected and out of context.
---
 source/lib-intro.tex    |  2 +-
 source/preprocessor.tex |  2 +-
 source/support.tex      | 18 +++++++++---------
 source/xrefdelta.tex    |  2 ++
 4 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/source/lib-intro.tex b/source/lib-intro.tex
index 0216d770498..ba5947bb6d6 100644
--- a/source/lib-intro.tex
+++ b/source/lib-intro.tex
@@ -1441,7 +1441,7 @@
 \ref{support.types}      & Types                     & \tcode{<cstddef>}          \\ \rowsep
 \ref{support.limits}     & Implementation properties &
   \tcode{<cfloat>}, \tcode{<climits>}, \tcode{<limits>}, \tcode{<version>} \\ \rowsep
-\ref{cstdint}            & Integer types             & \tcode{<cstdint>}          \\ \rowsep
+\ref{support.arith.types}& Arithmetic types          & \tcode{<cstdint>}, \tcode{<stdfloat>} \\ \rowsep
 \ref{support.start.term} & Start and termination     & \tcode{<cstdlib>}          \\ \rowsep
 \ref{support.dynamic}    & Dynamic memory management & \tcode{<new>}              \\ \rowsep
 \ref{support.rtti}       & Type identification       & \tcode{<typeinfo>}         \\ \rowsep
diff --git a/source/preprocessor.tex b/source/preprocessor.tex
index af42cac023a..8ac266b714f 100644
--- a/source/preprocessor.tex
+++ b/source/preprocessor.tex
@@ -474,7 +474,7 @@
 in~\ref{support.limits}. For the purposes of this token conversion and evaluation
 all signed and unsigned integer types
 act as if they have the same representation as, respectively,
-\tcode{intmax_t} or \tcode{uintmax_t}\iref{cstdint}.
+\tcode{intmax_t} or \tcode{uintmax_t}\iref{cstdint.syn}.
 \begin{note}
 Thus on an
 implementation where \tcode{std::numeric_limits<int>::max()} is \tcode{0x7FFF}
diff --git a/source/support.tex b/source/support.tex
index 3ea8ec79c59..d6723fbcc21 100644
--- a/source/support.tex
+++ b/source/support.tex
@@ -26,8 +26,7 @@
   \tcode{<cstddef>}, \tcode{<cstdlib>}   \\ \rowsep
 \ref{support.limits}      & Implementation properties &
   \tcode{<cfloat>}, \tcode{<climits>}, \tcode{<limits>}, \tcode{<version>}    \\ \rowsep
-\ref{cstdint}             & Integer types             &   \tcode{<cstdint>}   \\ \rowsep
-\ref{stdfloat.syn}        & Header \libheader{stdfloat} synopsis & \tcode{<stdfloat>} \\ \rowsep
+\ref{support.arith.types} & Arithmetic types          &   \tcode{<cstdint>}, \tcode{<stdfloat>}  \\ \rowsep
 \ref{support.start.term}  & Start and termination     &   \tcode{<cstdlib>}   \\ \rowsep
 \ref{support.dynamic}     & Dynamic memory management &   \tcode{<new>}       \\ \rowsep
 \ref{support.rtti}        & Type identification       &   \tcode{<typeinfo>}  \\ \rowsep
@@ -1844,18 +1843,15 @@
 
 \xrefc{5.2.4.2.2}
 
-\rSec1[cstdint]{Integer types}
+\rSec1[support.arith.types]{Arithmetic types}
 
-\rSec2[cstdint.general]{General}
+\rSec2[cstdint.syn]{Header \tcode{<cstdint>} synopsis}
 
 \pnum
-The header
-\libheaderref{cstdint}
+The header \libheader{cstdint}
 supplies integer types having specified widths, and
 macros that specify limits of integer types.
 
-\rSec2[cstdint.syn]{Header \tcode{<cstdint>} synopsis}
-
 \indexheader{cstdint}%
 \indexlibraryglobal{int8_t}%
 \indexlibraryglobal{int16_t}%
@@ -1997,7 +1993,11 @@
 respectively.
 \end{note}
 
-\rSec1[stdfloat.syn]{Header \tcode{<stdfloat>} synopsis}
+\rSec2[stdfloat.syn]{Header \tcode{<stdfloat>} synopsis}
+
+\pnum
+The header \libheader{stdfloat} defines macros that describe
+the presence of optional extended floating-point types\iref{basic.extended.fp}.
 
 \indexheader{stdfloat}%
 \begin{codeblock}
diff --git a/source/xrefdelta.tex b/source/xrefdelta.tex
index f81f0a2eefc..6145e0785c8 100644
--- a/source/xrefdelta.tex
+++ b/source/xrefdelta.tex
@@ -100,6 +100,8 @@
 
 % P1467R9 Extended floating-point types and standard names
 \movedxref{complex.special}{complex.members}
+\movedxref{cstdint}{support.arith.types}
+\removedxref{cstdint.general}
 
 % LWG3659 Consider ATOMIC_FLAG_INIT undeprecation
 \removedxref{depr.atomics.flag}