summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Colomar <alx.manpages@gmail.com>2021-06-27 13:39:05 +0200
committerKim Gräsman <kim.grasman@gmail.com>2021-07-11 09:03:34 +0200
commitd50530f3192d0c103a2c2763f902d5ad574a688f (patch)
treef961b013ee516a92a8bd46ecd59e3db13a439571
parentc19ae5ef07b42749d8fdd14d2b73d724c7c18e97 (diff)
Add more mappings for 'size_t'
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
-rw-r--r--gcc.symbols.imp22
-rw-r--r--iwyu_include_picker.cc22
2 files changed, 42 insertions, 2 deletions
diff --git a/gcc.symbols.imp b/gcc.symbols.imp
index 6e88256..f1fe7c3 100644
--- a/gcc.symbols.imp
+++ b/gcc.symbols.imp
@@ -159,14 +159,34 @@
{ symbol: [ "useconds_t", private, "<unistd.h>", public ] },
{ symbol: [ "wchar_t", private, "<stddef.h>", public ] },
{ symbol: [ "wchar_t", private, "<stdlib.h>", public ] },
- # glob.h seems to define size_t if necessary, but it should come from stddef.
{ 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>", public ] },
+ { 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>", public ] },
{ 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
diff --git a/iwyu_include_picker.cc b/iwyu_include_picker.cc
index 9c16f27..0ef06c2 100644
--- a/iwyu_include_picker.cc
+++ b/iwyu_include_picker.cc
@@ -236,16 +236,36 @@ const IncludeMapEntry libc_symbol_map[] = {
{ "useconds_t", kPrivate, "<unistd.h>", kPublic },
{ "wchar_t", kPrivate, "<stddef.h>", kPublic },
{ "wchar_t", kPrivate, "<stdlib.h>", kPublic },
- // glob.h seems to define size_t if necessary, but it should come from stddef.
// It is unspecified if the cname headers provide ::size_t.
// <locale.h> is the one header which defines NULL but not size_t.
{ "size_t", kPrivate, "<stddef.h>", kPublic }, // 'canonical' location for size_t
+ { "size_t", kPrivate, "<aio.h>", kPublic },
+ { "size_t", kPrivate, "<glob.h>", kPublic },
+ { "size_t", kPrivate, "<grp.h>", kPublic },
+ { "size_t", kPrivate, "<iconv.h>", kPublic },
+ { "size_t", kPrivate, "<monetary.h>", kPublic },
+ { "size_t", kPrivate, "<mqueue.h>", kPublic },
+ { "size_t", kPrivate, "<ndbm.h>", kPublic },
+ { "size_t", kPrivate, "<pwd.h>", kPublic },
+ { "size_t", kPrivate, "<regex.h>", kPublic },
+ { "size_t", kPrivate, "<search.h>", kPublic },
+ { "size_t", kPrivate, "<signal.h>", kPublic },
{ "size_t", kPrivate, "<stdio.h>", kPublic },
{ "size_t", kPrivate, "<stdlib.h>", kPublic },
{ "size_t", kPrivate, "<string.h>", kPublic },
+ { "size_t", kPrivate, "<strings.h>", kPublic },
+ { "size_t", kPrivate, "<sys/mman.h>", kPublic },
+ { "size_t", kPrivate, "<sys/msg.h>", kPublic },
+ { "size_t", kPrivate, "<sys/sem.h>", kPublic },
+ { "size_t", kPrivate, "<sys/shm.h>", kPublic },
+ { "size_t", kPrivate, "<sys/socket.h>", kPublic },
+ { "size_t", kPrivate, "<sys/types.h>", kPublic },
+ { "size_t", kPrivate, "<sys/uio.h>", kPublic },
{ "size_t", kPrivate, "<time.h>", kPublic },
{ "size_t", kPrivate, "<uchar.h>", kPublic },
+ { "size_t", kPrivate, "<unistd.h>", kPublic },
{ "size_t", kPrivate, "<wchar.h>", kPublic },
+ { "size_t", kPrivate, "<wordexp.h>", kPublic },
// 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