llvm-project/libc/include/stdlib.yaml
Roland McGrath a24a7548b8
[libc][hdrgen] Sort identifiers with leading underscores specially (#165745)
This makes the sorting behavior more uniform: functions and
macros are always sorted (separately), not only when merging.

This changes the sort order used for functions and other things
sorted by their symbol names.  Symbols are sorted alphabetically
without regard to leading underscores, and then for identifiers
that differ only in the number of leading underscores, the fewer
underscores the earlier in the sort order.  For the functions
declared in a generated header, adjacent names with and without
underscores will be grouped together without blank lines.

This is implemented by factoring the name field, equality, and
sorting support out of the various entity classes into a new
common superclass (hdrgen.Symbol).

This uncovered YAML's requirement to quote the string "NULL" to
avoid pyyaml parsing it as None (equivalent to Javascript null)
rather than a string.
2025-10-30 11:49:22 -07:00

335 lines
6.6 KiB
YAML

header: stdlib.h
header_template: stdlib.h.def
standards:
- stdc
merge_yaml_files:
- stdlib-malloc.yaml
macros:
- macro_name: "NULL"
macro_header: null-macro.h
types:
- type_name: __atexithandler_t
- type_name: __qsortcompare_t
- type_name: __qsortrcompare_t
- type_name: __search_compare_t
- type_name: div_t
- type_name: ldiv_t
- type_name: lldiv_t
- type_name: locale_t
- type_name: size_t
enums: []
objects: []
functions:
- name: _Exit
standards:
- stdc
return_type: _Noreturn void
arguments:
- type: int
- name: a64l
standards:
- posix
return_type: long
arguments:
- type: const char *
- name: abort
standards:
- stdc
return_type: _Noreturn void
arguments:
- type: void
- name: abs
standards:
- stdc
return_type: int
arguments:
- type: int
- name: at_quick_exit
standards:
- stdc
return_type: int
arguments:
- type: __atexithandler_t
- name: atexit
standards:
- stdc
return_type: int
arguments:
- type: __atexithandler_t
- name: atof
standards:
- stdc
return_type: double
arguments:
- type: const char *__restrict
- name: atoi
standards:
- stdc
return_type: int
arguments:
- type: const char *
- name: atol
standards:
- stdc
return_type: long
arguments:
- type: const char *
- name: atoll
standards:
- stdc
return_type: long long
arguments:
- type: const char *
- name: bsearch
standards:
- stdc
return_type: void *
arguments:
- type: const void *
- type: const void *
- type: size_t
- type: size_t
- type: __search_compare_t
- name: div
standards:
- stdc
return_type: div_t
arguments:
- type: int
- type: int
- name: exit
standards:
- stdc
return_type: _Noreturn void
arguments:
- type: int
- name: getenv
standards:
- stdc
return_type: char *
arguments:
- type: const char *
- name: labs
standards:
- stdc
return_type: long
arguments:
- type: long
- name: ldiv
standards:
- stdc
return_type: ldiv_t
arguments:
- type: long
- type: long
- name: llabs
standards:
- stdc
return_type: long long
arguments:
- type: long long
- name: lldiv
standards:
- stdc
return_type: lldiv_t
arguments:
- type: long long
- type: long long
- name: memalignment
standards:
- stdc
return_type: size_t
arguments:
- type: const void *
- name: posix_memalign
standards:
- posix
return_type: int
arguments:
- type: void **
- type: size_t
- type: size_t
- name: qsort
standards:
- stdc
return_type: void
arguments:
- type: void *
- type: size_t
- type: size_t
- type: __qsortcompare_t
- name: qsort_r
standards:
- POSIX
return_type: void
arguments:
- type: void *
- type: size_t
- type: size_t
- type: __qsortrcompare_t
- type: void *
- name: quick_exit
standards:
- stdc
return_type: _Noreturn void
arguments:
- type: int
- name: rand
standards:
- stdc
return_type: int
arguments:
- type: void
- name: srand
standards:
- stdc
return_type: void
arguments:
- type: unsigned int
- name: strfromd
standards:
- stdc
return_type: int
arguments:
- type: char *__restrict
- type: size_t
- type: const char *__restrict
- type: double
- name: strfromf
standards:
- stdc
return_type: int
arguments:
- type: char *__restrict
- type: size_t
- type: const char *__restrict
- type: float
- name: strfroml
standards:
- stdc
return_type: int
arguments:
- type: char *__restrict
- type: size_t
- type: const char *__restrict
- type: long double
- name: strtod
standards:
- stdc
return_type: double
arguments:
- type: const char *__restrict
- type: char **__restrict
- name: strtof
standards:
- stdc
return_type: float
arguments:
- type: const char *__restrict
- type: char **__restrict
- name: strtol
standards:
- stdc
return_type: long
arguments:
- type: const char *__restrict
- type: char **__restrict
- type: int
- name: strtold
standards:
- stdc
return_type: long double
arguments:
- type: const char *__restrict
- type: char **__restrict
- name: strtoll
standards:
- stdc
return_type: long long
arguments:
- type: const char *__restrict
- type: char **__restrict
- type: int
- name: strtoul
standards:
- stdc
return_type: unsigned long
arguments:
- type: const char *__restrict
- type: char **__restrict
- type: int
- name: strtoull
standards:
- stdc
return_type: unsigned long long
arguments:
- type: const char *__restrict
- type: char **__restrict
- type: int
- name: strtod_l
standards:
- stdc
return_type: double
arguments:
- type: const char *__restrict
- type: char **__restrict
- type: locale_t
- name: strtof_l
standards:
- stdc
return_type: float
arguments:
- type: const char *__restrict
- type: char **__restrict
- type: locale_t
- name: strtol_l
standards:
- stdc
return_type: long
arguments:
- type: const char *__restrict
- type: char **__restrict
- type: int
- type: locale_t
- name: strtold_l
standards:
- stdc
return_type: long double
arguments:
- type: const char *__restrict
- type: char **__restrict
- type: locale_t
- name: strtoll_l
standards:
- stdc
return_type: long long
arguments:
- type: const char *__restrict
- type: char **__restrict
- type: int
- type: locale_t
- name: strtoul_l
standards:
- stdc
return_type: unsigned long
arguments:
- type: const char *__restrict
- type: char **__restrict
- type: int
- type: locale_t
- name: strtoull_l
standards:
- stdc
return_type: unsigned long long
arguments:
- type: const char *__restrict
- type: char **__restrict
- type: int
- type: locale_t
- name: system
standards:
- stdc
return_type: int
arguments:
- type: const char *