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[])
if (strcmp(argv[1], "depends") == 0) {
printf("ccan/build_assert\n");
printf("ccan/compiler\n");
return 0;
}
if (strcmp(argv[1], "testdepends") == 0) {
......
......@@ -7,6 +7,7 @@
#include <stddef.h>
#include <ccan/build_assert/build_assert.h>
#include <ccan/compiler/compiler.h>
/*
* This is a deliberately incomplete type, because it should never be
......@@ -15,7 +16,7 @@
*/
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
......@@ -26,7 +27,7 @@ static inline ptrdiff_t ptr2int(const ptrint_t *p)
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);
}
......
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