Browse Source

Compile time check for being able to fit {unsigned} int inside void pointer

rl1987 6 years ago
parent
commit
13b28063f9
2 changed files with 10 additions and 0 deletions
  1. 1 0
      configure.ac
  2. 9 0
      src/test/test_ptr_slow.c

+ 1 - 0
configure.ac

@@ -1588,6 +1588,7 @@ AC_CHECK_MEMBERS([struct timeval.tv_sec], , ,
 AC_CHECK_SIZEOF(char)
 AC_CHECK_SIZEOF(short)
 AC_CHECK_SIZEOF(int)
+AC_CHECK_SIZEOF(unsigned int)
 AC_CHECK_SIZEOF(long)
 AC_CHECK_SIZEOF(long long)
 AC_CHECK_SIZEOF(__int64)

+ 9 - 0
src/test/test_ptr_slow.c

@@ -11,6 +11,15 @@
 #include <stdint.h>
 #include <limits.h>
 
+#if SIZEOF_INT > SIZEOF_VOID_P
+#error "sizeof(int) > sizeof(void *) - Tor cannot be built on this platform!"
+#endif
+
+#if SIZEOF_UNSIGNED_INT > SIZEOF_VOID_P
+#error "sizeof(unsigned int) > sizeof(void *) - Tor cannot be built on this \
+platform!"
+#endif
+
 /** Assert that <b>a</b> can be cast to void * and back. */
 static void
 assert_int_voidptr_roundtrip(int a)