Commit 14addbab authored by David Gibson's avatar David Gibson

ptrint: ptr2int and int2ptr are constant functions

By construction these functions depend only on their arguments, so declare
them as CONST_FUNCTION using the helper from ccan/compiler.
Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
parent 780297d2
...@@ -48,6 +48,7 @@ int main(int argc, char *argv[]) ...@@ -48,6 +48,7 @@ int main(int argc, char *argv[])
if (strcmp(argv[1], "depends") == 0) { if (strcmp(argv[1], "depends") == 0) {
printf("ccan/build_assert\n"); printf("ccan/build_assert\n");
printf("ccan/compiler\n");
return 0; return 0;
} }
if (strcmp(argv[1], "testdepends") == 0) { if (strcmp(argv[1], "testdepends") == 0) {
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <stddef.h> #include <stddef.h>
#include <ccan/build_assert/build_assert.h> #include <ccan/build_assert/build_assert.h>
#include <ccan/compiler/compiler.h>
/* /*
* This is a deliberately incomplete type, because it should never be * This is a deliberately incomplete type, because it should never be
...@@ -15,7 +16,7 @@ ...@@ -15,7 +16,7 @@
*/ */
typedef struct ptrint ptrint_t; typedef struct ptrint ptrint_t;
static inline ptrdiff_t ptr2int(const ptrint_t *p) CONST_FUNCTION static inline ptrdiff_t ptr2int(const ptrint_t *p)
{ {
/* /*
* ptrdiff_t is the right size by definition, but to avoid * ptrdiff_t is the right size by definition, but to avoid
...@@ -26,7 +27,7 @@ static inline ptrdiff_t ptr2int(const ptrint_t *p) ...@@ -26,7 +27,7 @@ static inline ptrdiff_t ptr2int(const ptrint_t *p)
return (const char *)p - (const char *)NULL; return (const char *)p - (const char *)NULL;
} }
static inline ptrint_t *int2ptr(ptrdiff_t i) CONST_FUNCTION static inline ptrint_t *int2ptr(ptrdiff_t i)
{ {
return (ptrint_t *)((char *)NULL + i); return (ptrint_t *)((char *)NULL + i);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment