summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2017-12-09 13:54:20 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2018-12-17 21:56:32 +0100
commitf5eabb34da68cddf76cfbfc75c8d1373d327e346 (patch)
tree2535434e3c5a71d2b6468b2078a6770e11f9c0ae
parente019565f57e76774f24c54b9b89a5e44fb4052a1 (diff)
downloadsparse-f5eabb34da68cddf76cfbfc75c8d1373d327e346.tar.gz
add predefined macros for [u]intptr
Luckily, it seems all archs use for them the same types as size_t & ssize_t. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--lib.c2
-rw-r--r--validation/preprocessor/predef.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index e83eaf70..8dfe10c0 100644
--- a/lib.c
+++ b/lib.c
@@ -1239,6 +1239,8 @@ static void predefined_macros(void)
predefined_sizeof("INT128", "", 128);
+ predefined_ctype("INTPTR", ssize_t_ctype, PTYPE_MAX|PTYPE_TYPE|PTYPE_WIDTH);
+ predefined_ctype("UINTPTR", size_t_ctype, PTYPE_MAX|PTYPE_TYPE);
predefined_ctype("PTRDIFF", ssize_t_ctype, PTYPE_ALL_T|PTYPE_TYPE);
predefined_ctype("SIZE", size_t_ctype, PTYPE_ALL_T|PTYPE_TYPE);
predefined_ctype("POINTER", &ptr_ctype, PTYPE_SIZEOF);
diff --git a/validation/preprocessor/predef.c b/validation/preprocessor/predef.c
index 298bdd93..df0944b3 100644
--- a/validation/preprocessor/predef.c
+++ b/validation/preprocessor/predef.c
@@ -17,6 +17,8 @@ int test(void)
TEST_SMAX(INT, int);
TEST_SMAX(LONG, long);
TEST_SMAX(LONG_LONG, long long);
+ TEST_SMAX(INTPTR, __INTPTR_TYPE__);
+ TEST_UMAX(UINTPTR, __UINTPTR_TYPE__);
TEST_SMAX(PTRDIFF, __PTRDIFF_TYPE__);
TEST_UMAX(SIZE, __SIZE_TYPE__);