aboutsummaryrefslogtreecommitdiff
path: root/cmake.config
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2023-11-29 21:52:58 +0000
committerJosh Rahm <joshuarahm@gmail.com>2023-11-29 21:52:58 +0000
commit931bffbda3668ddc609fc1da8f9eb576b170aa52 (patch)
treed8c1843a95da5ea0bb4acc09f7e37843d9995c86 /cmake.config
parent142d9041391780ac15b89886a54015fdc5c73995 (diff)
parent4a8bf24ac690004aedf5540fa440e788459e5e34 (diff)
downloadrneovim-userreg.tar.gz
rneovim-userreg.tar.bz2
rneovim-userreg.zip
Merge remote-tracking branch 'upstream/master' into userreguserreg
Diffstat (limited to 'cmake.config')
-rw-r--r--cmake.config/CMakeLists.txt100
-rw-r--r--cmake.config/config.h.in21
-rw-r--r--cmake.config/iwyu/c99.imp1031
-rw-r--r--cmake.config/iwyu/gcc.libc.imp226
-rw-r--r--cmake.config/iwyu/gcc.symbols.imp305
-rw-r--r--cmake.config/iwyu/mapping.imp254
-rw-r--r--cmake.config/iwyu/posix.imp33
-rw-r--r--cmake.config/pathdef.c.in6
-rw-r--r--cmake.config/versiondef.h.in4
-rw-r--r--cmake.config/versiondef_old.h.in21
10 files changed, 1148 insertions, 853 deletions
diff --git a/cmake.config/CMakeLists.txt b/cmake.config/CMakeLists.txt
index 6de86cbaf2..ed405c602e 100644
--- a/cmake.config/CMakeLists.txt
+++ b/cmake.config/CMakeLists.txt
@@ -4,6 +4,7 @@ include(CheckFunctionExists)
include(CheckIncludeFiles)
include(CheckCSourceRuns)
include(CheckCSourceCompiles)
+include(TestBigEndian)
check_c_source_compiles("
#include <execinfo.h>
@@ -28,34 +29,26 @@ int main(void)
check_type_size("int" SIZEOF_INT LANGUAGE C)
check_type_size("long" SIZEOF_LONG LANGUAGE C)
check_type_size("intmax_t" SIZEOF_INTMAX_T LANGUAGE C)
-check_type_size("int32_t" SIZEOF_INT32_T LANGUAGE C)
check_type_size("size_t" SIZEOF_SIZE_T LANGUAGE C)
-check_type_size("long long" SIZEOF_LONG_LONG LANGUAGE C)
check_type_size("void *" SIZEOF_VOID_PTR LANGUAGE C)
check_symbol_exists(_NSGetEnviron crt_externs.h HAVE__NSGETENVIRON)
# Headers
check_include_files(langinfo.h HAVE_LANGINFO_H)
-check_include_files(locale.h HAVE_LOCALE_H)
-check_include_files(pwd.h HAVE_PWD_H)
check_include_files(strings.h HAVE_STRINGS_H)
check_include_files(sys/utsname.h HAVE_SYS_UTSNAME_H)
check_include_files(termios.h HAVE_TERMIOS_H)
check_include_files(sys/uio.h HAVE_SYS_UIO_H)
check_include_files(sys/sdt.h HAVE_SYS_SDT_H)
+if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ check_include_files(sys/xattr.h HAVE_XATTR)
+endif()
# Functions
check_function_exists(fseeko HAVE_FSEEKO)
-check_function_exists(getpwent HAVE_GETPWENT)
-check_function_exists(getpwnam HAVE_GETPWNAM)
-check_function_exists(getpwuid HAVE_GETPWUID)
check_function_exists(readv HAVE_READV)
-check_function_exists(opendir HAVE_OPENDIR)
check_function_exists(readlink HAVE_READLINK)
-check_function_exists(setpgid HAVE_SETPGID)
-check_function_exists(setsid HAVE_SETSID)
-check_function_exists(sigaction HAVE_SIGACTION)
check_function_exists(strnlen HAVE_STRNLEN)
check_function_exists(strcasecmp HAVE_STRCASECMP)
check_function_exists(strncasecmp HAVE_STRNCASECMP)
@@ -64,22 +57,28 @@ check_function_exists(strptime HAVE_STRPTIME)
check_c_source_compiles("
#include <sys/types.h>
#include <dirent.h>
+#include <sys/file.h>
int main(void)
{
DIR *dir = opendir(\"dirname\");
dirfd(dir);
+ flock(10, LOCK_SH);
return 0;
}
-" HAVE_DIRFD)
+" HAVE_DIRFD_AND_FLOCK)
+
check_c_source_compiles("
-#include <sys/file.h>
+#include <pwd.h>
int main(void)
{
- flock(10, LOCK_SH);
+ getpwent();
+ getpwuid(0);
+ getpwnam(\"root\");
return 0;
}
-" HAVE_FLOCK)
+" HAVE_PWD_FUNCS)
+
if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
check_c_source_compiles("
@@ -101,11 +100,13 @@ if(HAVE_LANGINFO_H)
endif()
check_include_files("endian.h" HAVE_ENDIAN_H)
-check_include_files("sys/endian.h" HAVE_SYS_ENDIAN_H)
set(ENDIAN_INCLUDE_FILE "endian.h")
-if(HAVE_SYS_ENDIAN_H AND NOT HAVE_ENDIAN_H)
- set(ENDIAN_INCLUDE_FILE "sys/endian.h")
+if(NOT HAVE_ENDIAN_H)
+ check_include_files("sys/endian.h" HAVE_SYS_ENDIAN_H)
+ if (HAVE_SYS_ENDIAN_H)
+ set(ENDIAN_INCLUDE_FILE "sys/endian.h")
+ endif()
endif()
set(SI "#include <stdint.h>\n")
@@ -130,63 +131,30 @@ endif()
if("${HAVE_BE64TOH_MACROS}" OR "${HAVE_BE64TOH_FUNC}")
set(HAVE_BE64TOH 1)
endif()
-if (NOT "${HAVE_BE64TOH}")
- if (NOT "${CMAKE_CROSSCOMPILING}")
- # It is safe to make ORDER_BIG_ENDIAN not defined if
- # - HAVE_BE64TOH is true. In this case be64toh will be used unconditionally in
- # any case and ORDER_BIG_ENDIAN will not be examined.
- # - CMAKE_CROSSCOMPILING *and* HAVE_BE64TOH are both false. In this case
- # be64toh function which uses cycle and arithmetic operations is used which
- # will work regardless of endianness. Function is sub-optimal though.
- check_c_source_runs("
- ${SI}
- ${MS}
- char *s = (char *) &i;
- return (
- s[0] == 0x01
- && s[1] == 0x02
- && s[2] == 0x03
- && s[3] == 0x04
- && s[4] == 0x05
- && s[5] == 0x06
- && s[6] == 0x07
- && s[7] == 0x08) ? 0 : 1;
- ${ME}"
- ORDER_BIG_ENDIAN)
- endif()
-endif()
-# generate configuration header and update include directories
+test_big_endian(ORDER_BIG_ENDIAN)
+
configure_file (
"${PROJECT_SOURCE_DIR}/cmake.config/config.h.in"
"${PROJECT_BINARY_DIR}/cmake.config/auto/config.h"
)
-# generate version definitions
-configure_file (
- "${PROJECT_SOURCE_DIR}/cmake.config/versiondef.h.in"
- "${PROJECT_BINARY_DIR}/cmake.config/auto/versiondef.h"
- )
-
-# generate pathdef.c
-find_program(WHOAMI_PROG whoami)
-find_program(HOSTNAME_PROG hostname)
-
-if (DEFINED ENV{USERNAME})
- set(USERNAME $ENV{USERNAME})
-elseif (NOT DEFINED USERNAME AND EXISTS ${WHOAMI_PROG})
- execute_process(COMMAND ${WHOAMI_PROG}
- OUTPUT_STRIP_TRAILING_WHITESPACE
- OUTPUT_VARIABLE USERNAME)
+# Prevent double space in --version output if CMAKE_C_FLAGS is empty
+set(C_FLAGS_VERSION_OUTPUT ${CMAKE_C_FLAGS})
+if(C_FLAGS_VERSION_OUTPUT)
+ string(PREPEND C_FLAGS_VERSION_OUTPUT " ")
endif()
-if (DEFINED ENV{HOSTNAME})
- set(HOSTNAME $ENV{HOSTNAME})
-elseif (EXISTS ${HOSTNAME_PROG})
- execute_process(COMMAND ${HOSTNAME_PROG}
- OUTPUT_STRIP_TRAILING_WHITESPACE
- OUTPUT_VARIABLE HOSTNAME)
+
+if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.15)
+ configure_file(versiondef.h.in auto/versiondef.h.gen)
+else()
+ configure_file(versiondef_old.h.in auto/versiondef.h.gen)
endif()
+file(GENERATE
+ OUTPUT "${PROJECT_BINARY_DIR}/cmake.config/auto/versiondef-$<CONFIG>.h"
+ INPUT "${PROJECT_BINARY_DIR}/cmake.config/auto/versiondef.h.gen")
+
configure_file (
"${PROJECT_SOURCE_DIR}/cmake.config/pathdef.c.in"
"${PROJECT_BINARY_DIR}/cmake.config/auto/pathdef.c"
diff --git a/cmake.config/config.h.in b/cmake.config/config.h.in
index c8377bf45c..fb12a7c558 100644
--- a/cmake.config/config.h.in
+++ b/cmake.config/config.h.in
@@ -1,13 +1,9 @@
#ifndef AUTO_CONFIG_H
#define AUTO_CONFIG_H
-#cmakedefine DEBUG
-
#cmakedefine SIZEOF_INT @SIZEOF_INT@
#cmakedefine SIZEOF_INTMAX_T @SIZEOF_INTMAX_T@
-#cmakedefine SIZEOF_INT32_T @SIZEOF_INT32_T@
#cmakedefine SIZEOF_LONG @SIZEOF_LONG@
-#cmakedefine SIZEOF_LONG_LONG @SIZEOF_LONG_LONG@
#cmakedefine SIZEOF_SIZE_T @SIZEOF_SIZE_T@
#if @SIZEOF_VOID_PTR@ == 8
@@ -21,23 +17,17 @@
#cmakedefine HAVE__NSGETENVIRON
#cmakedefine HAVE_FD_CLOEXEC
#cmakedefine HAVE_FSEEKO
-#cmakedefine HAVE_GETPWENT
-#cmakedefine HAVE_GETPWNAM
-#cmakedefine HAVE_GETPWUID
#cmakedefine HAVE_LANGINFO_H
-#cmakedefine HAVE_LOCALE_H
#cmakedefine HAVE_NL_LANGINFO_CODESET
#cmakedefine HAVE_NL_MSG_CAT_CNTR
-#cmakedefine HAVE_PWD_H
+#cmakedefine HAVE_PWD_FUNCS
#cmakedefine HAVE_READLINK
-#cmakedefine HAVE_SETPGID
-#cmakedefine HAVE_SETSID
-#cmakedefine HAVE_SIGACTION
#cmakedefine HAVE_STRNLEN
#cmakedefine HAVE_STRCASECMP
#cmakedefine HAVE_STRINGS_H
#cmakedefine HAVE_STRNCASECMP
#cmakedefine HAVE_STRPTIME
+#cmakedefine HAVE_XATTR
#cmakedefine HAVE_SYS_SDT_H
#cmakedefine HAVE_SYS_UTSNAME_H
#cmakedefine HAVE_SYS_WAIT_H
@@ -53,14 +43,9 @@
# undef HAVE_SYS_UIO_H
# endif
#endif
-#cmakedefine HAVE_DIRFD
-#cmakedefine HAVE_FLOCK
+#cmakedefine HAVE_DIRFD_AND_FLOCK
#cmakedefine HAVE_FORKPTY
-#ifndef UNIT_TESTING
-#cmakedefine LOG_LIST_ACTIONS
-#endif
-
#cmakedefine HAVE_BE64TOH
#cmakedefine ORDER_BIG_ENDIAN
#define ENDIAN_INCLUDE_FILE <@ENDIAN_INCLUDE_FILE@>
diff --git a/cmake.config/iwyu/c99.imp b/cmake.config/iwyu/c99.imp
new file mode 100644
index 0000000000..234fc71625
--- /dev/null
+++ b/cmake.config/iwyu/c99.imp
@@ -0,0 +1,1031 @@
+# Symbols defined in the C spec.
+# These are taken from https://port70.net/~nsz/c/c99/n1256.html#B
+
+[
+ # B.1 Diagnostics <assert.h>
+ { symbol: ["NDEBUG", private, "<assert.h>", public ] },
+ { symbol: ["void assert(scalar expression);", private, "<assert.h>", public ] },
+
+ # B.2 Complex <complex.h>
+ { symbol: ["complex", private, "<complex.h>", public ] },
+ { symbol: ["_Complex_I", private, "<complex.h>", public ] },
+ { symbol: ["imaginary", private, "<complex.h>", public ] },
+ { symbol: ["_Imaginary_I", private, "<complex.h>", public ] },
+ { symbol: ["I", private, "<complex.h>", public ] },
+ { symbol: ["cacos", private, "<complex.h>", public ] },
+ { symbol: ["cacosf", private, "<complex.h>", public ] },
+ { symbol: ["cacosl", private, "<complex.h>", public ] },
+ { symbol: ["casin", private, "<complex.h>", public ] },
+ { symbol: ["casinf", private, "<complex.h>", public ] },
+ { symbol: ["casinl", private, "<complex.h>", public ] },
+ { symbol: ["catan", private, "<complex.h>", public ] },
+ { symbol: ["catanf", private, "<complex.h>", public ] },
+ { symbol: ["catanl", private, "<complex.h>", public ] },
+ { symbol: ["ccos", private, "<complex.h>", public ] },
+ { symbol: ["ccosf", private, "<complex.h>", public ] },
+ { symbol: ["ccosl", private, "<complex.h>", public ] },
+ { symbol: ["csin", private, "<complex.h>", public ] },
+ { symbol: ["csinf", private, "<complex.h>", public ] },
+ { symbol: ["csinl", private, "<complex.h>", public ] },
+ { symbol: ["ctan", private, "<complex.h>", public ] },
+ { symbol: ["ctanf", private, "<complex.h>", public ] },
+ { symbol: ["ctanl", private, "<complex.h>", public ] },
+ { symbol: ["cacosh", private, "<complex.h>", public ] },
+ { symbol: ["cacoshf", private, "<complex.h>", public ] },
+ { symbol: ["cacoshl", private, "<complex.h>", public ] },
+ { symbol: ["casinh", private, "<complex.h>", public ] },
+ { symbol: ["casinhf", private, "<complex.h>", public ] },
+ { symbol: ["casinhl", private, "<complex.h>", public ] },
+ { symbol: ["catanh", private, "<complex.h>", public ] },
+ { symbol: ["catanhf", private, "<complex.h>", public ] },
+ { symbol: ["catanhl", private, "<complex.h>", public ] },
+ { symbol: ["ccosh", private, "<complex.h>", public ] },
+ { symbol: ["ccoshf", private, "<complex.h>", public ] },
+ { symbol: ["ccoshl", private, "<complex.h>", public ] },
+ { symbol: ["csinh", private, "<complex.h>", public ] },
+ { symbol: ["csinhf", private, "<complex.h>", public ] },
+ { symbol: ["csinhl", private, "<complex.h>", public ] },
+ { symbol: ["ctanh", private, "<complex.h>", public ] },
+ { symbol: ["ctanhf", private, "<complex.h>", public ] },
+ { symbol: ["ctanhl", private, "<complex.h>", public ] },
+ { symbol: ["cexp", private, "<complex.h>", public ] },
+ { symbol: ["cexpf", private, "<complex.h>", public ] },
+ { symbol: ["cexpl", private, "<complex.h>", public ] },
+ { symbol: ["clog", private, "<complex.h>", public ] },
+ { symbol: ["clogf", private, "<complex.h>", public ] },
+ { symbol: ["clogl", private, "<complex.h>", public ] },
+ { symbol: ["cabs", private, "<complex.h>", public ] },
+ { symbol: ["cabsf", private, "<complex.h>", public ] },
+ { symbol: ["cabsl", private, "<complex.h>", public ] },
+ { symbol: ["cpow", private, "<complex.h>", public ] },
+ { symbol: ["cpowf", private, "<complex.h>", public ] },
+ { symbol: ["cpowl", private, "<complex.h>", public ] },
+ { symbol: ["csqrt", private, "<complex.h>", public ] },
+ { symbol: ["csqrtf", private, "<complex.h>", public ] },
+ { symbol: ["csqrtl", private, "<complex.h>", public ] },
+ { symbol: ["carg", private, "<complex.h>", public ] },
+ { symbol: ["cargf", private, "<complex.h>", public ] },
+ { symbol: ["cargl", private, "<complex.h>", public ] },
+ { symbol: ["cimag", private, "<complex.h>", public ] },
+ { symbol: ["cimagf", private, "<complex.h>", public ] },
+ { symbol: ["cimagl", private, "<complex.h>", public ] },
+ { symbol: ["conj", private, "<complex.h>", public ] },
+ { symbol: ["conjf", private, "<complex.h>", public ] },
+ { symbol: ["conjl", private, "<complex.h>", public ] },
+ { symbol: ["cproj", private, "<complex.h>", public ] },
+ { symbol: ["cprojf", private, "<complex.h>", public ] },
+ { symbol: ["cprojl", private, "<complex.h>", public ] },
+ { symbol: ["creal", private, "<complex.h>", public ] },
+ { symbol: ["crealf", private, "<complex.h>", public ] },
+ { symbol: ["creall", private, "<complex.h>", public ] },
+
+ #B.3 Character handling <ctype.h>
+ { symbol: ["isalnum", private, "<ctype.h>", public ] },
+ { symbol: ["isalpha", private, "<ctype.h>", public ] },
+ { symbol: ["isblank", private, "<ctype.h>", public ] },
+ { symbol: ["iscntrl", private, "<ctype.h>", public ] },
+ { symbol: ["isdigit", private, "<ctype.h>", public ] },
+ { symbol: ["isgraph", private, "<ctype.h>", public ] },
+ { symbol: ["islower", private, "<ctype.h>", public ] },
+ { symbol: ["isprint", private, "<ctype.h>", public ] },
+ { symbol: ["ispunct", private, "<ctype.h>", public ] },
+ { symbol: ["isspace", private, "<ctype.h>", public ] },
+ { symbol: ["isupper", private, "<ctype.h>", public ] },
+ { symbol: ["isxdigit", private, "<ctype.h>", public ] },
+ { symbol: ["tolower", private, "<ctype.h>", public ] },
+ { symbol: ["toupper", private, "<ctype.h>", public ] },
+
+ # B.4 Errors <errno.h>
+ { symbol: ["EDOM", private, "<errno.h>", public ] },
+ { symbol: ["EILSEQ", private, "<errno.h>", public ] },
+ { symbol: ["ERANGE", private, "<errno.h>", public ] },
+ { symbol: ["errno", private, "<errno.h>", public ] },
+
+ # B.5 Floating-point environment <fenv.h>
+ { symbol: ["fenv_t", private, "<fenv.h>", public ] },
+ { symbol: ["fexcept_t", private, "<fenv.h>", public ] },
+ { symbol: ["FE_DIVBYZERO", private, "<fenv.h>", public ] },
+ { symbol: ["FE_INEXACT", private, "<fenv.h>", public ] },
+ { symbol: ["FE_INVALID", private, "<fenv.h>", public ] },
+ { symbol: ["FE_OVERFLOW", private, "<fenv.h>", public ] },
+ { symbol: ["FE_UNDERFLOW", private, "<fenv.h>", public ] },
+ { symbol: ["FE_ALL_EXCEPT", private, "<fenv.h>", public ] },
+ { symbol: ["FE_DOWNWARD", private, "<fenv.h>", public ] },
+ { symbol: ["FE_TONEAREST", private, "<fenv.h>", public ] },
+ { symbol: ["FE_TOWARDZERO", private, "<fenv.h>", public ] },
+ { symbol: ["FE_UPWARD", private, "<fenv.h>", public ] },
+ { symbol: ["FE_DFL_ENV", private, "<fenv.h>", public ] },
+ { symbol: ["feclearexcept", private, "<fenv.h>", public ] },
+ { symbol: ["fegetexceptflag", private, "<fenv.h>", public ] },
+ { symbol: ["feraiseexcept", private, "<fenv.h>", public ] },
+ { symbol: ["fesetexceptflag", private, "<fenv.h>", public ] },
+ { symbol: ["fetestexcept", private, "<fenv.h>", public ] },
+ { symbol: ["fegetround", private, "<fenv.h>", public ] },
+ { symbol: ["fesetround", private, "<fenv.h>", public ] },
+ { symbol: ["fegetenv", private, "<fenv.h>", public ] },
+ { symbol: ["feholdexcept", private, "<fenv.h>", public ] },
+ { symbol: ["fesetenv", private, "<fenv.h>", public ] },
+ { symbol: ["feupdateenv", private, "<fenv.h>", public ] },
+
+ # B.6 Characteristics of floating types <float.h>
+ { symbol: ["FLT_ROUNDS", private, "<float.h>", public ] },
+ { symbol: ["FLT_EVAL_METHOD", private, "<float.h>", public ] },
+ { symbol: ["FLT_RADIX", private, "<float.h>", public ] },
+ { symbol: ["FLT_MANT_DIG", private, "<float.h>", public ] },
+ { symbol: ["DBL_MANT_DIG", private, "<float.h>", public ] },
+ { symbol: ["LDBL_MANT_DIG", private, "<float.h>", public ] },
+ { symbol: ["DECIMAL_DIG", private, "<float.h>", public ] },
+ { symbol: ["FLT_DIG", private, "<float.h>", public ] },
+ { symbol: ["DBL_DIG", private, "<float.h>", public ] },
+ { symbol: ["LDBL_DIG", private, "<float.h>", public ] },
+ { symbol: ["FLT_MIN_EXP", private, "<float.h>", public ] },
+ { symbol: ["DBL_MIN_EXP", private, "<float.h>", public ] },
+ { symbol: ["LDBL_MIN_EXP", private, "<float.h>", public ] },
+ { symbol: ["FLT_MIN_10_EXP", private, "<float.h>", public ] },
+ { symbol: ["DBL_MIN_10_EXP", private, "<float.h>", public ] },
+ { symbol: ["LDBL_MIN_10_EXP", private, "<float.h>", public ] },
+ { symbol: ["FLT_MAX_EXP", private, "<float.h>", public ] },
+ { symbol: ["DBL_MAX_EXP", private, "<float.h>", public ] },
+ { symbol: ["LDBL_MAX_EXP", private, "<float.h>", public ] },
+ { symbol: ["FLT_MAX_10_EXP", private, "<float.h>", public ] },
+ { symbol: ["DBL_MAX_10_EXP", private, "<float.h>", public ] },
+ { symbol: ["LDBL_MAX_10_EXP", private, "<float.h>", public ] },
+ { symbol: ["FLT_MAX", private, "<float.h>", public ] },
+ { symbol: ["DBL_MAX", private, "<float.h>", public ] },
+ { symbol: ["LDBL_MAX", private, "<float.h>", public ] },
+ { symbol: ["FLT_EPSILON", private, "<float.h>", public ] },
+ { symbol: ["DBL_EPSILON", private, "<float.h>", public ] },
+ { symbol: ["LDBL_EPSILON", private, "<float.h>", public ] },
+ { symbol: ["FLT_MIN", private, "<float.h>", public ] },
+ { symbol: ["DBL_MIN", private, "<float.h>", public ] },
+ { symbol: ["LDBL_MIN", private, "<float.h>", public ] },
+
+ # B.7 Format conversion of integer types <inttypes.h>
+ { symbol: ["PRId8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIi8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIo8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIu8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIx8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIX8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNd8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNi8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNo8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNu8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNx8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIdLEAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIiLEAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIoLEAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIuLEAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIxLEAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIXLEAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNdLEAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNiLEAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNoLEAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNuLEAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNxLEAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIdFAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIiFAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIoFAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIuFAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIxFAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIXFAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNdFAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNiFAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNoFAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNuFAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNxFAST8", private, "<inttypes.h>", public ] },
+ { symbol: ["PRId16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIi16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIo16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIu16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIx16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIX16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNd16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNi16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNo16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNu16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNx16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIdLEAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIiLEAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIoLEAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIuLEAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIxLEAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIXLEAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNdLEAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNiLEAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNoLEAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNuLEAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNxLEAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIdFAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIiFAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIoFAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIuFAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIxFAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIXFAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNdFAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNiFAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNoFAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNuFAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNxFAST16", private, "<inttypes.h>", public ] },
+ { symbol: ["PRId32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIi32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIo32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIu32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIx32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIX32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNd32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNi32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNo32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNu32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNx32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIdLEAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIiLEAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIoLEAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIuLEAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIxLEAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIXLEAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNdLEAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNiLEAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNoLEAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNuLEAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNxLEAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIdFAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIiFAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIoFAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIuFAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIxFAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIXFAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNdFAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNiFAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNoFAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNuFAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNxFAST32", private, "<inttypes.h>", public ] },
+ { symbol: ["PRId64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIi64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIo64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIu64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIx64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIX64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNd64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNi64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNo64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNu64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNx64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIdLEAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIiLEAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIoLEAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIuLEAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIxLEAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIXLEAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNdLEAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNiLEAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNoLEAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNuLEAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNxLEAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIdFAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIiFAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIoFAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIuFAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIxFAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIXFAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNdFAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNiFAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNoFAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNuFAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNxFAST64", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIdMAX", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIiMAX", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIoMAX", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIuMAX", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIxMAX", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIXMAX", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNdMAX", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNiMAX", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNoMAX", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNuMAX", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNxMAX", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIdPTR", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIiPTR", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIoPTR", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIuPTR", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIxPTR", private, "<inttypes.h>", public ] },
+ { symbol: ["PRIXPTR", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNdPTR", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNiPTR", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNoPTR", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNuPTR", private, "<inttypes.h>", public ] },
+ { symbol: ["SCNxPTR", private, "<inttypes.h>", public ] },
+ { symbol: ["imaxdiv_t", private, "<inttypes.h>", public ] },
+ { symbol: ["imaxabs", private, "<inttypes.h>", public ] },
+ { symbol: ["imaxdiv", private, "<inttypes.h>", public ] },
+ { symbol: ["strtoimax", private, "<inttypes.h>", public ] },
+ { symbol: ["strtoumax", private, "<inttypes.h>", public ] },
+ { symbol: ["wcstoimax", private, "<inttypes.h>", public ] },
+ { symbol: ["wcstoumax", private, "<inttypes.h>", public ] },
+
+ # B.8 Alternative spellings <iso646.h>
+ { symbol: ["and", private, "<iso646.h>", public ] },
+ { symbol: ["and_eq", private, "<iso646.h>", public ] },
+ { symbol: ["bitand", private, "<iso646.h>", public ] },
+ { symbol: ["bitor", private, "<iso646.h>", public ] },
+ { symbol: ["compl", private, "<iso646.h>", public ] },
+ { symbol: ["not", private, "<iso646.h>", public ] },
+ { symbol: ["not_eq", private, "<iso646.h>", public ] },
+ { symbol: ["or", private, "<iso646.h>", public ] },
+ { symbol: ["or_eq", private, "<iso646.h>", public ] },
+ { symbol: ["xor", private, "<iso646.h>", public ] },
+ { symbol: ["xor_eq", private, "<iso646.h>", public ] },
+
+ # B.9 Sizes of integer types <limits.h>
+ { symbol: ["CHAR_BIT", private, "<limits.h>", public ] },
+ { symbol: ["SCHAR_MIN", private, "<limits.h>", public ] },
+ { symbol: ["SCHAR_MAX", private, "<limits.h>", public ] },
+ { symbol: ["UCHAR_MAX", private, "<limits.h>", public ] },
+ { symbol: ["CHAR_MIN", private, "<limits.h>", public ] },
+ { symbol: ["CHAR_MAX", private, "<limits.h>", public ] },
+ { symbol: ["MB_LEN_MAX", private, "<limits.h>", public ] },
+ { symbol: ["SHRT_MIN", private, "<limits.h>", public ] },
+ { symbol: ["SHRT_MAX", private, "<limits.h>", public ] },
+ { symbol: ["USHRT_MAX", private, "<limits.h>", public ] },
+ { symbol: ["INT_MIN", private, "<limits.h>", public ] },
+ { symbol: ["INT_MAX", private, "<limits.h>", public ] },
+ { symbol: ["UINT_MAX", private, "<limits.h>", public ] },
+ { symbol: ["LONG_MIN", private, "<limits.h>", public ] },
+ { symbol: ["LONG_MAX", private, "<limits.h>", public ] },
+ { symbol: ["ULONG_MAX", private, "<limits.h>", public ] },
+ { symbol: ["LLONG_MIN", private, "<limits.h>", public ] },
+ { symbol: ["LLONG_MAX", private, "<limits.h>", public ] },
+ { symbol: ["ULLONG_MAX", private, "<limits.h>", public ] },
+
+ # B.10 Localization <locale.h>
+ { symbol: ["lconv", private, "<locale.h>", public ] },
+ { symbol: ["NULL", private, "<locale.h>", public ] },
+ { symbol: ["LC_ALL", private, "<locale.h>", public ] },
+ { symbol: ["LC_COLLATE", private, "<locale.h>", public ] },
+ { symbol: ["LC_CTYPE", private, "<locale.h>", public ] },
+ { symbol: ["LC_MONETARY", private, "<locale.h>", public ] },
+ { symbol: ["LC_NUMERIC", private, "<locale.h>", public ] },
+ { symbol: ["LC_TIME", private, "<locale.h>", public ] },
+ { symbol: ["setlocale", private, "<locale.h>", public ] },
+ { symbol: ["localeconv", private, "<locale.h>", public ] },
+
+ # B.11 Mathematics <math.h>
+ { symbol: ["float_t", private, "<math.h>", public ] },
+ { symbol: ["double_t", private, "<math.h>", public ] },
+ { symbol: ["HUGE_VAL", private, "<math.h>", public ] },
+ { symbol: ["HUGE_VALF", private, "<math.h>", public ] },
+ { symbol: ["HUGE_VALL", private, "<math.h>", public ] },
+ { symbol: ["INFINITY", private, "<math.h>", public ] },
+ { symbol: ["NAN", private, "<math.h>", public ] },
+ { symbol: ["FP_INFINITE", private, "<math.h>", public ] },
+ { symbol: ["FP_NAN", private, "<math.h>", public ] },
+ { symbol: ["FP_NORMAL", private, "<math.h>", public ] },
+ { symbol: ["FP_SUBNORMAL", private, "<math.h>", public ] },
+ { symbol: ["FP_ZERO", private, "<math.h>", public ] },
+ { symbol: ["FP_FAST_FMA", private, "<math.h>", public ] },
+ { symbol: ["FP_FAST_FMAF", private, "<math.h>", public ] },
+ { symbol: ["FP_FAST_FMAL", private, "<math.h>", public ] },
+ { symbol: ["FP_ILOGB0", private, "<math.h>", public ] },
+ { symbol: ["FP_ILOGBNAN", private, "<math.h>", public ] },
+ { symbol: ["MATH_ERRNO", private, "<math.h>", public ] },
+ { symbol: ["MATH_ERREXCEPT", private, "<math.h>", public ] },
+ { symbol: ["math_errhandling", private, "<math.h>", public ] },
+ { symbol: ["fpclassify", private, "<math.h>", public ] },
+ { symbol: ["isfinite", private, "<math.h>", public ] },
+ { symbol: ["isinf", private, "<math.h>", public ] },
+ { symbol: ["isnan", private, "<math.h>", public ] },
+ { symbol: ["isnormal", private, "<math.h>", public ] },
+ { symbol: ["signbit", private, "<math.h>", public ] },
+ { symbol: ["acos", private, "<math.h>", public ] },
+ { symbol: ["acosf", private, "<math.h>", public ] },
+ { symbol: ["acosl", private, "<math.h>", public ] },
+ { symbol: ["asin", private, "<math.h>", public ] },
+ { symbol: ["asinf", private, "<math.h>", public ] },
+ { symbol: ["asinl", private, "<math.h>", public ] },
+ { symbol: ["atan", private, "<math.h>", public ] },
+ { symbol: ["atanf", private, "<math.h>", public ] },
+ { symbol: ["atanl", private, "<math.h>", public ] },
+ { symbol: ["atan2", private, "<math.h>", public ] },
+ { symbol: ["atan2f", private, "<math.h>", public ] },
+ { symbol: ["atan2l", private, "<math.h>", public ] },
+ { symbol: ["cos", private, "<math.h>", public ] },
+ { symbol: ["cosf", private, "<math.h>", public ] },
+ { symbol: ["cosl", private, "<math.h>", public ] },
+ { symbol: ["sin", private, "<math.h>", public ] },
+ { symbol: ["sinf", private, "<math.h>", public ] },
+ { symbol: ["sinl", private, "<math.h>", public ] },
+ { symbol: ["tan", private, "<math.h>", public ] },
+ { symbol: ["tanf", private, "<math.h>", public ] },
+ { symbol: ["tanl", private, "<math.h>", public ] },
+ { symbol: ["acosh", private, "<math.h>", public ] },
+ { symbol: ["acoshf", private, "<math.h>", public ] },
+ { symbol: ["acoshl", private, "<math.h>", public ] },
+ { symbol: ["asinh", private, "<math.h>", public ] },
+ { symbol: ["asinhf", private, "<math.h>", public ] },
+ { symbol: ["asinhl", private, "<math.h>", public ] },
+ { symbol: ["atanh", private, "<math.h>", public ] },
+ { symbol: ["atanhf", private, "<math.h>", public ] },
+ { symbol: ["atanhl", private, "<math.h>", public ] },
+ { symbol: ["cosh", private, "<math.h>", public ] },
+ { symbol: ["coshf", private, "<math.h>", public ] },
+ { symbol: ["coshl", private, "<math.h>", public ] },
+ { symbol: ["sinh", private, "<math.h>", public ] },
+ { symbol: ["sinhf", private, "<math.h>", public ] },
+ { symbol: ["sinhl", private, "<math.h>", public ] },
+ { symbol: ["tanh", private, "<math.h>", public ] },
+ { symbol: ["tanhf", private, "<math.h>", public ] },
+ { symbol: ["tanhl", private, "<math.h>", public ] },
+ { symbol: ["exp", private, "<math.h>", public ] },
+ { symbol: ["expf", private, "<math.h>", public ] },
+ { symbol: ["expl", private, "<math.h>", public ] },
+ { symbol: ["exp2", private, "<math.h>", public ] },
+ { symbol: ["exp2f", private, "<math.h>", public ] },
+ { symbol: ["exp2l", private, "<math.h>", public ] },
+ { symbol: ["expm1", private, "<math.h>", public ] },
+ { symbol: ["expm1f", private, "<math.h>", public ] },
+ { symbol: ["expm1l", private, "<math.h>", public ] },
+ { symbol: ["frexp", private, "<math.h>", public ] },
+ { symbol: ["frexpf", private, "<math.h>", public ] },
+ { symbol: ["frexpl", private, "<math.h>", public ] },
+ { symbol: ["ilogb", private, "<math.h>", public ] },
+ { symbol: ["ilogbf", private, "<math.h>", public ] },
+ { symbol: ["ilogbl", private, "<math.h>", public ] },
+ { symbol: ["ldexp", private, "<math.h>", public ] },
+ { symbol: ["ldexpf", private, "<math.h>", public ] },
+ { symbol: ["ldexpl", private, "<math.h>", public ] },
+ { symbol: ["log", private, "<math.h>", public ] },
+ { symbol: ["logf", private, "<math.h>", public ] },
+ { symbol: ["logl", private, "<math.h>", public ] },
+ { symbol: ["log10", private, "<math.h>", public ] },
+ { symbol: ["log10f", private, "<math.h>", public ] },
+ { symbol: ["log10l", private, "<math.h>", public ] },
+ { symbol: ["log1p", private, "<math.h>", public ] },
+ { symbol: ["log1pf", private, "<math.h>", public ] },
+ { symbol: ["log1pl", private, "<math.h>", public ] },
+ { symbol: ["log2", private, "<math.h>", public ] },
+ { symbol: ["log2f", private, "<math.h>", public ] },
+ { symbol: ["log2l", private, "<math.h>", public ] },
+ { symbol: ["logb", private, "<math.h>", public ] },
+ { symbol: ["logbf", private, "<math.h>", public ] },
+ { symbol: ["logbl", private, "<math.h>", public ] },
+ { symbol: ["modf", private, "<math.h>", public ] },
+ { symbol: ["modff", private, "<math.h>", public ] },
+ { symbol: ["modfl", private, "<math.h>", public ] },
+ { symbol: ["scalbn", private, "<math.h>", public ] },
+ { symbol: ["scalbnf", private, "<math.h>", public ] },
+ { symbol: ["scalbnl", private, "<math.h>", public ] },
+ { symbol: ["scalbln", private, "<math.h>", public ] },
+ { symbol: ["scalblnf", private, "<math.h>", public ] },
+ { symbol: ["scalblnl", private, "<math.h>", public ] },
+ { symbol: ["cbrt", private, "<math.h>", public ] },
+ { symbol: ["cbrtf", private, "<math.h>", public ] },
+ { symbol: ["cbrtl", private, "<math.h>", public ] },
+ { symbol: ["fabs", private, "<math.h>", public ] },
+ { symbol: ["fabsf", private, "<math.h>", public ] },
+ { symbol: ["fabsl", private, "<math.h>", public ] },
+ { symbol: ["hypot", private, "<math.h>", public ] },
+ { symbol: ["hypotf", private, "<math.h>", public ] },
+ { symbol: ["hypotl", private, "<math.h>", public ] },
+ { symbol: ["pow", private, "<math.h>", public ] },
+ { symbol: ["powf", private, "<math.h>", public ] },
+ { symbol: ["powl", private, "<math.h>", public ] },
+ { symbol: ["sqrt", private, "<math.h>", public ] },
+ { symbol: ["sqrtf", private, "<math.h>", public ] },
+ { symbol: ["sqrtl", private, "<math.h>", public ] },
+ { symbol: ["erf", private, "<math.h>", public ] },
+ { symbol: ["erff", private, "<math.h>", public ] },
+ { symbol: ["erfl", private, "<math.h>", public ] },
+ { symbol: ["erfc", private, "<math.h>", public ] },
+ { symbol: ["erfcf", private, "<math.h>", public ] },
+ { symbol: ["erfcl", private, "<math.h>", public ] },
+ { symbol: ["lgamma", private, "<math.h>", public ] },
+ { symbol: ["lgammaf", private, "<math.h>", public ] },
+ { symbol: ["lgammal", private, "<math.h>", public ] },
+ { symbol: ["tgamma", private, "<math.h>", public ] },
+ { symbol: ["tgammaf", private, "<math.h>", public ] },
+ { symbol: ["tgammal", private, "<math.h>", public ] },
+ { symbol: ["ceil", private, "<math.h>", public ] },
+ { symbol: ["ceilf", private, "<math.h>", public ] },
+ { symbol: ["ceill", private, "<math.h>", public ] },
+ { symbol: ["floor", private, "<math.h>", public ] },
+ { symbol: ["floorf", private, "<math.h>", public ] },
+ { symbol: ["floorl", private, "<math.h>", public ] },
+ { symbol: ["nearbyint", private, "<math.h>", public ] },
+ { symbol: ["nearbyintf", private, "<math.h>", public ] },
+ { symbol: ["nearbyintl", private, "<math.h>", public ] },
+ { symbol: ["rint", private, "<math.h>", public ] },
+ { symbol: ["rintf", private, "<math.h>", public ] },
+ { symbol: ["rintl", private, "<math.h>", public ] },
+ { symbol: ["lrint", private, "<math.h>", public ] },
+ { symbol: ["lrintf", private, "<math.h>", public ] },
+ { symbol: ["lrintl", private, "<math.h>", public ] },
+ { symbol: ["llrint", private, "<math.h>", public ] },
+ { symbol: ["llrintf", private, "<math.h>", public ] },
+ { symbol: ["llrintl", private, "<math.h>", public ] },
+ { symbol: ["round", private, "<math.h>", public ] },
+ { symbol: ["roundf", private, "<math.h>", public ] },
+ { symbol: ["roundl", private, "<math.h>", public ] },
+ { symbol: ["lround", private, "<math.h>", public ] },
+ { symbol: ["lroundf", private, "<math.h>", public ] },
+ { symbol: ["lroundl", private, "<math.h>", public ] },
+ { symbol: ["llround", private, "<math.h>", public ] },
+ { symbol: ["llroundf", private, "<math.h>", public ] },
+ { symbol: ["llroundl", private, "<math.h>", public ] },
+ { symbol: ["trunc", private, "<math.h>", public ] },
+ { symbol: ["truncf", private, "<math.h>", public ] },
+ { symbol: ["truncl", private, "<math.h>", public ] },
+ { symbol: ["fmod", private, "<math.h>", public ] },
+ { symbol: ["fmodf", private, "<math.h>", public ] },
+ { symbol: ["fmodl", private, "<math.h>", public ] },
+ { symbol: ["remainder", private, "<math.h>", public ] },
+ { symbol: ["remainderf", private, "<math.h>", public ] },
+ { symbol: ["remainderl", private, "<math.h>", public ] },
+ { symbol: ["remquo", private, "<math.h>", public ] },
+ { symbol: ["remquof", private, "<math.h>", public ] },
+ { symbol: ["remquol", private, "<math.h>", public ] },
+ { symbol: ["copysign", private, "<math.h>", public ] },
+ { symbol: ["copysignf", private, "<math.h>", public ] },
+ { symbol: ["copysignl", private, "<math.h>", public ] },
+ { symbol: ["nan", private, "<math.h>", public ] },
+ { symbol: ["nanf", private, "<math.h>", public ] },
+ { symbol: ["nanl", private, "<math.h>", public ] },
+ { symbol: ["nextafter", private, "<math.h>", public ] },
+ { symbol: ["nextafterf", private, "<math.h>", public ] },
+ { symbol: ["nextafterl", private, "<math.h>", public ] },
+ { symbol: ["nexttoward", private, "<math.h>", public ] },
+ { symbol: ["nexttowardf", private, "<math.h>", public ] },
+ { symbol: ["nexttowardl", private, "<math.h>", public ] },
+ { symbol: ["fdim", private, "<math.h>", public ] },
+ { symbol: ["fdimf", private, "<math.h>", public ] },
+ { symbol: ["fdiml", private, "<math.h>", public ] },
+ { symbol: ["fmax", private, "<math.h>", public ] },
+ { symbol: ["fmaxf", private, "<math.h>", public ] },
+ { symbol: ["fmaxl", private, "<math.h>", public ] },
+ { symbol: ["fmin", private, "<math.h>", public ] },
+ { symbol: ["fminf", private, "<math.h>", public ] },
+ { symbol: ["fminl", private, "<math.h>", public ] },
+ { symbol: ["fma", private, "<math.h>", public ] },
+ { symbol: ["fmaf", private, "<math.h>", public ] },
+ { symbol: ["fmal", private, "<math.h>", public ] },
+ { symbol: ["isgreater", private, "<math.h>", public ] },
+ { symbol: ["isgreaterequal", private, "<math.h>", public ] },
+ { symbol: ["isless", private, "<math.h>", public ] },
+ { symbol: ["islessequal", private, "<math.h>", public ] },
+ { symbol: ["islessgreater", private, "<math.h>", public ] },
+ { symbol: ["isunordered", private, "<math.h>", public ] },
+
+ # B.12 Nonlocal jumps <setjmp.h>
+ { symbol: ["jmp_buf", private, "<setjmp.h>", public ] },
+ { symbol: ["setjmp", private, "<setjmp.h>", public ] },
+ { symbol: ["longjmp", private, "<setjmp.h>", public ] },
+
+ # B.13 Signal handling <signal.h>
+ { symbol: ["sig_atomic_t", private, "<signal.h>", public ] },
+ { symbol: ["SIG_DFL", private, "<signal.h>", public ] },
+ { symbol: ["SIG_ERR", private, "<signal.h>", public ] },
+ { symbol: ["SIG_IGN", private, "<signal.h>", public ] },
+ { symbol: ["SIGABRT", private, "<signal.h>", public ] },
+ { symbol: ["SIGFPE", private, "<signal.h>", public ] },
+ { symbol: ["SIGILL", private, "<signal.h>", public ] },
+ { symbol: ["SIGINT", private, "<signal.h>", public ] },
+ { symbol: ["SIGSEGV", private, "<signal.h>", public ] },
+ { symbol: ["SIGTERM", private, "<signal.h>", public ] },
+ { symbol: ["signal", private, "<signal.h>", public ] },
+ { symbol: ["raise", private, "<signal.h>", public ] },
+
+ # B.14 Variable arguments <stdarg.h>
+ { symbol: ["va_list", private, "<stdarg.h>", public ] },
+ { symbol: ["va_arg", private, "<stdarg.h>", public ] },
+ { symbol: ["va_copy", private, "<stdarg.h>", public ] },
+ { symbol: ["va_end", private, "<stdarg.h>", public ] },
+ { symbol: ["va_start", private, "<stdarg.h>", public ] },
+
+ # B.15 Boolean type and values <stdbool.h>
+ { symbol: ["bool", private, "<stdbool.h>", public ] },
+ { symbol: ["true", private, "<stdbool.h>", public ] },
+ { symbol: ["false", private, "<stdbool.h>", public ] },
+ { symbol: ["__bool_true_false_are_defined", private, "<stdbool.h>", public ] },
+
+ # B.16 Common definitions <stddef.h>
+ { symbol: ["ptrdiff_t", private, "<stddef.h>", public ] },
+ { symbol: ["size_t", private, "<stddef.h>", public ] },
+ { symbol: ["wchar_t", private, "<stddef.h>", public ] },
+ { symbol: ["NULL", private, "<stddef.h>", public ] },
+ { symbol: ["offsetof", private, "<stddef.h>", public ] },
+
+ # B.17 Integer types <stdint.h>
+ { symbol: ["int8_t", private, "<stdint.h>", public ] },
+ { symbol: ["uint8_t", private, "<stdint.h>", public ] },
+ { symbol: ["int_least8_t", private, "<stdint.h>", public ] },
+ { symbol: ["uint_least8_t", private, "<stdint.h>", public ] },
+ { symbol: ["int_fast8_t", private, "<stdint.h>", public ] },
+ { symbol: ["uint_fast8_t", private, "<stdint.h>", public ] },
+ { symbol: ["INT8_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["INT8_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["UINT8_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["INT_LEAST8_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["INT_LEAST8_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["UINT_LEAST8_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["INT_FAST8_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["INT_FAST8_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["UINT_FAST8_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["INT8_C", private, "<stdint.h>", public ] },
+ { symbol: ["UINT8_C", private, "<stdint.h>", public ] },
+ { symbol: ["int16_t", private, "<stdint.h>", public ] },
+ { symbol: ["uint16_t", private, "<stdint.h>", public ] },
+ { symbol: ["int_least16_t", private, "<stdint.h>", public ] },
+ { symbol: ["uint_least16_t", private, "<stdint.h>", public ] },
+ { symbol: ["int_fast16_t", private, "<stdint.h>", public ] },
+ { symbol: ["uint_fast16_t", private, "<stdint.h>", public ] },
+ { symbol: ["INT16_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["INT16_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["UINT16_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["INT_LEAST16_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["INT_LEAST16_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["UINT_LEAST16_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["INT_FAST16_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["INT_FAST16_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["UINT_FAST16_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["INT16_C", private, "<stdint.h>", public ] },
+ { symbol: ["UINT16_C", private, "<stdint.h>", public ] },
+ { symbol: ["int32_t", private, "<stdint.h>", public ] },
+ { symbol: ["uint32_t", private, "<stdint.h>", public ] },
+ { symbol: ["int_least32_t", private, "<stdint.h>", public ] },
+ { symbol: ["uint_least32_t", private, "<stdint.h>", public ] },
+ { symbol: ["int_fast32_t", private, "<stdint.h>", public ] },
+ { symbol: ["uint_fast32_t", private, "<stdint.h>", public ] },
+ { symbol: ["INT32_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["INT32_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["UINT32_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["INT_LEAST32_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["INT_LEAST32_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["UINT_LEAST32_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["INT_FAST32_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["INT_FAST32_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["UINT_FAST32_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["INT32_C", private, "<stdint.h>", public ] },
+ { symbol: ["UINT32_C", private, "<stdint.h>", public ] },
+ { symbol: ["int64_t", private, "<stdint.h>", public ] },
+ { symbol: ["uint64_t", private, "<stdint.h>", public ] },
+ { symbol: ["int_least64_t", private, "<stdint.h>", public ] },
+ { symbol: ["uint_least64_t", private, "<stdint.h>", public ] },
+ { symbol: ["int_fast64_t", private, "<stdint.h>", public ] },
+ { symbol: ["uint_fast64_t", private, "<stdint.h>", public ] },
+ { symbol: ["INT64_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["INT64_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["UINT64_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["INT_LEAST64_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["INT_LEAST64_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["UINT_LEAST64_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["INT_FAST64_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["INT_FAST64_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["UINT_FAST64_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["INT64_C", private, "<stdint.h>", public ] },
+ { symbol: ["UINT64_C", private, "<stdint.h>", public ] },
+ { symbol: ["intptr_t", private, "<stdint.h>", public ] },
+ { symbol: ["uintptr_t", private, "<stdint.h>", public ] },
+ { symbol: ["intmax_t", private, "<stdint.h>", public ] },
+ { symbol: ["uintmax_t", private, "<stdint.h>", public ] },
+ { symbol: ["INTPTR_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["INTPTR_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["UINTPTR_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["INTMAX_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["INTMAX_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["UINTMAX_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["PTRDIFF_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["PTRDIFF_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["SIG_ATOMIC_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["SIG_ATOMIC_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["SIZE_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["WCHAR_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["WCHAR_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["WINT_MIN", private, "<stdint.h>", public ] },
+ { symbol: ["WINT_MAX", private, "<stdint.h>", public ] },
+ { symbol: ["INTMAX_C", private, "<stdint.h>", public ] },
+ { symbol: ["UINTMAX_C", private, "<stdint.h>", public ] },
+
+ # B.18 Input/output <stdio.h>
+ { symbol: ["size_t", private, "<stdio.h>", public ] },
+ { symbol: ["FILE", private, "<stdio.h>", public ] },
+ { symbol: ["fpos_t", private, "<stdio.h>", public ] },
+ { symbol: ["NULL", private, "<stdio.h>", public ] },
+ { symbol: ["_IOFBF", private, "<stdio.h>", public ] },
+ { symbol: ["_IOLBF", private, "<stdio.h>", public ] },
+ { symbol: ["_IONBF", private, "<stdio.h>", public ] },
+ { symbol: ["BUFSIZ", private, "<stdio.h>", public ] },
+ { symbol: ["EOF", private, "<stdio.h>", public ] },
+ { symbol: ["FOPEN_MAX", private, "<stdio.h>", public ] },
+ { symbol: ["FILENAME_MAX", private, "<stdio.h>", public ] },
+ { symbol: ["L_tmpnam", private, "<stdio.h>", public ] },
+ { symbol: ["SEEK_CUR", private, "<stdio.h>", public ] },
+ { symbol: ["SEEK_END", private, "<stdio.h>", public ] },
+ { symbol: ["SEEK_SET", private, "<stdio.h>", public ] },
+ { symbol: ["TMP_MAX", private, "<stdio.h>", public ] },
+ { symbol: ["stderr", private, "<stdio.h>", public ] },
+ { symbol: ["stdin", private, "<stdio.h>", public ] },
+ { symbol: ["stdout", private, "<stdio.h>", public ] },
+ { symbol: ["remove", private, "<stdio.h>", public ] },
+ { symbol: ["rename", private, "<stdio.h>", public ] },
+ { symbol: ["tmpfile", private, "<stdio.h>", public ] },
+ { symbol: ["tmpnam", private, "<stdio.h>", public ] },
+ { symbol: ["fclose", private, "<stdio.h>", public ] },
+ { symbol: ["fflush", private, "<stdio.h>", public ] },
+ { symbol: ["fopen", private, "<stdio.h>", public ] },
+ { symbol: ["freopen", private, "<stdio.h>", public ] },
+ { symbol: ["setbuf", private, "<stdio.h>", public ] },
+ { symbol: ["setvbuf", private, "<stdio.h>", public ] },
+ { symbol: ["fprintf", private, "<stdio.h>", public ] },
+ { symbol: ["fscanf", private, "<stdio.h>", public ] },
+ { symbol: ["printf", private, "<stdio.h>", public ] },
+ { symbol: ["scanf", private, "<stdio.h>", public ] },
+ { symbol: ["snprintf", private, "<stdio.h>", public ] },
+ { symbol: ["sprintf", private, "<stdio.h>", public ] },
+ { symbol: ["sscanf", private, "<stdio.h>", public ] },
+ { symbol: ["vfprintf", private, "<stdio.h>", public ] },
+ { symbol: ["vfscanf", private, "<stdio.h>", public ] },
+ { symbol: ["vprintf", private, "<stdio.h>", public ] },
+ { symbol: ["vscanf", private, "<stdio.h>", public ] },
+ { symbol: ["vsnprintf", private, "<stdio.h>", public ] },
+ { symbol: ["vsprintf", private, "<stdio.h>", public ] },
+ { symbol: ["vsscanf", private, "<stdio.h>", public ] },
+ { symbol: ["fgetc", private, "<stdio.h>", public ] },
+ { symbol: ["fgets", private, "<stdio.h>", public ] },
+ { symbol: ["fputc", private, "<stdio.h>", public ] },
+ { symbol: ["fputs", private, "<stdio.h>", public ] },
+ { symbol: ["getc", private, "<stdio.h>", public ] },
+ { symbol: ["getchar", private, "<stdio.h>", public ] },
+ { symbol: ["gets", private, "<stdio.h>", public ] },
+ { symbol: ["putc", private, "<stdio.h>", public ] },
+ { symbol: ["putchar", private, "<stdio.h>", public ] },
+ { symbol: ["puts", private, "<stdio.h>", public ] },
+ { symbol: ["ungetc", private, "<stdio.h>", public ] },
+ { symbol: ["fread", private, "<stdio.h>", public ] },
+ { symbol: ["fwrite", private, "<stdio.h>", public ] },
+ { symbol: ["fgetpos", private, "<stdio.h>", public ] },
+ { symbol: ["fseek", private, "<stdio.h>", public ] },
+ { symbol: ["fsetpos", private, "<stdio.h>", public ] },
+ { symbol: ["ftell", private, "<stdio.h>", public ] },
+ { symbol: ["rewind", private, "<stdio.h>", public ] },
+ { symbol: ["clearerr", private, "<stdio.h>", public ] },
+ { symbol: ["feof", private, "<stdio.h>", public ] },
+ { symbol: ["ferror", private, "<stdio.h>", public ] },
+ { symbol: ["perror", private, "<stdio.h>", public ] },
+
+ # B.19 General utilities <stdlib.h>
+ { symbol: ["size_t", private, "<stdlib.h>", public ] },
+ { symbol: ["wchar_t", private, "<stdlib.h>", public ] },
+ { symbol: ["div_t", private, "<stdlib.h>", public ] },
+ { symbol: ["ldiv_t", private, "<stdlib.h>", public ] },
+ { symbol: ["lldiv_t", private, "<stdlib.h>", public ] },
+ { symbol: ["NULL", private, "<stdlib.h>", public ] },
+ { symbol: ["EXIT_FAILURE", private, "<stdlib.h>", public ] },
+ { symbol: ["EXIT_SUCCESS", private, "<stdlib.h>", public ] },
+ { symbol: ["RAND_MAX", private, "<stdlib.h>", public ] },
+ { symbol: ["MB_CUR_MAX", private, "<stdlib.h>", public ] },
+ { symbol: ["atof", private, "<stdlib.h>", public ] },
+ { symbol: ["atoi", private, "<stdlib.h>", public ] },
+ { symbol: ["atol", private, "<stdlib.h>", public ] },
+ { symbol: ["atoll", private, "<stdlib.h>", public ] },
+ { symbol: ["strtod", private, "<stdlib.h>", public ] },
+ { symbol: ["strtof", private, "<stdlib.h>", public ] },
+ { symbol: ["strtold", private, "<stdlib.h>", public ] },
+ { symbol: ["strtol", private, "<stdlib.h>", public ] },
+ { symbol: ["strtoll", private, "<stdlib.h>", public ] },
+ { symbol: ["strtoul", private, "<stdlib.h>", public ] },
+ { symbol: ["strtoull", private, "<stdlib.h>", public ] },
+ { symbol: ["rand", private, "<stdlib.h>", public ] },
+ { symbol: ["srand", private, "<stdlib.h>", public ] },
+ { symbol: ["calloc", private, "<stdlib.h>", public ] },
+ { symbol: ["free", private, "<stdlib.h>", public ] },
+ { symbol: ["malloc", private, "<stdlib.h>", public ] },
+ { symbol: ["realloc", private, "<stdlib.h>", public ] },
+ { symbol: ["abort", private, "<stdlib.h>", public ] },
+ { symbol: ["atexit", private, "<stdlib.h>", public ] },
+ { symbol: ["exit", private, "<stdlib.h>", public ] },
+ { symbol: ["_Exit", private, "<stdlib.h>", public ] },
+ { symbol: ["getenv", private, "<stdlib.h>", public ] },
+ { symbol: ["system", private, "<stdlib.h>", public ] },
+ { symbol: ["bsearch", private, "<stdlib.h>", public ] },
+ { symbol: ["qsort", private, "<stdlib.h>", public ] },
+ { symbol: ["abs", private, "<stdlib.h>", public ] },
+ { symbol: ["labs", private, "<stdlib.h>", public ] },
+ { symbol: ["llabs", private, "<stdlib.h>", public ] },
+ { symbol: ["div", private, "<stdlib.h>", public ] },
+ { symbol: ["ldiv", private, "<stdlib.h>", public ] },
+ { symbol: ["lldiv", private, "<stdlib.h>", public ] },
+ { symbol: ["mblen", private, "<stdlib.h>", public ] },
+ { symbol: ["mbtowc", private, "<stdlib.h>", public ] },
+ { symbol: ["wctomb", private, "<stdlib.h>", public ] },
+ { symbol: ["mbstowcs", private, "<stdlib.h>", public ] },
+ { symbol: ["wcstombs", private, "<stdlib.h>", public ] },
+
+ # B.20 String handling <string.h>
+ { symbol: ["size_t", private, "<string.h>", public ] },
+ { symbol: ["NULL", private, "<string.h>", public ] },
+ { symbol: ["memcpy", private, "<string.h>", public ] },
+ { symbol: ["memmove", private, "<string.h>", public ] },
+ { symbol: ["strcpy", private, "<string.h>", public ] },
+ { symbol: ["strncpy", private, "<string.h>", public ] },
+ { symbol: ["strcat", private, "<string.h>", public ] },
+ { symbol: ["strncat", private, "<string.h>", public ] },
+ { symbol: ["memcmp", private, "<string.h>", public ] },
+ { symbol: ["strcmp", private, "<string.h>", public ] },
+ { symbol: ["strcoll", private, "<string.h>", public ] },
+ { symbol: ["strncmp", private, "<string.h>", public ] },
+ { symbol: ["strxfrm", private, "<string.h>", public ] },
+ { symbol: ["memchr", private, "<string.h>", public ] },
+ { symbol: ["strchr", private, "<string.h>", public ] },
+ { symbol: ["strcspn", private, "<string.h>", public ] },
+ { symbol: ["strpbrk", private, "<string.h>", public ] },
+ { symbol: ["strrchr", private, "<string.h>", public ] },
+ { symbol: ["strspn", private, "<string.h>", public ] },
+ { symbol: ["strstr", private, "<string.h>", public ] },
+ { symbol: ["strtok", private, "<string.h>", public ] },
+ { symbol: ["memset", private, "<string.h>", public ] },
+ { symbol: ["strerror", private, "<string.h>", public ] },
+ { symbol: ["strlen", private, "<string.h>", public ] },
+
+ # B.21 Type-generic math <tgmath.h>
+ { symbol: ["acos", private, "<tgmath.h>", public ] },
+ { symbol: ["asin", private, "<tgmath.h>", public ] },
+ { symbol: ["atan", private, "<tgmath.h>", public ] },
+ { symbol: ["acosh", private, "<tgmath.h>", public ] },
+ { symbol: ["asinh", private, "<tgmath.h>", public ] },
+ { symbol: ["atanh", private, "<tgmath.h>", public ] },
+ { symbol: ["cos", private, "<tgmath.h>", public ] },
+ { symbol: ["sin", private, "<tgmath.h>", public ] },
+ { symbol: ["tan", private, "<tgmath.h>", public ] },
+ { symbol: ["cosh", private, "<tgmath.h>", public ] },
+ { symbol: ["sinh", private, "<tgmath.h>", public ] },
+ { symbol: ["tanh", private, "<tgmath.h>", public ] },
+ { symbol: ["exp", private, "<tgmath.h>", public ] },
+ { symbol: ["log", private, "<tgmath.h>", public ] },
+ { symbol: ["pow", private, "<tgmath.h>", public ] },
+ { symbol: ["sqrt", private, "<tgmath.h>", public ] },
+ { symbol: ["fabs", private, "<tgmath.h>", public ] },
+ { symbol: ["atan2", private, "<tgmath.h>", public ] },
+ { symbol: ["cbrt", private, "<tgmath.h>", public ] },
+ { symbol: ["ceil", private, "<tgmath.h>", public ] },
+ { symbol: ["copysign", private, "<tgmath.h>", public ] },
+ { symbol: ["erf", private, "<tgmath.h>", public ] },
+ { symbol: ["erfc", private, "<tgmath.h>", public ] },
+ { symbol: ["exp2", private, "<tgmath.h>", public ] },
+ { symbol: ["expm1", private, "<tgmath.h>", public ] },
+ { symbol: ["fdim", private, "<tgmath.h>", public ] },
+ { symbol: ["floor", private, "<tgmath.h>", public ] },
+ { symbol: ["fma", private, "<tgmath.h>", public ] },
+ { symbol: ["fmax", private, "<tgmath.h>", public ] },
+ { symbol: ["fmin", private, "<tgmath.h>", public ] },
+ { symbol: ["fmod", private, "<tgmath.h>", public ] },
+ { symbol: ["frexp", private, "<tgmath.h>", public ] },
+ { symbol: ["hypot", private, "<tgmath.h>", public ] },
+ { symbol: ["ilogb", private, "<tgmath.h>", public ] },
+ { symbol: ["ldexp", private, "<tgmath.h>", public ] },
+ { symbol: ["lgamma", private, "<tgmath.h>", public ] },
+ { symbol: ["llrint", private, "<tgmath.h>", public ] },
+ { symbol: ["llround", private, "<tgmath.h>", public ] },
+ { symbol: ["log10", private, "<tgmath.h>", public ] },
+ { symbol: ["log1p", private, "<tgmath.h>", public ] },
+ { symbol: ["log2", private, "<tgmath.h>", public ] },
+ { symbol: ["logb", private, "<tgmath.h>", public ] },
+ { symbol: ["lrint", private, "<tgmath.h>", public ] },
+ { symbol: ["lround", private, "<tgmath.h>", public ] },
+ { symbol: ["nearbyint", private, "<tgmath.h>", public ] },
+ { symbol: ["nextafter", private, "<tgmath.h>", public ] },
+ { symbol: ["nexttoward", private, "<tgmath.h>", public ] },
+ { symbol: ["remainder", private, "<tgmath.h>", public ] },
+ { symbol: ["remquo", private, "<tgmath.h>", public ] },
+ { symbol: ["rint", private, "<tgmath.h>", public ] },
+ { symbol: ["round", private, "<tgmath.h>", public ] },
+ { symbol: ["scalbn", private, "<tgmath.h>", public ] },
+ { symbol: ["scalbln", private, "<tgmath.h>", public ] },
+ { symbol: ["tgamma", private, "<tgmath.h>", public ] },
+ { symbol: ["trunc", private, "<tgmath.h>", public ] },
+ { symbol: ["carg", private, "<tgmath.h>", public ] },
+ { symbol: ["cimag", private, "<tgmath.h>", public ] },
+ { symbol: ["conj", private, "<tgmath.h>", public ] },
+ { symbol: ["cproj", private, "<tgmath.h>", public ] },
+ { symbol: ["creal", private, "<tgmath.h>", public ] },
+
+ # B.22 Date and time <time.h>
+ { symbol: ["NULL", private, "<time.h>", public ] },
+ { symbol: ["CLOCKS_PER_SEC", private, "<time.h>", public ] },
+ { symbol: ["size_t", private, "<time.h>", public ] },
+ { symbol: ["clock_t", private, "<time.h>", public ] },
+ { symbol: ["time_t", private, "<time.h>", public ] },
+ { symbol: ["tm", private, "<time.h>", public ] },
+ { symbol: ["clock", private, "<time.h>", public ] },
+ { symbol: ["difftime", private, "<time.h>", public ] },
+ { symbol: ["mktime", private, "<time.h>", public ] },
+ { symbol: ["time", private, "<time.h>", public ] },
+ { symbol: ["asctime", private, "<time.h>", public ] },
+ { symbol: ["ctime", private, "<time.h>", public ] },
+ { symbol: ["gmtime", private, "<time.h>", public ] },
+ { symbol: ["localtime", private, "<time.h>", public ] },
+ { symbol: ["strftime", private, "<time.h>", public ] },
+
+ # B.23 Extended multibyte/wide character utilities <wchar.h>
+ { symbol: ["wchar_t", private, "<wchar.h>", public ] },
+ { symbol: ["wint_t", private, "<wchar.h>", public ] },
+ { symbol: ["WCHAR_MAX", private, "<wchar.h>", public ] },
+ { symbol: ["size_t", private, "<wchar.h>", public ] },
+ { symbol: ["tm", private, "<wchar.h>", public ] },
+ { symbol: ["WCHAR_MIN", private, "<wchar.h>", public ] },
+ { symbol: ["mbstate_t", private, "<wchar.h>", public ] },
+ { symbol: ["NULL", private, "<wchar.h>", public ] },
+ { symbol: ["WEOF", private, "<wchar.h>", public ] },
+ { symbol: ["fwprintf", private, "<wchar.h>", public ] },
+ { symbol: ["fwscanf", private, "<wchar.h>", public ] },
+ { symbol: ["swprintf", private, "<wchar.h>", public ] },
+ { symbol: ["swscanf", private, "<wchar.h>", public ] },
+ { symbol: ["vfwprintf", private, "<wchar.h>", public ] },
+ { symbol: ["vfwscanf", private, "<wchar.h>", public ] },
+ { symbol: ["vswprintf", private, "<wchar.h>", public ] },
+ { symbol: ["vswscanf", private, "<wchar.h>", public ] },
+ { symbol: ["vwprintf", private, "<wchar.h>", public ] },
+ { symbol: ["vwscanf", private, "<wchar.h>", public ] },
+ { symbol: ["wprintf", private, "<wchar.h>", public ] },
+ { symbol: ["wscanf", private, "<wchar.h>", public ] },
+ { symbol: ["fgetwc", private, "<wchar.h>", public ] },
+ { symbol: ["fgetws", private, "<wchar.h>", public ] },
+ { symbol: ["fputwc", private, "<wchar.h>", public ] },
+ { symbol: ["fputws", private, "<wchar.h>", public ] },
+ { symbol: ["fwide", private, "<wchar.h>", public ] },
+ { symbol: ["getwc", private, "<wchar.h>", public ] },
+ { symbol: ["getwchar", private, "<wchar.h>", public ] },
+ { symbol: ["putwc", private, "<wchar.h>", public ] },
+ { symbol: ["putwchar", private, "<wchar.h>", public ] },
+ { symbol: ["ungetwc", private, "<wchar.h>", public ] },
+ { symbol: ["wcstod", private, "<wchar.h>", public ] },
+ { symbol: ["wcstof", private, "<wchar.h>", public ] },
+ { symbol: ["wcstold", private, "<wchar.h>", public ] },
+ { symbol: ["wcstol", private, "<wchar.h>", public ] },
+ { symbol: ["wcstoll", private, "<wchar.h>", public ] },
+ { symbol: ["wcstoul", private, "<wchar.h>", public ] },
+ { symbol: ["wcstoull", private, "<wchar.h>", public ] },
+ { symbol: ["wcscpy", private, "<wchar.h>", public ] },
+ { symbol: ["wcsncpy", private, "<wchar.h>", public ] },
+ { symbol: ["wmemcpy", private, "<wchar.h>", public ] },
+ { symbol: ["wmemmove", private, "<wchar.h>", public ] },
+ { symbol: ["wcscat", private, "<wchar.h>", public ] },
+ { symbol: ["wcsncat", private, "<wchar.h>", public ] },
+ { symbol: ["wcscmp", private, "<wchar.h>", public ] },
+ { symbol: ["wcscoll", private, "<wchar.h>", public ] },
+ { symbol: ["wcsncmp", private, "<wchar.h>", public ] },
+ { symbol: ["wcsxfrm", private, "<wchar.h>", public ] },
+ { symbol: ["wmemcmp", private, "<wchar.h>", public ] },
+ { symbol: ["wcschr", private, "<wchar.h>", public ] },
+ { symbol: ["wcscspn", private, "<wchar.h>", public ] },
+ { symbol: ["wcspbrk", private, "<wchar.h>", public ] },
+ { symbol: ["wcsrchr", private, "<wchar.h>", public ] },
+ { symbol: ["wcsspn", private, "<wchar.h>", public ] },
+ { symbol: ["wcsstr", private, "<wchar.h>", public ] },
+ { symbol: ["wcstok", private, "<wchar.h>", public ] },
+ { symbol: ["wmemchr", private, "<wchar.h>", public ] },
+ { symbol: ["wcslen", private, "<wchar.h>", public ] },
+ { symbol: ["wmemset", private, "<wchar.h>", public ] },
+ { symbol: ["wcsftime", private, "<wchar.h>", public ] },
+ { symbol: ["btowc", private, "<wchar.h>", public ] },
+ { symbol: ["wctob", private, "<wchar.h>", public ] },
+ { symbol: ["mbsinit", private, "<wchar.h>", public ] },
+ { symbol: ["mbrlen", private, "<wchar.h>", public ] },
+ { symbol: ["mbrtowc", private, "<wchar.h>", public ] },
+ { symbol: ["wcrtomb", private, "<wchar.h>", public ] },
+ { symbol: ["mbsrtowcs", private, "<wchar.h>", public ] },
+ { symbol: ["wcsrtombs", private, "<wchar.h>", public ] },
+
+ # B.24 Wide character classification and mapping utilities <wctype.h>
+ { symbol: ["wint_t", private, "<wctype.h>", public ] },
+ { symbol: ["wctrans_t", private, "<wctype.h>", public ] },
+ { symbol: ["wctype_t", private, "<wctype.h>", public ] },
+ { symbol: ["WEOF", private, "<wctype.h>", public ] },
+ { symbol: ["iswalnum", private, "<wctype.h>", public ] },
+ { symbol: ["iswalpha", private, "<wctype.h>", public ] },
+ { symbol: ["iswblank", private, "<wctype.h>", public ] },
+ { symbol: ["iswcntrl", private, "<wctype.h>", public ] },
+ { symbol: ["iswdigit", private, "<wctype.h>", public ] },
+ { symbol: ["iswgraph", private, "<wctype.h>", public ] },
+ { symbol: ["iswlower", private, "<wctype.h>", public ] },
+ { symbol: ["iswprint", private, "<wctype.h>", public ] },
+ { symbol: ["iswpunct", private, "<wctype.h>", public ] },
+ { symbol: ["iswspace", private, "<wctype.h>", public ] },
+ { symbol: ["iswupper", private, "<wctype.h>", public ] },
+ { symbol: ["iswxdigit", private, "<wctype.h>", public ] },
+ { symbol: ["iswctype", private, "<wctype.h>", public ] },
+ { symbol: ["wctype", private, "<wctype.h>", public ] },
+ { symbol: ["towlower", private, "<wctype.h>", public ] },
+ { symbol: ["towupper", private, "<wctype.h>", public ] },
+ { symbol: ["towctrans", private, "<wctype.h>", public ] },
+ { symbol: ["wctrans", private, "<wctype.h>", public ] },
+
+ # inttypes.h includes stdint.h
+ # https://port70.net/~nsz/c/c99/n1256.html#7.8p1
+ { include: [ "<stdint.h>", public, "<inttypes.h>", public ] },
+
+ # tgmath.h includes math.h and complex.h
+ # https://port70.net/~nsz/c/c99/n1256.html#7.22p1
+ { include: [ "<math.h>", public, "<tgmath.h>", public ] },
+ { include: [ "<complex.h>", public, "<tgmath.h>", public ] },
+]
+
+# vim: set ft=toml:
diff --git a/cmake.config/iwyu/gcc.libc.imp b/cmake.config/iwyu/gcc.libc.imp
deleted file mode 100644
index 1dd0ad42c7..0000000000
--- a/cmake.config/iwyu/gcc.libc.imp
+++ /dev/null
@@ -1,226 +0,0 @@
-# This was initially taken from the IWYU repository:
-# github.com/include-what-you-use/include-what-you-use/blob/164b8fe7597805ae55f029ecf6580dc46a74c7ed/gcc.libc.imp
-# It has useful mappings that are normally enabled by default, but there are
-# other default mappings that conflict with our builds. The best solution seems
-# to be to disable all defaults, import the defaults from the IWYU
-# repo and modify the rules that conflict with our build.
-#
-# TODO(dundargoc): Check if there is a way to disable specific builtin maps as
-# to avoid this file entirely.
-
-# Mappings for GNU libc
-# ( cd /usr/include && grep '^ *# *include' {sys/,net/,}* | perl -nle 'm/^([^:]+).*<([^>]+)>/ && print qq@ { include: [ "<$2>", private, "<$1>", public ] },@' | grep bits/ | sort )
-# When I saw more than one mapping for these, I typically picked
-# what I thought was the "best" one.
-[
- { include: [ "<bits/a.out.h>", private, "<a.out.h>", public ] },
- { include: [ "<bits/auxv.h>", private, "<sys/auxv.h>", public ] },
- { include: [ "<bits/byteswap.h>", private, "<byteswap.h>", public ] },
- { include: [ "<bits/cmathcalls.h>", private, "<complex.h>", public ] },
- { include: [ "<bits/confname.h>", private, "<unistd.h>", private ] },
- { include: [ "<bits/dirent.h>", private, "<dirent.h>", public ] },
- { include: [ "<bits/dlfcn.h>", private, "<dlfcn.h>", public ] },
- { include: [ "<bits/elfclass.h>", private, "<link.h>", public ] },
- { include: [ "<bits/endian.h>", private, "<endian.h>", public ] },
- { include: [ "<bits/environments.h>", private, "<unistd.h>", private ] },
- { include: [ "<bits/epoll.h>", private, "<sys/epoll.h>", public ] },
- { include: [ "<bits/errno.h>", private, "<errno.h>", public ] },
- { include: [ "<bits/error.h>", private, "<error.h>", public ] },
- { include: [ "<bits/eventfd.h>", private, "<sys/eventfd.h>", public ] },
- { include: [ "<bits/fcntl.h>", private, "<fcntl.h>", public ] },
- { include: [ "<bits/fcntl2.h>", private, "<fcntl.h>", public ] },
- { include: [ "<bits/fenv.h>", private, "<fenv.h>", public ] },
- { include: [ "<bits/fenvinline.h>", private, "<fenv.h>", public ] },
- { include: [ "<bits/huge_val.h>", private, "<math.h>", public ] },
- { include: [ "<bits/huge_valf.h>", private, "<math.h>", public ] },
- { include: [ "<bits/huge_vall.h>", private, "<math.h>", public ] },
- { include: [ "<bits/hwcap.h>", private, "<sys/auxv.h>", public ] },
- { include: [ "<bits/inf.h>", private, "<math.h>", public ] },
- { include: [ "<bits/inotify.h>", private, "<sys/inotify.h>", public ] },
- { include: [ "<bits/ioctl-types.h>", private, "<sys/ioctl.h>", public ] },
- { include: [ "<bits/ioctls.h>", private, "<sys/ioctl.h>", public ] },
- { include: [ "<bits/ipc.h>", private, "<sys/ipc.h>", public ] },
- { include: [ "<bits/ipctypes.h>", private, "<sys/ipc.h>", public ] },
- { include: [ "<bits/libio-ldbl.h>", private, "<libio.h>", public ] },
- { include: [ "<bits/link.h>", private, "<link.h>", public ] },
- { include: [ "<bits/locale.h>", private, "<locale.h>", public ] },
- { include: [ "<bits/math-finite.h>", private, "<math.h>", public ] },
- { include: [ "<bits/mathcalls.h>", private, "<math.h>", public ] },
- { include: [ "<bits/mathdef.h>", private, "<math.h>", public ] },
- { include: [ "<bits/mathinline.h>", private, "<math.h>", public ] },
- { include: [ "<bits/mman.h>", private, "<sys/mman.h>", public ] },
- { include: [ "<bits/mman-shared.h>", private, "<sys/mman.h>", public ] },
- { include: [ "<bits/monetary-ldbl.h>", private, "<monetary.h>", public ] },
- { include: [ "<bits/mqueue.h>", private, "<mqueue.h>", public ] },
- { include: [ "<bits/mqueue2.h>", private, "<mqueue.h>", public ] },
- { include: [ "<bits/msq.h>", private, "<sys/msg.h>", public ] },
- { include: [ "<bits/nan.h>", private, "<math.h>", public ] },
- { include: [ "<bits/netdb.h>", private, "<netdb.h>", private ] },
- { include: [ "<bits/param.h>", private, "<sys/param.h>", public ] },
- { include: [ "<bits/poll.h>", private, "<sys/poll.h>", private ] },
- { include: [ "<bits/poll2.h>", private, "<sys/poll.h>", private ] },
- { include: [ "<bits/posix1_lim.h>", private, "<limits.h>", public ] },
- { include: [ "<bits/posix2_lim.h>", private, "<limits.h>", public ] },
- { include: [ "<bits/posix_opt.h>", private, "<unistd.h>", private ] },
- { include: [ "<bits/printf-ldbl.h>", private, "<printf.h>", public ] },
- { include: [ "<bits/pthreadtypes.h>", private, "<pthread.h>", private ] },
- { include: [ "<bits/resource.h>", private, "<sys/resource.h>", public ] },
- { include: [ "<bits/sched.h>", private, "<sched.h>", public ] },
- { include: [ "<bits/select.h>", private, "<sys/select.h>", public ] },
- { include: [ "<bits/select2.h>", private, "<sys/select.h>", public ] },
- { include: [ "<bits/sem.h>", private, "<sys/sem.h>", public ] },
- { include: [ "<bits/semaphore.h>", private, "<semaphore.h>", public ] },
- { include: [ "<bits/setjmp.h>", private, "<setjmp.h>", public ] },
- { include: [ "<bits/setjmp2.h>", private, "<setjmp.h>", public ] },
- { include: [ "<bits/shm.h>", private, "<sys/shm.h>", public ] },
- { include: [ "<bits/sigaction.h>", private, "<signal.h>", public ] },
- { include: [ "<bits/sigcontext.h>", private, "<signal.h>", public ] },
- { include: [ "<bits/siginfo.h>", private, "<signal.h>", public ] },
- { include: [ "<bits/signum.h>", private, "<signal.h>", public ] },
- { include: [ "<bits/sigset.h>", private, "<signal.h>", public ] },
- { include: [ "<bits/sigstack.h>", private, "<signal.h>", public ] },
- { include: [ "<bits/sigthread.h>", private, "<signal.h>", public ] },
- { include: [ "<bits/sockaddr.h>", private, "<sys/un.h>", public ] },
- { include: [ "<bits/socket.h>", private, "<sys/socket.h>", private ] },
- { include: [ "<bits/socket2.h>", private, "<sys/socket.h>", private ] },
- { include: [ "<bits/socket_type.h>", private, "<sys/socket.h>", private ] },
- { include: [ "<bits/stab.def>", private, "<stab.h>", public ] },
- { include: [ "<bits/stat.h>", private, "<sys/stat.h>", public ] },
- { include: [ "<bits/statfs.h>", private, "<sys/statfs.h>", public ] },
- { include: [ "<bits/statvfs.h>", private, "<sys/statvfs.h>", public ] },
- { include: [ "<bits/stdio-ldbl.h>", private, "<stdio.h>", public ] },
- { include: [ "<bits/stdio-lock.h>", private, "<libio.h>", public ] },
- { include: [ "<bits/stdio.h>", private, "<stdio.h>", public ] },
- { include: [ "<bits/stdio2.h>", private, "<stdio.h>", public ] },
- { include: [ "<bits/stdio_lim.h>", private, "<stdio.h>", public ] },
- { include: [ "<bits/stdlib-bsearch.h>", private, "<stdlib.h>", public ] },
- { include: [ "<bits/stdlib-float.h>", private, "<stdlib.h>", public ] },
- { include: [ "<bits/stdlib-ldbl.h>", private, "<stdlib.h>", public ] },
- { include: [ "<bits/stdlib.h>", private, "<stdlib.h>", public ] },
- { include: [ "<bits/string.h>", private, "<string.h>", public ] },
- { include: [ "<bits/string2.h>", private, "<string.h>", public ] },
- { include: [ "<bits/string3.h>", private, "<string.h>", public ] },
- { include: [ "<bits/stropts.h>", private, "<stropts.h>", public ] },
- { include: [ "<bits/struct_stat.h>", private, "<sys/stat.h>", public ] },
- { include: [ "<bits/struct_stat.h>", private, "<ftw.h>", public ] },
- { include: [ "<bits/sys_errlist.h>", private, "<stdio.h>", public ] },
- { include: [ "<bits/syscall.h>", private, "<sys/syscall.h>", public ] },
- { include: [ "<bits/sysctl.h>", private, "<sys/sysctl.h>", public ] },
- { include: [ "<bits/syslog-ldbl.h>", private, "<sys/syslog.h>", private ] },
- { include: [ "<bits/syslog-path.h>", private, "<sys/syslog.h>", private ] },
- { include: [ "<bits/syslog.h>", private, "<sys/syslog.h>", private ] },
- { include: [ "<bits/termios.h>", private, "<termios.h>", private ] },
- { include: [ "<bits/termios-c_lflag.h>", private, "<termios.h>", private ] },
- { include: [ "<bits/termios-struct.h>", private, "<termios.h>", private ] },
- { include: [ "<bits/termios-tcflow.h>", private, "<termios.h>", private ] },
- { include: [ "<bits/time.h>", private, "<time.h>", public ] },
- { include: [ "<bits/time.h>", private, "<sys/time.h>", public ] },
- { include: [ "<bits/timerfd.h>", private, "<sys/timerfd.h>", public ] },
- { include: [ "<bits/timex.h>", private, "<sys/timex.h>", public ] },
- { include: [ "<bits/types.h>", private, "<sys/types.h>", public ] },
- { include: [ "<bits/types/siginfo_t.h>", private, "<signal.h>", public ] },
- { include: [ "<bits/types/siginfo_t.h>", private, "<sys/wait.h>", public ] },
- { include: [ "<bits/uio.h>", private, "<sys/uio.h>", public ] },
- { include: [ "<bits/unistd.h>", private, "<unistd.h>", private ] },
- { include: [ "<bits/ustat.h>", private, "<sys/ustat.h>", private ] },
- { include: [ "<bits/utmp.h>", private, "<utmp.h>", public ] },
- { include: [ "<bits/utmpx.h>", private, "<utmpx.h>", public ] },
- { include: [ "<bits/utsname.h>", private, "<sys/utsname.h>", public ] },
- { include: [ "<bits/waitflags.h>", private, "<sys/wait.h>", public ] },
- { include: [ "<bits/waitstatus.h>", private, "<sys/wait.h>", public ] },
- { include: [ "<bits/wchar-ldbl.h>", private, "<wchar.h>", public ] },
- { include: [ "<bits/wchar.h>", private, "<wchar.h>", public ] },
- { include: [ "<bits/wchar2.h>", private, "<wchar.h>", public ] },
- { include: [ "<bits/wordsize.h>", private, "<limits.h>", public ] },
- { include: [ "<bits/xopen_lim.h>", private, "<limits.h>", public ] },
- { include: [ "<bits/xtitypes.h>", private, "<stropts.h>", public ] },
- # Sometimes libc tells you what mapping to do via an '#error':
- # # error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
- # or
- # # error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
- # ( cd /usr/include && grep -R '^ *# *error "Never use\|include' * | perl -nle 'm/<([^>]+).*directly.*<([^>]+)/ && print qq@ { include: [ "<$1>", private, "<$2>", public ] },@' | sort )
- { include: [ "<bits/a.out.h>", private, "<a.out.h>", public ] },
- { include: [ "<bits/byteswap-16.h>", private, "<byteswap.h>", public ] },
- { include: [ "<bits/byteswap.h>", private, "<byteswap.h>", public ] },
- { include: [ "<bits/cmathcalls.h>", private, "<complex.h>", public ] },
- { include: [ "<bits/confname.h>", private, "<unistd.h>", private ] },
- { include: [ "<bits/dirent.h>", private, "<dirent.h>", public ] },
- { include: [ "<bits/dlfcn.h>", private, "<dlfcn.h>", public ] },
- { include: [ "<bits/elfclass.h>", private, "<link.h>", public ] },
- { include: [ "<bits/endian.h>", private, "<endian.h>", public ] },
- { include: [ "<bits/epoll.h>", private, "<sys/epoll.h>", public ] },
- { include: [ "<bits/eventfd.h>", private, "<sys/eventfd.h>", public ] },
- { include: [ "<bits/fcntl-linux.h>", private, "<fcntl.h>", public ] },
- { include: [ "<bits/fcntl.h>", private, "<fcntl.h>", public ] },
- { include: [ "<bits/fenv.h>", private, "<fenv.h>", public ] },
- { include: [ "<bits/huge_val.h>", private, "<math.h>", public ] },
- { include: [ "<bits/huge_valf.h>", private, "<math.h>", public ] },
- { include: [ "<bits/huge_vall.h>", private, "<math.h>", public ] },
- { include: [ "<bits/in.h>", private, "<netinet/in.h>", private ] },
- { include: [ "<bits/inf.h>", private, "<math.h>", public ] },
- { include: [ "<bits/inotify.h>", private, "<sys/inotify.h>", public ] },
- { include: [ "<bits/ioctl-types.h>", private, "<sys/ioctl.h>", public ] },
- { include: [ "<bits/ioctls.h>", private, "<sys/ioctl.h>", public ] },
- { include: [ "<bits/ipc.h>", private, "<sys/ipc.h>", public ] },
- { include: [ "<bits/ipctypes.h>", private, "<sys/ipc.h>", public ] },
- { include: [ "<bits/locale.h>", private, "<locale.h>", public ] },
- { include: [ "<bits/math-finite.h>", private, "<math.h>", public ] },
- { include: [ "<bits/mathdef.h>", private, "<math.h>", public ] },
- { include: [ "<bits/mathinline.h>", private, "<math.h>", public ] },
- { include: [ "<bits/mman-linux.h>", private, "<sys/mman.h>", public ] },
- { include: [ "<bits/mman.h>", private, "<sys/mman.h>", public ] },
- { include: [ "<bits/mqueue.h>", private, "<mqueue.h>", public ] },
- { include: [ "<bits/msq.h>", private, "<sys/msg.h>", public ] },
- { include: [ "<bits/nan.h>", private, "<math.h>", public ] },
- { include: [ "<bits/param.h>", private, "<sys/param.h>", public ] },
- { include: [ "<bits/poll.h>", private, "<sys/poll.h>", private ] },
- { include: [ "<bits/predefs.h>", private, "<features.h>", public ] },
- { include: [ "<bits/resource.h>", private, "<sys/resource.h>", public ] },
- { include: [ "<bits/select.h>", private, "<sys/select.h>", public ] },
- { include: [ "<bits/semaphore.h>", private, "<semaphore.h>", public ] },
- { include: [ "<bits/sigcontext.h>", private, "<signal.h>", public ] },
- { include: [ "<bits/signalfd.h>", private, "<sys/signalfd.h>", public ] },
- { include: [ "<bits/stdlib-float.h>", private, "<stdlib.h>", public ] },
- { include: [ "<bits/string.h>", private, "<string.h>", public ] },
- { include: [ "<bits/string2.h>", private, "<string.h>", public ] },
- { include: [ "<bits/string3.h>", private, "<string.h>", public ] },
- { include: [ "<bits/timerfd.h>", private, "<sys/timerfd.h>", public ] },
- { include: [ "<bits/typesizes.h>", private, "<sys/types.h>", public ] },
- # Top-level #includes that just forward to another file:
- # $ for i in /usr/include/*; do [ -f $i ] } && [ `wc -l < $i` = 1 ] } && echo $i; done
- # (poll.h, syscall.h, syslog.h, ustat.h, wait.h).
- # For each file, I looked at the list of canonical header files --
- # http://www.opengroup.org/onlinepubs/9699919799/idx/head.html --
- # to decide which of the two files is canonical. If neither is
- # on the POSIX.1 1998 list, I just choose the top-level one.
- { include: [ "<sys/poll.h>", private, "<poll.h>", public ] },
- { include: [ "<sys/syslog.h>", private, "<syslog.h>", public ] },
- { include: [ "<sys/ustat.h>", private, "<ustat.h>", public ] },
- { include: [ "<wait.h>", private, "<sys/wait.h>", public ] },
- # These are all files in bits/ that delegate to asm/ and linux/ to
- # do all (or lots) of the work. Note these are private->private.
- # $ for i in /usr/include/bits/*; do for dir in asm linux; do grep -H -e $dir/`basename $i` $i; done; done
- { include: [ "<linux/errno.h>", private, "<bits/errno.h>", private ] },
- { include: [ "<asm/ioctls.h>", private, "<bits/ioctls.h>", private ] },
- { include: [ "<asm/socket.h>", private, "<bits/socket.h>", private ] },
- { include: [ "<linux/socket.h>", private, "<bits/socket.h>", private ] },
- # Some asm files have 32- and 64-bit variants:
- # $ ls /usr/include/asm/*_{32,64}.h
- { include: [ "<asm/posix_types_32.h>", private, "<asm/posix_types.h>", public ] },
- { include: [ "<asm/posix_types_64.h>", private, "<asm/posix_types.h>", public ] },
- { include: [ "<asm/unistd_32.h>", private, "<asm/unistd.h>", private ] },
- { include: [ "<asm/unistd_64.h>", private, "<asm/unistd.h>", private ] },
- # I don't know what grep would have found these. I found them
- # via user report.
- { include: [ "<asm/errno.h>", private, "<errno.h>", public ] },
- { include: [ "<asm/errno-base.h>", private, "<errno.h>", public ] },
- { include: [ "<asm/ptrace-abi.h>", private, "<asm/ptrace.h>", public ] },
- { include: [ "<asm/unistd.h>", private, "<sys/syscall.h>", public ] },
- { include: [ "<linux/limits.h>", private, "<limits.h>", public ] }, # PATH_MAX
- { include: [ "<linux/prctl.h>", private, "<sys/prctl.h>", public ] },
- { include: [ "<sys/ucontext.h>", private, "<ucontext.h>", public ] },
- # Exports guaranteed by the C standard
- { include: [ "<stdint.h>", public, "<inttypes.h>", public ] },
-]
-
-# vim: set ft=toml:
diff --git a/cmake.config/iwyu/gcc.symbols.imp b/cmake.config/iwyu/gcc.symbols.imp
deleted file mode 100644
index 6066de9d09..0000000000
--- a/cmake.config/iwyu/gcc.symbols.imp
+++ /dev/null
@@ -1,305 +0,0 @@
-# This was initially taken from the IWYU repository:
-# github.com/include-what-you-use/include-what-you-use/blob/164b8fe7597805ae55f029ecf6580dc46a74c7ed/gcc.symbols.imp
-# It has useful mappings that are normally enabled by default, but there are
-# other default mappings that conflict with our builds. The best solution seems
-# to be to disable all defaults, import the defaults from the IWYU repo and
-# modify the rules that conflict with our build.
-#
-# TODO(dundargoc): Check if there is a way to disable specific builtin maps as
-# to avoid this file entirely.
-
-# For library symbols that can be defined in more than one header
-# file, maps from symbol-name to legitimate header files.
-# This list was generated via
-# grep -R '__.*_defined' /usr/include | perl -nle 'm,/usr/include/([^:]*):#\s*\S+ __(.*)_defined, and print qq@ { symbol: [ "$2", public, "<$1>", public ] },@' | sort -u
-# I ignored all entries that only appeared once on the list (eg uint32_t).
-# I then added in NULL, which according to [diff.null] C.2.2.3, can
-# be defined in <clocale>, <cstddef>, <cstdio>, <cstdlib>,
-# <cstring>, <ctime>, or <cwchar>. We also allow their C
-# equivalents.
-# In each case, I ordered them so <sys/types.h> was first, if it was
-# an option for this type. That's the preferred #include all else
-# equal. The same goes for <stdint.h>. The visibility on the
-# symbol-name is ignored; by convention we always set it to private.
-[
- { symbol: [ "aiocb", private, "<aio.h>", public ] },
- { symbol: [ "blkcnt_t", private, "<sys/types.h>", public ] },
- { symbol: [ "blkcnt_t", private, "<sys/stat.h>", public ] },
- { symbol: [ "blksize_t", private, "<sys/types.h>", public ] },
- { symbol: [ "blksize_t", private, "<sys/stat.h>", public ] },
- { symbol: [ "cc_t", private, "<termios.h>", private ] },
- { symbol: [ "clock_t", private, "<sys/types.h>", public ] },
- { symbol: [ "clock_t", private, "<sys/time.h>", public ] },
- { symbol: [ "clock_t", private, "<time.h>", public ] },
- { symbol: [ "clockid_t", private, "<sys/types.h>", public ] },
- { symbol: [ "clockid_t", private, "<time.h>", public ] },
- { symbol: [ "daddr_t", private, "<sys/types.h>", public ] },
- { symbol: [ "daddr_t", private, "<rpc/types.h>", public ] },
- { symbol: [ "dev_t", private, "<sys/types.h>", public ] },
- { symbol: [ "dev_t", private, "<sys/stat.h>", public ] },
- { symbol: [ "div_t", private, "<stdlib.h>", public ] },
- { symbol: [ "double_t", private, "<math.h>", public ] },
- { symbol: [ "error_t", private, "<errno.h>", public ] },
- { symbol: [ "error_t", private, "<argp.h>", public ] },
- { symbol: [ "error_t", private, "<argz.h>", public ] },
- { symbol: [ "fd_set", private, "<sys/select.h>", public ] },
- { symbol: [ "fd_set", private, "<sys/time.h>", public ] },
- { symbol: [ "fenv_t", private, "<fenv.h>", public ] },
- { symbol: [ "fexcept_t", private, "<fenv.h>", public ] },
- { symbol: [ "FILE", private, "<stdio.h>", public ] },
- { symbol: [ "FILE", private, "<wchar.h>", public ] },
- { symbol: [ "float_t", private, "<math.h>", public ] },
- { symbol: [ "fsblkcnt_t", private, "<sys/types.h>", public ] },
- { symbol: [ "fsblkcnt_t", private, "<sys/statvfs.h>", public ] },
- { symbol: [ "fsfilcnt_t", private, "<sys/types.h>", public ] },
- { symbol: [ "fsfilcnt_t", private, "<sys/statvfs.h>", public ] },
- { symbol: [ "getopt", private, "<unistd.h>", private ] },
- { symbol: [ "gid_t", private, "<sys/types.h>", public ] },
- { symbol: [ "gid_t", private, "<grp.h>", public ] },
- { symbol: [ "gid_t", private, "<pwd.h>", public ] },
- { symbol: [ "gid_t", private, "<signal.h>", public ] },
- { symbol: [ "gid_t", private, "<stropts.h>", public ] },
- { symbol: [ "gid_t", private, "<sys/ipc.h>", public ] },
- { symbol: [ "gid_t", private, "<sys/stat.h>", public ] },
- { symbol: [ "gid_t", private, "<unistd.h>", private ] },
- { symbol: [ "htonl", private, "<arpa/inet.h>", private ] },
- { symbol: [ "htons", private, "<arpa/inet.h>", private ] },
- { symbol: [ "id_t", private, "<sys/types.h>", public ] },
- { symbol: [ "id_t", private, "<sys/resource.h>", public ] },
- { symbol: [ "imaxdiv_t", private, "<inttypes.h>", public ] },
- { symbol: [ "intmax_t", private, "<stdint.h>", public ] },
- { symbol: [ "uintmax_t", private, "<stdint.h>", public ] },
- { symbol: [ "ino64_t", private, "<sys/types.h>", public ] },
- { symbol: [ "ino64_t", private, "<dirent.h>", public ] },
- { symbol: [ "ino_t", private, "<sys/types.h>", public ] },
- { symbol: [ "ino_t", private, "<dirent.h>", public ] },
- { symbol: [ "ino_t", private, "<sys/stat.h>", public ] },
- { symbol: [ "int8_t", private, "<stdint.h>", public ] },
- { symbol: [ "int16_t", private, "<stdint.h>", public ] },
- { symbol: [ "int32_t", private, "<stdint.h>", public ] },
- { symbol: [ "int64_t", private, "<stdint.h>", public ] },
- { symbol: [ "uint8_t", private, "<stdint.h>", public ] },
- { symbol: [ "uint16_t", private, "<stdint.h>", public ] },
- { symbol: [ "uint32_t", private, "<stdint.h>", public ] },
- { symbol: [ "uint64_t", private, "<stdint.h>", public ] },
- { symbol: [ "intptr_t", private, "<stdint.h>", public ] },
- { symbol: [ "uintptr_t", private, "<stdint.h>", public ] },
- { symbol: [ "iovec", private, "<sys/uio.h>", public ] },
- { symbol: [ "iovec", private, "<sys/socket.h>", private ] },
- { symbol: [ "itimerspec", private, "<time.h>", public ] },
- { symbol: [ "itimerspec", private, "<sys/timerfd.h>", public ] },
- { symbol: [ "key_t", private, "<sys/types.h>", public ] },
- { symbol: [ "key_t", private, "<sys/ipc.h>", public ] },
- { symbol: [ "lconv", private, "<locale.h>", public ] },
- { symbol: [ "ldiv_t", private, "<stdlib.h>", public ] },
- { symbol: [ "lldiv_t", private, "<stdlib.h>", public ] },
- { symbol: [ "max_align_t", private, "<stddef.h>", public ] },
- { symbol: [ "mode_t", private, "<sys/types.h>", public ] },
- { symbol: [ "mode_t", private, "<fcntl.h>", public ] },
- { symbol: [ "mode_t", private, "<ndbm.h>", public ] },
- { symbol: [ "mode_t", private, "<spawn.h>", public ] },
- { symbol: [ "mode_t", private, "<sys/ipc.h>", public ] },
- { symbol: [ "mode_t", private, "<sys/mman.h>", public ] },
- { symbol: [ "mode_t", private, "<sys/stat.h>", public ] },
- { symbol: [ "nlink_t", private, "<sys/types.h>", public ] },
- { symbol: [ "nlink_t", private, "<sys/stat.h>", public ] },
- { symbol: [ "ntohl", private, "<arpa/inet.h>", private ] },
- { symbol: [ "ntohs", private, "<arpa/inet.h>", private ] },
- { symbol: [ "off64_t", private, "<sys/types.h>", public ] },
- { symbol: [ "off64_t", private, "<unistd.h>", private ] },
- { symbol: [ "off_t", private, "<sys/types.h>", public ] },
- { symbol: [ "off_t", private, "<aio.h>", public ] },
- { symbol: [ "off_t", private, "<fcntl.h>", public ] },
- { symbol: [ "off_t", private, "<stdio.h>", public ] },
- { symbol: [ "off_t", private, "<sys/mman.h>", public ] },
- { symbol: [ "off_t", private, "<sys/stat.h>", public ] },
- { symbol: [ "off_t", private, "<unistd.h>", private ] },
- { symbol: [ "optarg", private, "<unistd.h>", private ] },
- { symbol: [ "opterr", private, "<unistd.h>", private ] },
- { symbol: [ "optind", private, "<unistd.h>", private ] },
- { symbol: [ "optopt", private, "<unistd.h>", private ] },
- { symbol: [ "pid_t", private, "<sys/types.h>", public ] },
- { symbol: [ "pid_t", private, "<fcntl.h>", public ] },
- { symbol: [ "pid_t", private, "<sched.h>", public ] },
- { symbol: [ "pid_t", private, "<signal.h>", public ] },
- { symbol: [ "pid_t", private, "<spawn.h>", public ] },
- { symbol: [ "pid_t", private, "<sys/msg.h>", public ] },
- { symbol: [ "pid_t", private, "<sys/sem.h>", public ] },
- { symbol: [ "pid_t", private, "<sys/shm.h>", public ] },
- { symbol: [ "pid_t", private, "<sys/wait.h>", public ] },
- { symbol: [ "pid_t", private, "<termios.h>", private ] },
- { symbol: [ "pid_t", private, "<time.h>", public ] },
- { symbol: [ "pid_t", private, "<unistd.h>", private ] },
- { symbol: [ "pid_t", private, "<utmpx.h>", public ] },
- { symbol: [ "ptrdiff_t", private, "<stddef.h>", public ] },
- { symbol: [ "regex_t", private, "<regex.h>", public ] },
- { symbol: [ "regmatch_t", private, "<regex.h>", public ] },
- { symbol: [ "regoff_t", private, "<regex.h>", public ] },
- { symbol: [ "sigevent", private, "<signal.h>", public ] },
- { symbol: [ "sigevent", private, "<aio.h>", public ] },
- { symbol: [ "sigevent", private, "<mqueue.h>", public ] },
- { symbol: [ "sigevent", private, "<time.h>", public ] },
- { symbol: [ "siginfo_t", private, "<signal.h>", public ] },
- { symbol: [ "siginfo_t", private, "<sys/wait.h>", public ] },
- { symbol: [ "sigset_t", private, "<signal.h>", public ] },
- { symbol: [ "sigset_t", private, "<spawn.h>", public ] },
- { symbol: [ "sigset_t", private, "<sys/select.h>", public ] },
- { symbol: [ "sigval", private, "<signal.h>", public ] },
- { symbol: [ "sockaddr", private, "<sys/socket.h>", private ] },
- { symbol: [ "socklen_t", private, "<sys/socket.h>", private ] },
- { symbol: [ "socklen_t", private, "<netdb.h>", private ] },
- { symbol: [ "ssize_t", private, "<sys/types.h>", public ] },
- { symbol: [ "ssize_t", private, "<aio.h>", public ] },
- { symbol: [ "ssize_t", private, "<monetary.h>", public ] },
- { symbol: [ "ssize_t", private, "<mqueue.h>", public ] },
- { symbol: [ "ssize_t", private, "<stdio.h>", public ] },
- { symbol: [ "ssize_t", private, "<sys/msg.h>", public ] },
- { symbol: [ "ssize_t", private, "<sys/socket.h>", private ] },
- { symbol: [ "ssize_t", private, "<sys/uio.h>", public ] },
- { symbol: [ "ssize_t", private, "<unistd.h>", private ] },
- { symbol: [ "stat", private, "<sys/stat.h>", public ] },
- { symbol: [ "stat", private, "<ftw.h>", public ] },
- { symbol: [ "suseconds_t", private, "<sys/types.h>", public ] },
- { symbol: [ "suseconds_t", private, "<sys/select.h>", public ] },
- { symbol: [ "suseconds_t", private, "<sys/time.h>", public ] },
- { symbol: [ "time_t", private, "<time.h>", public ] },
- { symbol: [ "time_t", private, "<sched.h>", public ] },
- { symbol: [ "time_t", private, "<sys/msg.h>", public ] },
- { symbol: [ "time_t", private, "<sys/select.h>", public ] },
- { symbol: [ "time_t", private, "<sys/sem.h>", public ] },
- { symbol: [ "time_t", private, "<sys/shm.h>", public ] },
- { symbol: [ "time_t", private, "<sys/stat.h>", public ] },
- { symbol: [ "time_t", private, "<sys/time.h>", public ] },
- { symbol: [ "time_t", private, "<sys/types.h>", public ] },
- { symbol: [ "time_t", private, "<utime.h>", public ] },
- { symbol: [ "timer_t", private, "<sys/types.h>", public ] },
- { symbol: [ "timer_t", private, "<time.h>", public ] },
- { symbol: [ "timespec", private, "<time.h>", public ] },
- { symbol: [ "timespec", private, "<aio.h>", public ] },
- { symbol: [ "timespec", private, "<mqueue.h>", public ] },
- { symbol: [ "timespec", private, "<sched.h>", public ] },
- { symbol: [ "timespec", private, "<signal.h>", public ] },
- { symbol: [ "timespec", private, "<sys/select.h>", public ] },
- { symbol: [ "timespec", private, "<sys/stat.h>", public ] },
- { symbol: [ "timeval", private, "<sys/time.h>", public ] },
- { symbol: [ "timeval", private, "<sys/resource.h>", public ] },
- { symbol: [ "timeval", private, "<sys/select.h>", public ] },
- { symbol: [ "timeval", private, "<utmpx.h>", public ] },
- { symbol: [ "tm", private, "<time.h>", public ] },
- { symbol: [ "u_char", private, "<sys/types.h>", public ] },
- { symbol: [ "u_char", private, "<rpc/types.h>", public ] },
- { symbol: [ "uid_t", private, "<sys/types.h>", public ] },
- { symbol: [ "uid_t", private, "<pwd.h>", public ] },
- { symbol: [ "uid_t", private, "<signal.h>", public ] },
- { symbol: [ "uid_t", private, "<stropts.h>", public ] },
- { symbol: [ "uid_t", private, "<sys/ipc.h>", public ] },
- { symbol: [ "uid_t", private, "<sys/stat.h>", public ] },
- { symbol: [ "uid_t", private, "<unistd.h>", private ] },
- { symbol: [ "useconds_t", private, "<sys/types.h>", public ] },
- { symbol: [ "useconds_t", private, "<unistd.h>", private ] },
- { symbol: [ "wchar_t", private, "<stddef.h>", public ] },
- { symbol: [ "wchar_t", private, "<stdlib.h>", public ] },
- { symbol: [ "size_t", private, "<stddef.h>", public ] },
- { symbol: [ "size_t", private, "<aio.h>", public ] },
- { symbol: [ "size_t", private, "<glob.h>", public ] },
- { symbol: [ "size_t", private, "<grp.h>", public ] },
- { symbol: [ "size_t", private, "<iconv.h>", public ] },
- { symbol: [ "size_t", private, "<monetary.h>", public ] },
- { symbol: [ "size_t", private, "<mqueue.h>", public ] },
- { symbol: [ "size_t", private, "<ndbm.h>", public ] },
- { symbol: [ "size_t", private, "<pwd.h>", public ] },
- { symbol: [ "size_t", private, "<regex.h>", public ] },
- { symbol: [ "size_t", private, "<search.h>", public ] },
- { symbol: [ "size_t", private, "<signal.h>", public ] },
- { symbol: [ "size_t", private, "<stdio.h>", public ] },
- { symbol: [ "size_t", private, "<stdlib.h>", public ] },
- { symbol: [ "size_t", private, "<string.h>", public ] },
- { symbol: [ "size_t", private, "<strings.h>", public ] },
- { symbol: [ "size_t", private, "<sys/mman.h>", public ] },
- { symbol: [ "size_t", private, "<sys/msg.h>", public ] },
- { symbol: [ "size_t", private, "<sys/sem.h>", public ] },
- { symbol: [ "size_t", private, "<sys/shm.h>", public ] },
- { symbol: [ "size_t", private, "<sys/socket.h>", private ] },
- { symbol: [ "size_t", private, "<sys/types.h>", public ] },
- { symbol: [ "size_t", private, "<sys/uio.h>", public ] },
- { symbol: [ "size_t", private, "<time.h>", public ] },
- { symbol: [ "size_t", private, "<uchar.h>", public ] },
- { symbol: [ "size_t", private, "<unistd.h>", private ] },
- { symbol: [ "size_t", private, "<wchar.h>", public ] },
- { symbol: [ "size_t", private, "<wordexp.h>", public ] },
- # Macros that can be defined in more than one file, don't have the
- # same __foo_defined guard that other types do, so the grep above
- # doesn't discover them. Until I figure out a better way, I just
- # add them in by hand as I discover them.
- { symbol: [ "EOF", private, "<stdio.h>", public ] },
- { symbol: [ "EOF", private, "<libio.h>", public ] },
- { symbol: [ "FILE", private, "<stdio.h>", public ] },
- { symbol: [ "MAP_POPULATE", private, "<sys/mman.h>", public ] },
- { symbol: [ "MAP_POPULATE", private, "<linux/mman.h>", public ] },
- { symbol: [ "MAP_STACK", private, "<sys/mman.h>", public ] },
- { symbol: [ "MAP_STACK", private, "<linux/mman.h>", public ] },
- { symbol: [ "MAXHOSTNAMELEN", private, "<sys/param.h>", public ] },
- { symbol: [ "MAXHOSTNAMELEN", private, "<protocols/timed.h>", public ] },
- { symbol: [ "SIGABRT", private, "<signal.h>", public ] },
- { symbol: [ "SIGCHLD", private, "<signal.h>", public ] },
- { symbol: [ "SIGCHLD", private, "<linux/signal.h>", public ] },
- { symbol: [ "va_list", private, "<stdarg.h>", public ] },
- { symbol: [ "va_list", private, "<stdio.h>", public ] },
- { symbol: [ "va_list", private, "<wchar.h>", public ] },
- # These are symbols that could be defined in either stdlib.h or
- # malloc.h, but we always want the stdlib location.
- { symbol: [ "malloc", private, "<stdlib.h>", public ] },
- { symbol: [ "calloc", private, "<stdlib.h>", public ] },
- { symbol: [ "realloc", private, "<stdlib.h>", public ] },
- { symbol: [ "free", private, "<stdlib.h>", public ] },
- # Entries for NULL
- { symbol: [ "NULL", private, "<stddef.h>", public ] }, # 'canonical' location for NULL
- { symbol: [ "NULL", private, "<clocale>", public ] },
- { symbol: [ "NULL", private, "<cstddef>", public ] },
- { symbol: [ "NULL", private, "<cstdio>", public ] },
- { symbol: [ "NULL", private, "<cstdlib>", public ] },
- { symbol: [ "NULL", private, "<cstring>", public ] },
- { symbol: [ "NULL", private, "<ctime>", public ] },
- { symbol: [ "NULL", private, "<cwchar>", public ] },
- { symbol: [ "NULL", private, "<locale.h>", public ] },
- { symbol: [ "NULL", private, "<stdio.h>", public ] },
- { symbol: [ "NULL", private, "<stdlib.h>", public ] },
- { symbol: [ "NULL", private, "<string.h>", public ] },
- { symbol: [ "NULL", private, "<time.h>", public ] },
- { symbol: [ "NULL", private, "<unistd.h>", private ] },
- { symbol: [ "NULL", private, "<wchar.h>", public ] },
-
- # Kludge time: almost all STL types take an allocator, but they
- # almost always use the default value. Usually we detect that
- # and don't try to do IWYU, but sometimes it passes through.
- # For instance, when adding two strings, we end up calling
- # template<_CharT,_Traits,_Alloc> ... operator+(
- # basic_string<_CharT,_Traits,_Alloc>, ...)
- # These look like normal template args to us, so we see they're
- # used and declare an iwyu dependency, even though we don't need
- # to #include the traits or alloc type ourselves. The surest way
- # to deal with this is to just say that everyone provides
- # std::allocator. We can add more here at need.
- { symbol: [ "std::allocator", private, "<memory>", public ] },
- { symbol: [ "std::allocator", private, "<string>", public ] },
- { symbol: [ "std::allocator", private, "<vector>", public ] },
- { symbol: [ "std::allocator", private, "<map>", public ] },
- { symbol: [ "std::allocator", private, "<set>", public ] },
- # A similar kludge for std::char_traits. basic_string,
- # basic_ostream and basic_istream have this as a default template
- # argument, and sometimes it bleeds through when clang desugars the
- # string/ostream/istream type.
- { symbol: [ "std::char_traits", private, "<string>", public ] },
- { symbol: [ "std::char_traits", private, "<ostream>", public ] },
- { symbol: [ "std::char_traits", private, "<istream>", public ] },
-
- { symbol: [ "std::size_t", private, "<cstddef>", public ] },
- { symbol: [ "std::size_t", private, "<cstdio>", public ] },
- { symbol: [ "std::size_t", private, "<cstdlib>", public ] },
- { symbol: [ "std::size_t", private, "<cstring>", public ] },
- { symbol: [ "std::size_t", private, "<ctime>", public ] },
- { symbol: [ "std::size_t", private, "<cuchar>", public ] },
- { symbol: [ "std::size_t", private, "<cwchar>", public ] }
-]
-
-# vim: set ft=toml:
diff --git a/cmake.config/iwyu/mapping.imp b/cmake.config/iwyu/mapping.imp
index 4e55aa9875..4056070958 100644
--- a/cmake.config/iwyu/mapping.imp
+++ b/cmake.config/iwyu/mapping.imp
@@ -1,238 +1,30 @@
[
- # Generated to normal headers: header.h.generated.h -> nvim/header.h
- { include: [ '"api/autocmd.h.generated.h"', private, '"nvim/api/autocmd.h"', public ] },
- { include: [ '"api/buffer.h.generated.h"', private, '"nvim/api/buffer.h"', public ] },
- { include: [ '"api/command.h.generated.h"', private, '"nvim/api/command.h"', public ] },
- { include: [ '"api/deprecated.h.generated.h"', private, '"nvim/api/deprecated.h"', public ] },
- { include: [ '"api/extmark.h.generated.h"', private, '"nvim/api/extmark.h"', public ] },
- { include: [ '"api/options.h.generated.h"', private, '"nvim/api/options.h"', public ] },
- { include: [ '"api/private/converter.h.generated.h"', private, '"nvim/api/private/converter.h"', public ] },
- { include: [ '"api/private/dispatch.h.generated.h"', private, '"nvim/api/private/dispatch.h"', public ] },
- { include: [ '"api/private/helpers.h.generated.h"', private, '"nvim/api/private/helpers.h"', public ] },
- { include: [ '"api/tabpage.h.generated.h"', private, '"nvim/api/tabpage.h"', public ] },
- { include: [ '"api/ui.h.generated.h"', private, '"nvim/api/ui.h"', public ] },
- { include: [ '"api/vim.h.generated.h"', private, '"nvim/api/vim.h"', public ] },
- { include: [ '"api/vimscript.h.generated.h"', private, '"nvim/api/vimscript.h"', public ] },
- { include: [ '"api/win_config.h.generated.h"', private, '"nvim/api/win_config.h"', public ] },
- { include: [ '"api/window.h.generated.h"', private, '"nvim/api/window.h"', public ] },
- { include: [ '"arabic.h.generated.h"', private, '"nvim/arabic.h"', public ] },
- { include: [ '"arglist.h.generated.h"', private, '"nvim/arglist.h"', public ] },
- { include: [ '"autocmd.h.generated.h"', private, '"nvim/autocmd.h"', public ] },
- { include: [ '"buffer.h.generated.h"', private, '"nvim/buffer.h"', public ] },
- { include: [ '"buffer_updates.h.generated.h"', private, '"nvim/buffer_updates.h"', public ] },
- { include: [ '"change.h.generated.h"', private, '"nvim/change.h"', public ] },
- { include: [ '"channel.h.generated.h"', private, '"nvim/channel.h"', public ] },
- { include: [ '"charset.h.generated.h"', private, '"nvim/charset.h"', public ] },
- { include: [ '"cmdexpand.h.generated.h"', private, '"nvim/cmdexpand.h"', public ] },
- { include: [ '"cmdhist.h.generated.h"', private, '"nvim/cmdhist.h"', public ] },
- { include: [ '"context.h.generated.h"', private, '"nvim/context.h"', public ] },
- { include: [ '"cursor.h.generated.h"', private, '"nvim/cursor.h"', public ] },
- { include: [ '"cursor_shape.h.generated.h"', private, '"nvim/cursor_shape.h"', public ] },
- { include: [ '"debugger.h.generated.h"', private, '"nvim/debugger.h"', public ] },
- { include: [ '"decoration.h.generated.h"', private, '"nvim/decoration.h"', public ] },
- { include: [ '"decoration_provider.h.generated.h"', private, '"nvim/decoration_provider.h"', public ] },
- { include: [ '"diff.h.generated.h"', private, '"nvim/diff.h"', public ] },
- { include: [ '"digraph.h.generated.h"', private, '"nvim/digraph.h"', public ] },
- { include: [ '"drawline.h.generated.h"', private, '"nvim/drawline.h"', public ] },
- { include: [ '"drawscreen.h.generated.h"', private, '"nvim/drawscreen.h"', public ] },
- { include: [ '"edit.h.generated.h"', private, '"nvim/edit.h"', public ] },
- { include: [ '"eval.h.generated.h"', private, '"nvim/eval.h"', public ] },
- { include: [ '"eval/buffer.h.generated.h"', private, '"nvim/eval/buffer.h"', public ] },
- { include: [ '"eval/decode.h.generated.h"', private, '"nvim/eval/decode.h"', public ] },
- { include: [ '"eval/encode.h.generated.h"', private, '"nvim/eval/encode.h"', public ] },
- { include: [ '"eval/executor.h.generated.h"', private, '"nvim/eval/executor.h"', public ] },
- { include: [ '"eval/funcs.h.generated.h"', private, '"nvim/eval/funcs.h"', public ] },
- { include: [ '"eval/typval.h.generated.h"', private, '"nvim/eval/typval.h"', public ] },
- { include: [ '"eval/userfunc.h.generated.h"', private, '"nvim/eval/userfunc.h"', public ] },
- { include: [ '"eval/vars.h.generated.h"', private, '"nvim/eval/vars.h"', public ] },
- { include: [ '"eval/window.h.generated.h"', private, '"nvim/eval/window.h"', public ] },
- { include: [ '"event/libuv_process.h.generated.h"', private, '"nvim/event/libuv_process.h"', public ] },
- { include: [ '"event/loop.h.generated.h"', private, '"nvim/event/loop.h"', public ] },
- { include: [ '"event/multiqueue.h.generated.h"', private, '"nvim/event/multiqueue.h"', public ] },
- { include: [ '"event/process.h.generated.h"', private, '"nvim/event/process.h"', public ] },
- { include: [ '"event/rstream.h.generated.h"', private, '"nvim/event/rstream.h"', public ] },
- { include: [ '"event/signal.h.generated.h"', private, '"nvim/event/signal.h"', public ] },
- { include: [ '"event/socket.h.generated.h"', private, '"nvim/event/socket.h"', public ] },
- { include: [ '"event/stream.h.generated.h"', private, '"nvim/event/stream.h"', public ] },
- { include: [ '"event/time.h.generated.h"', private, '"nvim/event/time.h"', public ] },
- { include: [ '"event/wstream.h.generated.h"', private, '"nvim/event/wstream.h"', public ] },
- { include: [ '"ex_cmds.h.generated.h"', private, '"nvim/ex_cmds.h"', public ] },
- { include: [ '"ex_cmds2.h.generated.h"', private, '"nvim/ex_cmds2.h"', public ] },
- { include: [ '"ex_docmd.h.generated.h"', private, '"nvim/ex_docmd.h"', public ] },
- { include: [ '"ex_eval.h.generated.h"', private, '"nvim/ex_eval.h"', public ] },
- { include: [ '"ex_getln.h.generated.h"', private, '"nvim/ex_getln.h"', public ] },
- { include: [ '"ex_session.h.generated.h"', private, '"nvim/ex_session.h"', public ] },
- { include: [ '"extmark.h.generated.h"', private, '"nvim/extmark.h"', public ] },
- { include: [ '"file_search.h.generated.h"', private, '"nvim/file_search.h"', public ] },
- { include: [ '"fileio.h.generated.h"', private, '"nvim/fileio.h"', public ] },
- { include: [ '"fold.h.generated.h"', private, '"nvim/fold.h"', public ] },
- { include: [ '"garray.h.generated.h"', private, '"nvim/garray.h"', public ] },
- { include: [ '"getchar.h.generated.h"', private, '"nvim/getchar.h"', public ] },
- { include: [ '"grid.h.generated.h"', private, '"nvim/grid.h"', public ] },
- { include: [ '"hashtab.h.generated.h"', private, '"nvim/hashtab.h"', public ] },
- { include: [ '"help.h.generated.h"', private, '"nvim/help.h"', public ] },
- { include: [ '"highlight.h.generated.h"', private, '"nvim/highlight.h"', public ] },
- { include: [ '"highlight_group.h.generated.h"', private, '"nvim/highlight_group.h"', public ] },
- { include: [ '"if_cscope.h.generated.h"', private, '"nvim/if_cscope.h"', public ] },
- { include: [ '"indent.h.generated.h"', private, '"nvim/indent.h"', public ] },
- { include: [ '"indent_c.h.generated.h"', private, '"nvim/indent_c.h"', public ] },
- { include: [ '"input.h.generated.h"', private, '"nvim/input.h"', public ] },
- { include: [ '"insexpand.h.generated.h"', private, '"nvim/insexpand.h"', public ] },
- { include: [ '"keycodes.h.generated.h"', private, '"nvim/keycodes.h"', public ] },
- { include: [ '"linematch.h.generated.h"', private, '"nvim/linematch.h"', public ] },
- { include: [ '"locale.h.generated.h"', private, '"nvim/locale.h"', public ] },
- { include: [ '"log.h.generated.h"', private, '"nvim/log.h"', public ] },
- { include: [ '"lua/converter.h.generated.h"', private, '"nvim/lua/converter.h"', public ] },
- { include: [ '"lua/executor.h.generated.h"', private, '"nvim/lua/executor.h"', public ] },
- { include: [ '"lua/spell.h.generated.h"', private, '"nvim/lua/spell.h"', public ] },
- { include: [ '"lua/stdlib.h.generated.h"', private, '"nvim/lua/stdlib.h"', public ] },
- { include: [ '"lua/treesitter.h.generated.h"', private, '"nvim/lua/treesitter.h"', public ] },
- { include: [ '"lua/xdiff.h.generated.h"', private, '"nvim/lua/xdiff.h"', public ] },
- { include: [ '"main.h.generated.h"', private, '"nvim/main.h"', public ] },
- { include: [ '"mapping.h.generated.h"', private, '"nvim/mapping.h"', public ] },
- { include: [ '"mark.h.generated.h"', private, '"nvim/mark.h"', public ] },
- { include: [ '"marktree.h.generated.h"', private, '"nvim/marktree.h"', public ] },
- { include: [ '"match.h.generated.h"', private, '"nvim/match.h"', public ] },
- { include: [ '"math.h.generated.h"', private, '"nvim/math.h"', public ] },
- { include: [ '"mbyte.h.generated.h"', private, '"nvim/mbyte.h"', public ] },
- { include: [ '"memfile.h.generated.h"', private, '"nvim/memfile.h"', public ] },
- { include: [ '"memline.h.generated.h"', private, '"nvim/memline.h"', public ] },
- { include: [ '"memory.h.generated.h"', private, '"nvim/memory.h"', public ] },
- { include: [ '"menu.h.generated.h"', private, '"nvim/menu.h"', public ] },
- { include: [ '"message.h.generated.h"', private, '"nvim/message.h"', public ] },
- { include: [ '"mouse.h.generated.h"', private, '"nvim/mouse.h"', public ] },
- { include: [ '"move.h.generated.h"', private, '"nvim/move.h"', public ] },
- { include: [ '"msgpack_rpc/channel.h.generated.h"', private, '"nvim/msgpack_rpc/channel.h"', public ] },
- { include: [ '"msgpack_rpc/helpers.h.generated.h"', private, '"nvim/msgpack_rpc/helpers.h"', public ] },
- { include: [ '"msgpack_rpc/server.h.generated.h"', private, '"nvim/msgpack_rpc/server.h"', public ] },
- { include: [ '"msgpack_rpc/unpacker.h.generated.h"', private, '"nvim/msgpack_rpc/unpacker.h"', public ] },
- { include: [ '"normal.h.generated.h"', private, '"nvim/normal.h"', public ] },
- { include: [ '"ops.h.generated.h"', private, '"nvim/ops.h"', public ] },
- { include: [ '"option.h.generated.h"', private, '"nvim/option.h"', public ] },
- { include: [ '"optionstr.h.generated.h"', private, '"nvim/optionstr.h"', public ] },
- { include: [ '"os/dl.h.generated.h"', private, '"nvim/os/dl.h"', public ] },
- { include: [ '"os/fileio.h.generated.h"', private, '"nvim/os/fileio.h"', public ] },
- { include: [ '"os/fs.h.generated.h"', private, '"nvim/os/fs.h"', public ] },
- { include: [ '"os/input.h.generated.h"', private, '"nvim/os/input.h"', public ] },
- { include: [ '"os/lang.h.generated.h"', private, '"nvim/os/lang.h"', public ] },
- { include: [ '"os/process.h.generated.h"', private, '"nvim/os/process.h"', public ] },
- { include: [ '"os/pty_process_unix.h.generated.h"', private, '"nvim/os/pty_process_unix.h"', private ] },
- { include: [ '"os/shell.h.generated.h"', private, '"nvim/os/shell.h"', public ] },
- { include: [ '"os/signal.h.generated.h"', private, '"nvim/os/signal.h"', public ] },
- { include: [ '"os/time.h.generated.h"', private, '"nvim/os/time.h"', public ] },
- { include: [ '"path.h.generated.h"', private, '"nvim/path.h"', public ] },
- { include: [ '"plines.h.generated.h"', private, '"nvim/plines.h"', public ] },
- { include: [ '"popupmenu.h.generated.h"', private, '"nvim/popupmenu.h"', public ] },
- { include: [ '"profile.h.generated.h"', private, '"nvim/profile.h"', public ] },
- { include: [ '"quickfix.h.generated.h"', private, '"nvim/quickfix.h"', public ] },
- { include: [ '"rbuffer.h.generated.h"', private, '"nvim/rbuffer.h"', public ] },
- { include: [ '"regexp.h.generated.h"', private, '"nvim/regexp.h"', public ] },
- { include: [ '"runtime.h.generated.h"', private, '"nvim/runtime.h"', public ] },
- { include: [ '"screen.h.generated.h"', private, '"nvim/screen.h"', public ] },
- { include: [ '"search.h.generated.h"', private, '"nvim/search.h"', public ] },
- { include: [ '"sha256.h.generated.h"', private, '"nvim/sha256.h"', public ] },
- { include: [ '"shada.h.generated.h"', private, '"nvim/shada.h"', public ] },
- { include: [ '"sign.h.generated.h"', private, '"nvim/sign.h"', public ] },
- { include: [ '"spell.h.generated.h"', private, '"nvim/spell.h"', public ] },
- { include: [ '"spellfile.h.generated.h"', private, '"nvim/spellfile.h"', public ] },
- { include: [ '"spellsuggest.h.generated.h"', private, '"nvim/spellsuggest.h"', public ] },
- { include: [ '"state.h.generated.h"', private, '"nvim/state.h"', public ] },
- { include: [ '"statusline.h.generated.h"', private, '"nvim/statusline.h"', public ] },
- { include: [ '"strings.h.generated.h"', private, '"nvim/strings.h"', public ] },
- { include: [ '"syntax.h.generated.h"', private, '"nvim/syntax.h"', public ] },
- { include: [ '"tag.h.generated.h"', private, '"nvim/tag.h"', public ] },
- { include: [ '"terminal.h.generated.h"', private, '"nvim/terminal.h"', public ] },
- { include: [ '"testing.h.generated.h"', private, '"nvim/testing.h"', public ] },
- { include: [ '"textformat.h.generated.h"', private, '"nvim/textformat.h"', public ] },
- { include: [ '"textobject.h.generated.h"', private, '"nvim/textobject.h"', public ] },
- { include: [ '"tui/input.h.generated.h"', private, '"nvim/tui/input.h"', public ] },
- { include: [ '"tui/terminfo.h.generated.h"', private, '"nvim/tui/terminfo.h"', public ] },
- { include: [ '"tui/tui.h.generated.h"', private, '"nvim/tui/tui.h"', public ] },
- { include: [ '"ugrid.h.generated.h"', private, '"nvim/ugrid.h"', public ] },
- { include: [ '"ui.h.generated.h"', private, '"nvim/ui.h"', public ] },
- { include: [ '"ui_bridge.h.generated.h"', private, '"nvim/ui_bridge.h"', public ] },
- { include: [ '"ui_client.h.generated.h"', private, '"nvim/ui_client.h"', public ] },
- { include: [ '"ui_compositor.h.generated.h"', private, '"nvim/ui_compositor.h"', public ] },
- { include: [ '"undo.h.generated.h"', private, '"nvim/undo.h"', public ] },
- { include: [ '"usercmd.h.generated.h"', private, '"nvim/usercmd.h"', public ] },
- { include: [ '"version.h.generated.h"', private, '"nvim/version.h"', public ] },
- { include: [ '"viml/parser/expressions.h.generated.h"', private, '"nvim/viml/parser/expressions.h"', public ] },
- { include: [ '"viml/parser/parser.h.generated.h"', private, '"nvim/viml/parser/parser.h"', public ] },
- { include: [ '"window.h.generated.h"', private, '"nvim/window.h"', public ] },
+ { ref: "c99.imp" },
+ { ref: "posix.imp" },
- # Generated to normal headers with a different name: header.h.generated.h -> nvim/some_other_header.h
- { include: [ '"api/private/dispatch_wrappers.h.generated.h"', private, '"nvim/api/private/dispatch.h"', public ] },
- { include: [ '"auevents_enum.generated.h"', private, '"nvim/autocmd.h"', public ] },
- { include: [ '"ex_cmds_enum.generated.h"', private, '"nvim/ex_cmds_defs.h"', public ] },
- { include: [ '"keysets.h.generated.h"', private, '"nvim/api/private/helpers.h"', public ] },
- { include: [ '"keysets_defs.generated.h"', private, '"nvim/api/private/defs.h"', public ] },
- { include: [ '"nvim/os/pty_process_unix.h"', private, '"nvim/os/pty_process.h"', public ] },
- { include: [ '"nvim/os/pty_process_win.h"', private, '"nvim/os/pty_process.h"', public ] },
- { include: [ '"nvim/os/unix_defs.h"', private, '"nvim/os/os_defs.h"', public ] },
- { include: [ '"nvim/os/win_defs.h"', private, '"nvim/os/os_defs.h"', public ] },
- { include: [ '"os/env.h.generated.h"', private, '"nvim/os/os.h"', public ] },
- { include: [ '"os/fs.h.generated.h"', private, '"nvim/os/os.h"', public ] },
- { include: [ '"os/mem.h.generated.h"', private, '"nvim/os/os.h"', public ] },
- { include: [ '"os/stdpaths.h.generated.h"', private, '"nvim/os/os.h"', public ] },
- { include: [ '"os/users.h.generated.h"', private, '"nvim/os/os.h"', public ] },
- { include: [ '"regexp_bt.h.generated.h"', private, '"nvim/regexp.h"', public ] },
- { include: [ '"ui_events_call.h.generated.h"', private, '"nvim/ui.h"', public ] },
- { include: [ '"ui_events_client.h.generated.h"', private, '"nvim/ui_client.h"', public ] },
- { include: [ '"ui_events_remote.generated.h"', private, '"nvim/api/ui.h"', public ] },
- { include: [ '"ui_events_remote.h.generated.h"', private, '"nvim/api/ui.h"', public ] },
+ { symbol: [ "FUNC_ATTR_ALLOC_ALIGN", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_ALLOC_SIZE", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_ALLOC_SIZE_PROD", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_ALWAYS_INLINE", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_CONST", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_MALLOC", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_NONNULL_ALL", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_NONNULL_ARG", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_NONNULL_RET", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_NORETURN", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_NO_SANITIZE_ADDRESS", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_NO_SANITIZE_UNDEFINED", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_PRINTF", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_PURE", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_UNUSED", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_WARN_UNUSED_RESULT", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "MAX", private, '"nvim/macros_defs.h"', public ] },
+ { symbol: [ "MIN", private, '"nvim/macros_defs.h"', public ] },
+ { symbol: [ "extern_proc", private, '<uv.h>', public ] },
+ { symbol: [ "iovec", private, '<sys/uio.h>', public ] },
- # Def to normal headers: nvim/header_defs.h -> nvim/header.h
- #
- # This is a public to public mapping, meaning that while IWYU can use the
- # headers on the left, it will use the headers on the right if possible. This
- # isn't explicitly mentioned in the IWYU docs, this is just my interpretation
- # of its behavior.
- { include: [ '"nvim/buffer_defs.h"', public, '"nvim/buffer.h"', public ] },
- { include: [ '"nvim/ex_cmds_defs.h"', public, '"nvim/ex_cmds.h"', public ] },
- { include: [ '"nvim/ex_eval_defs.h"', public, '"nvim/ex_eval.h"', public ] },
- { include: [ '"nvim/extmark_defs.h"', public, '"nvim/extmark.h"', public ] },
- { include: [ '"nvim/grid_defs.h"', public, '"nvim/grid.h"', public ] },
- { include: [ '"nvim/highlight_defs.h"', public, '"nvim/highlight.h"', public ] },
- { include: [ '"nvim/map_defs.h"', public, '"nvim/map.h"', public ] },
- { include: [ '"nvim/mark_defs.h"', public, '"nvim/mark.h"', public ] },
- { include: [ '"nvim/mbyte_defs.h"', public, '"nvim/mbyte.h"', public ] },
- { include: [ '"nvim/memfile_defs.h"', public, '"nvim/memfile.h"', public ] },
- { include: [ '"nvim/memline_defs.h"', public, '"nvim/memline.h"', public ] },
- { include: [ '"nvim/menu_defs.h"', public, '"nvim/menu.h"', public ] },
- { include: [ '"nvim/msgpack/channel_defs.h"', public, '"nvim/msgpack/channel.h"', public ] },
- { include: [ '"nvim/option_defs.h"', public, '"nvim/option.h"', public ] },
- { include: [ '"nvim/os/fs_defs.h"', public, '"nvim/os/fs.h"', public ] },
- { include: [ '"nvim/os/os_defs.h"', public, '"nvim/os/os.h"', public ] },
- { include: [ '"nvim/regexp_defs.h"', public, '"nvim/regexp.h"', public ] },
- { include: [ '"nvim/sign_defs.h"', public, '"nvim/sign.h"', public ] },
- { include: [ '"nvim/spell_defs.h"', public, '"nvim/spell.h"', public ] },
- { include: [ '"nvim/statusline_defs.h"', public, '"nvim/statusline.h"', public ] },
- { include: [ '"nvim/syntax_defs.h"', public, '"nvim/syntax.h"', public ] },
- { include: [ '"nvim/tui/input_defs.h"', public, '"nvim/tui/input.h"', public ] },
- { include: [ '"nvim/undo_defs.h"', public, '"nvim/undo.h"', public ] },
-
- # Third party headers
- { include: [ "<bits/types/wint_t.h>", private, "<wchar.h>", public ] },
- { include: [ '<arpa/inet.h>', private, '<uv/unix.h>', private ] },
- { include: [ '<bits/termios-c_cc.h>', private, '<termios.h>', private ] },
- { include: [ '<bits/termios-c_cflag.h>', private, '<termios.h>', private ] },
- { include: [ '<bits/termios-c_iflag.h>', private, '<termios.h>', private ] },
- { include: [ '<bits/termios-c_oflag.h>', private, '<termios.h>', private ] },
- { include: [ '<libintl.h>', private, '"nvim/gettext.h"', public ] },
- { include: [ '<netdb.h>', private, '<uv/unix.h>', private ] },
- { include: [ '<netinet/in.h>', private, '<uv/unix.h>', private ] },
- { include: [ '<pthread.h>', private, '"nvim/os/unix_defs.h"', private ] },
- { include: [ '<sys/socket.h>', private, '<uv/unix.h>', private ] },
- { include: [ '<termios.h>', private, '"nvim/os/unix_defs.h"', private ] },
- { include: [ '<unistd.h>', private, '"nvim/os/unix_defs.h"', private ] },
+ { include: [ '"keysets_defs.generated.h"', private, '"nvim/api/private/dispatch.h"', public ] },
{ include: [ '<uv/unix.h>', private, '<uv.h>', public ] },
-
- # Symbols
- { symbol: [ "MAX", private, '"nvim/macros.h"', public ] },
- { symbol: [ "MIN", private, '"nvim/macros.h"', public ] },
- { symbol: [ "SEEK_END", private, '<stdio.h>', public ] },
- { symbol: [ "SEEK_SET", private, '<stdio.h>', public ] },
- { symbol: [ "time_fd", private, '"nvim/globals.h"', public ] },
]
# vim: set ft=toml:
diff --git a/cmake.config/iwyu/posix.imp b/cmake.config/iwyu/posix.imp
new file mode 100644
index 0000000000..2eabd3063b
--- /dev/null
+++ b/cmake.config/iwyu/posix.imp
@@ -0,0 +1,33 @@
+[
+ { include: [ "<arm/limits.h>", private, "<limits.h>", public ] },
+ { include: [ "<asm/ioctls.h>", private, "<bits/ioctls.h>", private ] },
+ { include: [ "<bits/termios-c_lflag.h>", private, "<termios.h>", public ] },
+ { include: [ "<bits/termios-struct.h>", private, "<termios.h>", public ] },
+ { include: [ "<sys/errno.h>", private, "<errno.h>", public ] },
+ { include: [ "<sys/fcntl.h>", private, "<fcntl.h>", public ] },
+ { include: [ "<sys/signal.h>", private, "<signal.h>", public ] },
+ { include: [ "<sys/termios.h>", private, "<termios.h>", public ] },
+ { include: [ '<asm/errno-base.h>', private, '<errno.h>', public ] },
+ { include: [ '<asm/errno.h>', private, '<errno.h>', public ] },
+ { include: [ '<bits/termios-c_cc.h>', private, '<termios.h>', public ] },
+ { include: [ '<bits/termios-c_cflag.h>', private, '<termios.h>', public ] },
+ { include: [ '<bits/termios-c_iflag.h>', private, '<termios.h>', public ] },
+ { include: [ '<bits/termios-c_oflag.h>', private, '<termios.h>', public ] },
+ { include: [ '<sys/unistd.h>', private, '<unistd.h>', public ] },
+
+ { symbol: ["SOCK_STREAM", private, "<sys/socket.h>", public ] },
+ { symbol: ["SSIZE_MAX", private, "<limits.h>", public ] },
+ { symbol: ["S_IREAD", private, "<sys/stat.h>", public ] },
+ { symbol: ["S_IWRITE", private, "<sys/stat.h>", public ] },
+ { symbol: ["_POSIX_VDISABLE", private, "<unistd.h>", public ] },
+ { symbol: ["flock", private, "<sys/file.h>", public ] },
+ { symbol: ["iovec", private, "<sys/uio.h>", public ] },
+ { symbol: ["mode_t", private, "<sys/types.h>", public ] },
+ { symbol: ["ntohs", private, "<arpa/inet.h>", public ] },
+ { symbol: ["pthread_sigmask", private, "<signal.h>", public ] },
+ { symbol: ["sigset_t", private, "<signal.h>", public ] },
+ { symbol: ["ssize_t", private, "<sys/types.h>", public ] },
+ { symbol: ["uid_t", private, "<sys/types.h>", public ] },
+]
+
+# vim: set ft=toml:
diff --git a/cmake.config/pathdef.c.in b/cmake.config/pathdef.c.in
index 5d6dfa6b9f..773fa1d592 100644
--- a/cmake.config/pathdef.c.in
+++ b/cmake.config/pathdef.c.in
@@ -1,8 +1,4 @@
-// This is an open source non-commercial project. Dear PVS-Studio, please check
-// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
-#include "${PROJECT_SOURCE_DIR}/src/nvim/vim.h"
+#include "${PROJECT_SOURCE_DIR}/src/nvim/vim_defs.h"
char *default_vim_dir = "${CMAKE_INSTALL_FULL_DATAROOTDIR}/nvim";
char *default_vimruntime_dir = "";
char *default_lib_dir = "${CMAKE_INSTALL_FULL_LIBDIR}/nvim";
-char *compiled_user = "${USERNAME}";
-char *compiled_sys = "${HOSTNAME}";
diff --git a/cmake.config/versiondef.h.in b/cmake.config/versiondef.h.in
index 22cad87249..bda21b27ec 100644
--- a/cmake.config/versiondef.h.in
+++ b/cmake.config/versiondef.h.in
@@ -15,7 +15,7 @@
#define NVIM_API_LEVEL_COMPAT @NVIM_API_LEVEL_COMPAT@
#define NVIM_API_PRERELEASE @NVIM_API_PRERELEASE@
-#define NVIM_VERSION_CFLAGS "@NVIM_VERSION_CFLAGS@"
-#define NVIM_VERSION_BUILD_TYPE "@NVIM_VERSION_BUILD_TYPE@"
+#define NVIM_VERSION_CFLAGS "${CMAKE_C_COMPILER}${C_FLAGS_VERSION_OUTPUT} $<$<CONFIG:Debug>:${CMAKE_C_FLAGS_DEBUG}>$<$<CONFIG:Release>:${CMAKE_C_FLAGS_RELEASE}>$<$<CONFIG:RelWithDebInfo>:${CMAKE_C_FLAGS_RELWITHDEBINFO}>$<$<CONFIG:MinSizeRel>:${CMAKE_C_FLAGS_MINSIZEREL}> $<JOIN:$<TARGET_PROPERTY:nvim,COMPILE_OPTIONS>, > -D$<JOIN:$<TARGET_PROPERTY:nvim,COMPILE_DEFINITIONS>, -D> -I$<JOIN:$<REMOVE_DUPLICATES:$<TARGET_PROPERTY:nvim,INCLUDE_DIRECTORIES>>, -I>"
+#define NVIM_VERSION_BUILD_TYPE "$<CONFIG>"
#endif // AUTO_VERSIONDEF_H
diff --git a/cmake.config/versiondef_old.h.in b/cmake.config/versiondef_old.h.in
new file mode 100644
index 0000000000..4e21e0c7be
--- /dev/null
+++ b/cmake.config/versiondef_old.h.in
@@ -0,0 +1,21 @@
+#ifndef AUTO_VERSIONDEF_H
+#define AUTO_VERSIONDEF_H
+
+#define NVIM_VERSION_MAJOR @NVIM_VERSION_MAJOR@
+#define NVIM_VERSION_MINOR @NVIM_VERSION_MINOR@
+#define NVIM_VERSION_PATCH @NVIM_VERSION_PATCH@
+#define NVIM_VERSION_PRERELEASE "@NVIM_VERSION_PRERELEASE@"
+
+#cmakedefine NVIM_VERSION_MEDIUM "@NVIM_VERSION_MEDIUM@"
+#ifndef NVIM_VERSION_MEDIUM
+# include "auto/versiondef_git.h"
+#endif
+
+#define NVIM_API_LEVEL @NVIM_API_LEVEL@
+#define NVIM_API_LEVEL_COMPAT @NVIM_API_LEVEL_COMPAT@
+#define NVIM_API_PRERELEASE @NVIM_API_PRERELEASE@
+
+#define NVIM_VERSION_CFLAGS "${CMAKE_C_COMPILER}${C_FLAGS_VERSION_OUTPUT} $<$<CONFIG:Debug>:${CMAKE_C_FLAGS_DEBUG}>$<$<CONFIG:Release>:${CMAKE_C_FLAGS_RELEASE}>$<$<CONFIG:RelWithDebInfo>:${CMAKE_C_FLAGS_RELWITHDEBINFO}>$<$<CONFIG:MinSizeRel>:${CMAKE_C_FLAGS_MINSIZEREL}> $<JOIN:$<TARGET_PROPERTY:nvim,COMPILE_OPTIONS>, > -D$<JOIN:$<TARGET_PROPERTY:nvim,COMPILE_DEFINITIONS>, -D> -I$<JOIN:$<TARGET_PROPERTY:nvim,INCLUDE_DIRECTORIES>, -I>"
+#define NVIM_VERSION_BUILD_TYPE "$<CONFIG>"
+
+#endif // AUTO_VERSIONDEF_H