test-hash.c:19:32: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] if (hash_table_lookup(hash, POINTER_CAST(key)) == NULL) { ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ test-hash.c:19:32: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] if (hash_table_lookup(hash, POINTER_CAST(key)) == NULL) { ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ./macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ test-hash.c:19:32: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] if (hash_table_lookup(hash, POINTER_CAST(key)) == NULL) { ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ./macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ test-hash.c:20:29: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(hash, POINTER_CAST(key), ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ test-hash.c:20:29: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(hash, POINTER_CAST(key), ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ./macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ test-hash.c:21:9: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(1)); ^~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:112:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ test-hash.c:21:9: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(1)); ^~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:112:83: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ./macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ test-hash.c:26:28: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(hash, POINTER_CAST(keys[delidx])); ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ./macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ test-hash.c:26:28: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(hash, POINTER_CAST(keys[delidx])); ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ./macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ./macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ test-hash.c:26:28: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(hash, POINTER_CAST(keys[delidx])); ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ./macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ./macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ test-hash.c:33:27: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(hash, POINTER_CAST(keys[i])); ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ./macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ test-hash.c:33:27: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(hash, POINTER_CAST(keys[i])); ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ./macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ./macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ test-hash.c:33:27: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(hash, POINTER_CAST(keys[i])); ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ./macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ./macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ 13 warnings generated. test-mempool.c:18:20: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] test_assert(m1 == POINTER_CAST(18446744073709551615ULL)); ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-mempool.c:20:20: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] test_assert(m2 == POINTER_CAST(18446744073709551615ULL)); ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-mempool.c:22:20: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] test_assert(m3 == POINTER_CAST(18446744073709551612ULL)); ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-mempool.c:25:97: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] test_assert(p_realloc_type(&test_pool, m1, uint32max_array_t, 4294967296ULL, 4294967297ULL) == POINTER_CAST(18446744073709551615ULL)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-mempool.c:26:104: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] test_assert(p_realloc_type(&test_pool, m2, char, 18446744073709551614ULL, 18446744073709551615ULL) == POINTER_CAST(18446744073709551615ULL)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-mempool.c:27:106: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] test_assert(p_realloc_type(&test_pool, m3, uint32_t, 4611686018427387902ULL, 4611686018427387903ULL) == POINTER_CAST(18446744073709551612ULL)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-mempool.c:30:97: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] test_assert(p_realloc_type(&test_pool, m1, uint32max_array_t, 4294967297ULL, 4294967296ULL) == POINTER_CAST(18446744069414584320ULL)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-mempool.c:31:104: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] test_assert(p_realloc_type(&test_pool, m2, char, 18446744073709551615ULL, 18446744073709551614ULL) == POINTER_CAST(18446744073709551614ULL)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-mempool.c:32:106: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] test_assert(p_realloc_type(&test_pool, m3, uint32_t, 4611686018427387903ULL, 4611686018427387902ULL) == POINTER_CAST(18446744073709551608ULL)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-mempool.c:117:78: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] static void *pool_test_malloc(pool_t pool ATTR_UNUSED, size_t size) { return POINTER_CAST(size); } ^~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ~~~~~~~~~~~~~ ^ test-mempool.c:121:9: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] return POINTER_CAST(new_size); ^~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ~~~~~~~~~~~~~ ^ 11 warnings generated. child-wait.c:66:32: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(child_pids, POINTER_CAST(pid), wait); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ child-wait.c:66:32: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(child_pids, POINTER_CAST(pid), wait); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ./macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ child-wait.c:72:32: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(child_pids, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ./macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ child-wait.c:72:32: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(child_pids, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ./macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ./macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ child-wait.c:72:32: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(child_pids, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ./macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ./macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ child-wait.c:82:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(status.pid)); ^~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ child-wait.c:82:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(status.pid)); ^~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ./macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ child-wait.c:82:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(status.pid)); ^~~~~~~~~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ./macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 8 warnings generated. randgen.c:27:13: warning: unused function 'random_open_urandom' [-Wunused-function] static void random_open_urandom(void) ^ 1 warning generated. str-table.c:56:38: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_update(table->hash, key, POINTER_CAST(ref)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:116:21: note: expanded from macro 'hash_table_update' (void *)((char *)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ str-table.c:56:38: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_update(table->hash, key, POINTER_CAST(ref)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:116:84: note: expanded from macro 'hash_table_update' (void *)((char *)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ./macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ str-table.c:72:39: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_update(table->hash, key, POINTER_CAST(ref)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:116:21: note: expanded from macro 'hash_table_update' (void *)((char *)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ str-table.c:72:39: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_update(table->hash, key, POINTER_CAST(ref)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ./macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ./hash.h:116:84: note: expanded from macro 'hash_table_update' (void *)((char *)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ./macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ./macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 4 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] auth-server-connection.c:146:46: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ auth-server-connection.c:146:46: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ auth-server-connection.c:146:46: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ auth-server-connection.c:152:37: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ auth-server-connection.c:152:37: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ auth-server-connection.c:152:37: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ auth-server-connection.c:482:45: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] i_assert(hash_table_lookup(conn->requests, POINTER_CAST(id)) == NULL); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^ ../../src/lib/macros.h:208:21: note: expanded from macro 'i_assert' if (unlikely(!(expr))) \ ~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ auth-server-connection.c:482:45: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] i_assert(hash_table_lookup(conn->requests, POINTER_CAST(id)) == NULL); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:208:21: note: expanded from macro 'i_assert' if (unlikely(!(expr))) \ ~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ auth-server-connection.c:482:45: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] i_assert(hash_table_lookup(conn->requests, POINTER_CAST(id)) == NULL); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:208:21: note: expanded from macro 'i_assert' if (unlikely(!(expr))) \ ~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ auth-server-connection.c:483:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(conn->requests, POINTER_CAST(id), request); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ auth-server-connection.c:483:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(conn->requests, POINTER_CAST(id), request); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ auth-server-connection.c:491:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ auth-server-connection.c:491:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ auth-server-connection.c:491:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ 14 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] master-auth.c:74:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(conn->tag)); ^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-auth.c:74:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(conn->tag)); ^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-auth.c:74:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(conn->tag)); ^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-auth.c:256:48: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] i_assert(hash_table_lookup(auth->connections, POINTER_CAST(req.tag)) == NULL); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^ ../../src/lib/macros.h:208:21: note: expanded from macro 'i_assert' if (unlikely(!(expr))) \ ~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-auth.c:256:48: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] i_assert(hash_table_lookup(auth->connections, POINTER_CAST(req.tag)) == NULL); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:208:21: note: expanded from macro 'i_assert' if (unlikely(!(expr))) \ ~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-auth.c:256:48: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] i_assert(hash_table_lookup(auth->connections, POINTER_CAST(req.tag)) == NULL); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:208:21: note: expanded from macro 'i_assert' if (unlikely(!(expr))) \ ~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-auth.c:257:39: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(auth->connections, POINTER_CAST(req.tag), conn); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ master-auth.c:257:39: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(auth->connections, POINTER_CAST(req.tag), conn); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ master-auth.c:281:46: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] conn = hash_table_lookup(auth->connections, POINTER_CAST(tag)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ master-auth.c:281:46: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] conn = hash_table_lookup(auth->connections, POINTER_CAST(tag)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ master-auth.c:281:46: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] conn = hash_table_lookup(auth->connections, POINTER_CAST(tag)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 11 warnings generated. master-login-auth.c:186:37: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(auth->requests, POINTER_CAST(request->id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-login-auth.c:186:37: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(auth->requests, POINTER_CAST(request->id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-login-auth.c:186:37: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(auth->requests, POINTER_CAST(request->id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-login-auth.c:216:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(auth->requests, POINTER_CAST(request->id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-login-auth.c:216:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(auth->requests, POINTER_CAST(request->id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-login-auth.c:216:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(auth->requests, POINTER_CAST(request->id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-login-auth.c:231:46: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(auth->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ master-login-auth.c:231:46: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(auth->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ master-login-auth.c:231:46: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(auth->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ master-login-auth.c:510:45: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] i_assert(hash_table_lookup(auth->requests, POINTER_CAST(id)) == NULL); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^ ../../src/lib/macros.h:208:21: note: expanded from macro 'i_assert' if (unlikely(!(expr))) \ ~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-login-auth.c:510:45: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] i_assert(hash_table_lookup(auth->requests, POINTER_CAST(id)) == NULL); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:208:21: note: expanded from macro 'i_assert' if (unlikely(!(expr))) \ ~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-login-auth.c:510:45: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] i_assert(hash_table_lookup(auth->requests, POINTER_CAST(id)) == NULL); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:208:21: note: expanded from macro 'i_assert' if (unlikely(!(expr))) \ ~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ master-login-auth.c:511:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(auth->requests, POINTER_CAST(id), login_req); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ master-login-auth.c:511:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(auth->requests, POINTER_CAST(id), login_req); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 14 warnings generated. test-event-stats.c:101:8: warning: implicit declaration of function 'kill' is invalid in C99 [-Wimplicit-function-declaration] (void)kill(stats_pid, SIGKILL); ^ test-event-stats.c:365:22: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] " l0 0 ctest2\n", id, l)); ^~ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-event-stats.c:394:18: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] "END\t%lu\n", idp, lp, idp, l, idp)); ^~~ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-event-stats.c:394:27: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] "END\t%lu\n", idp, lp, idp, l, idp)); ^~~ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-event-stats.c:394:35: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] "END\t%lu\n", idp, lp, idp, l, idp)); ~~~ ^~~ %llu ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-event-stats.c:458:21: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] " Skey1 str1\n", id, l)); ^~ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-event-stats.c:490:27: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] " ctest2\nEND\t%lu\n", id, lp, id, l, id)); ^~ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-event-stats.c:490:35: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] " ctest2\nEND\t%lu\n", id, lp, id, l, id)); ^~ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-event-stats.c:490:42: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] " ctest2\nEND\t%lu\n", id, lp, id, l, id)); ~~~ ^~ %llu ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-event-stats.c:533:25: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] " str4\nEND\t%lu\n", id, lp, id, l, id)); ^~ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-event-stats.c:533:33: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] " str4\nEND\t%lu\n", id, lp, id, l, id)); ^~ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ test-event-stats.c:533:40: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] " str4\nEND\t%lu\n", id, lp, id, l, id)); ~~~ ^~ %llu ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ ^~~~ 12 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] iostream-openssl.c:794:55: warning: unused parameter 'ssl_io' [-Wunused-parameter] openssl_iostream_get_compression(struct ssl_iostream *ssl_io) ^ 1 warning generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] mail-cache-fields.c:161:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(idx)); ^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:112:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ mail-cache-fields.c:161:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(idx)); ^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:112:83: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 2 warnings generated. mail-index.c:388:6: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(*idx_r)); ^~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:112:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ mail-index.c:388:6: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(*idx_r)); ^~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:112:83: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 2 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] mailbox-list-index.c:165:48: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] return hash_table_lookup(ilist->mailbox_hash, POINTER_CAST(uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ mailbox-list-index.c:165:48: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] return hash_table_lookup(ilist->mailbox_hash, POINTER_CAST(uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ mailbox-list-index.c:165:48: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] return hash_table_lookup(ilist->mailbox_hash, POINTER_CAST(uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ mailbox-list-index.c:238:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(ilist->mailbox_names, POINTER_CAST(id), name); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ mailbox-list-index.c:238:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(ilist->mailbox_names, POINTER_CAST(id), name); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ mailbox-list-index.c:262:6: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(node->name_id), name); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ mailbox-list-index.c:262:6: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(node->name_id), name); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ mailbox-list-index.c:348:13: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(irec->name_id)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ mailbox-list-index.c:348:13: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(irec->name_id)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ mailbox-list-index.c:348:13: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(irec->name_id)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ mailbox-list-index.c:358:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(node->uid), node); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ mailbox-list-index.c:358:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(node->uid), node); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 12 warnings generated. mailbox-list-index-sync.c:84:6: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(node->uid), node); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ mailbox-list-index-sync.c:84:6: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(node->uid), node); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ mailbox-list-index-sync.c:86:6: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(node->name_id), dup_name); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ mailbox-list-index-sync.c:86:6: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(node->name_id), dup_name); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ mailbox-list-index-sync.c:172:8: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(*id_p)); ^~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ mailbox-list-index-sync.c:172:8: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(*id_p)); ^~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ mailbox-list-index-sync.c:172:8: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(*id_p)); ^~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 7 warnings generated. maildir-keywords.c:179:41: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(mk->hash, new_name, POINTER_CAST(idx + 1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:112:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ maildir-keywords.c:179:41: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(mk->hash, new_name, POINTER_CAST(idx + 1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:112:83: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ../../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ maildir-keywords.c:230:40: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(mk->hash, new_name, POINTER_CAST(chridx + 1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:112:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ maildir-keywords.c:230:40: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(mk->hash, new_name, POINTER_CAST(chridx + 1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:112:83: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ../../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 4 warnings generated. mdbox-purge.c:180:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] value = hash_table_lookup(ctx->altmoves, POINTER_CAST(map_uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ mdbox-purge.c:180:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] value = hash_table_lookup(ctx->altmoves, POINTER_CAST(map_uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ mdbox-purge.c:180:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] value = hash_table_lookup(ctx->altmoves, POINTER_CAST(map_uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ mdbox-purge.c:605:8: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(cur_map_uid), ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ mdbox-purge.c:605:8: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(cur_map_uid), ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ mdbox-purge.c:606:8: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(action)); ^~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:112:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ mdbox-purge.c:606:8: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(action)); ^~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:112:83: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ../../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ mdbox-purge.c:638:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_update(ctx->altmoves, POINTER_CAST(cur_map_uid), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:115:21: note: expanded from macro 'hash_table_update' (void *)((char *)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ mdbox-purge.c:638:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_update(ctx->altmoves, POINTER_CAST(cur_map_uid), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:115:80: note: expanded from macro 'hash_table_update' (void *)((char *)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ mdbox-purge.c:639:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(action)); ^~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:116:21: note: expanded from macro 'hash_table_update' (void *)((char *)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ mdbox-purge.c:639:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(action)); ^~~~~~~~~~~~~~~~~~~~~ ../../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../../src/lib/hash.h:116:84: note: expanded from macro 'hash_table_update' (void *)((char *)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ../../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 11 warnings generated. index-mail.c:1218:3: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] message_parser_parse_body(data->parser_ctx, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib-mail/message-parser.h:95:28: note: expanded from macro 'message_parser_parse_body' (void *)((char *)context + CALLBACK_TYPECHECK(callback, \ ~~~~~~~~~~~~~~~ ^ 1 warning generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] connect-limit.c:79:11: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] value = POINTER_CAST(1); ^~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ~~~~~~~~~~~~~ ^ connect-limit.c:82:11: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] value = POINTER_CAST(POINTER_CAST_TO(value, unsigned int) + 1); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ~~~~~~~~~~~~~ ^ connect-limit.c:112:11: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] value = POINTER_CAST(new_refcount); ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ~~~~~~~~~~~~~ ^ 3 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] auth-request-handler.c:154:39: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(handler->requests, POINTER_CAST(request->id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ auth-request-handler.c:154:39: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(handler->requests, POINTER_CAST(request->id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ auth-request-handler.c:154:39: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(handler->requests, POINTER_CAST(request->id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ auth-request-handler.c:564:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] if (hash_table_lookup(handler->requests, POINTER_CAST(id)) != NULL) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ auth-request-handler.c:564:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] if (hash_table_lookup(handler->requests, POINTER_CAST(id)) != NULL) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ auth-request-handler.c:564:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] if (hash_table_lookup(handler->requests, POINTER_CAST(id)) != NULL) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ auth-request-handler.c:574:39: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(handler->requests, POINTER_CAST(id), request); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ auth-request-handler.c:574:39: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(handler->requests, POINTER_CAST(id), request); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ auth-request-handler.c:649:49: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(handler->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ auth-request-handler.c:649:49: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(handler->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ auth-request-handler.c:649:49: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(handler->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ auth-request-handler.c:778:49: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(handler->requests, POINTER_CAST(client_id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ auth-request-handler.c:778:49: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(handler->requests, POINTER_CAST(client_id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ auth-request-handler.c:778:49: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(handler->requests, POINTER_CAST(client_id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ auth-request-handler.c:845:49: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(handler->requests, POINTER_CAST(client_id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ auth-request-handler.c:845:49: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(handler->requests, POINTER_CAST(client_id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ auth-request-handler.c:845:49: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] request = hash_table_lookup(handler->requests, POINTER_CAST(client_id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 17 warnings generated. db-checkpassword.c:81:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(request->pid)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ db-checkpassword.c:81:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(request->pid)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ db-checkpassword.c:81:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(request->pid)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ db-checkpassword.c:427:34: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_lookup(db->clients, POINTER_CAST(status->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ db-checkpassword.c:427:34: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_lookup(db->clients, POINTER_CAST(status->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ db-checkpassword.c:427:34: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_lookup(db->clients, POINTER_CAST(status->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ db-checkpassword.c:431:33: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(db->clients, POINTER_CAST(status->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ db-checkpassword.c:431:33: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(db->clients, POINTER_CAST(status->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ db-checkpassword.c:431:33: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(db->clients, POINTER_CAST(status->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ db-checkpassword.c:542:33: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(db->clients, POINTER_CAST(pid), chkpw_auth_request); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ db-checkpassword.c:542:33: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(db->clients, POINTER_CAST(pid), chkpw_auth_request); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 11 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] service-monitor.c:125:44: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] process = hash_table_lookup(service_pids, POINTER_CAST(status->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ service-monitor.c:125:44: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] process = hash_table_lookup(service_pids, POINTER_CAST(status->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ service-monitor.c:125:44: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] process = hash_table_lookup(service_pids, POINTER_CAST(status->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ service-monitor.c:697:45: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] process = hash_table_lookup(service_pids, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ service-monitor.c:697:45: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] process = hash_table_lookup(service_pids, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ service-monitor.c:697:45: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] process = hash_table_lookup(service_pids, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ service-process.c:348:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] i_assert(hash_table_lookup(service_pids, POINTER_CAST(pid)) == NULL); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^ ../../src/lib/macros.h:208:21: note: expanded from macro 'i_assert' if (unlikely(!(expr))) \ ~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ service-process.c:348:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] i_assert(hash_table_lookup(service_pids, POINTER_CAST(pid)) == NULL); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:208:21: note: expanded from macro 'i_assert' if (unlikely(!(expr))) \ ~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ service-process.c:348:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] i_assert(hash_table_lookup(service_pids, POINTER_CAST(pid)) == NULL); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:208:21: note: expanded from macro 'i_assert' if (unlikely(!(expr))) \ ~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ service-process.c:367:34: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(service_pids, POINTER_CAST(process->pid), process); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ service-process.c:367:34: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(service_pids, POINTER_CAST(process->pid), process); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ service-process.c:380:34: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(service_pids, POINTER_CAST(process->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ service-process.c:380:34: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(service_pids, POINTER_CAST(process->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ service-process.c:380:34: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(service_pids, POINTER_CAST(process->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ 8 warnings generated. 6 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] pop3-commands.c:765:38: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_update(prev_uidls, key, POINTER_CAST(counter)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:116:21: note: expanded from macro 'hash_table_update' (void *)((char *)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ pop3-commands.c:765:38: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_update(prev_uidls, key, POINTER_CAST(counter)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:116:84: note: expanded from macro 'hash_table_update' (void *)((char *)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ pop3-commands.c:822:40: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_update(prev_uidls, uidl, POINTER_CAST(1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:116:21: note: expanded from macro 'hash_table_update' (void *)((char *)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ pop3-commands.c:822:40: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_update(prev_uidls, uidl, POINTER_CAST(1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:116:84: note: expanded from macro 'hash_table_update' (void *)((char *)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 4 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] log-connection.c:90:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] client = hash_table_lookup(log->clients, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ log-connection.c:90:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] client = hash_table_lookup(log->clients, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ log-connection.c:90:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] client = hash_table_lookup(log->clients, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ log-connection.c:93:35: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(log->clients, POINTER_CAST(pid), client); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ log-connection.c:93:35: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(log->clients, POINTER_CAST(pid), client); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ log-connection.c:101:34: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(log->clients, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ log-connection.c:101:34: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(log->clients, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ log-connection.c:101:34: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(log->clients, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ log-connection.c:217:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] client = hash_table_lookup(log->clients, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ log-connection.c:217:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] client = hash_table_lookup(log->clients, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ log-connection.c:217:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] client = hash_table_lookup(log->clients, POINTER_CAST(pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ log-connection.c:267:8: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(failure.pid)); ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ log-connection.c:267:8: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(failure.pid)); ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ log-connection.c:267:8: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(failure.pid)); ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 14 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] doveconf.c:822:34: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(hosts, key, POINTER_CAST(n+1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:112:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ doveconf.c:822:34: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(hosts, key, POINTER_CAST(n+1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:112:83: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 2 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] user-directory.c:65:31: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(dir->hash, POINTER_CAST(user->username_hash)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ user-directory.c:65:31: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(dir->hash, POINTER_CAST(user->username_hash)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ user-directory.c:65:31: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(dir->hash, POINTER_CAST(user->username_hash)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ user-directory.c:135:38: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] user = hash_table_lookup(dir->hash, POINTER_CAST(username_hash)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ user-directory.c:135:38: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] user = hash_table_lookup(dir->hash, POINTER_CAST(username_hash)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ user-directory.c:135:38: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] user = hash_table_lookup(dir->hash, POINTER_CAST(username_hash)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ user-directory.c:165:31: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(dir->hash, POINTER_CAST(user->username_hash), user); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ user-directory.c:165:31: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(dir->hash, POINTER_CAST(user->username_hash), user); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 8 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] replicator-connection.c:53:46: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] context = hash_table_lookup(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ replicator-connection.c:53:46: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] context = hash_table_lookup(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ replicator-connection.c:53:46: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] context = hash_table_lookup(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ replicator-connection.c:58:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ replicator-connection.c:58:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ replicator-connection.c:58:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_remove(conn->requests, POINTER_CAST(id)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ replicator-connection.c:318:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(conn->requests, POINTER_CAST(id), context); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ replicator-connection.c:318:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(conn->requests, POINTER_CAST(id), context); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 8 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] dsync-mailbox-import.c:743:13: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(remote_uid)); ^~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ dsync-mailbox-import.c:743:13: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(remote_uid)); ^~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-mailbox-import.c:743:13: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(remote_uid)); ^~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-mailbox-import.c:747:8: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(remote_uid), newmail); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ dsync-mailbox-import.c:747:8: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(remote_uid), newmail); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-mailbox-import.c:1276:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(change->uid)); ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ dsync-mailbox-import.c:1276:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(change->uid)); ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-mailbox-import.c:1276:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(change->uid)); ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-mailbox-import.c:1623:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(change->uid)); ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ dsync-mailbox-import.c:1623:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(change->uid)); ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-mailbox-import.c:1623:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(change->uid)); ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-mailbox-import.c:2585:44: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_lookup(importer->import_uids, POINTER_CAST(mail->uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ dsync-mailbox-import.c:2585:44: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_lookup(importer->import_uids, POINTER_CAST(mail->uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-mailbox-import.c:2585:44: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_lookup(importer->import_uids, POINTER_CAST(mail->uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-mailbox-import.c:2602:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(mail->uid)); ^~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/hash.h:121:33: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ dsync-mailbox-import.c:2602:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(mail->uid)); ^~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ^ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ dsync-mailbox-import.c:2602:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(mail->uid)); ^~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:124:46: note: expanded from macro 'hash_table_remove' if (unlikely(!hash_table_try_remove(table, key))) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/hash.h:121:113: note: expanded from macro 'hash_table_try_remove' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._const_key, (table)._key, key))) ^ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ^ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^ ../../../src/lib/macros.h:189:45: note: expanded from macro 'unlikely' # define unlikely(expr) (__builtin_expect((expr) ? 1 : 0, 0) != 0) ^~~~ dsync-mailbox-export.c:197:48: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] change = hash_table_lookup(exporter->changes, POINTER_CAST(mail->uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ dsync-mailbox-export.c:197:48: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] change = hash_table_lookup(exporter->changes, POINTER_CAST(mail->uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-mailbox-export.c:197:48: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] change = hash_table_lookup(exporter->changes, POINTER_CAST(mail->uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-mailbox-export.c:207:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(mail->uid), change); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ dsync-mailbox-export.c:207:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(mail->uid), change); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-mailbox-export.c:237:48: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] change = hash_table_lookup(exporter->changes, POINTER_CAST(uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ dsync-mailbox-export.c:237:48: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] change = hash_table_lookup(exporter->changes, POINTER_CAST(uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-mailbox-export.c:237:48: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] change = hash_table_lookup(exporter->changes, POINTER_CAST(uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-mailbox-export.c:241:40: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(exporter->changes, POINTER_CAST(uid), change); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ dsync-mailbox-export.c:241:40: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(exporter->changes, POINTER_CAST(uid), change); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 10 warnings generated. 17 warnings generated. dsync-transaction-log-scan.c:40:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] change = hash_table_lookup(ctx->changes, POINTER_CAST(uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ dsync-transaction-log-scan.c:40:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] change = hash_table_lookup(ctx->changes, POINTER_CAST(uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-transaction-log-scan.c:40:43: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] change = hash_table_lookup(ctx->changes, POINTER_CAST(uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-transaction-log-scan.c:46:35: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(ctx->changes, POINTER_CAST(uid), change); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ dsync-transaction-log-scan.c:46:35: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(ctx->changes, POINTER_CAST(uid), change); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-transaction-log-scan.c:596:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_lookup(scan->changes, POINTER_CAST(uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ dsync-transaction-log-scan.c:596:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_lookup(scan->changes, POINTER_CAST(uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ dsync-transaction-log-scan.c:596:36: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_lookup(scan->changes, POINTER_CAST(uid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 8 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] doveadm-director.c:272:38: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] old_user = hash_table_lookup(users, POINTER_CAST(user_hash)); ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ doveadm-director.c:272:38: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] old_user = hash_table_lookup(users, POINTER_CAST(user_hash)); ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ doveadm-director.c:272:38: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] old_user = hash_table_lookup(users, POINTER_CAST(user_hash)); ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ doveadm-director.c:275:27: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_update(users, POINTER_CAST(user_hash), user); ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:115:21: note: expanded from macro 'hash_table_update' (void *)((char *)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ doveadm-director.c:275:27: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_update(users, POINTER_CAST(user_hash), user); ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:115:80: note: expanded from macro 'hash_table_update' (void *)((char *)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ doveadm-director.c:397:35: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] user = hash_table_lookup(users, POINTER_CAST(user_hash)); ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ doveadm-director.c:397:35: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] user = hash_table_lookup(users, POINTER_CAST(user_hash)); ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ doveadm-director.c:397:35: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] user = hash_table_lookup(users, POINTER_CAST(user_hash)); ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ doveadm-director.c:429:9: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(user_hash)); ^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ doveadm-director.c:429:9: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(user_hash)); ^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ doveadm-director.c:429:9: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(user_hash)); ^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 11 warnings generated. doveadm-kick.c:46:39: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] k_pid = hash_table_lookup(ctx->pids, POINTER_CAST(line->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ doveadm-kick.c:46:39: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] k_pid = hash_table_lookup(ctx->pids, POINTER_CAST(line->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ doveadm-kick.c:46:39: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] k_pid = hash_table_lookup(ctx->pids, POINTER_CAST(line->pid)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ doveadm-kick.c:51:32: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(ctx->pids, POINTER_CAST(line->pid), k_pid); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ doveadm-kick.c:51:32: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(ctx->pids, POINTER_CAST(line->pid), k_pid); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 5 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] acl-cache.c:158:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(idx + 1)); ^~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:112:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ acl-cache.c:158:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(idx + 1)); ^~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:112:83: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 2 warnings generated. doveadm-expire.c:118:6: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(state)); ^~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:116:21: note: expanded from macro 'hash_table_update' (void *)((char *)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ doveadm-expire.c:118:6: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(state)); ^~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:116:84: note: expanded from macro 'hash_table_update' (void *)((char *)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ doveadm-expire.c:438:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(state)); ^~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:112:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ^~~~~ doveadm-expire.c:438:7: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(state)); ^~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:112:83: note: expanded from macro 'hash_table_insert' (void *)((char*)(value) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._value, value))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ ../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 4 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] lazy-expunge-plugin.c:175:14: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] refcountp = POINTER_CAST(refcount); ^~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ~~~~~~~~~~~~~ ^ 1 warning generated. push-notification-txn-msg.c:20:33: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(mail->seq)); ^~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:33: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ^~~ push-notification-txn-msg.c:20:33: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(mail->seq)); ^~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:181:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a1), typeof(_b)) && \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ push-notification-txn-msg.c:20:33: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] POINTER_CAST(mail->seq)); ^~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:80:113: note: expanded from macro 'hash_table_lookup' (const void *)((const char *)(key) + COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE((table)._key, (table)._const_key, key))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:182:53: note: expanded from macro 'COMPILE_ERROR_IF_TYPES2_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a2), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ push-notification-txn-msg.c:35:42: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(txn->messages, POINTER_CAST(mail->seq), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:20: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ^~~ push-notification-txn-msg.c:35:42: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] hash_table_insert(txn->messages, POINTER_CAST(mail->seq), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/lib/macros.h:42:27: note: expanded from macro 'POINTER_CAST' ((void *) ((char *) NULL + (i))) ^ ../../../src/lib/hash.h:111:79: note: expanded from macro 'hash_table_insert' (void *)((char*)(key) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE((table)._key, key)), \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/lib/macros.h:178:52: note: expanded from macro 'COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE' !__builtin_types_compatible_p(typeof(_a), typeof(_b))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../../../src/lib/macros.h:170:25: note: expanded from macro 'COMPILE_ERROR_IF_TRUE' (sizeof(char[1 - 2 * ((condition) ? 1 : 0)]) - 1) ^~~~~~~~~ 5 warnings generated. clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] clang-7: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument]