Files
llvm/libc/include/stdio.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

421 lines
8.1 KiB
YAML

header: stdio.h
header_template: stdio.h.def
macros:
- macro_name: "NULL"
macro_header: null-macro.h
- macro_name: stdout
macro_value: stdout
- macro_name: stdin
macro_value: stdin
- macro_name: stderr
macro_value: stderr
types:
- type_name: size_t
- type_name: off_t
- type_name: cookie_io_functions_t
- type_name: FILE
enums: []
objects:
- object_name: stdin
object_type: FILE *
- object_name: stdout
object_type: FILE *
- object_name: stderr
object_type: FILE *
functions:
- name: asprintf
standards:
- GNUExtensions
return_type: int
arguments:
- type: char **__restrict
- type: const char *__restrict
- type: '...'
- name: clearerr
standards:
- stdc
return_type: void
arguments:
- type: FILE *
- name: clearerr_unlocked
standards:
- GNUExtensions
return_type: void
arguments:
- type: FILE *
- name: fclose
standards:
- stdc
return_type: int
arguments:
- type: FILE *
- name: fdopen
standards:
- POSIX
return_type: FILE *
arguments:
- type: int
- type: const char *
- name: feof
standards:
- stdc
return_type: int
arguments:
- type: FILE *
- name: feof_unlocked
standards:
- GNUExtensions
return_type: int
arguments:
- type: FILE *
- name: ferror
standards:
- stdc
return_type: int
arguments:
- type: FILE *
- name: ferror_unlocked
standards:
- GNUExtensions
return_type: int
arguments:
- type: FILE *
- name: fflush
standards:
- stdc
return_type: int
arguments:
- type: FILE *
- name: fgetc
standards:
- stdc
return_type: int
arguments:
- type: FILE *
- name: fgetc_unlocked
standards:
- GNUExtensions
return_type: int
arguments:
- type: FILE *
- name: fgets
standards:
- stdc
return_type: char *
arguments:
- type: char *__restrict
- type: int
- type: FILE *__restrict
- name: fileno
standards:
- POSIX
return_type: int
arguments:
- type: FILE *
- name: flockfile
standards:
- POSIX
return_type: void
arguments:
- type: FILE *
- name: fopen
standards:
- stdc
return_type: FILE *
arguments:
- type: const char *
- type: const char *
- name: fopencookie
standards:
- GNUExtensions
return_type: FILE *
arguments:
- type: void *
- type: const char *
- type: cookie_io_functions_t
- name: fprintf
standards:
- stdc
return_type: int
arguments:
- type: FILE *__restrict
- type: const char *__restrict
- type: '...'
- name: fputc
standards:
- stdc
return_type: int
arguments:
- type: int
- type: FILE *
- name: fputs
standards:
- stdc
return_type: int
arguments:
- type: const char *__restrict
- type: FILE *__restrict
- name: fread
standards:
- stdc
return_type: size_t
arguments:
- type: void *__restrict
- type: size_t
- type: size_t
- type: FILE *__restrict
- name: fread_unlocked
standards:
- GNUExtensions
return_type: size_t
arguments:
- type: void *__restrict
- type: size_t
- type: size_t
- type: FILE *__restrict
- name: fscanf
standards:
- stdc
return_type: int
arguments:
- type: FILE *__restrict
- type: const char *__restrict
- type: '...'
- name: vfscanf
standards:
- stdc
return_type: int
arguments:
- type: FILE *__restrict
- type: const char *__restrict
- type: va_list
- name: fseek
standards:
- stdc
return_type: int
arguments:
- type: FILE *
- type: long
- type: int
- name: fseeko
standards:
- POSIX
return_type: int
arguments:
- type: FILE *
- type: off_t
- type: int
- name: ftell
standards:
- stdc
return_type: long
arguments:
- type: FILE *
- name: ftello
standards:
- POSIX
return_type: off_t
arguments:
- type: FILE *
- name: funlockfile
standards:
- POSIX
return_type: void
arguments:
- type: FILE *
- name: fwrite
standards:
- stdc
return_type: size_t
arguments:
- type: const void *__restrict
- type: size_t
- type: size_t
- type: FILE *__restrict
- name: fwrite_unlocked
standards:
- GNUExtensions
return_type: size_t
arguments:
- type: const void *__restrict
- type: size_t
- type: size_t
- type: FILE *__restrict
- name: getc
standards:
- stdc
return_type: int
arguments:
- type: FILE *
- name: getc_unlocked
standards:
- POSIX
return_type: int
arguments:
- type: FILE *
- name: getchar
standards:
- stdc
return_type: int
arguments: []
- name: getchar_unlocked
standards:
- POSIX
return_type: int
arguments: []
- name: perror
standards:
- stdc
return_type: void
arguments:
- type: const char *
- name: printf
standards:
- stdc
return_type: int
arguments:
- type: const char *__restrict
- type: '...'
- name: putc
standards:
- stdc
return_type: int
arguments:
- type: int
- type: FILE *
- name: putchar
standards:
- stdc
return_type: int
arguments:
- type: int
- name: puts
standards:
- stdc
return_type: int
arguments:
- type: const char *
- name: remove
standards:
- stdc
return_type: int
arguments:
- type: const char *
- name: rename
standards:
- stdc
return_type: int
arguments:
- type: const char *
- type: const char *
- name: scanf
standards:
- stdc
return_type: int
arguments:
- type: const char *__restrict
- type: '...'
- name: vscanf
standards:
- stdc
return_type: int
arguments:
- type: const char *__restrict
- type: va_list
- name: setbuf
standards:
- stdc
return_type: void
arguments:
- type: FILE *__restrict
- type: char *__restrict
- name: setvbuf
standards:
- stdc
return_type: int
arguments:
- type: FILE *__restrict
- type: char *__restrict
- type: int
- type: size_t
- name: snprintf
standards:
- stdc
return_type: int
arguments:
- type: char *__restrict
- type: size_t
- type: const char *__restrict
- type: '...'
- name: sprintf
standards:
- stdc
return_type: int
arguments:
- type: char *__restrict
- type: const char *__restrict
- type: '...'
- name: sscanf
standards:
- stdc
return_type: int
arguments:
- type: const char *__restrict
- type: const char *__restrict
- type: '...'
- name: ungetc
standards:
- stdc
return_type: int
arguments:
- type: int
- type: FILE *
- name: vasprintf
standards:
- GNUExtensions
return_type: int
arguments:
- type: char **__restrict
- type: const char *__restrict
- type: va_list
- name: vfprintf
standards:
- stdc
return_type: int
arguments:
- type: FILE *__restrict
- type: const char *__restrict
- type: va_list
- name: vprintf
standards:
- stdc
return_type: int
arguments:
- type: const char *__restrict
- type: va_list
- name: vsnprintf
standards:
- stdc
return_type: int
arguments:
- type: char *__restrict
- type: size_t
- type: const char *__restrict
- type: va_list
- name: vsprintf
standards:
- stdc
return_type: int
arguments:
- type: char *__restrict
- type: const char *__restrict
- type: va_list
- name: vsscanf
standards:
- stdc
return_type: int
arguments:
- type: const char *__restrict
- type: const char *__restrict
- type: va_list