Skip to content

[libc][docs] add missing c99 docs #119239

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 9, 2024
Merged

Conversation

nickdesaulniers
Copy link
Member

Looks like we were missing docs for:

  • float.h
  • wchar.h
  • wctype.h

Which AFAICT were added in ISO C99.

@llvmbot
Copy link
Member

llvmbot commented Dec 9, 2024

@llvm/pr-subscribers-libc

Author: Nick Desaulniers (nickdesaulniers)

Changes

Looks like we were missing docs for:

  • float.h
  • wchar.h
  • wctype.h

Which AFAICT were added in ISO C99.


Full diff: https://github.com/llvm/llvm-project/pull/119239.diff

7 Files Affected:

  • (added) libc/docs/headers/float.rst (+227)
  • (modified) libc/docs/headers/index.rst (+3)
  • (added) libc/docs/headers/wchar.rst (+287)
  • (added) libc/docs/headers/wctype.rst (+86)
  • (added) libc/utils/docgen/float.json (+163)
  • (added) libc/utils/docgen/wchar.json (+198)
  • (added) libc/utils/docgen/wctype.json (+58)
diff --git a/libc/docs/headers/float.rst b/libc/docs/headers/float.rst
new file mode 100644
index 00000000000000..b603867fcef9ca
--- /dev/null
+++ b/libc/docs/headers/float.rst
@@ -0,0 +1,227 @@
+.. include:: ../check.rst
+
+=======
+float.h
+=======
+
+Macros
+======
+
+.. list-table::
+  :widths: auto
+  :align: center
+  :header-rows: 1
+
+  * - Macro
+    - Implemented
+    - C23 Standard Section
+    - POSIX.1-2024 Standard Section
+  * - DBL_DECIMAL_DIG
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - DBL_DIG
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - DBL_EPSILON
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - DBL_HAS_SUBNORM
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - DBL_IS_IEC_60559
+    -
+    - 5.3.5.3.3
+    -
+  * - DBL_MANT_DIG
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - DBL_MAX
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - DBL_MAX_10_EXP
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - DBL_MAX_EXP
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - DBL_MIN
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - DBL_MIN_10_EXP
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - DBL_MIN_EXP
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - DBL_NORM_MAX
+    -
+    - 5.3.5.3.3
+    -
+  * - DBL_SNAN
+    -
+    - 5.3.5.3.3
+    -
+  * - DBL_TRUE_MIN
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - DECIMAL_DIG
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_DECIMAL_DIG
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_DIG
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_EPSILON
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_EVAL_METHOD
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_HAS_SUBNORM
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_IS_IEC_60559
+    -
+    - 5.3.5.3.3
+    -
+  * - FLT_MANT_DIG
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_MAX
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_MAX_10_EXP
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_MAX_EXP
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_MIN
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_MIN_10_EXP
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_MIN_EXP
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_NORM_MAX
+    -
+    - 5.3.5.3.3
+    -
+  * - FLT_RADIX
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_ROUNDS
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - FLT_SNAN
+    -
+    - 5.3.5.3.3
+    -
+  * - FLT_TRUE_MIN
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - INFINITY
+    -
+    - 5.3.5.3.3
+    -
+  * - LDBL_DECIMAL_DIG
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - LDBL_DIG
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - LDBL_EPSILON
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - LDBL_HAS_SUBNORM
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - LDBL_IS_IEC_60559
+    -
+    - 5.3.5.3.3
+    -
+  * - LDBL_MANT_DIG
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - LDBL_MAX
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - LDBL_MAX_10_EXP
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - LDBL_MAX_EXP
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - LDBL_MIN
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - LDBL_MIN_10_EXP
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - LDBL_MIN_EXP
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - LDBL_NORM_MAX
+    -
+    - 5.3.5.3.3
+    -
+  * - LDBL_SNAN
+    -
+    - 5.3.5.3.3
+    -
+  * - LDBL_TRUE_MIN
+    - |check|
+    - 5.3.5.3.3
+    -
+  * - NAN
+    -
+    - 5.3.5.3.3
+    -
+  * - __STDC_VERSION_FLOAT_H__
+    -
+    - 7.7
+    -
+
diff --git a/libc/docs/headers/index.rst b/libc/docs/headers/index.rst
index 7a9186a7c66e86..771087ca44a5d2 100644
--- a/libc/docs/headers/index.rst
+++ b/libc/docs/headers/index.rst
@@ -9,6 +9,7 @@ Implementation Status
    ctype
    errno
    fenv
+   float
    locale
    math/index.rst
    search
@@ -19,3 +20,5 @@ Implementation Status
    strings
    threads
    time
+   wchar
+   wctype
diff --git a/libc/docs/headers/wchar.rst b/libc/docs/headers/wchar.rst
new file mode 100644
index 00000000000000..ce2be3389a2ec2
--- /dev/null
+++ b/libc/docs/headers/wchar.rst
@@ -0,0 +1,287 @@
+.. include:: ../check.rst
+
+=======
+wchar.h
+=======
+
+Macros
+======
+
+.. list-table::
+  :widths: auto
+  :align: center
+  :header-rows: 1
+
+  * - Macro
+    - Implemented
+    - C23 Standard Section
+    - POSIX.1-2024 Standard Section
+  * - WEOF
+    - |check|
+    - 7.31.1
+    -
+  * - __STDC_VERSION_WCHAR_H__
+    -
+    - 7.31.1
+    -
+
+Functions
+=========
+
+.. list-table::
+  :widths: auto
+  :align: center
+  :header-rows: 1
+
+  * - Function
+    - Implemented
+    - C23 Standard Section
+    - POSIX.1-2024 Standard Section
+  * - btowc
+    - |check|
+    - 7.31.6.2.1
+    -
+  * - fgetwc
+    -
+    - 7.31.3.1
+    -
+  * - fgetws
+    -
+    - 7.31.3.2
+    -
+  * - fputwc
+    -
+    - 7.31.3.3
+    -
+  * - fputws
+    -
+    - 7.31.3.4
+    -
+  * - fwide
+    -
+    - 7.31.3.5
+    -
+  * - fwprintf
+    -
+    - 7.31.2.2
+    -
+  * - fwscanf
+    -
+    - 7.31.2.3
+    -
+  * - getwc
+    -
+    - 7.31.3.6
+    -
+  * - getwchar
+    -
+    - 7.31.3.7
+    -
+  * - mbrlen
+    -
+    - 7.31.6.4.2
+    -
+  * - mbrtowc
+    -
+    - 7.31.6.4.3
+    -
+  * - mbsinit
+    -
+    - 7.31.6.3.1
+    -
+  * - mbsrtowcs
+    -
+    - 7.31.6.5.2
+    -
+  * - putwc
+    -
+    - 7.31.3.8
+    -
+  * - putwchar
+    -
+    - 7.31.3.9
+    -
+  * - swprintf
+    -
+    - 7.31.2.4
+    -
+  * - swscanf
+    -
+    - 7.31.2.5
+    -
+  * - ungetwc
+    -
+    - 7.31.3.10
+    -
+  * - vfwprintf
+    -
+    - 7.31.2.6
+    -
+  * - vfwscanf
+    -
+    - 7.31.2.7
+    -
+  * - vswprintf
+    -
+    - 7.31.2.8
+    -
+  * - vswscanf
+    -
+    - 7.31.2.9
+    -
+  * - vwprintf
+    -
+    - 7.31.2.10
+    -
+  * - vwscanf
+    -
+    - 7.31.2.11
+    -
+  * - wcrtomb
+    -
+    - 7.31.6.4.4
+    -
+  * - wcscat
+    -
+    - 7.31.4.4.1
+    -
+  * - wcschr
+    -
+    - 7.31.4.6.2
+    -
+  * - wcscmp
+    -
+    - 7.31.4.5.2
+    -
+  * - wcscoll
+    -
+    - 7.31.4.5.3
+    -
+  * - wcscpy
+    -
+    - 7.31.4.3.1
+    -
+  * - wcscspn
+    -
+    - 7.31.4.6.3
+    -
+  * - wcsftime
+    -
+    - 7.31.5.1
+    -
+  * - wcslen
+    -
+    - 7.31.4.7.1
+    -
+  * - wcsncat
+    -
+    - 7.31.4.4.2
+    -
+  * - wcsncmp
+    -
+    - 7.31.4.5.4
+    -
+  * - wcsncpy
+    -
+    - 7.31.4.3.2
+    -
+  * - wcspbrk
+    -
+    - 7.31.4.6.4
+    -
+  * - wcsrchr
+    -
+    - 7.31.4.6.5
+    -
+  * - wcsrtombs
+    -
+    - 7.31.6.5.3
+    -
+  * - wcsspn
+    -
+    - 7.31.4.6.6
+    -
+  * - wcsstr
+    -
+    - 7.31.4.6.7
+    -
+  * - wcstod
+    -
+    - 7.31.4.2.2
+    -
+  * - wcstod128
+    -
+    - 7.31.4.2.3
+    -
+  * - wcstod32
+    -
+    - 7.31.4.2.3
+    -
+  * - wcstod64
+    -
+    - 7.31.4.2.3
+    -
+  * - wcstof
+    -
+    - 7.31.4.2.2
+    -
+  * - wcstok
+    -
+    - 7.31.4.6.8
+    -
+  * - wcstol
+    -
+    - 7.31.4.2.4
+    -
+  * - wcstold
+    -
+    - 7.31.4.2.2
+    -
+  * - wcstoll
+    -
+    - 7.31.4.2.4
+    -
+  * - wcstoul
+    -
+    - 7.31.4.2.4
+    -
+  * - wcstoull
+    -
+    - 7.31.4.2.4
+    -
+  * - wcsxfrm
+    -
+    - 7.31.4.5.5
+    -
+  * - wctob
+    - |check|
+    - 7.31.6.2.2
+    -
+  * - wmemchr
+    -
+    - 7.31.4.6.9
+    -
+  * - wmemcmp
+    -
+    - 7.31.4.5.6
+    -
+  * - wmemcpy
+    -
+    - 7.31.4.3.3
+    -
+  * - wmemmove
+    -
+    - 7.31.4.3.4
+    -
+  * - wmemset
+    -
+    - 7.31.4.7.2
+    -
+  * - wprintf
+    -
+    - 7.31.2.12
+    -
+  * - wscanf
+    -
+    - 7.31.2.13
+    -
diff --git a/libc/docs/headers/wctype.rst b/libc/docs/headers/wctype.rst
new file mode 100644
index 00000000000000..48096c3e25804b
--- /dev/null
+++ b/libc/docs/headers/wctype.rst
@@ -0,0 +1,86 @@
+.. include:: ../check.rst
+
+========
+wctype.h
+========
+
+Functions
+=========
+
+.. list-table::
+  :widths: auto
+  :align: center
+  :header-rows: 1
+
+  * - Function
+    - Implemented
+    - C23 Standard Section
+    - POSIX.1-2024 Standard Section
+  * - iswalnum
+    -
+    - 7.32.2.1.1
+    -
+  * - iswalpha
+    -
+    - 7.32.2.1.2
+    -
+  * - iswblank
+    -
+    - 7.32.2.1.4
+    -
+  * - iswctype
+    -
+    - 7.32.2.2.1
+    -
+  * - iswdigit
+    -
+    - 7.32.2.1.5
+    -
+  * - iswgraph
+    -
+    - 7.32.2.1.6
+    -
+  * - iswlower
+    -
+    - 7.32.2.1.7
+    -
+  * - iswprint
+    -
+    - 7.32.2.1.8
+    -
+  * - iswpunct
+    -
+    - 7.32.2.1.9
+    -
+  * - iswspace
+    -
+    - 7.32.2.1.10
+    -
+  * - iswupper
+    -
+    - 7.32.2.1.11
+    -
+  * - iswxdigit
+    -
+    - 7.32.2.1.12
+    -
+  * - towctrans
+    -
+    - 7.32.3.2.1
+    -
+  * - towlower
+    -
+    - 7.32.3.1.1
+    -
+  * - towupper
+    -
+    - 7.32.3.1.2
+    -
+  * - wctrans
+    -
+    - 7.32.3.2.2
+    -
+  * - wctype
+    -
+    - 7.32.2.2.2
+    -
diff --git a/libc/utils/docgen/float.json b/libc/utils/docgen/float.json
new file mode 100644
index 00000000000000..a906cbf4fa754b
--- /dev/null
+++ b/libc/utils/docgen/float.json
@@ -0,0 +1,163 @@
+{
+  "macros": {
+    "__STDC_VERSION_FLOAT_H__": {
+      "c-definition": "7.7"
+    },
+    "FLT_EVAL_METHOD" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_ROUNDS" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_EVAL_METHOD" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_HAS_SUBNORM" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_HAS_SUBNORM" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_HAS_SUBNORM" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_RADIX" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_MANT_DIG" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_MANT_DIG" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_MANT_DIG" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_DECIMAL_DIG" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_DECIMAL_DIG" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_DECIMAL_DIG" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DECIMAL_DIG" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_IS_IEC_60559" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_IS_IEC_60559" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_IS_IEC_60559" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_DIG" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_DIG" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_DIG" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_MIN_EXP" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_MIN_EXP" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_MIN_EXP" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_MIN_10_EXP" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_MIN_10_EXP" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_MIN_10_EXP" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_MAX_EXP" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_MAX_EXP" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_MAX_EXP" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_MAX_10_EXP" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_MAX_10_EXP" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_MAX_10_EXP" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_MAX" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_MAX" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_MAX" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_NORM_MAX" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_NORM_MAX" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_NORM_MAX" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_EPSILON" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_EPSILON" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_EPSILON" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_MIN" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_MIN" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_MIN" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_SNAN" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_SNAN" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_SNAN" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "FLT_TRUE_MIN" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "DBL_TRUE_MIN" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "LDBL_TRUE_MIN" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "INFINITY" : {
+      "c-definition": "5.3.5.3.3"
+    },
+    "NAN" : {
+      "c-definition": "5.3.5.3.3"
+    }
+  }
+}
diff --git a/libc/utils/docgen/wchar.json b/libc/utils/docgen/wchar.json
new file mode 100644
index 00000000000000..a44f2ef82b7cd6
--- /dev/null
+++ b/libc/utils/docgen/wchar.json
@@ -0,0 +1,198 @@
+{
+  "macros": {
+    "__STDC_VERSION_WCHAR_H__": {
+      "c-definition": "7.31.1"
+    },
+    "WEOF": {
+      "c-definition": "7.31.1"
+    }
+  },
+  "functions": {
+    "fwprintf": {
+      "c-definition": "7.31.2.2"
+    },
+    "fwscanf": {
+      "c-definition": "7.31.2.3"
+    },
+    "swprintf": {
+      "c-definition": "7.31.2.4"
+    },
+    "swscanf": {
+      "c-definition": "7.31.2.5"
+    },
+    "vfwprintf": {
+      "c-definition": "7.31.2.6"
+    },
+    "vfwscanf": {
+      "c-definition": "7.31.2.7"
+    },
+    "vswprintf": {
+      "c-definition": "7.31.2.8"
+    },
+    "vswscanf": {
+      "c-definition": "7.31.2.9"
+    },
+    "vwprintf": {
+      "c-definition": "7.31.2.10"
+    },
+    "vwscanf": {
+      "c-definition": "7.31.2.11"
+    },
+    "wprintf": {
+      "c-definition": "7.31.2.12"
+    },
+    "wscanf": {
+      "c-definition": "7.31.2.13"
+    },
+    "fgetwc": {
+      "c-definition": "7.31.3.1"
+    },
+    "fgetws": {
+      "c-definition": "7.31.3.2"
+    },
+    "fputwc": {
+      "c-definition": "7.31.3.3"
+    },
+    "fputws": {
+      "c-definition": "7.31.3.4"
+    },
+    "fwide": {
+      "c-definition": "7.31.3.5"
+    },
+    "getwc": {
+      "c-definition": "7.31.3.6"
+    },
+    "getwchar": {
+      "c-definition": "7.31.3.7"
+    },
+    "putwc": {
+      "c-definition": "7.31.3.8"
+    },
+    "putwchar": {
+      "c-definition": "7.31.3.9"
+    },
+    "ungetwc": {
+      "c-definition": "7.31.3.10"
+    },
+    "wcstod": {
+      "c-definition": "7.31.4.2.2"
+    },
+    "wcstof": {
+      "c-definition": "7.31.4.2.2"
+    },
+    "wcstold": {
+      "c-definition": "7.31.4.2.2"
+    },
+    "wcstod32": {
+      "c-definition": "7.31.4.2.3"
+    },
+    "wcstod64": {
+      "c-definition": "7.31.4.2.3"
+    },
+    "wcstod128": {
+      "c-definition": "7.31.4.2.3"
+    },
+    "wcstol": {
+      "c-definition": "7.31.4.2.4"
+    },
+    "wcstoll": {
+      "c-definition": "7.31.4.2.4"
+    },
+    "wcstoul": {
+      "c-definition": "7.31.4.2.4"
+    },
+    "wcstoull": {
+      "c-definition": "7.31.4.2.4"
+    },
+    "wcscpy": {
+      "c-definition": "7.31.4.3.1"
+    },
+    "wcsncpy": {
+      "c-definition": "7.31.4.3.2"
+    },
+    "wmemcpy": {
+      "c-definition": "7.31.4.3.3"
+    },
+    "wmemmove": {
+      "c-definition": "7.31.4.3.4"
+    },
+    "wcscat": {
+      "c-definition": "7.31.4.4.1"
+    },
+    "wcsncat": {
+      "c-definition": "7.31.4.4.2"
+    },
+    "wcscmp": {
+      "c-definition": "7.31.4.5.2"
+    },
+    "wcscoll": {
+      "c-definition": "7.31.4.5.3"
+    },
+    "wcsncmp": {
+      "c-definition": "7.31.4.5.4"
+    },
+    "wcsxfrm": {
+      "c-definition": "7.31.4.5.5"
+    },
+    "wmemcmp": {
+      "c-definition": "7.31.4.5.6"
+    },
+    "wcschr": {
+      "c-definition": "7.31.4.6.2"
+    },
+    "wcscspn": {
+      "c-definition": "7.31.4.6.3"
+    },
+    "wcspbrk": {
+      "c-definition": "7.31.4.6.4"
+    },
+    "wcsrchr": {
+      "c-definition": "7.31.4.6.5"
+    },
+    "wcsspn": {
+      "c-definition": "7.31.4.6.6"
+    },
+    "wcsstr": {
+      "c-definition": "7.31.4.6.7"
+    },
+    "wcstok": {
+      "c-definition": "7.31.4.6.8"
+    },
+    "wmemchr": {
+      "c-definition": "7.31.4.6.9"
+    },
+    "wcslen": {
+      "c-definition": "7.31.4.7.1"
+    },
+    "wmemset": {
+      "c-definition": "7.31.4.7.2"
+    },
+    "wcsftime": {
+      "c-definition": "7.31.5.1"
+    },
+    "btowc": {
+      "c-definition": "7.31.6.2.1"
+    },
+    "wctob": {
+      "c-definition": "7.31.6.2.2"
+    },
+    "mbsinit": {
+      "c-definition": "7.31.6.3.1"
+    },
+    "mbrlen": {
+      "c-definition": "7.31.6.4.2"
+    },
+    "mbrtowc": {
+      "c-definition": "7.31.6.4.3"
+    },
+    "wcrtomb": {
+      "c-definition": "7.31.6.4.4"
+    },
+    "mbsrtowcs": {
+      "c-definition": "7.31.6.5.2"
+    },
+    "wcsrtombs": {
+      "c-definition": "7.31.6.5.3"
+    }
+  }
+}
diff --git a/libc/utils/docgen/wctype.json b/libc/utils/docgen/wctype.json
new file mode 100644
index 00000000000000..29bac1d5d03aa4
--- /dev/null
+++ b/libc/utils/docgen/wctype.json
@@ -0,0 +1,58 @@
+{
+  "functions": {
+    "iswalnum": {
+      "c-definition": "7.32.2.1.1"
+    },
+    "iswalpha": {
+      "c-definition": "7.32.2.1.2"
+    },
+    "iswblank": {
+      "c-definition": "7.32.2.1.3"
+    },
+    "iswblank": {
+      "c-definition": "7.32.2.1.4"
+    },
+    "iswdigit": {
+      "c-definition": "7.32.2.1.5"
+    },
+    "iswgraph": {
+      "c-definition": "7.32.2.1.6"
+    },
+    "iswlower": {
+      "c-definition": "7.32.2.1.7"
+    },
+    "iswprint": {
+      "c-definition": "7.32.2.1.8"
+    },
+    "iswpunct": {
+      "c-definition": "7.32.2.1.9"
+    },
+    "iswspace": {
+      "c-definition": "7.32.2.1.10"
+    },
+    "iswupper": {
+      "c-definition": "7.32.2.1.11"
+    },
+    "iswxdigit": {
+      "c-definition": "7.32.2.1.12"
+    },
+    "iswctype": {
+      "c-definition": "7.32.2.2.1"
+    },
+    "wctype": {
+      "c-definition": "7.32.2.2.2"
+    },
+    "towlower": {
+      "c-definition": "7.32.3.1.1"
+    },
+    "towupper": {
+      "c-definition": "7.32.3.1.2"
+    },
+    "towctrans": {
+      "c-definition": "7.32.3.2.1"
+    },
+    "wctrans": {
+      "c-definition": "7.32.3.2.2"
+    }
+  }
+}

Looks like we were missing docs for:
- float.h
- wchar.h
- wctype.h

Which AFAICT were added in ISO C99.
@nickdesaulniers
Copy link
Member Author

rebased; ready for review 😉

Copy link
Contributor

@SchrodingerZhu SchrodingerZhu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@nickdesaulniers nickdesaulniers merged commit 429f0f1 into llvm:main Dec 9, 2024
6 of 7 checks passed
@nickdesaulniers nickdesaulniers deleted the docs_c99 branch December 9, 2024 22:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants