Skip to content

Instantly share code, notes, and snippets.

@DanielG
Last active July 31, 2023 17:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DanielG/422d495c4bc90bb9a74e5804e2a6baec to your computer and use it in GitHub Desktop.
Save DanielG/422d495c4bc90bb9a74e5804e2a6baec to your computer and use it in GitHub Desktop.
tundra-nat64 warnings
rm src/*.o
rm src/*.d
rm *.8
rm: cannot remove '*.8': No such file or directory
make: [Makefile:47: clean] Error 1 (ignored)
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_checksum.o -c src/t64_checksum.c
src/t64_checksum.c: In function ‘t64f_checksum__calculate_ipv4_header_checksum’:
src/t64_checksum.c:35:12: warning: conversion from ‘int’ to ‘uint16_t’ {aka ‘short unsigned int’} may change value [-Warith-conversion]
35 | return ~_t64f_checksum__pack_into_16bits(_t64f_checksum__sum_16bit_words((const uint8_t *) ipv4_header, ((size_t) ipv4_header->ihl) * 4));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_checksum.c: In function ‘t64f_checksum__calculate_rfc1071_checksum_for_ipv4’:
src/t64_checksum.c:49:12: warning: conversion from ‘int’ to ‘uint16_t’ {aka ‘short unsigned int’} may change value [-Warith-conversion]
49 | return ~_t64f_checksum__pack_into_16bits(sum);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_checksum.c: In function ‘t64f_checksum__calculate_rfc1071_checksum_for_ipv6’:
src/t64_checksum.c:61:77: warning: passing argument 2 of ‘_t64f_checksum__sum_ipv6_pseudo_header’ with different width due to prototype [-Wtraditional-conversion]
61 | sum += _t64f_checksum__sum_ipv6_pseudo_header(nullable_ipv6_header, carried_protocol, payload1_size + zeroable_payload2_size); // If 'zeroable_payload2_size' is zero, the sum won't be affected.
| ^~~~~~~~~~~~~~~~
src/t64_checksum.c:63:12: warning: conversion from ‘int’ to ‘uint16_t’ {aka ‘short unsigned int’} may change value [-Warith-conversion]
63 | return ~_t64f_checksum__pack_into_16bits(sum);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_checksum.c: In function ‘t64f_checksum__incrementally_recalculate_rfc1071_checksum_4to6’:
src/t64_checksum.c:73:84: warning: passing argument 2 of ‘_t64f_checksum__sum_16bit_words’ with different width due to prototype [-Wtraditional-conversion]
73 | _t64f_checksum__sum_16bit_words((const uint8_t *) &old_ipv4_header->saddr, 4) +
| ^
src/t64_checksum.c:74:84: warning: passing argument 2 of ‘_t64f_checksum__sum_16bit_words’ with different width due to prototype [-Wtraditional-conversion]
74 | _t64f_checksum__sum_16bit_words((const uint8_t *) &old_ipv4_header->daddr, 4)
| ^
src/t64_checksum.c:77:91: warning: passing argument 2 of ‘_t64f_checksum__sum_16bit_words’ with different width due to prototype [-Wtraditional-conversion]
77 | _t64f_checksum__sum_16bit_words((const uint8_t *) new_ipv6_header->saddr.s6_addr, 16) +
| ^~
src/t64_checksum.c:78:91: warning: passing argument 2 of ‘_t64f_checksum__sum_16bit_words’ with different width due to prototype [-Wtraditional-conversion]
78 | _t64f_checksum__sum_16bit_words((const uint8_t *) new_ipv6_header->daddr.s6_addr, 16)
| ^~
src/t64_checksum.c:82:93: warning: passing argument 1 of ‘_t64f_checksum__pack_into_16bits’ as unsigned due to prototype [-Wtraditional-conversion]
82 | return ~_t64f_checksum__pack_into_16bits(_t64f_checksum__pack_into_16bits(~old_checksum - _t64f_checksum__pack_into_16bits(old_ips_sum)) + _t64f_checksum__pack_into_16bits(new_ips_sum));
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_checksum.c:82:93: warning: conversion to ‘uint32_t’ {aka ‘unsigned int’} from ‘int’ may change the sign of the result [-Wsign-conversion]
src/t64_checksum.c:82:142: warning: passing argument 1 of ‘_t64f_checksum__pack_into_16bits’ as unsigned due to prototype [-Wtraditional-conversion]
82 | return ~_t64f_checksum__pack_into_16bits(_t64f_checksum__pack_into_16bits(~old_checksum - _t64f_checksum__pack_into_16bits(old_ips_sum)) + _t64f_checksum__pack_into_16bits(new_ips_sum));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_checksum.c:82:142: warning: conversion to ‘uint32_t’ {aka ‘unsigned int’} from ‘int’ may change the sign of the result [-Warith-conversion]
src/t64_checksum.c:82:12: warning: conversion from ‘int’ to ‘uint16_t’ {aka ‘short unsigned int’} may change value [-Warith-conversion]
82 | return ~_t64f_checksum__pack_into_16bits(_t64f_checksum__pack_into_16bits(~old_checksum - _t64f_checksum__pack_into_16bits(old_ips_sum)) + _t64f_checksum__pack_into_16bits(new_ips_sum));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_checksum.c: In function ‘t64f_checksum__incrementally_recalculate_rfc1071_checksum_6to4’:
src/t64_checksum.c:87:91: warning: passing argument 2 of ‘_t64f_checksum__sum_16bit_words’ with different width due to prototype [-Wtraditional-conversion]
87 | _t64f_checksum__sum_16bit_words((const uint8_t *) old_ipv6_header->saddr.s6_addr, 16) +
| ^~
src/t64_checksum.c:88:91: warning: passing argument 2 of ‘_t64f_checksum__sum_16bit_words’ with different width due to prototype [-Wtraditional-conversion]
88 | _t64f_checksum__sum_16bit_words((const uint8_t *) old_ipv6_header->daddr.s6_addr, 16)
| ^~
src/t64_checksum.c:91:84: warning: passing argument 2 of ‘_t64f_checksum__sum_16bit_words’ with different width due to prototype [-Wtraditional-conversion]
91 | _t64f_checksum__sum_16bit_words((const uint8_t *) &new_ipv4_header->saddr, 4) +
| ^
src/t64_checksum.c:92:84: warning: passing argument 2 of ‘_t64f_checksum__sum_16bit_words’ with different width due to prototype [-Wtraditional-conversion]
92 | _t64f_checksum__sum_16bit_words((const uint8_t *) &new_ipv4_header->daddr, 4)
| ^
src/t64_checksum.c:96:93: warning: passing argument 1 of ‘_t64f_checksum__pack_into_16bits’ as unsigned due to prototype [-Wtraditional-conversion]
96 | return ~_t64f_checksum__pack_into_16bits(_t64f_checksum__pack_into_16bits(~old_checksum - _t64f_checksum__pack_into_16bits(old_ips_sum)) + _t64f_checksum__pack_into_16bits(new_ips_sum));
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_checksum.c:96:93: warning: conversion to ‘uint32_t’ {aka ‘unsigned int’} from ‘int’ may change the sign of the result [-Wsign-conversion]
src/t64_checksum.c:96:142: warning: passing argument 1 of ‘_t64f_checksum__pack_into_16bits’ as unsigned due to prototype [-Wtraditional-conversion]
96 | return ~_t64f_checksum__pack_into_16bits(_t64f_checksum__pack_into_16bits(~old_checksum - _t64f_checksum__pack_into_16bits(old_ips_sum)) + _t64f_checksum__pack_into_16bits(new_ips_sum));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_checksum.c:96:142: warning: conversion to ‘uint32_t’ {aka ‘unsigned int’} from ‘int’ may change the sign of the result [-Warith-conversion]
src/t64_checksum.c:96:12: warning: conversion from ‘int’ to ‘uint16_t’ {aka ‘short unsigned int’} may change value [-Warith-conversion]
96 | return ~_t64f_checksum__pack_into_16bits(_t64f_checksum__pack_into_16bits(~old_checksum - _t64f_checksum__pack_into_16bits(old_ips_sum)) + _t64f_checksum__pack_into_16bits(new_ips_sum));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/arpa/inet.h:22,
from src/t64_tundra_includes.h:48,
from src/t64_tundra.h:49,
from src/t64_checksum.c:22:
src/t64_checksum.c: In function ‘_t64f_checksum__sum_ipv4_pseudo_header’:
src/t64_checksum.c:114:39: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
114 | ipv4_pseudo_header.length = htons((uint16_t) transport_header_and_data_length);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_checksum.c:116:44: warning: cast discards ‘volatile’ qualifier from pointer target type [-Wcast-qual]
116 | return _t64f_checksum__sum_16bit_words((const uint8_t *) &ipv4_pseudo_header, sizeof(ipv4_pseudo_header));
| ^
src/t64_checksum.c: In function ‘_t64f_checksum__sum_ipv6_pseudo_header’:
src/t64_checksum.c:130:12: warning: cast discards ‘volatile’ qualifier from pointer target type [-Wcast-qual]
130 | memcpy((void *) ipv6_pseudo_header.source_address, ipv6_header->saddr.s6_addr, 16);
| ^
src/t64_checksum.c:130:84: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
130 | memcpy((void *) ipv6_pseudo_header.source_address, ipv6_header->saddr.s6_addr, 16);
| ^~
src/t64_checksum.c:131:12: warning: cast discards ‘volatile’ qualifier from pointer target type [-Wcast-qual]
131 | memcpy((void *) ipv6_pseudo_header.destination_address, ipv6_header->daddr.s6_addr, 16);
| ^
src/t64_checksum.c:131:89: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
131 | memcpy((void *) ipv6_pseudo_header.destination_address, ipv6_header->daddr.s6_addr, 16);
| ^~
In file included from src/t64_checksum.c:25:
src/t64_checksum.c:133:33: warning: cast discards ‘volatile’ qualifier from pointer target type [-Wcast-qual]
133 | T64M_UTILS__MEMORY_ZERO_OUT((void *) ipv6_pseudo_header.zeroes, 3);
| ^
src/t64_utils.h:33:57: note: in definition of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~~~~
src/t64_utils.h:33:69: warning: passing argument 3 of ‘memset’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~
src/t64_checksum.c:133:5: note: in expansion of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
133 | T64M_UTILS__MEMORY_ZERO_OUT((void *) ipv6_pseudo_header.zeroes, 3);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_checksum.c:136:44: warning: cast discards ‘volatile’ qualifier from pointer target type [-Wcast-qual]
136 | return _t64f_checksum__sum_16bit_words((const uint8_t *) &ipv6_pseudo_header, sizeof(ipv6_pseudo_header));
| ^
src/t64_checksum.c: In function ‘_t64f_checksum__sum_16bit_words’:
src/t64_checksum.c:143:18: warning: cast increases required alignment of target type [-Wcast-align]
143 | sum += *((const uint16_t *) bytes);
| ^
src/t64_checksum.c:150:22: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
150 | sum += htons((uint16_t) (temp << 8)); // The checksum is calculated with all bytes being in network order (= big endian)
| ^~~~~~~~~~~~~~~~~~~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_conf_cmdline.o -c src/t64_conf_cmdline.c
src/t64_conf_cmdline.c: In function ‘t64fa_conf_cmdline__parse_cmdline_configuration’:
src/t64_conf_cmdline.c:105:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
105 | t64f_log__crash(false, "argv[0] does not exist or is NULL!");
| ^~~~~
src/t64_conf_cmdline.c:107:97: warning: passing argument 1 of ‘t64fa_utils__allocate_zeroed_out_memory’ with different width due to prototype [-Wtraditional-conversion]
107 | t64ts_tundra__conf_cmdline *cmdline_configuration = t64fa_utils__allocate_zeroed_out_memory(1, sizeof(t64ts_tundra__conf_cmdline));
| ^
src/t64_conf_cmdline.c: In function ‘_t64f_conf_cmdline__parse_cmdline_options’:
src/t64_conf_cmdline.c:149:37: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
149 | t64f_log__crash(false, "The config file path has already been set: %s", cmdline_configuration->config_file_path);
| ^~~~~
src/t64_conf_cmdline.c:155:37: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
155 | t64f_log__crash(false, "The list of inherited file descriptors for packet I/O has already been set: %s", cmdline_configuration->io_inherited_fds);
| ^~~~~
src/t64_conf_cmdline.c:161:37: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
161 | t64f_log__crash(false, "The list of inherited file descriptors for external address translation has already been set: %s", cmdline_configuration->addressing_external_inherited_fds);
| ^~~~~
src/t64_conf_cmdline.c:167:33: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
167 | t64f_log__crash(false, "An invalid command-line option has been passed to the program - see '--"T64C_CONF_CMDLINE__LONGOPT_HELP"' for more information!");
| ^~~~~
src/t64_conf_cmdline.c:170:33: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
170 | t64f_log__crash(false, "An unknown error occurred while parsing command-line options!");
| ^~~~~
src/t64_conf_cmdline.c: In function ‘_t64f_conf_cmdline__parse_cmdline_arguments’:
src/t64_conf_cmdline.c:186:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
186 | t64f_log__crash(false, "Too many command-line arguments (%d)!", argument_count);
| ^~~~~
src/t64_conf_cmdline.c: In function ‘_t64f_conf_cmdline__determine_operation_mode_from_string’:
src/t64_conf_cmdline.c:227:21: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
227 | t64f_log__crash(false, "Invalid mode of operation string: %s", mode_of_operation_string);
| ^~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_conf_file.o -c src/t64_conf_file.c
src/t64_conf_file.c: In function ‘_t64fa_conf_file__parse_configuration_file’:
src/t64_conf_file.c:64:91: warning: passing argument 1 of ‘t64fa_utils__allocate_zeroed_out_memory’ with different width due to prototype [-Wtraditional-conversion]
64 | t64ts_tundra__conf_file *file_configuration = t64fa_utils__allocate_zeroed_out_memory(1, sizeof(t64ts_tundra__conf_file));
| ^
src/t64_conf_file.c: In function ‘_t64fa_conf_file__parse_program_configuration_entries’:
src/t64_conf_file.c:77:172: warning: passing argument 3 of ‘t64f_conf_file_load__find_uint64’ with different width due to prototype [-Wtraditional-conversion]
77 | file_configuration->program_translator_threads = (size_t) t64f_conf_file_load__find_uint64(config_file_entries, T64C_CONF_FILE__OPTION_KEY_PROGRAM_TRANSLATOR_THREADS, 1, T64C_TUNDRA__MAX_TRANSLATOR_THREADS, &_t64f_conf_file__get_fallback_translator_thread_count);
| ^
src/t64_conf_file.c:81:194: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
81 | const char *username = t64f_conf_file_load__find_string(config_file_entries, T64C_CONF_FILE__OPTION_KEY_PROGRAM_PRIVILEGE_DROP_USER, T64C_CONF_FILE_LOAD__FIND_STRING_NO_MAX_CHARACTERS, false);
| ^~~~~
src/t64_conf_file.c:93:196: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
93 | const char *groupname = t64f_conf_file_load__find_string(config_file_entries, T64C_CONF_FILE__OPTION_KEY_PROGRAM_PRIVILEGE_DROP_GROUP, T64C_CONF_FILE_LOAD__FIND_STRING_NO_MAX_CHARACTERS, false);
| ^~~~~
src/t64_conf_file.c: In function ‘_t64fa_conf_file__parse_io_configuration_entries’:
src/t64_conf_file.c:107:151: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
107 | t64f_conf_file_load__find_string(config_file_entries, T64C_CONF_FILE__OPTION_KEY_IO_MODE, T64C_CONF_FILE_LOAD__FIND_STRING_NO_MAX_CHARACTERS, false)
| ^~~~~
src/t64_conf_file.c: In function ‘_t64fa_conf_file__parse_io_tun_configuration_entries’:
src/t64_conf_file.c:126:140: warning: passing argument 3 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
126 | const char *tun_device_path = t64f_conf_file_load__find_string(config_file_entries, T64C_CONF_FILE__OPTION_KEY_IO_TUN_DEVICE_PATH, PATH_MAX - 1, false);
| ^~~~~~~~
src/t64_conf_file.c:126:154: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
126 | const char *tun_device_path = t64f_conf_file_load__find_string(config_file_entries, T64C_CONF_FILE__OPTION_KEY_IO_TUN_DEVICE_PATH, PATH_MAX - 1, false);
| ^~~~~
src/t64_conf_file.c:134:113: warning: passing argument 3 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
134 | t64f_conf_file_load__find_string(config_file_entries, T64C_CONF_FILE__OPTION_KEY_IO_TUN_INTERFACE_NAME, IFNAMSIZ - 1, true)
| ^~~~~~~~
src/t64_conf_file.c:134:127: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
134 | t64f_conf_file_load__find_string(config_file_entries, T64C_CONF_FILE__OPTION_KEY_IO_TUN_INTERFACE_NAME, IFNAMSIZ - 1, true)
| ^~~~
src/t64_conf_file.c:139:190: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
139 | const char *owner_username = t64f_conf_file_load__find_string(config_file_entries, T64C_CONF_FILE__OPTION_KEY_IO_TUN_OWNER_USER, T64C_CONF_FILE_LOAD__FIND_STRING_NO_MAX_CHARACTERS, false);
| ^~~~~
src/t64_conf_file.c:151:192: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
151 | const char *owner_groupname = t64f_conf_file_load__find_string(config_file_entries, T64C_CONF_FILE__OPTION_KEY_IO_TUN_OWNER_GROUP, T64C_CONF_FILE_LOAD__FIND_STRING_NO_MAX_CHARACTERS, false);
| ^~~~~
In file included from src/t64_tundra.h:50,
from src/t64_conf_file.c:22:
src/t64_conf_file.c: In function ‘_t64f_conf_file__parse_router_configuration_entries’:
src/t64_tundra_defs.h:43:51: warning: passing argument 3 of ‘t64f_conf_file_load__find_uint64’ with different width due to prototype [-Wtraditional-conversion]
43 | #define T64C_TUNDRA__MINIMUM_GENERATED_PACKET_TTL ((uint8_t) 64)
| ^~~~~~~~~~~~~~
src/t64_conf_file.c:174:86: note: in expansion of macro ‘T64C_TUNDRA__MINIMUM_GENERATED_PACKET_TTL’
174 | config_file_entries, T64C_CONF_FILE__OPTION_KEY_ROUTER_GENERATED_PACKET_TTL, T64C_TUNDRA__MINIMUM_GENERATED_PACKET_TTL, T64C_TUNDRA__MAXIMUM_GENERATED_PACKET_TTL, NULL
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_tundra_defs.h:44:51: warning: passing argument 4 of ‘t64f_conf_file_load__find_uint64’ with different width due to prototype [-Wtraditional-conversion]
44 | #define T64C_TUNDRA__MAXIMUM_GENERATED_PACKET_TTL ((uint8_t) 255)
| ^~~~~~~~~~~~~~~
src/t64_conf_file.c:174:129: note: in expansion of macro ‘T64C_TUNDRA__MAXIMUM_GENERATED_PACKET_TTL’
174 | config_file_entries, T64C_CONF_FILE__OPTION_KEY_ROUTER_GENERATED_PACKET_TTL, T64C_TUNDRA__MINIMUM_GENERATED_PACKET_TTL, T64C_TUNDRA__MAXIMUM_GENERATED_PACKET_TTL, NULL
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_conf_file.c: In function ‘_t64f_conf_file__parse_addressing_configuration_entries’:
src/t64_conf_file.c:181:159: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
181 | t64f_conf_file_load__find_string(config_file_entries, T64C_CONF_FILE__OPTION_KEY_ADDRESSING_MODE, T64C_CONF_FILE_LOAD__FIND_STRING_NO_MAX_CHARACTERS, false)
| ^~~~~
In file included from src/t64_conf_file.c:25:
src/t64_conf_file.c: In function ‘_t64f_conf_file__parse_addressing_nat64_clat_configuration_entries’:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:29:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
29 | #define T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address1, ipv4_address2) (T64M_UTILS__MEMORY_EQUAL((ipv4_address1), (ipv4_address2), 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_conf_file.c:196:12: note: in expansion of macro ‘T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL’
196 | if(T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(file_configuration->addressing_nat64_clat_ipv4, file_configuration->router_ipv4))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_conf_file.c:197:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
197 | t64f_log__crash(false, "'%s' must not be the same as '%s'!", T64C_CONF_FILE__OPTION_KEY_ADDRESSING_NAT64_CLAT_IPV4, T64C_CONF_FILE__OPTION_KEY_ROUTER_IPV4);
| ^~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:30:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
30 | #define T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address1, ipv6_address2) (T64M_UTILS__MEMORY_EQUAL((ipv6_address1), (ipv6_address2), 16))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_conf_file.c:201:12: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL’
201 | if(T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(file_configuration->addressing_nat64_clat_ipv6, file_configuration->router_ipv6))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_conf_file.c:202:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
202 | t64f_log__crash(false, "'%s' must not be the same as '%s'!", T64C_CONF_FILE__OPTION_KEY_ADDRESSING_NAT64_CLAT_IPV6, T64C_CONF_FILE__OPTION_KEY_ROUTER_IPV6);
| ^~~~~
src/t64_utils.h:33:69: warning: passing argument 3 of ‘memset’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~
src/t64_conf_file.c:204:9: note: in expansion of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
204 | T64M_UTILS__MEMORY_ZERO_OUT(file_configuration->addressing_nat64_clat_ipv4, 4);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:33:69: warning: passing argument 3 of ‘memset’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~
src/t64_conf_file.c:205:9: note: in expansion of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
205 | T64M_UTILS__MEMORY_ZERO_OUT(file_configuration->addressing_nat64_clat_ipv6, 16);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_conf_file.c: In function ‘_t64f_conf_file__parse_addressing_nat64_clat_siit_configuration_entries’:
src/t64_utils.h:33:69: warning: passing argument 3 of ‘memset’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~
src/t64_conf_file.c:217:9: note: in expansion of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
217 | T64M_UTILS__MEMORY_ZERO_OUT(file_configuration->addressing_nat64_clat_siit_prefix, 16);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_conf_file.c: In function ‘_t64f_conf_file__parse_addressing_external_configuration_entries’:
src/t64_conf_file.c:226:177: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
226 | t64f_conf_file_load__find_string(config_file_entries, T64C_CONF_FILE__OPTION_KEY_ADDRESSING_EXTERNAL_TRANSPORT, T64C_CONF_FILE_LOAD__FIND_STRING_NO_MAX_CHARACTERS, false)
| ^~~~~
src/t64_conf_file.c:231:108: warning: passing argument 3 of ‘t64f_conf_file_load__find_uint64’ with different width due to prototype [-Wtraditional-conversion]
231 | config_file_entries, T64C_CONF_FILE__OPTION_KEY_ADDRESSING_EXTERNAL_CACHE_SIZE_MAIN_ADDRESSES, 0, T64C_TUNDRA__MAX_ADDRESSING_EXTERNAL_CACHE_SIZE, NULL
| ^
src/t64_conf_file.c:236:114: warning: passing argument 3 of ‘t64f_conf_file_load__find_uint64’ with different width due to prototype [-Wtraditional-conversion]
236 | config_file_entries, T64C_CONF_FILE__OPTION_KEY_ADDRESSING_EXTERNAL_CACHE_SIZE_ICMP_ERROR_ADDRESSES, 0, T64C_TUNDRA__MAX_ADDRESSING_EXTERNAL_CACHE_SIZE, NULL
| ^
src/t64_conf_file.c: In function ‘_t64f_conf_file__parse_addressing_external_unix_configuration_entries’:
src/t64_conf_file.c:253:204: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
253 | t64f_conf_file_load__find_string(config_file_entries, T64C_CONF_FILE__OPTION_KEY_ADDRESSING_EXTERNAL_UNIX_PATH, sizeof(file_configuration->addressing_external_unix_socket_info.sun_path) - 1, true)
| ^~~~
src/t64_conf_file.c: In function ‘_t64f_conf_file__parse_addressing_external_tcp_configuration_entries’:
src/t64_conf_file.c:261:191: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
261 | const char *host = t64f_conf_file_load__find_string(config_file_entries, T64C_CONF_FILE__OPTION_KEY_ADDRESSING_EXTERNAL_TCP_HOST, T64C_CONF_FILE_LOAD__FIND_STRING_NO_MAX_CHARACTERS, true);
| ^~~~
src/t64_conf_file.c:264:191: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
264 | const char *port = t64f_conf_file_load__find_string(config_file_entries, T64C_CONF_FILE__OPTION_KEY_ADDRESSING_EXTERNAL_TCP_PORT, T64C_CONF_FILE_LOAD__FIND_STRING_NO_MAX_CHARACTERS, true);
| ^~~~
src/t64_conf_file.c:274:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
274 | t64f_log__crash(false, "Failed to resolve the external TCP host ('%s') or port ('%s') using getaddrinfo(): %s", host, port, gai_strerror(gai_return_value));
| ^~~~~
src/t64_conf_file.c:277:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
277 | t64f_log__crash(false, "Even though getaddrinfo() was successful, it saved NULL into the \"result\" variable!");
| ^~~~~
src/t64_conf_file.c: In function ‘_t64f_conf_file__get_uid_by_username’:
src/t64_conf_file.c:312:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
312 | t64f_log__crash(false, "A user named '%s' could not be found!", username);
| ^~~~~
src/t64_conf_file.c: In function ‘_t64f_conf_file__get_gid_by_groupname’:
src/t64_conf_file.c:320:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
320 | t64f_log__crash(false, "A group named '%s' could not be found!", groupname);
| ^~~~~
src/t64_conf_file.c: In function ‘_t64f_conf_file__determine_io_mode_from_string’:
src/t64_conf_file.c:332:21: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
332 | t64f_log__crash(false, "Invalid I/O mode string: '%s'", io_mode_string);
| ^~~~~
src/t64_conf_file.c: In function ‘_t64f_conf_file__determine_addressing_mode_from_string’:
src/t64_conf_file.c:348:21: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
348 | t64f_log__crash(false, "Invalid addressing mode string: '%s'", addressing_mode_string);
| ^~~~~
src/t64_conf_file.c: In function ‘_t64f_conf_file__determine_addressing_external_transport_from_string’:
src/t64_conf_file.c:361:21: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
361 | t64f_log__crash(false, "Invalid addressing external transport string: '%s'", addressing_external_transport_string);
| ^~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_conf_file_load.o -c src/t64_conf_file_load.c
src/t64_conf_file_load.c: In function ‘t64fa_conf_file_load__read_configuration_file’:
src/t64_conf_file_load.c:47:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
47 | t64f_log__crash(true, "Failed to open the configuration file: %s", filepath);
| ^~~~
src/t64_conf_file_load.c:51:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
51 | t64f_log__crash(true, "Failed to get the file descriptor of the open configuration file: %s", filepath);
| ^~~~
src/t64_conf_file_load.c:54:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
54 | t64f_log__crash(true, "Failed to lock the open configuration file: %s", filepath);
| ^~~~
src/t64_conf_file_load.c:59:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
59 | t64f_log__crash(true, "Failed to unlock the open configuration file: %s", filepath);
| ^~~~
src/t64_conf_file_load.c:62:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
62 | t64f_log__crash(true, "Failed to close the configuration file: %s", filepath);
| ^~~~
src/t64_conf_file_load.c: In function ‘_t64fa_conf_file_load__read_open_config_file’:
src/t64_conf_file_load.c:70:99: warning: passing argument 1 of ‘t64fa_utils__allocate_zeroed_out_memory’ with different width due to prototype [-Wtraditional-conversion]
70 | t64ts_tundra__conf_file_entry **config_file_entries = t64fa_utils__allocate_zeroed_out_memory(1, sizeof(t64ts_tundra__conf_file_entry *));
| ^
src/t64_conf_file_load.c:83:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
83 | t64f_log__crash(false, "Line %d of the configuration file does not contain a '=' character!", line_number);
| ^~~~~
src/t64_conf_file_load.c:89:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
89 | t64f_log__crash(false, "The entry on line %d of the configuration file does not have a key!", line_number);
| ^~~~~
src/t64_conf_file_load.c:92:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
92 | t64f_log__crash(false, "The key '%s' is specified more than once in the configuration file!", key_ptr);
| ^~~~~
src/t64_conf_file_load.c:94:92: warning: passing argument 1 of ‘t64fa_utils__allocate_zeroed_out_memory’ with different width due to prototype [-Wtraditional-conversion]
94 | t64ts_tundra__conf_file_entry *new_entry = t64fa_utils__allocate_zeroed_out_memory(1, sizeof(t64ts_tundra__conf_file_entry));
| ^
src/t64_conf_file_load.c: In function ‘t64f_conf_file_load__find_string’:
src/t64_conf_file_load.c:145:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
145 | t64f_log__crash(false, "The key '%s' could not be found in the configuration file!", key);
| ^~~~~
src/t64_conf_file_load.c:148:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
148 | t64f_log__crash(false, "The '%s' configuration file option's string value must not be empty!", key);
| ^~~~~
src/t64_conf_file_load.c:152:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
152 | t64f_log__crash(false, "The '%s' configuration file option's string value must not have more than %zu characters (got %zu)!", key, max_characters, string_length);
| ^~~~~
src/t64_conf_file_load.c: In function ‘t64f_conf_file_load__find_uint64’:
src/t64_conf_file_load.c:158:143: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
158 | const char *string_value = t64f_conf_file_load__find_string(config_file_entries, key, T64C_CONF_FILE_LOAD__FIND_STRING_NO_MAX_CHARACTERS, false);
| ^~~~~
src/t64_conf_file_load.c:164:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
164 | t64f_log__crash(false, "The '%s' configuration file option's value is not a valid integer: '%s'", key, string_value);
| ^~~~~
src/t64_conf_file_load.c:167:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
167 | t64f_log__crash(false, "The '%s' configuration file option's integer value must not be less than %"PRIu64" (got %"PRIu64")!", key, min_value, integer_value);
| ^~~~~
src/t64_conf_file_load.c:170:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
170 | t64f_log__crash(false, "The '%s' configuration file option's integer value must not be more than %"PRIu64" (got %"PRIu64")!", key, max_value, integer_value);
| ^~~~~
src/t64_conf_file_load.c: In function ‘t64f_conf_file_load__find_boolean’:
src/t64_conf_file_load.c:176:143: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
176 | const char *string_value = t64f_conf_file_load__find_string(config_file_entries, key, T64C_CONF_FILE_LOAD__FIND_STRING_NO_MAX_CHARACTERS, false);
| ^~~~~
src/t64_conf_file_load.c:197:21: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
197 | t64f_log__crash(false, "The '%s' configuration file option's value is not a valid boolean: '%s'", key, string_value);
| ^~~~~
src/t64_conf_file_load.c: In function ‘t64f_conf_file_load__find_ipv4_address’:
src/t64_conf_file_load.c:201:143: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
201 | const char *string_value = t64f_conf_file_load__find_string(config_file_entries, key, T64C_CONF_FILE_LOAD__FIND_STRING_NO_MAX_CHARACTERS, false);
| ^~~~~
src/t64_conf_file_load.c:208:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
208 | t64f_log__crash(false, "The '%s' configuration file option's value is not a valid IPv4 address: '%s'", key, string_value);
| ^~~~~
src/t64_conf_file_load.c:209:57: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
209 | memcpy(destination, &ipv4_address_value.s_addr, 4);
| ^
src/t64_conf_file_load.c:213:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
213 | t64f_log__crash(false, "The IPv4 address specified in the '%s' configuration file option is valid, but not usable: '%s'", key, string_value);
| ^~~~~
src/t64_conf_file_load.c: In function ‘t64f_conf_file_load__find_ipv6_address’:
src/t64_conf_file_load.c:217:143: warning: passing argument 4 of ‘t64f_conf_file_load__find_string’ with different width due to prototype [-Wtraditional-conversion]
217 | const char *string_value = t64f_conf_file_load__find_string(config_file_entries, key, T64C_CONF_FILE_LOAD__FIND_STRING_NO_MAX_CHARACTERS, false);
| ^~~~~
src/t64_conf_file_load.c:224:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
224 | t64f_log__crash(false, "The '%s' configuration file option's value is not a valid IPv6 address: '%s'", key, string_value);
| ^~~~~
src/t64_conf_file_load.c:225:57: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
225 | memcpy(destination, ipv6_address_value.s6_addr, 16);
| ^~
src/t64_conf_file_load.c:229:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
229 | t64f_log__crash(false, "The IPv6 address specified in the '%s' configuration file option is valid, but not usable: '%s'", key, string_value);
| ^~~~~
In file included from src/t64_conf_file_load.c:25:
src/t64_conf_file_load.c: In function ‘t64f_conf_file_load__find_ipv6_prefix’:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_conf_file_load.c:235:9: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
235 | if(!T64M_UTILS__MEMORY_EQUAL((destination + 12), "\x00\x00\x00\x00", 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_conf_file_load.c:236:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
236 | t64f_log__crash(false, "The last 4 bytes of '%s' must be 0, as it is supposed to be an IPv6 /96 prefix!", key);
| ^~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_conf_rfc7050.o -c src/t64_conf_rfc7050.c
src/t64_conf_rfc7050.c: In function ‘t64f_conf_rfc7050__autodiscover_addressing_prefix_using_ipv4only_arpa’:
src/t64_conf_rfc7050.c:59:63: warning: cast increases required alignment of target type [-Wcast-align]
59 | const uint8_t *ipv6_address = (const uint8_t *) (((struct sockaddr_in6 *) current_result->ai_addr)->sin6_addr.s6_addr);
| ^
In file included from src/t64_conf_rfc7050.c:25:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:29:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
29 | #define T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address1, ipv4_address2) (T64M_UTILS__MEMORY_EQUAL((ipv4_address1), (ipv4_address2), 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_conf_rfc7050.c:60:16: note: in expansion of macro ‘T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL’
60 | if(T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv6_address + 12, _T64C_CONF_RFC7050__TARGET_IPV4_1) || T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv6_address + 12, _T64C_CONF_RFC7050__TARGET_IPV4_2)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:29:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
29 | #define T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address1, ipv4_address2) (T64M_UTILS__MEMORY_EQUAL((ipv4_address1), (ipv4_address2), 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_conf_rfc7050.c:60:109: note: in expansion of macro ‘T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL’
60 | if(T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv6_address + 12, _T64C_CONF_RFC7050__TARGET_IPV4_1) || T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv6_address + 12, _T64C_CONF_RFC7050__TARGET_IPV4_2)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_conf_rfc7050.c:61:51: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
61 | memcpy(destination, ipv6_address, 12);
| ^~
src/t64_utils.h:33:69: warning: passing argument 3 of ‘memset’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~
src/t64_conf_rfc7050.c:62:17: note: in expansion of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
62 | T64M_UTILS__MEMORY_ZERO_OUT(destination + 12, 4);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_conf_rfc7050.c: In function ‘_t64f_conf_rfc7050__print_info_log_message_on_finish’:
src/t64_conf_rfc7050.c:82:55: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
82 | memcpy(address_struct.s6_addr, found_ipv6_prefix, 16);
| ^~
src/t64_conf_rfc7050.c:86:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
86 | t64f_log__crash(true, "[RFC 7050] Failed to convert the auto-discovered translation prefix from binary to string form!");
| ^~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_init.o -c src/t64_init.c
src/t64_init.c: In function ‘_t64f_init__initialize_program’:
src/t64_init.c:87:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
87 | t64f_log__crash(true, "Failed to set 'PR_SET_NO_NEW_PRIVS' to 1!");
| ^~~~
src/t64_init.c:90:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
90 | t64f_log__crash(false, "Failed to set the program's locale to 'C'!");
| ^~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_init_io.o -c src/t64_init_io.c
src/t64_init_io.c: In function ‘t64f_init_io__open_tun_interface’:
src/t64_init_io.c:37:39: warning: conversion from ‘int’ to ‘short int’ may change value [-Wconversion]
37 | tun_interface_request.ifr_flags = tun_flags;
| ^~~~~~~~~
src/t64_init_io.c:38:107: warning: passing argument 3 of ‘t64f_utils__secure_strncpy’ with different width due to prototype [-Wtraditional-conversion]
38 | t64f_utils__secure_strncpy(tun_interface_request.ifr_name, file_configuration->io_tun_interface_name, IFNAMSIZ);
| ^~~~~~~~
src/t64_init_io.c:42:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
42 | t64f_log__crash(true, "Failed to open the TUN device file: %s", file_configuration->io_tun_device_path);
| ^~~~
src/t64_init_io.c:45:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
45 | t64f_log__crash(true, "Failed to request the TUN interface from the kernel!");
| ^~~~
src/t64_init_io.c:48:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
48 | t64f_log__crash(false, "The program requested a TUN interface named '%s', but got '%s' instead!", file_configuration->io_tun_interface_name, tun_interface_request.ifr_name);
| ^~~~~
src/t64_init_io.c: In function ‘t64f_init_io__set_tun_interface_persistent’:
src/t64_init_io.c:55:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
55 | t64f_log__crash(true, "Failed to %s the TUN interface's persistence status!", (tun_persistent ? "set" : "unset"));
| ^~~~
src/t64_init_io.c: In function ‘t64f_init_io__change_ownership_of_persistent_tun_interface’:
src/t64_init_io.c:60:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
60 | t64f_log__crash(true, "Failed to set the TUN interface's owner user to UID %"PRIdMAX"!", (intmax_t) file_configuration->io_tun_owner_user_uid);
| ^~~~
src/t64_init_io.c:63:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
63 | t64f_log__crash(true, "Failed to set the TUN interface's owner group to GID %"PRIdMAX"!", (intmax_t) file_configuration->io_tun_owner_group_gid);
| ^~~~
src/t64_init_io.c: In function ‘t64f_init_io__get_fd_pair_from_inherited_fds_string’:
src/t64_init_io.c:68:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
68 | t64f_log__crash(false, "The value of the '-%c' / '--%s' command-line option does not contain enough file descriptors for all translator threads!", short_opt, long_opt);
| ^~~~~
src/t64_init_io.c:71:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
71 | t64f_log__crash(false, "The value of the '-%c' / '--%s' command-line option is formatted incorrectly: '%s'", short_opt, long_opt, next_fds_string_ptr);
| ^~~~~
src/t64_init_io.c:74:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
74 | t64f_log__crash(true, "The read file descriptor %d obtained from the '-%c' / '--%s' command-line option is invalid!", *read_fd, short_opt, long_opt);
| ^~~~
src/t64_init_io.c:77:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
77 | t64f_log__crash(true, "The write file descriptor %d obtained from the '-%c' / '--%s' command-line option is invalid!", *write_fd, short_opt, long_opt);
| ^~~~
src/t64_init_io.c: In function ‘t64f_init_io__close_fd’:
src/t64_init_io.c:91:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
91 | t64f_log__crash(true, "Failed to close the file descriptor %d!", fd);
| ^~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_log.o -c src/t64_log.c
src/t64_log.c: In function ‘t64f_log__crash’:
src/t64_log.c:46:34: warning: passing argument 1 of ‘_t64f_log__print_log_message’ with different width due to prototype [-Wtraditional-conversion]
46 | _t64f_log__print_log_message(0, print_errno, T64C_LOG__CATEGORY_BANNER_CRASH, format, argument_list);
| ^
src/t64_log.c:46:37: warning: passing argument 2 of ‘_t64f_log__print_log_message’ with different width due to prototype [-Wtraditional-conversion]
46 | _t64f_log__print_log_message(0, print_errno, T64C_LOG__CATEGORY_BANNER_CRASH, format, argument_list);
| ^~~~~~~~~~~
src/t64_log.c: In function ‘t64f_log__crash_invalid_internal_state’:
src/t64_log.c:54:21: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
54 | t64f_log__crash(false, "The program's internal state is invalid (%s)!", state_description);
| ^~~~~
src/t64_log.c: In function ‘t64f_log__thread_crash’:
src/t64_log.c:61:45: warning: passing argument 2 of ‘_t64f_log__print_log_message’ with different width due to prototype [-Wtraditional-conversion]
61 | _t64f_log__print_log_message(thread_id, print_errno, T64C_LOG__CATEGORY_BANNER_CRASH, format, argument_list);
| ^~~~~~~~~~~
src/t64_log.c: In function ‘t64f_log__thread_crash_invalid_internal_state’:
src/t64_log.c:69:39: warning: passing argument 2 of ‘t64f_log__thread_crash’ with different width due to prototype [-Wtraditional-conversion]
69 | t64f_log__thread_crash(thread_id, false, "A thread's internal state is invalid (%s)!", state_description);
| ^~~~~
src/t64_log.c: In function ‘t64f_log__info’:
src/t64_log.c:76:34: warning: passing argument 1 of ‘_t64f_log__print_log_message’ with different width due to prototype [-Wtraditional-conversion]
76 | _t64f_log__print_log_message(0, false, T64C_LOG__CATEGORY_BANNER_INFO, format, argument_list);
| ^
src/t64_log.c:76:37: warning: passing argument 2 of ‘_t64f_log__print_log_message’ with different width due to prototype [-Wtraditional-conversion]
76 | _t64f_log__print_log_message(0, false, T64C_LOG__CATEGORY_BANNER_INFO, format, argument_list);
| ^~~~~
src/t64_log.c: In function ‘t64f_log__thread_info’:
src/t64_log.c:85:45: warning: passing argument 2 of ‘_t64f_log__print_log_message’ with different width due to prototype [-Wtraditional-conversion]
85 | _t64f_log__print_log_message(thread_id, false, T64C_LOG__CATEGORY_BANNER_INFO, format, argument_list);
| ^~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_main.o -c src/t64_main.c
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_opmode_mktun.o -c src/t64_opmode_mktun.c
src/t64_opmode_mktun.c: In function ‘t64f_opmode_mktun__run’:
src/t64_opmode_mktun.c:32:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
32 | t64f_log__crash(false, "The I/O mode is not '"T64C_CONF_FILE__IO_MODE_TUN"'; therefore, persistent TUN interfaces cannot be created!");
| ^~~~~
src/t64_opmode_mktun.c:36:60: warning: passing argument 2 of ‘t64f_init_io__set_tun_interface_persistent’ with different width due to prototype [-Wtraditional-conversion]
36 | t64f_init_io__set_tun_interface_persistent(tun_fd, true);
| ^~~~
src/t64_opmode_mktun.c:38:40: warning: passing argument 2 of ‘t64f_init_io__close_fd’ with different width due to prototype [-Wtraditional-conversion]
38 | t64f_init_io__close_fd(tun_fd, false);
| ^~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_opmode_print_config.o -c src/t64_opmode_print_config.c
src/t64_opmode_print_config.c: In function ‘_t64f_opmode_print_config__print_compile_time_config’:
src/t64_opmode_print_config.c:97:12: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 3 has type ‘int’ [-Wformat=]
97 | printf("* %s = %"PRIu8"\n", _T64M_OPMODE_PRINT_CONFIG__STRINGIFY(T64C_TUNDRA__MINIMUM_GENERATED_PACKET_TTL), T64C_TUNDRA__MINIMUM_GENERATED_PACKET_TTL);
| ^~~~~~~~~~
In file included from src/t64_tundra_includes.h:34,
from src/t64_tundra.h:49,
from src/t64_opmode_print_config.c:22:
/usr/include/inttypes.h:102:26: note: format string is defined here
102 | # define PRIu8 "u"
src/t64_opmode_print_config.c:98:12: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 3 has type ‘int’ [-Wformat=]
98 | printf("* %s = %"PRIu8"\n", _T64M_OPMODE_PRINT_CONFIG__STRINGIFY(T64C_TUNDRA__MAXIMUM_GENERATED_PACKET_TTL), T64C_TUNDRA__MAXIMUM_GENERATED_PACKET_TTL);
| ^~~~~~~~~~
/usr/include/inttypes.h:102:26: note: format string is defined here
102 | # define PRIu8 "u"
src/t64_opmode_print_config.c: In function ‘_t64f_opmode_print_config__print_file_io_config’:
src/t64_opmode_print_config.c:176:163: warning: passing argument 1 of ‘_t64f_opmode_print_config__get_printable_representation_of_boolean’ with different width due to prototype [-Wtraditional-conversion]
176 | printf("* %s = %s\n", T64C_CONF_FILE__OPTION_KEY_IO_TUN_MULTI_QUEUE, _t64f_opmode_print_config__get_printable_representation_of_boolean(file_configuration->io_tun_multi_queue));
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
src/t64_opmode_print_config.c: In function ‘_t64f_opmode_print_config__print_file_addressing_nat64_clat_config’:
src/t64_opmode_print_config.c:215:200: warning: passing argument 1 of ‘_t64f_opmode_print_config__get_printable_representation_of_boolean’ with different width due to prototype [-Wtraditional-conversion]
215 | printf("* %s = %s\n", T64C_CONF_FILE__OPTION_KEY_ADDRESSING_NAT64_CLAT_SIIT_ALLOW_TRANSLATION_OF_PRIVATE_IPS, _t64f_opmode_print_config__get_printable_representation_of_boolean(file_configuration->addressing_nat64_clat_siit_allow_translation_of_private_ips));
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_opmode_print_config.c: In function ‘_t64f_opmode_print_config__print_file_addressing_siit_config’:
src/t64_opmode_print_config.c:222:200: warning: passing argument 1 of ‘_t64f_opmode_print_config__get_printable_representation_of_boolean’ with different width due to prototype [-Wtraditional-conversion]
222 | printf("* %s = %s\n", T64C_CONF_FILE__OPTION_KEY_ADDRESSING_NAT64_CLAT_SIIT_ALLOW_TRANSLATION_OF_PRIVATE_IPS, _t64f_opmode_print_config__get_printable_representation_of_boolean(file_configuration->addressing_nat64_clat_siit_allow_translation_of_private_ips));
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_opmode_print_config.c: In function ‘_t64f_opmode_print_config__print_file_addressing_external_config’:
src/t64_opmode_print_config.c:228:5: warning: enumeration value ‘T64TE_TUNDRA__ADDRESSING_EXTERNAL_TRANSPORT_NONE’ not handled in switch [-Wswitch-enum]
228 | switch(file_configuration->addressing_external_transport) {
| ^~~~~~
src/t64_opmode_print_config.c: In function ‘_t64f_opmode_print_config__print_file_addressing_external_tcp_config’:
src/t64_opmode_print_config.c:266:62: warning: cast increases required alignment of target type [-Wcast-align]
266 | struct sockaddr_in *sockaddr_in_struct = (struct sockaddr_in *) (current_addrinfo->ai_addr);
| ^
In file included from /usr/include/arpa/inet.h:22,
from src/t64_tundra_includes.h:48:
src/t64_opmode_print_config.c:268:237: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
268 | printf(" - %s:%"PRIu16"\n", _t64f_opmode_print_config__get_printable_representation_of_ipv4_address((const uint8_t *) &sockaddr_in_struct->sin_addr.s_addr, string_ip_address_buf), (uint16_t) ntohs(sockaddr_in_struct->sin_port));
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_opmode_print_config.c:277:64: warning: cast increases required alignment of target type [-Wcast-align]
277 | struct sockaddr_in6 *sockaddr_in6_struct = (struct sockaddr_in6 *) (current_addrinfo->ai_addr);
| ^
src/t64_opmode_print_config.c:279:242: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
279 | printf(" - [%s]:%"PRIu16"\n", _t64f_opmode_print_config__get_printable_representation_of_ipv6_address((const uint8_t *) sockaddr_in6_struct->sin6_addr.s6_addr, string_ip_address_buf), (uint16_t) ntohs(sockaddr_in6_struct->sin6_port));
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
src/t64_opmode_print_config.c: In function ‘_t64f_opmode_print_config__print_file_translator_config’:
src/t64_opmode_print_config.c:295:174: warning: passing argument 1 of ‘_t64f_opmode_print_config__get_printable_representation_of_boolean’ with different width due to prototype [-Wtraditional-conversion]
295 | printf("* %s = %s\n", T64C_CONF_FILE__OPTION_KEY_TRANSLATOR_6TO4_COPY_DSCP_AND_ECN, _t64f_opmode_print_config__get_printable_representation_of_boolean(file_configuration->translator_6to4_copy_dscp_and_ecn));
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_opmode_print_config.c:296:174: warning: passing argument 1 of ‘_t64f_opmode_print_config__get_printable_representation_of_boolean’ with different width due to prototype [-Wtraditional-conversion]
296 | printf("* %s = %s\n", T64C_CONF_FILE__OPTION_KEY_TRANSLATOR_4TO6_COPY_DSCP_AND_ECN, _t64f_opmode_print_config__get_printable_representation_of_boolean(file_configuration->translator_4to6_copy_dscp_and_ecn));
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_opmode_print_config.c: In function ‘_t64f_opmode_print_config__get_printable_representation_of_ipv4_address’:
src/t64_opmode_print_config.c:316:44: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
316 | memcpy(&address4.s_addr, ipv4_address, 4);
| ^
src/t64_opmode_print_config.c:319:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
319 | t64f_log__crash(true, "Failed to convert an IPv4 address from binary to string form!");
| ^~~~
src/t64_opmode_print_config.c: In function ‘_t64f_opmode_print_config__get_printable_representation_of_ipv6_address’:
src/t64_opmode_print_config.c:327:44: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
327 | memcpy(address6.s6_addr, ipv6_address, 16);
| ^~
src/t64_opmode_print_config.c:330:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
330 | t64f_log__crash(true, "Failed to convert an IPv6 address from binary to string form!");
| ^~~~
src/t64_opmode_print_config.c: In function ‘_t64f_opmode_print_config__get_string_representation_of_addressing_external_transport’:
src/t64_opmode_print_config.c:390:5: warning: enumeration value ‘T64TE_TUNDRA__ADDRESSING_EXTERNAL_TRANSPORT_NONE’ not handled in switch [-Wswitch-enum]
390 | switch(addressing_external_transport) {
| ^~~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_opmode_rmtun.o -c src/t64_opmode_rmtun.c
src/t64_opmode_rmtun.c: In function ‘t64f_opmode_rmtun__run’:
src/t64_opmode_rmtun.c:32:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
32 | t64f_log__crash(false, "The I/O mode is not '"T64C_CONF_FILE__IO_MODE_TUN"'; therefore, persistent TUN interfaces cannot be removed!");
| ^~~~~
src/t64_opmode_rmtun.c:36:60: warning: passing argument 2 of ‘t64f_init_io__set_tun_interface_persistent’ with different width due to prototype [-Wtraditional-conversion]
36 | t64f_init_io__set_tun_interface_persistent(tun_fd, false);
| ^~~~~
src/t64_opmode_rmtun.c:37:40: warning: passing argument 2 of ‘t64f_init_io__close_fd’ with different width due to prototype [-Wtraditional-conversion]
37 | t64f_init_io__close_fd(tun_fd, false);
| ^~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_opmode_translate.o -c src/t64_opmode_translate.c
src/t64_opmode_translate.c: In function ‘_t64fa_opmode_translate__initialize_xlat_thread_contexts’:
src/t64_opmode_translate.c:68:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
68 | t64f_log__crash(false, "Even though the program is in the '%s' I/O mode, the '-%c' / '--%s' command-line option is missing!", T64C_CONF_FILE__IO_MODE_INHERITED_FDS, T64C_CONF_CMDLINE__SHORTOPT_IO_INHERITED_FDS, T64C_CONF_CMDLINE__LONGOPT_IO_INHERITED_FDS);
| ^~~~~
src/t64_opmode_translate.c:70:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
70 | t64f_log__crash(false, "Even though the program is configured to use the '%s' transport of the '%s' addressing mode, the '-%c' / '--%s' command-line option is missing!", T64C_CONF_FILE__ADDRESSING_EXTERNAL_TRANSPORT_INHERITED_FDS, T64C_CONF_FILE__ADDRESSING_MODE_EXTERNAL, T64C_CONF_CMDLINE__SHORTOPT_ADDRESSING_EXTERNAL_INHERITED_FDS, T64C_CONF_CMDLINE__LONGOPT_ADDRESSING_EXTERNAL_INHERITED_FDS);
| ^~~~~
src/t64_opmode_translate.c:84:68: warning: passing argument 2 of ‘getrandom’ with different width due to prototype [-Wtraditional-conversion]
84 | if(getrandom(&thread_contexts[i].fragment_identifier_ipv6, 4, 0) != 4 || getrandom(&thread_contexts[i].fragment_identifier_ipv4, 2, 0) != 2)
| ^
src/t64_opmode_translate.c:84:138: warning: passing argument 2 of ‘getrandom’ with different width due to prototype [-Wtraditional-conversion]
84 | if(getrandom(&thread_contexts[i].fragment_identifier_ipv6, 4, 0) != 4 || getrandom(&thread_contexts[i].fragment_identifier_ipv4, 2, 0) != 2)
| ^
src/t64_opmode_translate.c:85:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
85 | t64f_log__crash(false, "Failed to generate fragment identifiers using the getrandom() system call!");
| ^~~~~
In file included from src/t64_opmode_translate.c:31:
src/t64_conf_cmdline.h:32:54: warning: passing argument 4 of ‘t64f_init_io__get_fd_pair_from_inherited_fds_string’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64C_CONF_CMDLINE__SHORTOPT_IO_INHERITED_FDS 'f'
| ^~~
src/t64_opmode_translate.c:95:191: note: in expansion of macro ‘T64C_CONF_CMDLINE__SHORTOPT_IO_INHERITED_FDS’
95 | io_next_fds_string_ptr = t64f_init_io__get_fd_pair_from_inherited_fds_string(&thread_contexts[i].packet_read_fd, &thread_contexts[i].packet_write_fd, io_next_fds_string_ptr, T64C_CONF_CMDLINE__SHORTOPT_IO_INHERITED_FDS, T64C_CONF_CMDLINE__LONGOPT_IO_INHERITED_FDS);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_opmode_translate.c: In function ‘_t64fa_opmode_translate__initialize_external_addr_xlat_state_struct’:
src/t64_opmode_translate.c:120:112: warning: passing argument 1 of ‘t64fa_utils__allocate_zeroed_out_memory’ with different width due to prototype [-Wtraditional-conversion]
120 | t64ts_tundra__external_addr_xlat_state *external_addr_xlat_state = t64fa_utils__allocate_zeroed_out_memory(1, sizeof(t64ts_tundra__external_addr_xlat_state));
| ^
src/t64_conf_cmdline.h:33:71: warning: passing argument 4 of ‘t64f_init_io__get_fd_pair_from_inherited_fds_string’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64C_CONF_CMDLINE__SHORTOPT_ADDRESSING_EXTERNAL_INHERITED_FDS 'F'
| ^~~
src/t64_opmode_translate.c:141:219: note: in expansion of macro ‘T64C_CONF_CMDLINE__SHORTOPT_ADDRESSING_EXTERNAL_INHERITED_FDS’
141 | *addressing_external_next_fds_string_ptr = t64f_init_io__get_fd_pair_from_inherited_fds_string(&external_addr_xlat_state->read_fd, &external_addr_xlat_state->write_fd, *addressing_external_next_fds_string_ptr, T64C_CONF_CMDLINE__SHORTOPT_ADDRESSING_EXTERNAL_INHERITED_FDS, T64C_CONF_CMDLINE__LONGOPT_ADDRESSING_EXTERNAL_INHERITED_FDS);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_opmode_translate.c:146:65: warning: passing argument 2 of ‘getrandom’ with different width due to prototype [-Wtraditional-conversion]
146 | if(getrandom(&external_addr_xlat_state->message_identifier, 4, 0) != 4)
| ^
src/t64_opmode_translate.c:147:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
147 | t64f_log__crash(false, "Failed to generate a message identifier for external address translation using the getrandom() system call!");
| ^~~~~
src/t64_opmode_translate.c: In function ‘_t64f_opmode_translate__free_xlat_thread_contexts’:
src/t64_opmode_translate.c:160:67: warning: passing argument 2 of ‘t64f_init_io__close_fd’ with different width due to prototype [-Wtraditional-conversion]
160 | t64f_init_io__close_fd(thread_contexts[i].packet_read_fd, true);
| ^~~~
src/t64_opmode_translate.c:161:68: warning: passing argument 2 of ‘t64f_init_io__close_fd’ with different width due to prototype [-Wtraditional-conversion]
161 | t64f_init_io__close_fd(thread_contexts[i].packet_write_fd, true);
| ^~~~
src/t64_opmode_translate.c: In function ‘_t64f_opmode_translate__free_external_addr_xlat_state_struct’:
src/t64_opmode_translate.c:177:63: warning: passing argument 2 of ‘t64f_init_io__close_fd’ with different width due to prototype [-Wtraditional-conversion]
177 | t64f_init_io__close_fd(external_addr_xlat_state->read_fd, true);
| ^~~~
src/t64_opmode_translate.c:178:64: warning: passing argument 2 of ‘t64f_init_io__close_fd’ with different width due to prototype [-Wtraditional-conversion]
178 | t64f_init_io__close_fd(external_addr_xlat_state->write_fd, true);
| ^~~~
src/t64_opmode_translate.c: In function ‘_t64f_opmode_translate__daemonize’:
src/t64_opmode_translate.c:186:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
186 | t64f_log__crash(true, "Failed to change the program's working directory (the chdir() call failed)!");
| ^~~~
src/t64_opmode_translate.c:190:22: warning: passing argument 1 of ‘setgroups’ with different width due to prototype [-Wtraditional-conversion]
190 | if(setgroups(1, &file_configuration->program_privilege_drop_group_gid) < 0)
| ^
src/t64_opmode_translate.c:191:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
191 | t64f_log__crash(true, "Failed to drop the program's group privileges to GID %"PRIdMAX" (the setgroups() call failed)!", (intmax_t) file_configuration->program_privilege_drop_group_gid);
| ^~~~
src/t64_opmode_translate.c:194:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
194 | t64f_log__crash(true, "Failed to drop the program's group privileges to GID %"PRIdMAX" (the setgid() call failed)!", (intmax_t) file_configuration->program_privilege_drop_group_gid);
| ^~~~
src/t64_opmode_translate.c:199:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
199 | t64f_log__crash(true, "Fail to drop the program's user privileges to UID %"PRIdMAX" (the setuid() call failed)!", (intmax_t) file_configuration->program_privilege_drop_user_uid);
| ^~~~
src/t64_opmode_translate.c: In function ‘_t64f_opmode_translate__start_xlat_threads’:
src/t64_opmode_translate.c:207:29: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
207 | t64f_log__crash(true, "Failed to create a new translator thread!");
| ^~~~
src/t64_opmode_translate.c: In function ‘_t64f_opmode_translate__monitor_xlat_threads’:
src/t64_opmode_translate.c:240:33: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
240 | t64f_log__crash(false, "A translator thread has terminated unexpectedly!");
| ^~~~~
src/t64_opmode_translate.c: In function ‘_t64f_opmode_translate__terminate_xlat_threads’:
src/t64_opmode_translate.c:274:45: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
274 | t64f_log__crash(false, "Failed to inform a translator thread that it should terminate (using a signal)!");
| ^~~~~
src/t64_opmode_translate.c:279:37: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
279 | t64f_log__crash(false, "Failed to join a translator thread!");
| ^~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_opmode_validate_config.o -c src/t64_opmode_validate_config.c
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_router_ipv4.o -c src/t64_router_ipv4.c
src/t64_router_ipv4.c: In function ‘t64f_router_ipv4__send_icmpv4_destination_host_unreachable_message_to_in_ipv4_packet_source_host’:
src/t64_router_ipv4.c:36:83: warning: passing argument 2 of ‘_t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
36 | _t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host(context, 3, 1, 0);
| ^
src/t64_router_ipv4.c:36:86: warning: passing argument 3 of ‘_t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
36 | _t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host(context, 3, 1, 0);
| ^
src/t64_router_ipv4.c:36:89: warning: passing argument 4 of ‘_t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
36 | _t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host(context, 3, 1, 0);
| ^
src/t64_router_ipv4.c: In function ‘t64f_router_ipv4__send_icmpv4_time_exceeded_message_to_in_ipv4_packet_source_host’:
src/t64_router_ipv4.c:40:83: warning: passing argument 2 of ‘_t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
40 | _t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host(context, 11, 0, 0);
| ^~
src/t64_router_ipv4.c:40:87: warning: passing argument 3 of ‘_t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
40 | _t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host(context, 11, 0, 0);
| ^
src/t64_router_ipv4.c:40:90: warning: passing argument 4 of ‘_t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
40 | _t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host(context, 11, 0, 0);
| ^
src/t64_router_ipv4.c: In function ‘t64f_router_ipv4__send_icmpv4_fragmentation_needed_message_to_in_ipv4_packet_source_host’:
src/t64_router_ipv4.c:44:83: warning: passing argument 2 of ‘_t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
44 | _t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host(context, 3, 4, mtu);
| ^
src/t64_router_ipv4.c:44:86: warning: passing argument 3 of ‘_t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
44 | _t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host(context, 3, 4, mtu);
| ^
src/t64_router_ipv4.c:44:89: warning: passing argument 4 of ‘_t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
44 | _t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host(context, 3, 4, mtu);
| ^~~
src/t64_router_ipv4.c: In function ‘_t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host’:
src/t64_router_ipv4.c:53:48: warning: passing argument 1 of ‘_t64f_router_ipv4__construct_icmpv4_header’ with different width due to prototype [-Wtraditional-conversion]
53 | _t64f_router_ipv4__construct_icmpv4_header(icmpv4_type, icmpv4_code, rest_of_header2, &icmpv4_header);
| ^~~~~~~~~~~
src/t64_router_ipv4.c:53:61: warning: passing argument 2 of ‘_t64f_router_ipv4__construct_icmpv4_header’ with different width due to prototype [-Wtraditional-conversion]
53 | _t64f_router_ipv4__construct_icmpv4_header(icmpv4_type, icmpv4_code, rest_of_header2, &icmpv4_header);
| ^~~~~~~~~~~
src/t64_router_ipv4.c:53:74: warning: passing argument 3 of ‘_t64f_router_ipv4__construct_icmpv4_header’ with different width due to prototype [-Wtraditional-conversion]
53 | _t64f_router_ipv4__construct_icmpv4_header(icmpv4_type, icmpv4_code, rest_of_header2, &icmpv4_header);
| ^~~~~~~~~~~~~~~
src/t64_router_ipv4.c:63:115: warning: passing argument 2 of ‘t64f_checksum__calculate_rfc1071_checksum_for_ipv4’ with different width due to prototype [-Wtraditional-conversion]
63 | icmpv4_header.checksum = t64f_checksum__calculate_rfc1071_checksum_for_ipv4((const uint8_t *) &icmpv4_header, 8, icmpv4_payload_ptr, icmpv4_payload_size, NULL);
| ^
src/t64_router_ipv4.c:65:93: warning: passing argument 4 of ‘t64f_xlat_io__send_ipv4_packet’ with different width due to prototype [-Wtraditional-conversion]
65 | t64f_xlat_io__send_ipv4_packet(context, &ipv4_header, (const uint8_t *) &icmpv4_header, 8, icmpv4_payload_ptr, icmpv4_payload_size);
| ^
src/t64_router_ipv4.c: In function ‘_t64f_router_ipv4__construct_ipv4_header_for_icmpv4_message’:
src/t64_router_ipv4.c:72:42: warning: cast increases required alignment of target type [-Wcast-align]
72 | const struct iphdr *in_ipv4_header = (const struct iphdr *) context->in_packet_buffer;
| ^
src/t64_router_ipv4.c:85:74: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
85 | memcpy(&out_ipv4_header->saddr, context->configuration->router_ipv4, 4);
| ^
src/t64_router_ipv4.c:86:61: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
86 | memcpy(&out_ipv4_header->daddr, &in_ipv4_header->saddr, 4);
| ^
In file included from /usr/include/arpa/inet.h:22,
from src/t64_tundra_includes.h:48,
from src/t64_tundra.h:49,
from src/t64_router_ipv4.c:22:
src/t64_router_ipv4.c: In function ‘_t64f_router_ipv4__construct_icmpv4_header’:
src/t64_router_ipv4.c:97:38: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
97 | out_icmpv4_header_raw[3] = htons(rest_of_header2);
| ^~~~~~~~~~~~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_router_ipv6.o -c src/t64_router_ipv6.c
src/t64_router_ipv6.c: In function ‘t64f_router_ipv6__send_icmpv6_address_unreachable_message_to_in_ipv6_packet_source_host’:
src/t64_router_ipv6.c:36:83: warning: passing argument 2 of ‘_t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
36 | _t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host(context, 1, 3, 0);
| ^
src/t64_router_ipv6.c:36:86: warning: passing argument 3 of ‘_t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
36 | _t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host(context, 1, 3, 0);
| ^
src/t64_router_ipv6.c:36:89: warning: passing argument 4 of ‘_t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
36 | _t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host(context, 1, 3, 0);
| ^
src/t64_router_ipv6.c: In function ‘t64f_router_ipv6__send_icmpv6_time_exceeded_message_to_in_ipv6_packet_source_host’:
src/t64_router_ipv6.c:40:83: warning: passing argument 2 of ‘_t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
40 | _t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host(context, 3, 0, 0);
| ^
src/t64_router_ipv6.c:40:86: warning: passing argument 3 of ‘_t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
40 | _t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host(context, 3, 0, 0);
| ^
src/t64_router_ipv6.c:40:89: warning: passing argument 4 of ‘_t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
40 | _t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host(context, 3, 0, 0);
| ^
src/t64_router_ipv6.c: In function ‘t64f_router_ipv6__send_icmpv6_packet_too_big_message_to_in_ipv6_packet_source_host’:
src/t64_router_ipv6.c:44:83: warning: passing argument 2 of ‘_t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
44 | _t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host(context, 2, 0, mtu);
| ^
src/t64_router_ipv6.c:44:86: warning: passing argument 3 of ‘_t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
44 | _t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host(context, 2, 0, mtu);
| ^
src/t64_router_ipv6.c:44:89: warning: passing argument 4 of ‘_t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
44 | _t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host(context, 2, 0, mtu);
| ^~~
src/t64_router_ipv6.c: In function ‘_t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host’:
src/t64_router_ipv6.c:53:48: warning: passing argument 1 of ‘_t64f_router_ipv6__construct_icmpv6_header’ with different width due to prototype [-Wtraditional-conversion]
53 | _t64f_router_ipv6__construct_icmpv6_header(icmpv6_type, icmpv6_code, rest_of_header2, &icmpv6_header);
| ^~~~~~~~~~~
src/t64_router_ipv6.c:53:61: warning: passing argument 2 of ‘_t64f_router_ipv6__construct_icmpv6_header’ with different width due to prototype [-Wtraditional-conversion]
53 | _t64f_router_ipv6__construct_icmpv6_header(icmpv6_type, icmpv6_code, rest_of_header2, &icmpv6_header);
| ^~~~~~~~~~~
src/t64_router_ipv6.c:53:74: warning: passing argument 3 of ‘_t64f_router_ipv6__construct_icmpv6_header’ with different width due to prototype [-Wtraditional-conversion]
53 | _t64f_router_ipv6__construct_icmpv6_header(icmpv6_type, icmpv6_code, rest_of_header2, &icmpv6_header);
| ^~~~~~~~~~~~~~~
src/t64_router_ipv6.c:62:118: warning: passing argument 2 of ‘t64f_checksum__calculate_rfc1071_checksum_for_ipv6’ with different width due to prototype [-Wtraditional-conversion]
62 | icmpv6_header.icmp6_cksum = t64f_checksum__calculate_rfc1071_checksum_for_ipv6((const uint8_t *) &icmpv6_header, 8, icmpv6_payload_ptr, icmpv6_payload_size, &ipv6_header, 58);
| ^
src/t64_router_ipv6.c:62:176: warning: passing argument 6 of ‘t64f_checksum__calculate_rfc1071_checksum_for_ipv6’ with different width due to prototype [-Wtraditional-conversion]
62 | icmpv6_header.icmp6_cksum = t64f_checksum__calculate_rfc1071_checksum_for_ipv6((const uint8_t *) &icmpv6_header, 8, icmpv6_payload_ptr, icmpv6_payload_size, &ipv6_header, 58);
| ^~
src/t64_router_ipv6.c:64:99: warning: passing argument 5 of ‘t64f_xlat_io__send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
64 | t64f_xlat_io__send_ipv6_packet(context, &ipv6_header, NULL, (const uint8_t *) &icmpv6_header, 8, icmpv6_payload_ptr, icmpv6_payload_size);
| ^
src/t64_router_ipv6.c: In function ‘_t64f_router_ipv6__construct_ipv6_header_for_icmpv6_message’:
src/t64_router_ipv6.c:71:44: warning: cast increases required alignment of target type [-Wcast-align]
71 | const struct ipv6hdr *in_ipv6_header = (const struct ipv6hdr *) context->in_packet_buffer;
| ^
In file included from src/t64_router_ipv6.c:25:
src/t64_utils.h:33:69: warning: passing argument 3 of ‘memset’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~
src/t64_router_ipv6.c:77:5: note: in expansion of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
77 | T64M_UTILS__MEMORY_ZERO_OUT(out_ipv6_header->flow_lbl, 3);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_router_ipv6.c:81:81: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
81 | memcpy(out_ipv6_header->saddr.s6_addr, context->configuration->router_ipv6, 16);
| ^~
src/t64_router_ipv6.c:82:75: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
82 | memcpy(out_ipv6_header->daddr.s6_addr, in_ipv6_header->saddr.s6_addr, 16);
| ^~
In file included from /usr/include/arpa/inet.h:22,
from src/t64_tundra_includes.h:48,
from src/t64_tundra.h:49,
from src/t64_router_ipv6.c:22:
src/t64_router_ipv6.c: In function ‘_t64f_router_ipv6__construct_icmpv6_header’:
src/t64_router_ipv6.c:93:38: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
93 | out_icmpv6_header_raw[3] = htons(rest_of_header2);
| ^~~~~~~~~~~~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_signal.o -c src/t64_signal.c
src/t64_signal.c: In function ‘_t64f_signal__termination_signal_handler_function’:
src/t64_signal.c:63:45: warning: passing argument 1 of ‘syscall’ with different width due to prototype [-Wtraditional-conversion]
63 | pid_t this_thread_pid = (pid_t) syscall(SYS_gettid); // The gettid() wrapper function is not available on some platforms, namely on older versions of OpenWRT
| ^~~~~~~~~~
src/t64_signal.c: In function ‘_t64f_signal__ignore_signal’:
src/t64_signal.c:84:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
84 | t64f_log__crash(true, "Failed to ignore the signal with number %d!", signal_number);
| ^~~~
src/t64_signal.c: In function ‘_t64f_signal__set_signal_handler’:
src/t64_signal.c:96:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
96 | t64f_log__crash(true, "Failed to set a handler for the signal with number %d!", signal_number);
| ^~~~
src/t64_signal.c: In function ‘_t64f_signal__termination_signal_handler_function’:
src/t64_signal.c:67:9: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
67 | write(STDERR_FILENO, _T64C_SIGNAL__MAIN_THREAD_TERMINATION_SIGNAL_MESSAGE, strlen(_T64C_SIGNAL__MAIN_THREAD_TERMINATION_SIGNAL_MESSAGE));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_utils.o -c src/t64_utils.c
src/t64_utils.c: In function ‘t64fa_utils__allocate_zeroed_out_memory’:
src/t64_utils.c:31:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
31 | t64f_log__crash(false, "Out of memory!");
| ^~~~~
src/t64_utils.c: In function ‘t64fa_utils__reallocate_memory’:
src/t64_utils.c:39:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
39 | t64f_log__crash(false, "Out of memory!");
| ^~~~~
src/t64_utils.c: In function ‘t64fa_utils__duplicate_string’:
src/t64_utils.c:47:25: warning: passing argument 1 of ‘t64f_log__crash’ with different width due to prototype [-Wtraditional-conversion]
47 | t64f_log__crash(false, "Out of memory!");
| ^~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_utils_ip.o -c src/t64_utils_ip.c
In file included from src/t64_utils_ip.h:26,
from src/t64_utils_ip.c:23:
src/t64_utils_ip.c: In function ‘t64f_utils_ip__is_ipv4_address_unusable’:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:29:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
29 | #define T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address1, ipv4_address2) (T64M_UTILS__MEMORY_EQUAL((ipv4_address1), (ipv4_address2), 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.c:38:10: note: in expansion of macro ‘T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL’
38 | (T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address, "\xff\xff\xff\xff")) // 255.255.255.255/32 (Limited broadcast)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.c: In function ‘t64f_utils_ip__is_ipv6_address_unusable’:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:30:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
30 | #define T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address1, ipv6_address2) (T64M_UTILS__MEMORY_EQUAL((ipv6_address1), (ipv6_address2), 16))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.c:49:10: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL’
49 | (T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00")) || // ::/128 (Unspecified address)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:30:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
30 | #define T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address1, ipv6_address2) (T64M_UTILS__MEMORY_EQUAL((ipv6_address1), (ipv6_address2), 16))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.c:50:10: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL’
50 | (T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01")) // ::1/128 (Loopback)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.c: In function ‘t64f_utils_ip__is_ipv4_address_unusable_or_private’:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.c:62:10: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
62 | (T64M_UTILS__MEMORY_EQUAL(ipv4_address, "\xc0\x00\x00", 3)) || // 192.0.0.0/24
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.c:63:10: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
63 | (T64M_UTILS__MEMORY_EQUAL(ipv4_address, "\xc0\x00\x02", 3)) || // 192.0.2.0/24
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.c:64:10: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
64 | (T64M_UTILS__MEMORY_EQUAL(ipv4_address, "\xc0\x58\x63", 3)) || // 192.88.99.0/24
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.c:67:10: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
67 | (T64M_UTILS__MEMORY_EQUAL(ipv4_address, "\xc6\x33\x64", 3)) || // 198.51.100.0/24
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.c:68:10: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
68 | (T64M_UTILS__MEMORY_EQUAL(ipv4_address, "\xcb\x00\x71", 3)) || // 203.0.113.0/24
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.c: In function ‘t64f_utils_ip__generate_ipv6_fragment_identifier’:
src/t64_utils_ip.c:95:39: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
95 | memcpy(destination, &fragment_id, 4);
| ^
In file included from /usr/include/arpa/inet.h:22,
from src/t64_tundra_includes.h:48,
from src/t64_tundra.h:49,
from src/t64_utils_ip.c:22:
src/t64_utils_ip.c: In function ‘t64f_utils_ip__generate_ipv4_fragment_identifier’:
src/t64_utils_ip.c:99:47: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
99 | const uint16_t fragment_id = htons(context->fragment_identifier_ipv4); // This prevents the program from leaking the information about its endianness
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.c:102:39: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
102 | memcpy(destination, &fragment_id, 2);
| ^
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_utils_xlat_addr.o -c src/t64_utils_xlat_addr.c
In file included from src/t64_utils_xlat_addr.c:25:
src/t64_utils_xlat_addr.c: In function ‘t64f_utils_xlat_addr__nat64_clat__perform_6to4_translator_ip_translation’:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:30:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
30 | #define T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address1, ipv6_address2) (T64M_UTILS__MEMORY_EQUAL((ipv6_address1), (ipv6_address2), 16))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:33:9: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL’
33 | if(!T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(in_ipv6, context->configuration->addressing_nat64_clat_ipv6))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:36:74: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
36 | memcpy(out_ipv4, context->configuration->addressing_nat64_clat_ipv4, 4);
| ^
src/t64_utils_xlat_addr.c: In function ‘t64f_utils_xlat_addr__nat64_clat__perform_4to6_translator_ip_translation’:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:29:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
29 | #define T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address1, ipv4_address2) (T64M_UTILS__MEMORY_EQUAL((ipv4_address1), (ipv4_address2), 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:42:9: note: in expansion of macro ‘T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL’
42 | if(!T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(in_ipv4, context->configuration->addressing_nat64_clat_ipv4))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:45:74: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
45 | memcpy(out_ipv6, context->configuration->addressing_nat64_clat_ipv6, 16);
| ^~
src/t64_utils_xlat_addr.c: In function ‘t64f_utils_xlat_addr__nat64_clat__perform_6to4_prefix_translation_for_main_packet’:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:30:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
30 | #define T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address1, ipv6_address2) (T64M_UTILS__MEMORY_EQUAL((ipv6_address1), (ipv6_address2), 16))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:51:8: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL’
51 | if(T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(in_ipv6, context->configuration->addressing_nat64_clat_ipv6))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:29:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
29 | #define T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address1, ipv4_address2) (T64M_UTILS__MEMORY_EQUAL((ipv4_address1), (ipv4_address2), 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:57:8: note: in expansion of macro ‘T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL’
57 | if(T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(out_ipv4, context->configuration->addressing_nat64_clat_ipv4))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c: In function ‘t64f_utils_xlat_addr__nat64_clat__perform_4to6_prefix_translation_for_main_packet’:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:29:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
29 | #define T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address1, ipv4_address2) (T64M_UTILS__MEMORY_EQUAL((ipv4_address1), (ipv4_address2), 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:64:8: note: in expansion of macro ‘T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL’
64 | if(T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(in_ipv4, context->configuration->addressing_nat64_clat_ipv4))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:30:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
30 | #define T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address1, ipv6_address2) (T64M_UTILS__MEMORY_EQUAL((ipv6_address1), (ipv6_address2), 16))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:70:8: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL’
70 | if(T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(out_ipv6, context->configuration->addressing_nat64_clat_ipv6))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c: In function ‘t64f_utils_xlat_addr__siit__perform_6to4_prefix_translation_for_main_packet’:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:30:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
30 | #define T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address1, ipv6_address2) (T64M_UTILS__MEMORY_EQUAL((ipv6_address1), (ipv6_address2), 16))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:77:8: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL’
77 | if(T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(in_ipv6, context->configuration->router_ipv6))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:31:73: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
31 | #define T64M_UTILS_IP__IPV6_PREFIXES_EQUAL(ipv6_prefix1, ipv6_prefix2) (T64M_UTILS__MEMORY_EQUAL((ipv6_prefix1), (ipv6_prefix2), 12))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:80:9: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_PREFIXES_EQUAL’
80 | if(!T64M_UTILS_IP__IPV6_PREFIXES_EQUAL(in_ipv6, context->configuration->addressing_nat64_clat_siit_prefix))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:86:36: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
86 | memcpy(out_ipv4, in_ipv6 + 12, 4);
| ^
src/t64_utils_xlat_addr.c: In function ‘t64f_utils_xlat_addr__siit__perform_4to6_prefix_translation_for_main_packet’:
src/t64_utils_xlat_addr.c:95:81: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
95 | memcpy(out_ipv6, context->configuration->addressing_nat64_clat_siit_prefix, 12);
| ^~
src/t64_utils_xlat_addr.c:96:36: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
96 | memcpy(out_ipv6 + 12, in_ipv4, 4);
| ^
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:30:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
30 | #define T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address1, ipv6_address2) (T64M_UTILS__MEMORY_EQUAL((ipv6_address1), (ipv6_address2), 16))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:98:8: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL’
98 | if(T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(out_ipv6, context->configuration->router_ipv6))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c: In function ‘t64f_utils_xlat_addr__nat64_clat_siit__perform_6to4_prefix_translation_for_icmp_error_packet’:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:31:73: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
31 | #define T64M_UTILS_IP__IPV6_PREFIXES_EQUAL(ipv6_prefix1, ipv6_prefix2) (T64M_UTILS__MEMORY_EQUAL((ipv6_prefix1), (ipv6_prefix2), 12))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:105:9: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_PREFIXES_EQUAL’
105 | if(!T64M_UTILS_IP__IPV6_PREFIXES_EQUAL(in_ipv6, context->configuration->addressing_nat64_clat_siit_prefix))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:109:36: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
109 | memcpy(out_ipv4, in_ipv6 + 12, 4);
| ^
src/t64_utils_xlat_addr.c: In function ‘t64f_utils_xlat_addr__nat64_clat_siit__perform_4to6_prefix_translation_for_icmp_error_packet’:
src/t64_utils_xlat_addr.c:116:81: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
116 | memcpy(out_ipv6, context->configuration->addressing_nat64_clat_siit_prefix, 12);
| ^~
src/t64_utils_xlat_addr.c:117:36: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
117 | memcpy(out_ipv6 + 12, in_ipv4, 4);
| ^
src/t64_utils_xlat_addr.c: In function ‘_t64f_utils_xlat_addr__nat64_clat_siit__check_embeddability_of_ipv4_into_prefix’:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:29:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
29 | #define T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address1, ipv4_address2) (T64M_UTILS__MEMORY_EQUAL((ipv4_address1), (ipv4_address2), 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_xlat_addr.c:121:8: note: in expansion of macro ‘T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL’
121 | if(T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address, context->configuration->router_ipv4))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_xlat_4to6.o -c src/t64_xlat_4to6.c
src/t64_xlat_4to6.c: In function ‘_t64f_xlat_4to6__validate_and_translate_ip_header’:
src/t64_xlat_4to6.c:91:42: warning: cast increases required alignment of target type [-Wcast-align]
91 | const struct iphdr *in_ipv4_header = (const struct iphdr *) context->in_packet_buffer;
| ^
src/t64_xlat_4to6.c:104:37: warning: conversion from ‘unsigned char’ to ‘unsigned char:4’ may change value [-Wconversion]
104 | out_ipv6_header->priority = (uint8_t) (in_ipv4_header->tos >> 4);
| ^
In file included from /usr/include/arpa/inet.h:22,
from src/t64_tundra_includes.h:48,
from src/t64_tundra.h:49,
from src/t64_xlat_4to6.c:22:
src/t64_xlat_4to6.c:114:28: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
114 | if(ntohs(in_ipv4_header->tot_len) != context->in_packet_size)
| ~~~~~~~~~~~~~~^~~~~~~~~
src/t64_utils_ip.h:33:99: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS_IP__GET_IPV4_FRAGMENT_RESERVED_BIT(ipv4_header_ptr) (!!(ntohs((ipv4_header_ptr)->frag_off) & 0x8000))
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_xlat_4to6.c:119:8: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_FRAGMENT_RESERVED_BIT’
119 | if(T64M_UTILS_IP__GET_IPV4_FRAGMENT_RESERVED_BIT(in_ipv4_header) != 0)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:125:34: warning: conversion from ‘int’ to ‘__u8’ {aka ‘unsigned char’} may change value [-Warith-conversion]
125 | out_ipv6_header->hop_limit = (in_ipv4_header->ttl - 1);
| ^
src/t64_xlat_4to6.c:172:70: warning: passing argument 1 of ‘t64f_utils_ip__is_ip_protocol_number_forbidden’ with different width due to prototype [-Wtraditional-conversion]
172 | t64f_utils_ip__is_ip_protocol_number_forbidden(in_ipv4_header->protocol) ||
| ~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_utils_ip.h:34:95: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
34 | #define T64M_UTILS_IP__GET_IPV4_DONT_FRAGMENT_BIT(ipv4_header_ptr) (!!(ntohs((ipv4_header_ptr)->frag_off) & 0x4000))
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_xlat_4to6.c:178:45: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_DONT_FRAGMENT_BIT’
178 | out_packet_data->dont_fragment = (bool) T64M_UTILS_IP__GET_IPV4_DONT_FRAGMENT_BIT(in_ipv4_header);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:36:90: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
36 | #define T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET(ipv4_header_ptr) (ntohs((ipv4_header_ptr)->frag_off) & 0x1fff)
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_xlat_4to6.c:181:38: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET’
181 | const uint16_t fragment_offset = T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET(in_ipv4_header);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:35:96: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
35 | #define T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT(ipv4_header_ptr) (!!(ntohs((ipv4_header_ptr)->frag_off) & 0x2000))
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_xlat_4to6.c:185:37: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT’
185 | const uint16_t more_fragments = T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT(in_ipv4_header);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:36:90: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
36 | #define T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET(ipv4_header_ptr) (ntohs((ipv4_header_ptr)->frag_off) & 0x1fff)
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_utils_ip.h:38:69: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET’
38 | #define T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(ipv4_header_ptr) (T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET((ipv4_header_ptr)) != 0 || T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT((ipv4_header_ptr)) != 0)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:189:8: note: in expansion of macro ‘T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED’
189 | if(T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(in_ipv4_header)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:35:96: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
35 | #define T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT(ipv4_header_ptr) (!!(ntohs((ipv4_header_ptr)->frag_off) & 0x2000))
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_utils_ip.h:38:136: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT’
38 | #define T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(ipv4_header_ptr) (T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET((ipv4_header_ptr)) != 0 || T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT((ipv4_header_ptr)) != 0)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:189:8: note: in expansion of macro ‘T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED’
189 | if(T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(in_ipv4_header)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:43:111: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
43 | #define T64M_UTILS_IP__CONSTRUCT_IPV6_FRAGMENT_OFFSET_AND_FLAGS_FIELD(fragment_offset, more_fragments) (htons((uint16_t) ( (((uint16_t) (fragment_offset)) << 3) | ((uint16_t) (!!(more_fragments))) )))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:194:54: note: in expansion of macro ‘T64M_UTILS_IP__CONSTRUCT_IPV6_FRAGMENT_OFFSET_AND_FLAGS_FIELD’
194 | out_ipv6_fragment_header->offset_and_flags = T64M_UTILS_IP__CONSTRUCT_IPV6_FRAGMENT_OFFSET_AND_FLAGS_FIELD(fragment_offset, more_fragments);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c: In function ‘_t64f_xlat_4to6__translate_icmpv4_payload_to_icmpv6_and_send’:
src/t64_xlat_4to6.c:237:126: warning: passing argument 4 of ‘t64f_checksum__calculate_rfc1071_checksum_for_ipv4’ with different width due to prototype [-Wtraditional-conversion]
237 | if(t64f_checksum__calculate_rfc1071_checksum_for_ipv4(out_packet_data->payload_ptr, out_packet_data->payload_size, NULL, 0, NULL) != 0)
| ^
src/t64_xlat_4to6.c:253:24: warning: passing argument 8 of ‘_t64f_xlat_4to6__appropriately_send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
253 | out_packet_data->dont_fragment
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
src/t64_xlat_4to6.c: In function ‘_t64f_xlat_4to6__translate_tcp_payload_and_send’:
src/t64_xlat_4to6.c:260:41: warning: cast increases required alignment of target type [-Wcast-align]
260 | struct tcphdr *new_tcp_header = (struct tcphdr *) new_tcp_payload_start_buffer;
| ^
src/t64_xlat_4to6.c:263:80: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
263 | memcpy(new_tcp_payload_start_buffer, out_packet_data->payload_ptr, 24);
| ^~
src/t64_xlat_4to6.c:265:123: warning: cast increases required alignment of target type [-Wcast-align]
265 | new_tcp_header->check = t64f_checksum__incrementally_recalculate_rfc1071_checksum_4to6(new_tcp_header->check, (const struct iphdr *) context->in_packet_buffer, &out_packet_data->ipv6_header);
| ^
src/t64_xlat_4to6.c:265:114: warning: passing argument 1 of ‘t64f_checksum__incrementally_recalculate_rfc1071_checksum_4to6’ with different width due to prototype [-Wtraditional-conversion]
265 | new_tcp_header->check = t64f_checksum__incrementally_recalculate_rfc1071_checksum_4to6(new_tcp_header->check, (const struct iphdr *) context->in_packet_buffer, &out_packet_data->ipv6_header);
| ~~~~~~~~~~~~~~^~~~~~~
src/t64_xlat_4to6.c:269:47: warning: passing argument 5 of ‘_t64f_xlat_4to6__appropriately_send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
269 | new_tcp_payload_start_buffer, 24,
| ^~
src/t64_xlat_4to6.c:271:32: warning: passing argument 8 of ‘_t64f_xlat_4to6__appropriately_send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
271 | out_packet_data->dont_fragment
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:276:123: warning: cast increases required alignment of target type [-Wcast-align]
276 | new_tcp_header->check = t64f_checksum__incrementally_recalculate_rfc1071_checksum_4to6(new_tcp_header->check, (const struct iphdr *) context->in_packet_buffer, &out_packet_data->ipv6_header);
| ^
src/t64_xlat_4to6.c:276:114: warning: passing argument 1 of ‘t64f_checksum__incrementally_recalculate_rfc1071_checksum_4to6’ with different width due to prototype [-Wtraditional-conversion]
276 | new_tcp_header->check = t64f_checksum__incrementally_recalculate_rfc1071_checksum_4to6(new_tcp_header->check, (const struct iphdr *) context->in_packet_buffer, &out_packet_data->ipv6_header);
| ~~~~~~~~~~~~~~^~~~~~~
src/t64_xlat_4to6.c:280:23: warning: passing argument 5 of ‘_t64f_xlat_4to6__appropriately_send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
280 | NULL, 0,
| ^
src/t64_xlat_4to6.c:282:32: warning: passing argument 8 of ‘_t64f_xlat_4to6__appropriately_send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
282 | out_packet_data->dont_fragment
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:288:19: warning: passing argument 5 of ‘_t64f_xlat_4to6__appropriately_send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
288 | NULL, 0,
| ^
src/t64_xlat_4to6.c:290:28: warning: passing argument 8 of ‘_t64f_xlat_4to6__appropriately_send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
290 | out_packet_data->dont_fragment
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
src/t64_xlat_4to6.c: In function ‘_t64f_xlat_4to6__translate_udp_payload_and_send’:
src/t64_xlat_4to6.c:298:63: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
298 | memcpy(&new_udp_header, out_packet_data->payload_ptr, 8);
| ^
src/t64_xlat_4to6.c:303:124: warning: cast increases required alignment of target type [-Wcast-align]
303 | const uint16_t new_checksum = t64f_checksum__incrementally_recalculate_rfc1071_checksum_4to6(new_udp_header.check, (const struct iphdr *) context->in_packet_buffer, &out_packet_data->ipv6_header);
| ^
src/t64_xlat_4to6.c:303:116: warning: passing argument 1 of ‘t64f_checksum__incrementally_recalculate_rfc1071_checksum_4to6’ with different width due to prototype [-Wtraditional-conversion]
303 | const uint16_t new_checksum = t64f_checksum__incrementally_recalculate_rfc1071_checksum_4to6(new_udp_header.check, (const struct iphdr *) context->in_packet_buffer, &out_packet_data->ipv6_header);
| ~~~~~~~~~~~~~~^~~~~~
src/t64_xlat_4to6.c:308:48: warning: passing argument 5 of ‘_t64f_xlat_4to6__appropriately_send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
308 | (const uint8_t *) &new_udp_header, 8,
| ^
src/t64_xlat_4to6.c:310:28: warning: passing argument 8 of ‘_t64f_xlat_4to6__appropriately_send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
310 | out_packet_data->dont_fragment
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:315:19: warning: passing argument 5 of ‘_t64f_xlat_4to6__appropriately_send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
315 | NULL, 0,
| ^
src/t64_xlat_4to6.c:317:28: warning: passing argument 8 of ‘_t64f_xlat_4to6__appropriately_send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
317 | out_packet_data->dont_fragment
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
src/t64_xlat_4to6.c: In function ‘_t64f_xlat_4to6__translate_generic_payload_and_send’:
src/t64_xlat_4to6.c:325:15: warning: passing argument 5 of ‘_t64f_xlat_4to6__appropriately_send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
325 | NULL, 0,
| ^
src/t64_xlat_4to6.c:327:24: warning: passing argument 8 of ‘_t64f_xlat_4to6__appropriately_send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
327 | out_packet_data->dont_fragment
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
src/t64_xlat_4to6.c: In function ‘_t64f_xlat_4to6__appropriately_send_ipv6_packet’:
src/t64_xlat_4to6.c:341:91: warning: conversion to ‘size_t’ {aka ‘long unsigned int’} from ‘int’ may change the sign of the result [-Wsign-conversion]
341 | const size_t total_packet_size = 40 + (nullable_ipv6_fragment_header != NULL ? 8 : 0) + zeroable_payload1_size_m8 + payload2_size;
| ^
src/t64_xlat_4to6.c:352:17: warning: passing argument 2 of ‘t64f_router_ipv4__send_icmpv4_fragmentation_needed_message_to_in_ipv4_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
352 | (uint16_t) (context->configuration->translator_ipv6_outbound_mtu - 28)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c: In function ‘_t64f_xlat_4to6__fragment_and_send_ipv6_packet’:
src/t64_xlat_4to6.c:383:74: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
383 | memcpy(&new_ipv6_fragment_header, nullable_ipv6_fragment_header, 8);
| ^
src/t64_utils_ip.h:40:108: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
40 | #define T64M_UTILS_IP__GET_IPV6_FRAGMENT_OFFSET(ipv6_fragment_header_ptr) (ntohs((ipv6_fragment_header_ptr)->offset_and_flags) >> 3)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:385:40: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV6_FRAGMENT_OFFSET’
385 | fragment_offset_8byte_chunks = T64M_UTILS_IP__GET_IPV6_FRAGMENT_OFFSET(nullable_ipv6_fragment_header);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:42:120: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
42 | #define T64M_UTILS_IP__GET_IPV6_FRAGMENT_MORE_FRAGMENTS_BIT(ipv6_fragment_header_ptr) (ntohs((ipv6_fragment_header_ptr)->offset_and_flags) & 0x1)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:386:51: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV6_FRAGMENT_MORE_FRAGMENTS_BIT’
386 | more_fragments_after_this_packet = (bool) T64M_UTILS_IP__GET_IPV6_FRAGMENT_MORE_FRAGMENTS_BIT(nullable_ipv6_fragment_header);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:408:39: warning: passing argument 7 of ‘_t64f_xlat_4to6__fragment_and_send_ipv6_packet_part’ with different width due to prototype [-Wtraditional-conversion]
408 | (payload2_size > 0 ? true : more_fragments_after_this_packet),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:422:13: warning: passing argument 7 of ‘_t64f_xlat_4to6__fragment_and_send_ipv6_packet_part’ with different width due to prototype [-Wtraditional-conversion]
422 | more_fragments_after_this_packet,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c: In function ‘_t64f_xlat_4to6__fragment_and_send_ipv6_packet_part’:
src/t64_utils_ip.h:43:111: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
43 | #define T64M_UTILS_IP__CONSTRUCT_IPV6_FRAGMENT_OFFSET_AND_FLAGS_FIELD(fragment_offset, more_fragments) (htons((uint16_t) ( (((uint16_t) (fragment_offset)) << 3) | ((uint16_t) (!!(more_fragments))) )))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:447:56: note: in expansion of macro ‘T64M_UTILS_IP__CONSTRUCT_IPV6_FRAGMENT_OFFSET_AND_FLAGS_FIELD’
447 | ready_ipv6_fragment_header->offset_and_flags = T64M_UTILS_IP__CONSTRUCT_IPV6_FRAGMENT_OFFSET_AND_FLAGS_FIELD(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:452:156: warning: passing argument 7 of ‘t64f_xlat_io__send_ipv6_packet’ with different width due to prototype [-Wtraditional-conversion]
452 | t64f_xlat_io__send_ipv6_packet(context, ready_ipv6_header, ready_ipv6_fragment_header, current_payload_part_ptr, this_fragment_payload_size, NULL, 0);
| ^
src/t64_xlat_4to6.c: In function ‘_t64f_xlat_4to6__validate_and_translate_ip_header’:
src/t64_xlat_4to6.c:460:1: warning: assuming signed overflow does not occur when changing X +- C1 cmp C2 to X cmp C2 -+ C1 [-Wstrict-overflow]
460 | }
| ^
src/t64_xlat_4to6.c:460:1: warning: assuming signed overflow does not occur when changing X +- C1 cmp C2 to X cmp C2 -+ C1 [-Wstrict-overflow]
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_xlat_4to6_icmp.o -c src/t64_xlat_4to6_icmp.c
src/t64_xlat_4to6_icmp.c: In function ‘t64f_xlat_4to6_icmp__translate_icmpv4_to_icmpv6’:
src/t64_xlat_4to6_icmp.c:58:46: warning: cast increases required alignment of target type [-Wcast-align]
58 | const struct icmphdr *in_icmpv4_header = (const struct icmphdr *) in_packet_payload_ptr;
| ^
src/t64_xlat_4to6_icmp.c:59:42: warning: cast increases required alignment of target type [-Wcast-align]
59 | struct icmp6hdr *out_icmpv6_header = (struct icmp6hdr *) out_message_data->message_start_64b;
| ^
src/t64_xlat_4to6_icmp.c:65:25: warning: passing argument 1 of ‘_t64f_xlat_4to6_icmp__validate_and_translate_icmp_type_and_code’ with different width due to prototype [-Wtraditional-conversion]
65 | in_icmpv4_header->type,
| ~~~~~~~~~~~~~~~~^~~~~~
src/t64_xlat_4to6_icmp.c:66:25: warning: passing argument 2 of ‘_t64f_xlat_4to6_icmp__validate_and_translate_icmp_type_and_code’ with different width due to prototype [-Wtraditional-conversion]
66 | in_icmpv4_header->code,
| ~~~~~~~~~~~~~~~~^~~~~~
src/t64_xlat_4to6_icmp.c:80:25: warning: passing argument 4 of ‘_t64f_xlat_4to6_icmp__validate_and_translate_rest_of_icmp_header’ with different width due to prototype [-Wtraditional-conversion]
80 | in_icmpv4_header->type,
| ~~~~~~~~~~~~~~~~^~~~~~
src/t64_xlat_4to6_icmp.c:81:25: warning: passing argument 5 of ‘_t64f_xlat_4to6_icmp__validate_and_translate_rest_of_icmp_header’ with different width due to prototype [-Wtraditional-conversion]
81 | in_icmpv4_header->code,
| ~~~~~~~~~~~~~~~~^~~~~~
src/t64_xlat_4to6_icmp.c:109:71: warning: cast increases required alignment of target type [-Wcast-align]
109 | struct icmp6hdr *new_icmpv6_packet_in_error_payload_ptr = (struct icmp6hdr *) (out_message_data->message_start_64b + 48);
| ^
src/t64_xlat_4to6_icmp.c:110:98: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
110 | memcpy(new_icmpv6_packet_in_error_payload_ptr, out_packet_in_error_data.payload_ptr, 8);
| ^
src/t64_xlat_4to6_icmp.c:155:9: warning: passing argument 6 of ‘t64f_checksum__calculate_rfc1071_checksum_for_ipv6’ with different width due to prototype [-Wtraditional-conversion]
155 | 58
| ^~
src/t64_xlat_4to6_icmp.c: In function ‘_t64f_xlat_4to6_icmp__validate_and_translate_rest_of_icmp_header’:
src/t64_xlat_4to6_icmp.c:257:70: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
257 | memcpy(new_icmpv6_rest_of_header, old_icmpv4_rest_of_header, 4);
| ^
In file included from src/t64_xlat_4to6_icmp.c:25:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_xlat_4to6_icmp.c:264:17: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
264 | if(!T64M_UTILS__MEMORY_EQUAL(old_icmpv4_rest_of_header, "\x00\x00\x00\x00", 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:33:69: warning: passing argument 3 of ‘memset’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~
src/t64_xlat_4to6_icmp.c:267:13: note: in expansion of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
267 | T64M_UTILS__MEMORY_ZERO_OUT(new_icmpv6_rest_of_header, 3);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_xlat_4to6_icmp.c:273:17: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
273 | if(!T64M_UTILS__MEMORY_EQUAL(old_icmpv4_rest_of_header, "\x00\x00", 2))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:33:69: warning: passing argument 3 of ‘memset’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~
src/t64_xlat_4to6_icmp.c:275:13: note: in expansion of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
275 | T64M_UTILS__MEMORY_ZERO_OUT(new_icmpv6_rest_of_header, 2);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/arpa/inet.h:22,
from src/t64_tundra_includes.h:48,
from src/t64_tundra.h:49,
from src/t64_xlat_4to6_icmp.c:22:
src/t64_xlat_4to6_icmp.c:277:46: warning: cast increases required alignment of target type [-Wcast-align]
277 | const uint16_t old_mtu = ntohs(*((const uint16_t *) (old_icmpv4_rest_of_header + 2)));
| ^
src/t64_xlat_4to6_icmp.c:277:44: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
277 | const uint16_t old_mtu = ntohs(*((const uint16_t *) (old_icmpv4_rest_of_header + 2)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c:278:149: warning: passing argument 4 of ‘_t64f_xlat_4to6_icmp__recalculate_packet_too_big_mtu’ with different width due to prototype [-Wtraditional-conversion]
278 | const uint16_t new_mtu = _t64f_xlat_4to6_icmp__recalculate_packet_too_big_mtu(context, old_icmpv4_payload_ptr, old_icmpv4_payload_size, old_mtu);
| ^~~~~~~
src/t64_xlat_4to6_icmp.c:279:15: warning: cast increases required alignment of target type [-Wcast-align]
279 | *((uint16_t *) (new_icmpv6_rest_of_header + 2)) = htons(new_mtu);
| ^
src/t64_xlat_4to6_icmp.c:279:69: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
279 | *((uint16_t *) (new_icmpv6_rest_of_header + 2)) = htons(new_mtu);
| ^~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_xlat_4to6_icmp.c:287:13: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
287 | if(!T64M_UTILS__MEMORY_EQUAL(old_icmpv4_rest_of_header + 1, "\x00\x00\x00", 3))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:33:69: warning: passing argument 3 of ‘memset’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~
src/t64_xlat_4to6_icmp.c:289:9: note: in expansion of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
289 | T64M_UTILS__MEMORY_ZERO_OUT(new_icmpv6_rest_of_header, 3);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c:291:74: warning: passing argument 1 of ‘_t64f_xlat_4to6_icmp__translate_parameter_problem_pointer’ with different width due to prototype [-Wtraditional-conversion]
291 | return _t64f_xlat_4to6_icmp__translate_parameter_problem_pointer(*old_icmpv4_rest_of_header, new_icmpv6_rest_of_header + 3);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_xlat_4to6_icmp.c:295:9: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
295 | if(!T64M_UTILS__MEMORY_EQUAL(old_icmpv4_rest_of_header, "\x00\x00\x00\x00", 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:33:69: warning: passing argument 3 of ‘memset’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~
src/t64_xlat_4to6_icmp.c:298:5: note: in expansion of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
298 | T64M_UTILS__MEMORY_ZERO_OUT(new_icmpv6_rest_of_header, 4);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c: In function ‘_t64f_xlat_4to6_icmp__recalculate_packet_too_big_mtu’:
src/t64_utils.h:35:42: warning: conversion from ‘int’ to ‘uint16_t’ {aka ‘short unsigned int’} may change value [-Warith-conversion]
35 | #define T64MM_UTILS__MINIMUM(num1, num2) (((num1) > (num2)) ? (num2) : (num1))
| ^
src/t64_xlat_4to6_icmp.c:311:11: note: in expansion of macro ‘T64MM_UTILS__MINIMUM’
311 | mtu = T64MM_UTILS__MINIMUM(mtu + 20, (uint16_t) context->configuration->translator_ipv6_outbound_mtu);
| ^~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:35:42: warning: conversion from ‘int’ to ‘uint16_t’ {aka ‘short unsigned int’} may change value [-Wconversion]
35 | #define T64MM_UTILS__MINIMUM(num1, num2) (((num1) > (num2)) ? (num2) : (num1))
| ^
src/t64_xlat_4to6_icmp.c:312:11: note: in expansion of macro ‘T64MM_UTILS__MINIMUM’
312 | mtu = T64MM_UTILS__MINIMUM(mtu, ((uint16_t) context->configuration->translator_ipv4_outbound_mtu) + 20);
| ^~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c: In function ‘_t64f_xlat_4to6_icmp__estimate_likely_mtu_as_per_rfc1191’:
src/t64_xlat_4to6_icmp.c:322:43: warning: cast increases required alignment of target type [-Wcast-align]
322 | const struct iphdr *packet_in_error = (const struct iphdr *) old_icmpv4_payload_ptr;
| ^
src/t64_xlat_4to6_icmp.c:323:72: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
323 | const uint16_t packet_in_error_total_length = ntohs(packet_in_error->tot_len);
| ~~~~~~~~~~~~~~~^~~~~~~~~
src/t64_xlat_4to6_icmp.c: In function ‘_t64f_xlat_4to6_icmp__validate_and_translate_ip_header_of_packet_in_error’:
src/t64_xlat_4to6_icmp.c:372:42: warning: cast increases required alignment of target type [-Wcast-align]
372 | const struct iphdr *in_ipv4_header = (const struct iphdr *) in_icmpv4_payload_ptr;
| ^
src/t64_xlat_4to6_icmp.c:373:39: warning: cast increases required alignment of target type [-Wcast-align]
373 | struct ipv6hdr *out_ipv6_header = (struct ipv6hdr *) out_packet_in_error_buffer_56b;
| ^
src/t64_xlat_4to6_icmp.c:385:33: warning: conversion from ‘unsigned char’ to ‘unsigned char:4’ may change value [-Wconversion]
385 | out_ipv6_header->priority = (uint8_t) (in_ipv4_header->tos >> 4);
| ^
src/t64_xlat_4to6_icmp.c:389:62: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
389 | out_ipv6_header->payload_len = htons(ntohs(in_ipv4_header->tot_len) - ((uint16_t) in_ipv4_header_size));
| ~~~~~~~~~~~~~~^~~~~~~~~
src/t64_xlat_4to6_icmp.c:389:73: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
389 | out_ipv6_header->payload_len = htons(ntohs(in_ipv4_header->tot_len) - ((uint16_t) in_ipv4_header_size));
| ^
src/t64_xlat_4to6_icmp.c:389:73: warning: conversion from ‘int’ to ‘__uint16_t’ {aka ‘short unsigned int’} may change value [-Warith-conversion]
src/t64_utils_ip.h:36:90: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
36 | #define T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET(ipv4_header_ptr) (ntohs((ipv4_header_ptr)->frag_off) & 0x1fff)
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_utils_ip.h:38:69: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET’
38 | #define T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(ipv4_header_ptr) (T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET((ipv4_header_ptr)) != 0 || T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT((ipv4_header_ptr)) != 0)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c:394:8: note: in expansion of macro ‘T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED’
394 | if(T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(in_ipv4_header)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:35:96: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
35 | #define T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT(ipv4_header_ptr) (!!(ntohs((ipv4_header_ptr)->frag_off) & 0x2000))
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_utils_ip.h:38:136: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT’
38 | #define T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(ipv4_header_ptr) (T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET((ipv4_header_ptr)) != 0 || T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT((ipv4_header_ptr)) != 0)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c:394:8: note: in expansion of macro ‘T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED’
394 | if(T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(in_ipv4_header)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:36:90: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
36 | #define T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET(ipv4_header_ptr) (ntohs((ipv4_header_ptr)->frag_off) & 0x1fff)
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_xlat_4to6_icmp.c:400:54: note: in expansion of macro ‘T64M_UTILS_IP__CONSTRUCT_IPV6_FRAGMENT_OFFSET_AND_FLAGS_FIELD’
400 | out_ipv6_fragment_header->offset_and_flags = T64M_UTILS_IP__CONSTRUCT_IPV6_FRAGMENT_OFFSET_AND_FLAGS_FIELD(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c:401:13: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET’
401 | T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET(in_ipv4_header),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:35:96: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
35 | #define T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT(ipv4_header_ptr) (!!(ntohs((ipv4_header_ptr)->frag_off) & 0x2000))
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_xlat_4to6_icmp.c:400:54: note: in expansion of macro ‘T64M_UTILS_IP__CONSTRUCT_IPV6_FRAGMENT_OFFSET_AND_FLAGS_FIELD’
400 | out_ipv6_fragment_header->offset_and_flags = T64M_UTILS_IP__CONSTRUCT_IPV6_FRAGMENT_OFFSET_AND_FLAGS_FIELD(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c:402:13: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT’
402 | T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT(in_ipv4_header)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:43:111: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
43 | #define T64M_UTILS_IP__CONSTRUCT_IPV6_FRAGMENT_OFFSET_AND_FLAGS_FIELD(fragment_offset, more_fragments) (htons((uint16_t) ( (((uint16_t) (fragment_offset)) << 3) | ((uint16_t) (!!(more_fragments))) )))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c:400:54: note: in expansion of macro ‘T64M_UTILS_IP__CONSTRUCT_IPV6_FRAGMENT_OFFSET_AND_FLAGS_FIELD’
400 | out_ipv6_fragment_header->offset_and_flags = T64M_UTILS_IP__CONSTRUCT_IPV6_FRAGMENT_OFFSET_AND_FLAGS_FIELD(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_xlat_6to4.o -c src/t64_xlat_6to4.c
src/t64_xlat_6to4.c: In function ‘_t64f_xlat_6to4__validate_and_translate_ip_header’:
src/t64_xlat_6to4.c:88:44: warning: cast increases required alignment of target type [-Wcast-align]
88 | const struct ipv6hdr *in_ipv6_header = (const struct ipv6hdr *) context->in_packet_buffer;
| ^
In file included from /usr/include/arpa/inet.h:22,
from src/t64_tundra_includes.h:48,
from src/t64_tundra.h:49,
from src/t64_xlat_6to4.c:22:
src/t64_xlat_6to4.c:107:28: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
107 | if(ntohs(in_ipv6_header->payload_len) != (context->in_packet_size - 40))
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~
src/t64_xlat_6to4.c:114:28: warning: conversion from ‘int’ to ‘__u8’ {aka ‘unsigned char’} may change value [-Warith-conversion]
114 | out_ipv4_header->ttl = (in_ipv6_header->hop_limit - 1);
| ^
src/t64_utils_ip.h:41:116: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
41 | #define T64M_UTILS_IP__GET_IPV6_FRAGMENT_RESERVED_BITS(ipv6_fragment_header_ptr) ((ntohs((ipv6_fragment_header_ptr)->offset_and_flags) >> 1) & 0x3)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:148:63: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV6_FRAGMENT_RESERVED_BITS’
148 | if(ipv6_fragment_header_ptr->reserved != 0 || T64M_UTILS_IP__GET_IPV6_FRAGMENT_RESERVED_BITS(ipv6_fragment_header_ptr) != 0)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:164:60: warning: passing argument 1 of ‘t64f_utils_ip__is_ip_protocol_number_forbidden’ with different width due to prototype [-Wtraditional-conversion]
164 | t64f_utils_ip__is_ip_protocol_number_forbidden(current_header_number) ||
| ^~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:42:120: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
42 | #define T64M_UTILS_IP__GET_IPV6_FRAGMENT_MORE_FRAGMENTS_BIT(ipv6_fragment_header_ptr) (ntohs((ipv6_fragment_header_ptr)->offset_and_flags) & 0x1)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:177:45: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV6_FRAGMENT_MORE_FRAGMENTS_BIT’
177 | const uint16_t more_fragments = T64M_UTILS_IP__GET_IPV6_FRAGMENT_MORE_FRAGMENTS_BIT(ipv6_fragment_header_ptr);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:40:108: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
40 | #define T64M_UTILS_IP__GET_IPV6_FRAGMENT_OFFSET(ipv6_fragment_header_ptr) (ntohs((ipv6_fragment_header_ptr)->offset_and_flags) >> 3)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:181:46: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV6_FRAGMENT_OFFSET’
181 | const uint16_t fragment_offset = T64M_UTILS_IP__GET_IPV6_FRAGMENT_OFFSET(ipv6_fragment_header_ptr);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:37:126: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
37 | #define T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD(dont_fragment, more_fragments, fragment_offset) (htons((uint16_t) ( (((uint16_t) (!!(dont_fragment))) << 14) | (((uint16_t) (!!(more_fragments))) << 13) | (((uint16_t) (fragment_offset)) & 0x1fff) )))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:184:41: note: in expansion of macro ‘T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD’
184 | out_ipv4_header->frag_off = T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD(0, more_fragments, fragment_offset);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:36:90: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
36 | #define T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET(ipv4_header_ptr) (ntohs((ipv4_header_ptr)->frag_off) & 0x1fff)
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_utils_ip.h:38:69: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET’
38 | #define T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(ipv4_header_ptr) (T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET((ipv4_header_ptr)) != 0 || T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT((ipv4_header_ptr)) != 0)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:210:43: note: in expansion of macro ‘T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED’
210 | out_packet_data->is_fragment = (bool) T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(out_ipv4_header);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:35:96: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
35 | #define T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT(ipv4_header_ptr) (!!(ntohs((ipv4_header_ptr)->frag_off) & 0x2000))
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_utils_ip.h:38:136: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT’
38 | #define T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(ipv4_header_ptr) (T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET((ipv4_header_ptr)) != 0 || T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT((ipv4_header_ptr)) != 0)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:210:43: note: in expansion of macro ‘T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED’
210 | out_packet_data->is_fragment = (bool) T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(out_ipv4_header);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c: In function ‘_t64f_xlat_6to4__translate_icmpv6_payload_to_icmpv4_and_send’:
src/t64_xlat_6to4.c:220:129: warning: cast increases required alignment of target type [-Wcast-align]
220 | if(t64f_checksum__calculate_rfc1071_checksum_for_ipv6(out_packet_data->payload_ptr, out_packet_data->payload_size, NULL, 0, (const struct ipv6hdr *) context->in_packet_buffer, 58) != 0)
| ^
src/t64_xlat_6to4.c:220:126: warning: passing argument 4 of ‘t64f_checksum__calculate_rfc1071_checksum_for_ipv6’ with different width due to prototype [-Wtraditional-conversion]
220 | if(t64f_checksum__calculate_rfc1071_checksum_for_ipv6(out_packet_data->payload_ptr, out_packet_data->payload_size, NULL, 0, (const struct ipv6hdr *) context->in_packet_buffer, 58) != 0)
| ^
src/t64_xlat_6to4.c:220:181: warning: passing argument 6 of ‘t64f_checksum__calculate_rfc1071_checksum_for_ipv6’ with different width due to prototype [-Wtraditional-conversion]
220 | if(t64f_checksum__calculate_rfc1071_checksum_for_ipv6(out_packet_data->payload_ptr, out_packet_data->payload_size, NULL, 0, (const struct ipv6hdr *) context->in_packet_buffer, 58) != 0)
| ^~
src/t64_xlat_6to4.c:234:19: warning: passing argument 4 of ‘_t64f_xlat_6to4__appropriately_send_ipv4_packet’ with different width due to prototype [-Wtraditional-conversion]
234 | NULL, 0,
| ^
src/t64_xlat_6to4.c: In function ‘_t64f_xlat_6to4__translate_tcp_payload_and_send’:
src/t64_xlat_6to4.c:248:41: warning: cast increases required alignment of target type [-Wcast-align]
248 | struct tcphdr *new_tcp_header = (struct tcphdr *) new_tcp_payload_start_buffer;
| ^
src/t64_xlat_6to4.c:251:80: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
251 | memcpy(new_tcp_payload_start_buffer, out_packet_data->payload_ptr, 24);
| ^~
src/t64_xlat_6to4.c:253:123: warning: cast increases required alignment of target type [-Wcast-align]
253 | new_tcp_header->check = t64f_checksum__incrementally_recalculate_rfc1071_checksum_6to4(new_tcp_header->check, (const struct ipv6hdr *) context->in_packet_buffer, &out_packet_data->ipv4_header);
| ^
src/t64_xlat_6to4.c:253:114: warning: passing argument 1 of ‘t64f_checksum__incrementally_recalculate_rfc1071_checksum_6to4’ with different width due to prototype [-Wtraditional-conversion]
253 | new_tcp_header->check = t64f_checksum__incrementally_recalculate_rfc1071_checksum_6to4(new_tcp_header->check, (const struct ipv6hdr *) context->in_packet_buffer, &out_packet_data->ipv4_header);
| ~~~~~~~~~~~~~~^~~~~~~
src/t64_xlat_6to4.c:257:47: warning: passing argument 4 of ‘_t64f_xlat_6to4__appropriately_send_ipv4_packet’ with different width due to prototype [-Wtraditional-conversion]
257 | new_tcp_payload_start_buffer, 24,
| ^~
src/t64_xlat_6to4.c:263:123: warning: cast increases required alignment of target type [-Wcast-align]
263 | new_tcp_header->check = t64f_checksum__incrementally_recalculate_rfc1071_checksum_6to4(new_tcp_header->check, (const struct ipv6hdr *) context->in_packet_buffer, &out_packet_data->ipv4_header);
| ^
src/t64_xlat_6to4.c:263:114: warning: passing argument 1 of ‘t64f_checksum__incrementally_recalculate_rfc1071_checksum_6to4’ with different width due to prototype [-Wtraditional-conversion]
263 | new_tcp_header->check = t64f_checksum__incrementally_recalculate_rfc1071_checksum_6to4(new_tcp_header->check, (const struct ipv6hdr *) context->in_packet_buffer, &out_packet_data->ipv4_header);
| ~~~~~~~~~~~~~~^~~~~~~
src/t64_xlat_6to4.c:267:23: warning: passing argument 4 of ‘_t64f_xlat_6to4__appropriately_send_ipv4_packet’ with different width due to prototype [-Wtraditional-conversion]
267 | NULL, 0,
| ^
src/t64_xlat_6to4.c:274:19: warning: passing argument 4 of ‘_t64f_xlat_6to4__appropriately_send_ipv4_packet’ with different width due to prototype [-Wtraditional-conversion]
274 | NULL, 0,
| ^
src/t64_xlat_6to4.c: In function ‘_t64f_xlat_6to4__translate_udp_payload_and_send’:
src/t64_xlat_6to4.c:283:63: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
283 | memcpy(&new_udp_header, out_packet_data->payload_ptr, 8);
| ^
src/t64_xlat_6to4.c:288:124: warning: cast increases required alignment of target type [-Wcast-align]
288 | const uint16_t new_checksum = t64f_checksum__incrementally_recalculate_rfc1071_checksum_6to4(new_udp_header.check, (const struct ipv6hdr *) context->in_packet_buffer, &out_packet_data->ipv4_header);
| ^
src/t64_xlat_6to4.c:288:116: warning: passing argument 1 of ‘t64f_checksum__incrementally_recalculate_rfc1071_checksum_6to4’ with different width due to prototype [-Wtraditional-conversion]
288 | const uint16_t new_checksum = t64f_checksum__incrementally_recalculate_rfc1071_checksum_6to4(new_udp_header.check, (const struct ipv6hdr *) context->in_packet_buffer, &out_packet_data->ipv4_header);
| ~~~~~~~~~~~~~~^~~~~~
src/t64_xlat_6to4.c:293:48: warning: passing argument 4 of ‘_t64f_xlat_6to4__appropriately_send_ipv4_packet’ with different width due to prototype [-Wtraditional-conversion]
293 | (const uint8_t *) &new_udp_header, 8,
| ^
src/t64_xlat_6to4.c:299:19: warning: passing argument 4 of ‘_t64f_xlat_6to4__appropriately_send_ipv4_packet’ with different width due to prototype [-Wtraditional-conversion]
299 | NULL, 0,
| ^
src/t64_xlat_6to4.c: In function ‘_t64f_xlat_6to4__translate_generic_payload_and_send’:
src/t64_xlat_6to4.c:308:15: warning: passing argument 4 of ‘_t64f_xlat_6to4__appropriately_send_ipv4_packet’ with different width due to prototype [-Wtraditional-conversion]
308 | NULL, 0,
| ^
src/t64_xlat_6to4.c: In function ‘_t64f_xlat_6to4__appropriately_send_ipv4_packet’:
src/t64_utils_ip.h:35:96: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
35 | #define T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT(ipv4_header_ptr) (!!(ntohs((ipv4_header_ptr)->frag_off) & 0x2000))
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_xlat_6to4.c:322:37: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT’
322 | const uint16_t more_fragments = T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT(ipv4_header);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:36:90: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
36 | #define T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET(ipv4_header_ptr) (ntohs((ipv4_header_ptr)->frag_off) & 0x1fff)
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_xlat_6to4.c:323:38: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET’
323 | const uint16_t fragment_offset = T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET(ipv4_header);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:37:126: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
37 | #define T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD(dont_fragment, more_fragments, fragment_offset) (htons((uint16_t) ( (((uint16_t) (!!(dont_fragment))) << 14) | (((uint16_t) (!!(more_fragments))) << 13) | (((uint16_t) (fragment_offset)) & 0x1fff) )))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:326:33: note: in expansion of macro ‘T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD’
326 | ipv4_header->frag_off = T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD(0, more_fragments, fragment_offset);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/t64_xlat_6to4.c:25:
src/t64_utils.h:36:70: warning: passing argument 2 of ‘t64f_router_ipv6__send_icmpv6_packet_too_big_message_to_in_ipv6_packet_source_host’ with different width due to prototype [-Wtraditional-conversion]
36 | #define T64MM_UTILS__MAXIMUM(num1, num2) (((num1) > (num2)) ? (num1) : (num2))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
src/t64_xlat_6to4.c:348:17: note: in expansion of macro ‘T64MM_UTILS__MAXIMUM’
348 | T64MM_UTILS__MAXIMUM(1280, (uint16_t) (context->configuration->translator_ipv4_outbound_mtu + 20))
| ^~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:37:126: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
37 | #define T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD(dont_fragment, more_fragments, fragment_offset) (htons((uint16_t) ( (((uint16_t) (!!(dont_fragment))) << 14) | (((uint16_t) (!!(more_fragments))) << 13) | (((uint16_t) (fragment_offset)) & 0x1fff) )))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:351:37: note: in expansion of macro ‘T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD’
351 | ipv4_header->frag_off = T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD(1, more_fragments, fragment_offset);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c: In function ‘_t64f_xlat_6to4__fragment_and_send_ipv4_packet’:
src/t64_utils_ip.h:36:90: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
36 | #define T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET(ipv4_header_ptr) (ntohs((ipv4_header_ptr)->frag_off) & 0x1fff)
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_xlat_6to4.c:374:43: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET’
374 | size_t fragment_offset_8byte_chunks = T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET(ipv4_header);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:35:96: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
35 | #define T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT(ipv4_header_ptr) (!!(ntohs((ipv4_header_ptr)->frag_off) & 0x2000))
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_xlat_6to4.c:375:58: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT’
375 | const bool more_fragments_after_this_packet = (bool) T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT(ipv4_header);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:34:95: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
34 | #define T64M_UTILS_IP__GET_IPV4_DONT_FRAGMENT_BIT(ipv4_header_ptr) (!!(ntohs((ipv4_header_ptr)->frag_off) & 0x4000))
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_xlat_6to4.c:376:39: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_DONT_FRAGMENT_BIT’
376 | const bool dont_fragment = (bool) T64M_UTILS_IP__GET_IPV4_DONT_FRAGMENT_BIT(ipv4_header);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:386:39: warning: passing argument 6 of ‘_t64f_xlat_6to4__fragment_and_send_ipv4_packet_part’ with different width due to prototype [-Wtraditional-conversion]
386 | (payload2_size > 0 ? true : more_fragments_after_this_packet),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:387:13: warning: passing argument 7 of ‘_t64f_xlat_6to4__fragment_and_send_ipv4_packet_part’ with different width due to prototype [-Wtraditional-conversion]
387 | dont_fragment,
| ^~~~~~~~~~~~~
src/t64_xlat_6to4.c:400:13: warning: passing argument 6 of ‘_t64f_xlat_6to4__fragment_and_send_ipv4_packet_part’ with different width due to prototype [-Wtraditional-conversion]
400 | more_fragments_after_this_packet,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:401:13: warning: passing argument 7 of ‘_t64f_xlat_6to4__fragment_and_send_ipv4_packet_part’ with different width due to prototype [-Wtraditional-conversion]
401 | dont_fragment,
| ^~~~~~~~~~~~~
src/t64_xlat_6to4.c: In function ‘_t64f_xlat_6to4__fragment_and_send_ipv4_packet_part’:
src/t64_utils_ip.h:37:126: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
37 | #define T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD(dont_fragment, more_fragments, fragment_offset) (htons((uint16_t) ( (((uint16_t) (!!(dont_fragment))) << 14) | (((uint16_t) (!!(more_fragments))) << 13) | (((uint16_t) (fragment_offset)) & 0x1fff) )))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:426:39: note: in expansion of macro ‘T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD’
426 | ready_ipv4_header->frag_off = T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:432:128: warning: passing argument 6 of ‘t64f_xlat_io__send_ipv4_packet’ with different width due to prototype [-Wtraditional-conversion]
432 | t64f_xlat_io__send_ipv4_packet(context, ready_ipv4_header, current_payload_part_ptr, this_fragment_payload_size, NULL, 0);
| ^
src/t64_xlat_6to4.c: In function ‘_t64f_xlat_6to4__validate_and_translate_ip_header’:
src/t64_xlat_6to4.c:440:1: warning: assuming signed overflow does not occur when changing X +- C1 cmp C2 to X cmp C2 -+ C1 [-Wstrict-overflow]
440 | }
| ^
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_xlat_6to4_icmp.o -c src/t64_xlat_6to4_icmp.c
src/t64_xlat_6to4_icmp.c: In function ‘t64f_xlat_6to4_icmp__translate_icmpv6_to_icmpv4’:
src/t64_xlat_6to4_icmp.c:50:47: warning: cast increases required alignment of target type [-Wcast-align]
50 | const struct icmp6hdr *in_icmpv6_header = (const struct icmp6hdr *) in_packet_payload_ptr;
| ^
src/t64_xlat_6to4_icmp.c:51:41: warning: cast increases required alignment of target type [-Wcast-align]
51 | struct icmphdr *out_icmpv4_header = (struct icmphdr *) out_message_data->message_start_36b;
| ^
src/t64_xlat_6to4_icmp.c:57:25: warning: passing argument 1 of ‘_t64f_xlat_6to4_icmp__validate_and_translate_icmp_type_and_code’ with different width due to prototype [-Wtraditional-conversion]
57 | in_icmpv6_header->icmp6_type,
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:58:25: warning: passing argument 2 of ‘_t64f_xlat_6to4_icmp__validate_and_translate_icmp_type_and_code’ with different width due to prototype [-Wtraditional-conversion]
58 | in_icmpv6_header->icmp6_code,
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:67:25: warning: passing argument 2 of ‘_t64f_xlat_6to4_icmp__validate_and_translate_rest_of_header’ with different width due to prototype [-Wtraditional-conversion]
67 | in_icmpv6_header->icmp6_type,
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:68:25: warning: passing argument 3 of ‘_t64f_xlat_6to4_icmp__validate_and_translate_rest_of_header’ with different width due to prototype [-Wtraditional-conversion]
68 | in_icmpv6_header->icmp6_code,
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:89:13: warning: passing argument 6 of ‘_t64f_xlat_6to4_icmp__validate_and_translate_ip_header_of_packet_in_error’ with different width due to prototype [-Wtraditional-conversion]
89 | (bool) (in_icmpv6_header->icmp6_type == 2) // "Packet too big" -> "Fragmentation Needed and DF was Set" (it literally says that DF must be set)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:100:70: warning: cast increases required alignment of target type [-Wcast-align]
100 | struct icmphdr *new_icmpv4_packet_in_error_payload_ptr = (struct icmphdr *) (out_message_data->message_start_36b + 28);
| ^
src/t64_xlat_6to4_icmp.c:101:98: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
101 | memcpy(new_icmpv4_packet_in_error_payload_ptr, out_packet_in_error_data.payload_ptr, 4);
| ^
src/t64_xlat_6to4_icmp.c:127:100: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
127 | memcpy(out_message_data->message_start_36b + 28, out_packet_in_error_data.payload_ptr, 4);
| ^
src/t64_xlat_6to4_icmp.c: In function ‘_t64f_xlat_6to4_icmp__validate_and_translate_rest_of_header’:
src/t64_xlat_6to4_icmp.c:259:70: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
259 | memcpy(new_icmpv4_rest_of_header, old_icmpv6_rest_of_header, 4);
| ^
In file included from src/t64_xlat_6to4_icmp.c:25:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_xlat_6to4_icmp.c:265:13: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
265 | if(!T64M_UTILS__MEMORY_EQUAL(old_icmpv6_rest_of_header, "\x00\x00", 2))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:33:69: warning: passing argument 3 of ‘memset’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~
src/t64_xlat_6to4_icmp.c:267:9: note: in expansion of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
267 | T64M_UTILS__MEMORY_ZERO_OUT(new_icmpv4_rest_of_header, 2);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/arpa/inet.h:22,
from src/t64_tundra_includes.h:48,
from src/t64_tundra.h:49,
from src/t64_xlat_6to4_icmp.c:22:
src/t64_xlat_6to4_icmp.c:269:42: warning: cast increases required alignment of target type [-Wcast-align]
269 | const uint16_t old_mtu = ntohs(*((const uint16_t *) (old_icmpv6_rest_of_header + 2)));
| ^
src/t64_xlat_6to4_icmp.c:269:40: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
269 | const uint16_t old_mtu = ntohs(*((const uint16_t *) (old_icmpv6_rest_of_header + 2)));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:270:96: warning: passing argument 2 of ‘_t64f_xlat_6to4_icmp__recalculate_packet_too_big_mtu’ with different width due to prototype [-Wtraditional-conversion]
270 | const uint16_t new_mtu = _t64f_xlat_6to4_icmp__recalculate_packet_too_big_mtu(context, old_mtu);
| ^~~~~~~
src/t64_xlat_6to4_icmp.c:271:11: warning: cast increases required alignment of target type [-Wcast-align]
271 | *((uint16_t *) (new_icmpv4_rest_of_header + 2)) = htons(new_mtu);
| ^
src/t64_xlat_6to4_icmp.c:271:65: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
271 | *((uint16_t *) (new_icmpv4_rest_of_header + 2)) = htons(new_mtu);
| ^~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_xlat_6to4_icmp.c:279:17: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
279 | if(!T64M_UTILS__MEMORY_EQUAL(old_icmpv6_rest_of_header, "\x00\x00\x00", 3))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:33:69: warning: passing argument 3 of ‘memset’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~
src/t64_xlat_6to4_icmp.c:281:13: note: in expansion of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
281 | T64M_UTILS__MEMORY_ZERO_OUT(new_icmpv4_rest_of_header + 1, 3);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:283:103: warning: passing argument 1 of ‘_t64f_xlat_6to4_icmp__translate_parameter_problem_pointer’ with different width due to prototype [-Wtraditional-conversion]
283 | return _t64f_xlat_6to4_icmp__translate_parameter_problem_pointer(old_icmpv6_rest_of_header[3], new_icmpv4_rest_of_header);
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
src/t64_utils.h:33:69: warning: passing argument 3 of ‘memset’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~
src/t64_xlat_6to4_icmp.c:287:9: note: in expansion of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
287 | T64M_UTILS__MEMORY_ZERO_OUT(new_icmpv4_rest_of_header, 4);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_xlat_6to4_icmp.c:292:9: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
292 | if(!T64M_UTILS__MEMORY_EQUAL(old_icmpv6_rest_of_header, "\x00\x00\x00\x00", 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:33:69: warning: passing argument 3 of ‘memset’ with different width due to prototype [-Wtraditional-conversion]
33 | #define T64M_UTILS__MEMORY_ZERO_OUT(memory, n) (memset((memory), 0, (n)))
| ^~~
src/t64_xlat_6to4_icmp.c:295:5: note: in expansion of macro ‘T64M_UTILS__MEMORY_ZERO_OUT’
295 | T64M_UTILS__MEMORY_ZERO_OUT(new_icmpv4_rest_of_header, 4);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c: In function ‘_t64f_xlat_6to4_icmp__recalculate_packet_too_big_mtu’:
src/t64_utils.h:35:42: warning: conversion from ‘int’ to ‘uint16_t’ {aka ‘short unsigned int’} may change value [-Wconversion]
35 | #define T64MM_UTILS__MINIMUM(num1, num2) (((num1) > (num2)) ? (num2) : (num1))
| ^
src/t64_xlat_6to4_icmp.c:305:11: note: in expansion of macro ‘T64MM_UTILS__MINIMUM’
305 | mtu = T64MM_UTILS__MINIMUM(mtu - 20, (uint16_t) context->configuration->translator_ipv4_outbound_mtu);
| ^~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:35:42: warning: conversion from ‘int’ to ‘uint16_t’ {aka ‘short unsigned int’} may change value [-Warith-conversion]
35 | #define T64MM_UTILS__MINIMUM(num1, num2) (((num1) > (num2)) ? (num2) : (num1))
| ^
src/t64_xlat_6to4_icmp.c:306:11: note: in expansion of macro ‘T64MM_UTILS__MINIMUM’
306 | mtu = T64MM_UTILS__MINIMUM(mtu, ((uint16_t) context->configuration->translator_ipv6_outbound_mtu) - 20);
| ^~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c: In function ‘_t64f_xlat_6to4_icmp__validate_and_translate_ip_header_of_packet_in_error’:
src/t64_xlat_6to4_icmp.c:353:44: warning: cast increases required alignment of target type [-Wcast-align]
353 | const struct ipv6hdr *in_ipv6_header = (const struct ipv6hdr *) in_icmpv6_payload_ptr;
| ^
src/t64_xlat_6to4_icmp.c:354:37: warning: cast increases required alignment of target type [-Wcast-align]
354 | struct iphdr *out_ipv4_header = (struct iphdr *) out_packet_in_error_buffer_28b;
| ^
src/t64_xlat_6to4_icmp.c:363:58: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
363 | out_ipv4_header->tot_len = htons(ntohs(in_ipv6_header->payload_len) + 20);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:363:73: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
363 | out_ipv4_header->tot_len = htons(ntohs(in_ipv6_header->payload_len) + 20);
| ^
src/t64_xlat_6to4_icmp.c:363:73: warning: conversion from ‘int’ to ‘__uint16_t’ {aka ‘short unsigned int’} may change value [-Warith-conversion]
src/t64_utils_ip.h:42:120: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
42 | #define T64M_UTILS_IP__GET_IPV6_FRAGMENT_MORE_FRAGMENTS_BIT(ipv6_fragment_header_ptr) (ntohs((ipv6_fragment_header_ptr)->offset_and_flags) & 0x1)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:397:41: note: in expansion of macro ‘T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD’
397 | out_ipv4_header->frag_off = T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:399:17: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV6_FRAGMENT_MORE_FRAGMENTS_BIT’
399 | T64M_UTILS_IP__GET_IPV6_FRAGMENT_MORE_FRAGMENTS_BIT(ipv6_fragment_header_ptr),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:40:108: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
40 | #define T64M_UTILS_IP__GET_IPV6_FRAGMENT_OFFSET(ipv6_fragment_header_ptr) (ntohs((ipv6_fragment_header_ptr)->offset_and_flags) >> 3)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:397:41: note: in expansion of macro ‘T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD’
397 | out_ipv4_header->frag_off = T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:400:17: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV6_FRAGMENT_OFFSET’
400 | T64M_UTILS_IP__GET_IPV6_FRAGMENT_OFFSET(ipv6_fragment_header_ptr)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:37:126: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
37 | #define T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD(dont_fragment, more_fragments, fragment_offset) (htons((uint16_t) ( (((uint16_t) (!!(dont_fragment))) << 14) | (((uint16_t) (!!(more_fragments))) << 13) | (((uint16_t) (fragment_offset)) & 0x1fff) )))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:397:41: note: in expansion of macro ‘T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD’
397 | out_ipv4_header->frag_off = T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:37:126: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
37 | #define T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD(dont_fragment, more_fragments, fragment_offset) (htons((uint16_t) ( (((uint16_t) (!!(dont_fragment))) << 14) | (((uint16_t) (!!(more_fragments))) << 13) | (((uint16_t) (fragment_offset)) & 0x1fff) )))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:404:41: note: in expansion of macro ‘T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD’
404 | out_ipv4_header->frag_off = T64M_UTILS_IP__CONSTRUCT_IPV4_FRAGMENT_OFFSET_AND_FLAGS_FIELD((uint16_t) dont_fragment, 0, 0);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:36:90: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
36 | #define T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET(ipv4_header_ptr) (ntohs((ipv4_header_ptr)->frag_off) & 0x1fff)
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_utils_ip.h:38:69: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET’
38 | #define T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(ipv4_header_ptr) (T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET((ipv4_header_ptr)) != 0 || T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT((ipv4_header_ptr)) != 0)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:423:52: note: in expansion of macro ‘T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED’
423 | out_packet_in_error_data->is_fragment = (bool) T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(out_ipv4_header);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils_ip.h:35:96: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
35 | #define T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT(ipv4_header_ptr) (!!(ntohs((ipv4_header_ptr)->frag_off) & 0x2000))
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~
src/t64_utils_ip.h:38:136: note: in expansion of macro ‘T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT’
38 | #define T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(ipv4_header_ptr) (T64M_UTILS_IP__GET_IPV4_FRAGMENT_OFFSET((ipv4_header_ptr)) != 0 || T64M_UTILS_IP__GET_IPV4_MORE_FRAGMENTS_BIT((ipv4_header_ptr)) != 0)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:423:52: note: in expansion of macro ‘T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED’
423 | out_packet_in_error_data->is_fragment = (bool) T64MM_UTILS_IP__IS_IPV4_PACKET_FRAGMENTED(out_ipv4_header);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:426:1: warning: assuming signed overflow does not occur when changing X +- C1 cmp C2 to X cmp C2 -+ C1 [-Wstrict-overflow]
426 | }
| ^
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_xlat_addr.o -c src/t64_xlat_addr.c
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_xlat_addr_clat.o -c src/t64_xlat_addr_clat.c
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_xlat_addr_external.o -c src/t64_xlat_addr_external.c
src/t64_xlat_addr_external.c: In function ‘t64f_xlat_addr_external__perform_4to6_address_translation_for_main_packet’:
src/t64_xlat_addr_external.c:39:65: warning: passing argument 2 of ‘_t64f_xlat_addr_external__perform_external_address_translation’ with different width due to prototype [-Wtraditional-conversion]
39 | #define _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_4TO6_MAIN_PACKET ((uint8_t) 1)
| ^~~~~~~~~~~~~
src/t64_xlat_addr_external.c:71:81: note: in expansion of macro ‘_T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_4TO6_MAIN_PACKET’
71 | if(!_t64f_xlat_addr_external__perform_external_address_translation(context, _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_4TO6_MAIN_PACKET, in_src_ipv4, in_dst_ipv4, out_src_ipv6, out_dst_ipv6, &cache_lifetime))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c: In function ‘t64f_xlat_addr_external__perform_4to6_address_translation_for_icmp_error_packet’:
src/t64_xlat_addr_external.c:40:71: warning: passing argument 2 of ‘_t64f_xlat_addr_external__perform_external_address_translation’ with different width due to prototype [-Wtraditional-conversion]
40 | #define _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_4TO6_ICMP_ERROR_PACKET ((uint8_t) 2)
| ^~~~~~~~~~~~~
src/t64_xlat_addr_external.c:92:81: note: in expansion of macro ‘_T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_4TO6_ICMP_ERROR_PACKET’
92 | if(!_t64f_xlat_addr_external__perform_external_address_translation(context, _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_4TO6_ICMP_ERROR_PACKET, in_src_ipv4, in_dst_ipv4, out_src_ipv6, out_dst_ipv6, &cache_lifetime))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c: In function ‘t64f_xlat_addr_external__perform_6to4_address_translation_for_main_packet’:
src/t64_xlat_addr_external.c:41:65: warning: passing argument 2 of ‘_t64f_xlat_addr_external__perform_external_address_translation’ with different width due to prototype [-Wtraditional-conversion]
41 | #define _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_6TO4_MAIN_PACKET ((uint8_t) 3)
| ^~~~~~~~~~~~~
src/t64_xlat_addr_external.c:113:81: note: in expansion of macro ‘_T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_6TO4_MAIN_PACKET’
113 | if(!_t64f_xlat_addr_external__perform_external_address_translation(context, _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_6TO4_MAIN_PACKET, in_src_ipv6, in_dst_ipv6, out_src_ipv4, out_dst_ipv4, &cache_lifetime))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c: In function ‘t64f_xlat_addr_external__perform_6to4_address_translation_for_icmp_error_packet’:
src/t64_xlat_addr_external.c:42:71: warning: passing argument 2 of ‘_t64f_xlat_addr_external__perform_external_address_translation’ with different width due to prototype [-Wtraditional-conversion]
42 | #define _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_6TO4_ICMP_ERROR_PACKET ((uint8_t) 4)
| ^~~~~~~~~~~~~
src/t64_xlat_addr_external.c:134:81: note: in expansion of macro ‘_T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_6TO4_ICMP_ERROR_PACKET’
134 | if(!_t64f_xlat_addr_external__perform_external_address_translation(context, _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_6TO4_ICMP_ERROR_PACKET, in_src_ipv6, in_dst_ipv6, out_src_ipv4, out_dst_ipv4, &cache_lifetime))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c: In function ‘_t64f_xlat_addr_external__perform_external_address_translation’:
src/t64_xlat_addr_external.c:156:116: warning: passing argument 3 of ‘_t64f_xlat_addr_external__construct_and_send_request_message_to_external_translation_fd’ with different width due to prototype [-Wtraditional-conversion]
156 | if(!_t64f_xlat_addr_external__construct_and_send_request_message_to_external_translation_fd(context, &message, message_type, message_identifier, in_src_ip, in_dst_ip))
| ^~~~~~~~~~~~
src/t64_xlat_addr_external.c:159:121: warning: passing argument 3 of ‘_t64f_xlat_addr_external__receive_and_parse_response_message_from_external_translation_fd’ with different width due to prototype [-Wtraditional-conversion]
159 | return _t64f_xlat_addr_external__receive_and_parse_response_message_from_external_translation_fd(context, &message, message_type, message_identifier, out_src_ip, out_dst_ip, out_cache_lifetime);
| ^~~~~~~~~~~~
In file included from src/t64_xlat_addr_external.c:25:
src/t64_xlat_addr_external.c: In function ‘_t64f_xlat_addr_external__construct_and_send_request_message_to_external_translation_fd’:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:29:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
29 | #define T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address1, ipv4_address2) (T64M_UTILS__MEMORY_EQUAL((ipv4_address1), (ipv4_address2), 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:173:71: note: in expansion of macro ‘T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL’
173 | t64f_utils_ip__is_ipv4_address_unusable(in_src_ip) || T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(in_src_ip, context->configuration->router_ipv4) ||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:29:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
29 | #define T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address1, ipv4_address2) (T64M_UTILS__MEMORY_EQUAL((ipv4_address1), (ipv4_address2), 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:174:71: note: in expansion of macro ‘T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL’
174 | t64f_utils_ip__is_ipv4_address_unusable(in_dst_ip) || T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(in_dst_ip, context->configuration->router_ipv4)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:179:52: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
179 | memcpy(message_buf->src_ip, in_src_ip, 4);
| ^
src/t64_xlat_addr_external.c:180:52: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
180 | memcpy(message_buf->dst_ip, in_dst_ip, 4);
| ^
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:30:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
30 | #define T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address1, ipv6_address2) (T64M_UTILS__MEMORY_EQUAL((ipv6_address1), (ipv6_address2), 16))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:185:71: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL’
185 | t64f_utils_ip__is_ipv6_address_unusable(in_src_ip) || T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(in_src_ip, context->configuration->router_ipv6) ||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:30:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
30 | #define T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address1, ipv6_address2) (T64M_UTILS__MEMORY_EQUAL((ipv6_address1), (ipv6_address2), 16))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:186:71: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL’
186 | t64f_utils_ip__is_ipv6_address_unusable(in_dst_ip) || T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(in_dst_ip, context->configuration->router_ipv6)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:191:52: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
191 | memcpy(message_buf->src_ip, in_src_ip, 16);
| ^~
src/t64_xlat_addr_external.c:192:52: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
192 | memcpy(message_buf->dst_ip, in_dst_ip, 16);
| ^~
src/t64_xlat_addr_external.c: In function ‘_t64f_xlat_addr_external__receive_and_parse_response_message_from_external_translation_fd’:
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:30:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
30 | #define T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address1, ipv6_address2) (T64M_UTILS__MEMORY_EQUAL((ipv6_address1), (ipv6_address2), 16))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:251:85: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL’
251 | t64f_utils_ip__is_ipv6_address_unusable(message_buf->src_ip) || T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(message_buf->src_ip, context->configuration->router_ipv6) ||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:30:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
30 | #define T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address1, ipv6_address2) (T64M_UTILS__MEMORY_EQUAL((ipv6_address1), (ipv6_address2), 16))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:252:85: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL’
252 | t64f_utils_ip__is_ipv6_address_unusable(message_buf->dst_ip) || T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(message_buf->dst_ip, context->configuration->router_ipv6)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:257:57: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
257 | memcpy(out_src_ip, message_buf->src_ip, 16);
| ^~
src/t64_xlat_addr_external.c:258:57: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
258 | memcpy(out_dst_ip, message_buf->dst_ip, 16);
| ^~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:29:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
29 | #define T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address1, ipv4_address2) (T64M_UTILS__MEMORY_EQUAL((ipv4_address1), (ipv4_address2), 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:263:85: note: in expansion of macro ‘T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL’
263 | t64f_utils_ip__is_ipv4_address_unusable(message_buf->src_ip) || T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(message_buf->src_ip, context->configuration->router_ipv4) ||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:29:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
29 | #define T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address1, ipv4_address2) (T64M_UTILS__MEMORY_EQUAL((ipv4_address1), (ipv4_address2), 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:264:85: note: in expansion of macro ‘T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL’
264 | t64f_utils_ip__is_ipv4_address_unusable(message_buf->dst_ip) || T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(message_buf->dst_ip, context->configuration->router_ipv4)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_xlat_addr_external.c:269:21: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
269 | if(!T64M_UTILS__MEMORY_EQUAL(((uint8_t *) message_buf->src_ip) + 4, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 12) || !T64M_UTILS__MEMORY_EQUAL(((uint8_t *) message_buf->dst_ip) + 4, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 12)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_xlat_addr_external.c:269:145: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
269 | if(!T64M_UTILS__MEMORY_EQUAL(((uint8_t *) message_buf->src_ip) + 4, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 12) || !T64M_UTILS__MEMORY_EQUAL(((uint8_t *) message_buf->dst_ip) + 4, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 12)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:273:57: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
273 | memcpy(out_src_ip, message_buf->src_ip, 4);
| ^
src/t64_xlat_addr_external.c:274:57: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
274 | memcpy(out_dst_ip, message_buf->dst_ip, 4);
| ^
src/t64_xlat_addr_external.c: In function ‘_t64f_xlat_addr_external__ensure_external_translation_fds_are_open’:
src/t64_xlat_addr_external.c:301:56: warning: passing argument 2 of ‘t64f_log__thread_crash’ with different width due to prototype [-Wtraditional-conversion]
301 | t64f_log__thread_crash(context->thread_id, false, "At least one of the inherited file descriptors for the '"T64C_CONF_FILE__ADDRESSING_EXTERNAL_TRANSPORT_INHERITED_FDS"' transport of the '"T64C_CONF_FILE__ADDRESSING_MODE_EXTERNAL"' addressing mode failed!");
| ^~~~~
src/t64_xlat_addr_external.c:297:5: warning: enumeration value ‘T64TE_TUNDRA__ADDRESSING_EXTERNAL_TRANSPORT_NONE’ not handled in switch [-Wswitch-enum]
297 | switch(context->configuration->addressing_external_transport) {
| ^~~~~~
src/t64_xlat_addr_external.c: In function ‘_t64f_xlat_addr_external__open_external_translation_socket’:
src/t64_xlat_addr_external.c:345:75: warning: passing argument 4 of ‘t64f_xlat_interrupt__connect’ with different width due to prototype [-Wtraditional-conversion]
345 | (t64f_xlat_interrupt__connect(socket_fd, address, address_length, true) < 0) ||
| ^~~~
src/t64_xlat_addr_external.c:346:66: warning: passing argument 5 of ‘setsockopt’ with different width due to prototype [-Wtraditional-conversion]
346 | (setsockopt(socket_fd, SOL_SOCKET, SO_RCVTIMEO, timeout, sizeof(struct timeval)) < 0) ||
| ^~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:347:66: warning: passing argument 5 of ‘setsockopt’ with different width due to prototype [-Wtraditional-conversion]
347 | (setsockopt(socket_fd, SOL_SOCKET, SO_SNDTIMEO, timeout, sizeof(struct timeval)) < 0)
| ^~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c: In function ‘_t64f_xlat_addr_external__attempt_to_perform_4to6_address_translation_using_cache’:
src/t64_xlat_addr_external.c:399:152: warning: cast increases required alignment of target type [-Wcast-align]
399 | const t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv4_address_pair((const uint32_t *) in_src_ipv4, (const uint32_t *) in_dst_ipv4, cache_size));
| ^
src/t64_xlat_addr_external.c:399:184: warning: cast increases required alignment of target type [-Wcast-align]
399 | const t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv4_address_pair((const uint32_t *) in_src_ipv4, (const uint32_t *) in_dst_ipv4, cache_size));
| ^
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:29:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
29 | #define T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address1, ipv4_address2) (T64M_UTILS__MEMORY_EQUAL((ipv4_address1), (ipv4_address2), 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:402:10: note: in expansion of macro ‘T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL’
402 | !T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(in_src_ipv4, target_entry->src_ipv4) ||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:29:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
29 | #define T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(ipv4_address1, ipv4_address2) (T64M_UTILS__MEMORY_EQUAL((ipv4_address1), (ipv4_address2), 4))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:403:10: note: in expansion of macro ‘T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL’
403 | !T64M_UTILS_IP__IPV4_ADDRESSES_EQUAL(in_dst_ipv4, target_entry->dst_ipv4) ||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:411:50: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
411 | memcpy(out_src_ipv6, target_entry->src_ipv6, 16);
| ^~
src/t64_xlat_addr_external.c:412:50: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
412 | memcpy(out_dst_ipv6, target_entry->dst_ipv6, 16);
| ^~
src/t64_xlat_addr_external.c: In function ‘_t64f_xlat_addr_external__attempt_to_perform_6to4_address_translation_using_cache’:
src/t64_xlat_addr_external.c:422:152: warning: cast increases required alignment of target type [-Wcast-align]
422 | const t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv6_address_pair((const uint64_t *) in_src_ipv6, (const uint64_t *) in_dst_ipv6, cache_size));
| ^
src/t64_xlat_addr_external.c:422:184: warning: cast increases required alignment of target type [-Wcast-align]
422 | const t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv6_address_pair((const uint64_t *) in_src_ipv6, (const uint64_t *) in_dst_ipv6, cache_size));
| ^
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:30:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
30 | #define T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address1, ipv6_address2) (T64M_UTILS__MEMORY_EQUAL((ipv6_address1), (ipv6_address2), 16))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:425:10: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL’
425 | !T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(in_src_ipv6, target_entry->src_ipv6) ||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_utils.h:32:73: warning: passing argument 3 of ‘memcmp’ with different width due to prototype [-Wtraditional-conversion]
32 | #define T64M_UTILS__MEMORY_EQUAL(ptr1, ptr2, n) (memcmp((ptr1), (ptr2), (n)) == 0)
| ^~~
src/t64_utils_ip.h:30:76: note: in expansion of macro ‘T64M_UTILS__MEMORY_EQUAL’
30 | #define T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(ipv6_address1, ipv6_address2) (T64M_UTILS__MEMORY_EQUAL((ipv6_address1), (ipv6_address2), 16))
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:426:10: note: in expansion of macro ‘T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL’
426 | !T64M_UTILS_IP__IPV6_ADDRESSES_EQUAL(in_dst_ipv6, target_entry->dst_ipv6) ||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:434:50: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
434 | memcpy(out_src_ipv4, target_entry->src_ipv4, 4);
| ^
src/t64_xlat_addr_external.c:435:50: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
435 | memcpy(out_dst_ipv4, target_entry->dst_ipv4, 4);
| ^
src/t64_xlat_addr_external.c: In function ‘_t64f_xlat_addr_external__save_4to6_address_mapping_to_cache’:
src/t64_xlat_addr_external.c:445:146: warning: cast increases required alignment of target type [-Wcast-align]
445 | t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv4_address_pair((const uint32_t *) in_src_ipv4, (const uint32_t *) in_dst_ipv4, cache_size));
| ^
src/t64_xlat_addr_external.c:445:178: warning: cast increases required alignment of target type [-Wcast-align]
445 | t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv4_address_pair((const uint32_t *) in_src_ipv4, (const uint32_t *) in_dst_ipv4, cache_size));
| ^
src/t64_xlat_addr_external.c: In function ‘_t64f_xlat_addr_external__save_6to4_address_mapping_to_cache’:
src/t64_xlat_addr_external.c:455:146: warning: cast increases required alignment of target type [-Wcast-align]
455 | t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv6_address_pair((const uint64_t *) in_src_ipv6, (const uint64_t *) in_dst_ipv6, cache_size));
| ^
src/t64_xlat_addr_external.c:455:178: warning: cast increases required alignment of target type [-Wcast-align]
455 | t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv6_address_pair((const uint64_t *) in_src_ipv6, (const uint64_t *) in_dst_ipv6, cache_size));
| ^
src/t64_xlat_addr_external.c: In function ‘_t64f_xlat_addr_external__save_address_mapping_to_target_cache_entry’:
src/t64_xlat_addr_external.c:470:46: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
470 | memcpy(target_entry->src_ipv4, src_ipv4, 4);
| ^
src/t64_xlat_addr_external.c:471:46: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
471 | memcpy(target_entry->dst_ipv4, dst_ipv4, 4);
| ^
src/t64_xlat_addr_external.c:472:46: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
472 | memcpy(target_entry->src_ipv6, src_ipv6, 16);
| ^~
src/t64_xlat_addr_external.c:473:46: warning: passing argument 3 of ‘memcpy’ with different width due to prototype [-Wtraditional-conversion]
473 | memcpy(target_entry->dst_ipv6, dst_ipv6, 16);
| ^~
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_xlat_addr_nat64.o -c src/t64_xlat_addr_nat64.c
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_xlat_addr_siit.o -c src/t64_xlat_addr_siit.c
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_xlat.o -c src/t64_xlat.c
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_xlat_interrupt.o -c src/t64_xlat_interrupt.c
cc -MD -MP -std=c11 -Wall -Wextra -Wpedantic -fanalyzer -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -O3 -flto -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -D_FORTIFY_SOURCE=3 -o src/t64_xlat_io.o -c src/t64_xlat_io.c
src/t64_xlat_io.c: In function ‘t64f_xlat_io__receive_packet_into_in_packet_buffer’:
src/t64_xlat_io.c:38:52: warning: passing argument 2 of ‘t64f_log__thread_crash’ with different width due to prototype [-Wtraditional-conversion]
38 | t64f_log__thread_crash(context->thread_id, true, "An error occurred while receiving a packet!");
| ^~~~
src/t64_xlat_io.c:41:52: warning: passing argument 2 of ‘t64f_log__thread_crash’ with different width due to prototype [-Wtraditional-conversion]
41 | t64f_log__thread_crash(context->thread_id, false, "An end-of-file occurred while receiving a packet!");
| ^~~~~
src/t64_xlat_io.c: In function ‘t64f_xlat_io__send_ipv4_packet’:
src/t64_xlat_io.c:58:32: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
58 | iov[iovcnt].iov_base = (void *) nullable_payload1_ptr;
| ^
src/t64_xlat_io.c:64:32: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
64 | iov[iovcnt].iov_base = (void *) nullable_payload2_ptr;
| ^
In file included from /usr/include/arpa/inet.h:22,
from src/t64_tundra_includes.h:48,
from src/t64_tundra.h:49,
from src/t64_xlat_io.c:22:
src/t64_xlat_io.c:73:34: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
73 | ipv4_header->tot_len = htons((uint16_t) total_packet_size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_io.c: In function ‘t64f_xlat_io__send_ipv6_packet’:
src/t64_xlat_io.c:93:32: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
93 | iov[iovcnt].iov_base = (void *) nullable_ipv6_fragment_header;
| ^
src/t64_xlat_io.c:99:32: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
99 | iov[iovcnt].iov_base = (void *) nullable_payload1_ptr;
| ^
src/t64_xlat_io.c:105:32: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
105 | iov[iovcnt].iov_base = (void *) nullable_payload2_ptr;
| ^
src/t64_xlat_io.c:114:38: warning: passing argument 1 of ‘__bswap_16’ with different width due to prototype [-Wtraditional-conversion]
114 | ipv6_header->payload_len = htons((uint16_t) (total_packet_size - 40));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_io.c: In function ‘_t64f_xlat_io__send_packet’:
src/t64_xlat_io.c:124:52: warning: passing argument 2 of ‘t64f_log__thread_crash’ with different width due to prototype [-Wtraditional-conversion]
124 | t64f_log__thread_crash(context->thread_id, true, "An error occurred while sending a packet!");
| ^~~~
src/t64_xlat_io.c:127:52: warning: passing argument 2 of ‘t64f_log__thread_crash’ with different width due to prototype [-Wtraditional-conversion]
127 | t64f_log__thread_crash(context->thread_id, false, "Only a part of the packet could be sent out (sent = %zu, total packet size = %zu)!", (size_t) ret_value, total_packet_size);
| ^~~~~
cc -O3 -flto -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -Wl,-z,separate-code -pthread -fstack-protector-strong -fstack-clash-protection -fPIE -fsanitize=bounds -fsanitize-undefined-trap-on-error -o tundra-nat64 src/t64_checksum.o src/t64_conf_cmdline.o src/t64_conf_file.o src/t64_conf_file_load.o src/t64_conf_rfc7050.o src/t64_init.o src/t64_init_io.o src/t64_log.o src/t64_main.o src/t64_opmode_mktun.o src/t64_opmode_print_config.o src/t64_opmode_rmtun.o src/t64_opmode_translate.o src/t64_opmode_validate_config.o src/t64_router_ipv4.o src/t64_router_ipv6.o src/t64_signal.o src/t64_utils.o src/t64_utils_ip.o src/t64_utils_xlat_addr.o src/t64_xlat_4to6.o src/t64_xlat_4to6_icmp.o src/t64_xlat_6to4.o src/t64_xlat_6to4_icmp.o src/t64_xlat_addr.o src/t64_xlat_addr_clat.o src/t64_xlat_addr_external.o src/t64_xlat_addr_nat64.o src/t64_xlat_addr_siit.o src/t64_xlat.o src/t64_xlat_interrupt.o src/t64_xlat_io.o
rm src/*.o
rm src/*.d
rm *.8
rm: cannot remove '*.8': No such file or directory
make: [Makefile:47: clean] Error 1 (ignored)
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_checksum.o -c src/t64_checksum.c
In file included from src/t64_checksum.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_checksum.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_checksum.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_checksum.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_checksum.c:23:
src/t64_checksum.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CHECKSUM_H
^
In file included from src/t64_checksum.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
src/t64_checksum.c:28:17: warning: identifier '_t64f_checksum__sum_ipv4_pseudo_header' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static uint32_t _t64f_checksum__sum_ipv4_pseudo_header(const struct iphdr *ipv4_header, const size_t transport_header_and_data_length);
^
src/t64_checksum.c:29:17: warning: identifier '_t64f_checksum__sum_ipv6_pseudo_header' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static uint32_t _t64f_checksum__sum_ipv6_pseudo_header(const struct ipv6hdr *ipv6_header, const uint8_t carried_protocol, const size_t transport_header_and_data_length);
^
src/t64_checksum.c:30:17: warning: identifier '_t64f_checksum__sum_16bit_words' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static uint32_t _t64f_checksum__sum_16bit_words(const uint8_t *bytes, size_t length);
^
src/t64_checksum.c:31:17: warning: identifier '_t64f_checksum__pack_into_16bits' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static uint16_t _t64f_checksum__pack_into_16bits(uint32_t packed_32bit_number);
^
src/t64_checksum.c:116:62: warning: cast from 'volatile struct (unnamed at src/t64_checksum.c:102:14) *' to 'const unsigned char *' drops volatile qualifier [-Wcast-qual]
return _t64f_checksum__sum_16bit_words((const uint8_t *) &ipv4_pseudo_header, sizeof(ipv4_pseudo_header));
^
src/t64_checksum.c:130:21: warning: cast from 'volatile unsigned char *' to 'void *' drops volatile qualifier [-Wcast-qual]
memcpy((void *) ipv6_pseudo_header.source_address, ipv6_header->saddr.s6_addr, 16);
^
src/t64_checksum.c:131:21: warning: cast from 'volatile unsigned char *' to 'void *' drops volatile qualifier [-Wcast-qual]
memcpy((void *) ipv6_pseudo_header.destination_address, ipv6_header->daddr.s6_addr, 16);
^
src/t64_checksum.c:133:42: warning: cast from 'volatile unsigned char *' to 'void *' drops volatile qualifier [-Wcast-qual]
T64M_UTILS__MEMORY_ZERO_OUT((void *) ipv6_pseudo_header.zeroes, 3);
^
src/t64_checksum.c:136:62: warning: cast from 'volatile struct (unnamed at src/t64_checksum.c:122:14) *' to 'const unsigned char *' drops volatile qualifier [-Wcast-qual]
return _t64f_checksum__sum_16bit_words((const uint8_t *) &ipv6_pseudo_header, sizeof(ipv6_pseudo_header));
^
src/t64_checksum.c:143:18: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const uint16_t *' (aka 'const unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
sum += *((const uint16_t *) bytes);
^~~~~~~~~~~~~~~~~~~~~~~~
16 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_conf_cmdline.o -c src/t64_conf_cmdline.c
In file included from src/t64_conf_cmdline.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_conf_cmdline.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_conf_cmdline.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_conf_cmdline.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_conf_cmdline.c:23:
src/t64_conf_cmdline.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_CMDLINE_H
^
In file included from src/t64_conf_cmdline.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_conf_cmdline.c:26:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
In file included from src/t64_conf_cmdline.c:27:
src/t64_conf_file.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_FILE_H
^
src/t64_conf_cmdline.c:30:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_CONF_CMDLINE__HELP_FORMAT_STRING "\
^
src/t64_conf_cmdline.c:72:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_CONF_CMDLINE__LICENSE_STRING "\
^
src/t64_conf_cmdline.c:95:13: warning: identifier '_t64f_conf_cmdline__parse_cmdline_options' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_conf_cmdline__parse_cmdline_options(t64ts_tundra__conf_cmdline *cmdline_configuration, int argc, char **argv);
^
src/t64_conf_cmdline.c:96:13: warning: identifier '_t64f_conf_cmdline__parse_cmdline_arguments' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_conf_cmdline__parse_cmdline_arguments(t64ts_tundra__conf_cmdline *cmdline_configuration, int argc, char **argv);
^
src/t64_conf_cmdline.c:97:22: warning: identifier '_t64f_conf_cmdline__print_help_and_exit' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static noreturn void _t64f_conf_cmdline__print_help_and_exit(const char *argv_0);
^
src/t64_conf_cmdline.c:98:22: warning: identifier '_t64f_conf_cmdline__print_version_and_exit' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static noreturn void _t64f_conf_cmdline__print_version_and_exit(void);
^
src/t64_conf_cmdline.c:99:22: warning: identifier '_t64f_conf_cmdline__print_license_and_exit' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static noreturn void _t64f_conf_cmdline__print_license_and_exit(void);
^
src/t64_conf_cmdline.c:100:37: warning: identifier '_t64f_conf_cmdline__determine_operation_mode_from_string' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static t64te_tundra__operation_mode _t64f_conf_cmdline__determine_operation_mode_from_string(const char *mode_of_operation_string);
^
In file included from src/t64_conf_cmdline.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:53:9: warning: padding size of 't64ts_tundra__conf_cmdline' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_conf_cmdline.c:107:33: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
t64ts_tundra__conf_cmdline *cmdline_configuration = t64fa_utils__allocate_zeroed_out_memory(1, sizeof(t64ts_tundra__conf_cmdline));
^
src/t64_conf_cmdline.c:241:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_CONF_CMDLINE__HELP_FORMAT_STRING
^
src/t64_conf_cmdline.c:242:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_CONF_CMDLINE__LICENSE_STRING
^
20 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_conf_file.o -c src/t64_conf_file.c
In file included from src/t64_conf_file.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_conf_file.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_conf_file.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_conf_file.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_conf_file.c:23:
src/t64_conf_file.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_FILE_H
^
In file included from src/t64_conf_file.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_conf_file.c:26:
src/t64_utils_ip.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_IP_H
^
In file included from src/t64_conf_file.c:27:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
In file included from src/t64_conf_file.c:28:
src/t64_conf_file_load.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_FILE_LOAD_H
^
In file included from src/t64_conf_file.c:29:
src/t64_conf_rfc7050.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_RFC7050_H
^
src/t64_conf_file.c:32:33: warning: identifier '_t64fa_conf_file__parse_configuration_file' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static t64ts_tundra__conf_file *_t64fa_conf_file__parse_configuration_file(t64ts_tundra__conf_file_entry **config_file_entries);
^
src/t64_conf_file.c:33:13: warning: identifier '_t64fa_conf_file__parse_program_configuration_entries' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64fa_conf_file__parse_program_configuration_entries(t64ts_tundra__conf_file_entry **config_file_entries, t64ts_tundra__conf_file *file_configuration);
^
src/t64_conf_file.c:34:13: warning: identifier '_t64fa_conf_file__parse_io_configuration_entries' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64fa_conf_file__parse_io_configuration_entries(t64ts_tundra__conf_file_entry **config_file_entries, t64ts_tundra__conf_file *file_configuration);
^
src/t64_conf_file.c:35:13: warning: identifier '_t64fa_conf_file__parse_io_tun_configuration_entries' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64fa_conf_file__parse_io_tun_configuration_entries(t64ts_tundra__conf_file_entry **config_file_entries, t64ts_tundra__conf_file *file_configuration);
^
src/t64_conf_file.c:36:13: warning: identifier '_t64f_conf_file__parse_router_configuration_entries' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_conf_file__parse_router_configuration_entries(t64ts_tundra__conf_file_entry **config_file_entries, t64ts_tundra__conf_file *file_configuration);
^
src/t64_conf_file.c:37:13: warning: identifier '_t64f_conf_file__parse_addressing_configuration_entries' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_conf_file__parse_addressing_configuration_entries(t64ts_tundra__conf_file_entry **config_file_entries, t64ts_tundra__conf_file *file_configuration);
^
src/t64_conf_file.c:38:13: warning: identifier '_t64f_conf_file__parse_addressing_nat64_clat_configuration_entries' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_conf_file__parse_addressing_nat64_clat_configuration_entries(t64ts_tundra__conf_file_entry **config_file_entries, t64ts_tundra__conf_file *file_configuration);
^
src/t64_conf_file.c:39:13: warning: identifier '_t64f_conf_file__parse_addressing_nat64_clat_siit_configuration_entries' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_conf_file__parse_addressing_nat64_clat_siit_configuration_entries(t64ts_tundra__conf_file_entry **config_file_entries, t64ts_tundra__conf_file *file_configuration);
^
src/t64_conf_file.c:40:13: warning: identifier '_t64f_conf_file__parse_addressing_external_configuration_entries' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_conf_file__parse_addressing_external_configuration_entries(t64ts_tundra__conf_file_entry **config_file_entries, t64ts_tundra__conf_file *file_configuration);
^
src/t64_conf_file.c:41:13: warning: identifier '_t64f_conf_file__parse_addressing_external_unix_configuration_entries' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_conf_file__parse_addressing_external_unix_configuration_entries(t64ts_tundra__conf_file_entry **config_file_entries, t64ts_tundra__conf_file *file_configuration);
^
src/t64_conf_file.c:42:13: warning: identifier '_t64f_conf_file__parse_addressing_external_tcp_configuration_entries' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_conf_file__parse_addressing_external_tcp_configuration_entries(t64ts_tundra__conf_file_entry **config_file_entries, t64ts_tundra__conf_file *file_configuration);
^
src/t64_conf_file.c:43:13: warning: identifier '_t64f_conf_file__parse_addressing_external_unix_tcp_configuration_entries' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_conf_file__parse_addressing_external_unix_tcp_configuration_entries(t64ts_tundra__conf_file_entry **config_file_entries, t64ts_tundra__conf_file *file_configuration);
^
src/t64_conf_file.c:44:13: warning: identifier '_t64f_conf_file__parse_translator_configuration_entries' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_conf_file__parse_translator_configuration_entries(t64ts_tundra__conf_file_entry **config_file_entries, t64ts_tundra__conf_file *file_configuration);
^
src/t64_conf_file.c:45:14: warning: identifier '_t64f_conf_file__get_uid_by_username' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static uid_t _t64f_conf_file__get_uid_by_username(const char *username);
^
src/t64_conf_file.c:46:14: warning: identifier '_t64f_conf_file__get_gid_by_groupname' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static gid_t _t64f_conf_file__get_gid_by_groupname(const char *groupname);
^
src/t64_conf_file.c:47:30: warning: identifier '_t64f_conf_file__determine_io_mode_from_string' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static t64te_tundra__io_mode _t64f_conf_file__determine_io_mode_from_string(const char *io_mode_string);
^
src/t64_conf_file.c:48:38: warning: identifier '_t64f_conf_file__determine_addressing_mode_from_string' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static t64te_tundra__addressing_mode _t64f_conf_file__determine_addressing_mode_from_string(const char *addressing_mode_string);
^
src/t64_conf_file.c:49:52: warning: identifier '_t64f_conf_file__determine_addressing_external_transport_from_string' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static t64te_tundra__addressing_external_transport _t64f_conf_file__determine_addressing_external_transport_from_string(const char *addressing_external_transport_string);
^
src/t64_conf_file.c:50:17: warning: identifier '_t64f_conf_file__get_fallback_translator_thread_count' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static uint64_t _t64f_conf_file__get_fallback_translator_thread_count(void);
^
In file included from src/t64_conf_file.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_conf_file.c:272:19: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const int gai_return_value = getaddrinfo(host, port, (const struct addrinfo *) &hints, &file_configuration->addressing_external_tcp_socket_info);
^
32 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_conf_file_load.o -c src/t64_conf_file_load.c
In file included from src/t64_conf_file_load.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_conf_file_load.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_conf_file_load.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_conf_file_load.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_conf_file_load.c:23:
src/t64_conf_file_load.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_FILE_LOAD_H
^
In file included from src/t64_conf_file_load.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_conf_file_load.c:26:
src/t64_utils_ip.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_IP_H
^
In file included from src/t64_conf_file_load.c:27:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
src/t64_conf_file_load.c:30:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_CONF_FILE_LOAD__LINE_BUFFER_SIZE 4096
^
src/t64_conf_file_load.c:31:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_CONF_FILE_LOAD__STOP_PARSING_CONFIG_SYMBOL "!STOP"
^
src/t64_conf_file_load.c:34:40: warning: identifier '_t64fa_conf_file_load__read_open_config_file' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static t64ts_tundra__conf_file_entry **_t64fa_conf_file_load__read_open_config_file(FILE *conf_file_stream);
^
src/t64_conf_file_load.c:35:14: warning: identifier '_t64f_conf_file_load__strip_whitespace_from_string' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static char *_t64f_conf_file_load__strip_whitespace_from_string(char *string);
^
src/t64_conf_file_load.c:36:20: warning: identifier '_t64f_conf_file_load__get_entry_value_by_key' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static const char *_t64f_conf_file_load__get_entry_value_by_key(t64ts_tundra__conf_file_entry **config_file_entries, const char *key);
^
src/t64_conf_file_load.c:49:19: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const int conf_file_fd = fileno(conf_file_stream);
^
src/t64_conf_file_load.c:81:15: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
char *value_ptr = strchr(key_ptr, '=');
^
src/t64_conf_file_load.c:73:10: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
char line_buffer[_T64C_CONF_FILE_LOAD__LINE_BUFFER_SIZE];
^
src/t64_conf_file_load.c:112:11: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
char *end = string + strlen(string) - 1;
^
src/t64_conf_file_load.c:150:12: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
size_t string_length = strlen(string_value);
^
src/t64_conf_file_load.c:240:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_CONF_FILE_LOAD__LINE_BUFFER_SIZE
^
src/t64_conf_file_load.c:241:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_CONF_FILE_LOAD__STOP_PARSING_CONFIG_SYMBOL
^
20 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_conf_rfc7050.o -c src/t64_conf_rfc7050.c
In file included from src/t64_conf_rfc7050.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_conf_rfc7050.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_conf_rfc7050.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_conf_rfc7050.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_conf_rfc7050.c:23:
src/t64_conf_rfc7050.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_RFC7050_H
^
In file included from src/t64_conf_rfc7050.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_conf_rfc7050.c:26:
src/t64_utils_ip.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_IP_H
^
In file included from src/t64_conf_rfc7050.c:27:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
src/t64_conf_rfc7050.c:30:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_CONF_RFC7050__DNS_NAME "ipv4only.arpa."
^
src/t64_conf_rfc7050.c:31:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_CONF_RFC7050__TARGET_IPV4_1 "\xc0\x00\x00\xaa" // 192.0.0.170
^
src/t64_conf_rfc7050.c:32:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_CONF_RFC7050__TARGET_IPV4_2 "\xc0\x00\x00\xab" // 192.0.0.171
^
src/t64_conf_rfc7050.c:33:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_CONF_RFC7050__RETRY_INTERVAL_SECONDS ((unsigned int) 3)
^
src/t64_conf_rfc7050.c:36:13: warning: identifier '_t64f_conf_rfc7050__print_info_log_message_on_start' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_conf_rfc7050__print_info_log_message_on_start(void);
^
src/t64_conf_rfc7050.c:37:13: warning: identifier '_t64f_conf_rfc7050__print_info_log_message_on_finish' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_conf_rfc7050__print_info_log_message_on_finish(const uint8_t *found_ipv6_prefix);
^
src/t64_conf_rfc7050.c:59:63: warning: cast from 'struct sockaddr *' to 'struct sockaddr_in6 *' increases required alignment from 2 to 4 [-Wcast-align]
const uint8_t *ipv6_address = (const uint8_t *) (((struct sockaddr_in6 *) current_result->ai_addr)->sin6_addr.s6_addr);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_conf_rfc7050.c:59:28: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const uint8_t *ipv6_address = (const uint8_t *) (((struct sockaddr_in6 *) current_result->ai_addr)->sin6_addr.s6_addr);
^
src/t64_conf_rfc7050.c:92:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_CONF_RFC7050__DNS_NAME
^
src/t64_conf_rfc7050.c:93:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_CONF_RFC7050__TARGET_IPV4_1
^
src/t64_conf_rfc7050.c:94:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_CONF_RFC7050__TARGET_IPV4_2
^
src/t64_conf_rfc7050.c:95:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_CONF_RFC7050__RETRY_INTERVAL_SECONDS
^
src/t64_conf_rfc7050.c:84:10: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
char found_ipv6_prefix_string[INET6_ADDRSTRLEN] = {'\0'};
^
21 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_init.o -c src/t64_init.c
In file included from src/t64_init.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_init.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_init.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_init.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_init.c:23:
src/t64_init.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_INIT_H
^
In file included from src/t64_init.c:25:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
In file included from src/t64_init.c:26:
src/t64_signal.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_SIGNAL_H
^
In file included from src/t64_init.c:27:
src/t64_conf_cmdline.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_CMDLINE_H
^
In file included from src/t64_init.c:28:
src/t64_conf_file.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_FILE_H
^
In file included from src/t64_init.c:29:
src/t64_opmode_translate.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_OPMODE_TRANSLATE_H
^
In file included from src/t64_init.c:30:
src/t64_opmode_mktun.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_OPMODE_MKTUN_H
^
In file included from src/t64_init.c:31:
src/t64_opmode_rmtun.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_OPMODE_RMTUN_H
^
In file included from src/t64_init.c:32:
src/t64_opmode_validate_config.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_OPMODE_VALIDATE_CONFIG_H
^
In file included from src/t64_init.c:33:
src/t64_opmode_print_config.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_OPMODE_PRINT_CONFIG_H
^
src/t64_init.c:36:13: warning: identifier '_t64f_init__check_compile_time_config' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_init__check_compile_time_config(void);
^
src/t64_init.c:37:13: warning: identifier '_t64f_init__initialize_program' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_init__initialize_program(void);
^
src/t64_init.c:38:13: warning: identifier '_t64f_init__finalize_program' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_init__finalize_program(void);
^
src/t64_init.c:39:13: warning: identifier '_t64f_init__run_program_according_to_operation_mode' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_init__run_program_according_to_operation_mode(const t64ts_tundra__conf_cmdline *cmdline_configuration, const t64ts_tundra__conf_file *file_configuration);
^
In file included from src/t64_init.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:53:9: warning: padding size of 't64ts_tundra__conf_cmdline' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_init.c:47:33: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
t64ts_tundra__conf_cmdline *cmdline_configuration = t64fa_conf_cmdline__parse_cmdline_configuration(argc, argv);
^
src/t64_init.c:119:9: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
default:
^
23 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_init_io.o -c src/t64_init_io.c
In file included from src/t64_init_io.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_init_io.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_init_io.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_init_io.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_init_io.c:23:
src/t64_init_io.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_INIT_IO_H
^
In file included from src/t64_init_io.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_init_io.c:26:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
src/t64_init_io.c:37:39: warning: implicit conversion loses integer precision: 'int' to 'short' [-Wimplicit-int-conversion]
tun_interface_request.ifr_flags = tun_flags;
~ ^~~~~~~~~
src/t64_init_io.c:35:18: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
struct ifreq tun_interface_request;
^
In file included from src/t64_init_io.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_init_io.c:79:11: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
char *separator_ptr = strchr(next_fds_string_ptr, ';');
^
12 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_log.o -c src/t64_log.c
In file included from src/t64_log.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_log.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_log.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_log.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_log.c:23:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
src/t64_log.c:26:24: warning: identifier '_t64g_log__log_output_mutex' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static pthread_mutex_t _t64g_log__log_output_mutex;
^
src/t64_log.c:29:13: warning: identifier '_t64f_log__print_log_message' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_log__print_log_message(const size_t thread_id, const bool print_errno, const char *level, const char *format, va_list argument_list);
^
src/t64_log.c:94:22: warning: format string is not a string literal [-Wformat-nonliteral]
vfprintf(stderr, format, argument_list);
^~~~~~
8 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_main.o -c src/t64_main.c
In file included from src/t64_main.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_main.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_main.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_main.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_main.c:24:
src/t64_init.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_INIT_H
^
5 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_opmode_mktun.o -c src/t64_opmode_mktun.c
In file included from src/t64_opmode_mktun.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_opmode_mktun.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_opmode_mktun.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_opmode_mktun.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_opmode_mktun.c:23:
src/t64_opmode_mktun.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_OPMODE_MKTUN_H
^
In file included from src/t64_opmode_mktun.c:25:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
In file included from src/t64_opmode_mktun.c:26:
src/t64_init_io.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_INIT_IO_H
^
In file included from src/t64_opmode_mktun.c:27:
src/t64_conf_file.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_FILE_H
^
In file included from src/t64_opmode_mktun.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
10 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_opmode_print_config.o -c src/t64_opmode_print_config.c
In file included from src/t64_opmode_print_config.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_opmode_print_config.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_opmode_print_config.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_opmode_print_config.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_opmode_print_config.c:23:
src/t64_opmode_print_config.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_OPMODE_PRINT_CONFIG_H
^
In file included from src/t64_opmode_print_config.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_opmode_print_config.c:26:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
In file included from src/t64_opmode_print_config.c:27:
src/t64_conf_cmdline.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_CMDLINE_H
^
In file included from src/t64_opmode_print_config.c:28:
src/t64_conf_file.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_FILE_H
^
src/t64_opmode_print_config.c:32:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64M_OPMODE_PRINT_CONFIG__STRINGIFY(to_str) #to_str
^
src/t64_opmode_print_config.c:34:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_OPMODE_PRINT_CONFIG__NULL_REPRESENTATION "<not specified>"
^
src/t64_opmode_print_config.c:35:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_OPMODE_PRINT_CONFIG__EMPTY_STRING_REPRESENTATION "<empty>"
^
src/t64_opmode_print_config.c:36:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_OPMODE_PRINT_CONFIG__TRUE_BOOLEAN_REPRESENTATION "<yes>"
^
src/t64_opmode_print_config.c:37:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_OPMODE_PRINT_CONFIG__FALSE_BOOLEAN_REPRESENTATION "<no>"
^
src/t64_opmode_print_config.c:40:13: warning: identifier '_t64f_opmode_print_config__print_compile_time_config' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_print_config__print_compile_time_config(void);
^
src/t64_opmode_print_config.c:41:13: warning: identifier '_t64f_opmode_print_config__print_command_line_config' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_print_config__print_command_line_config(const t64ts_tundra__conf_cmdline *cmdline_configuration);
^
src/t64_opmode_print_config.c:42:13: warning: identifier '_t64f_opmode_print_config__print_file_config' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_print_config__print_file_config(const t64ts_tundra__conf_file *file_configuration);
^
src/t64_opmode_print_config.c:43:13: warning: identifier '_t64f_opmode_print_config__print_file_program_config' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_print_config__print_file_program_config(const t64ts_tundra__conf_file *file_configuration);
^
src/t64_opmode_print_config.c:44:13: warning: identifier '_t64f_opmode_print_config__print_file_io_config' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_print_config__print_file_io_config(const t64ts_tundra__conf_file *file_configuration);
^
src/t64_opmode_print_config.c:45:13: warning: identifier '_t64f_opmode_print_config__print_file_router_config' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_print_config__print_file_router_config(const t64ts_tundra__conf_file *file_configuration);
^
src/t64_opmode_print_config.c:46:13: warning: identifier '_t64f_opmode_print_config__print_file_addressing_config' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_print_config__print_file_addressing_config(const t64ts_tundra__conf_file *file_configuration);
^
src/t64_opmode_print_config.c:47:13: warning: identifier '_t64f_opmode_print_config__print_file_addressing_nat64_clat_config' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_print_config__print_file_addressing_nat64_clat_config(const t64ts_tundra__conf_file *file_configuration);
^
src/t64_opmode_print_config.c:48:13: warning: identifier '_t64f_opmode_print_config__print_file_addressing_siit_config' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_print_config__print_file_addressing_siit_config(const t64ts_tundra__conf_file *file_configuration);
^
src/t64_opmode_print_config.c:49:13: warning: identifier '_t64f_opmode_print_config__print_file_addressing_external_config' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_print_config__print_file_addressing_external_config(const t64ts_tundra__conf_file *file_configuration);
^
src/t64_opmode_print_config.c:50:13: warning: identifier '_t64f_opmode_print_config__print_file_addressing_external_unix_config' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_print_config__print_file_addressing_external_unix_config(const t64ts_tundra__conf_file *file_configuration);
^
src/t64_opmode_print_config.c:51:13: warning: identifier '_t64f_opmode_print_config__print_file_addressing_external_tcp_config' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_print_config__print_file_addressing_external_tcp_config(const t64ts_tundra__conf_file *file_configuration);
^
src/t64_opmode_print_config.c:52:13: warning: identifier '_t64f_opmode_print_config__print_file_translator_config' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_print_config__print_file_translator_config(const t64ts_tundra__conf_file *file_configuration);
^
src/t64_opmode_print_config.c:53:20: warning: identifier '_t64f_opmode_print_config__get_printable_representation_of_string' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static const char *_t64f_opmode_print_config__get_printable_representation_of_string(const char *string);
^
src/t64_opmode_print_config.c:54:20: warning: identifier '_t64f_opmode_print_config__get_printable_representation_of_boolean' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static const char *_t64f_opmode_print_config__get_printable_representation_of_boolean(const bool boolean_value);
^
src/t64_opmode_print_config.c:55:14: warning: identifier '_t64f_opmode_print_config__get_printable_representation_of_ipv4_address' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static char *_t64f_opmode_print_config__get_printable_representation_of_ipv4_address(const uint8_t *ipv4_address, char *out_string_buf);
^
src/t64_opmode_print_config.c:56:14: warning: identifier '_t64f_opmode_print_config__get_printable_representation_of_ipv6_address' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static char *_t64f_opmode_print_config__get_printable_representation_of_ipv6_address(const uint8_t *ipv6_address, char *out_string_buf);
^
src/t64_opmode_print_config.c:57:20: warning: identifier '_t64f_opmode_print_config__get_string_representation_of_operation_mode' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static const char *_t64f_opmode_print_config__get_string_representation_of_operation_mode(const t64te_tundra__operation_mode mode_of_operation);
^
src/t64_opmode_print_config.c:58:20: warning: identifier '_t64f_opmode_print_config__get_string_representation_of_io_mode' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static const char *_t64f_opmode_print_config__get_string_representation_of_io_mode(const t64te_tundra__io_mode io_mode);
^
src/t64_opmode_print_config.c:59:20: warning: identifier '_t64f_opmode_print_config__get_string_representation_of_addressing_mode' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static const char *_t64f_opmode_print_config__get_string_representation_of_addressing_mode(const t64te_tundra__addressing_mode addressing_mode);
^
src/t64_opmode_print_config.c:60:20: warning: identifier '_t64f_opmode_print_config__get_string_representation_of_addressing_external_transport' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static const char *_t64f_opmode_print_config__get_string_representation_of_addressing_external_transport(const t64te_tundra__addressing_external_transport addressing_external_transport);
^
In file included from src/t64_opmode_print_config.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:53:9: warning: padding size of 't64ts_tundra__conf_cmdline' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_opmode_print_config.c:204:9: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
default:
^
src/t64_opmode_print_config.c:228:12: warning: enumeration value 'T64TE_TUNDRA__ADDRESSING_EXTERNAL_TRANSPORT_NONE' not explicitly handled in switch [-Wswitch-enum]
switch(file_configuration->addressing_external_transport) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_opmode_print_config.c:266:62: warning: cast from 'struct sockaddr *' to 'struct sockaddr_in *' increases required alignment from 2 to 4 [-Wcast-align]
struct sockaddr_in *sockaddr_in_struct = (struct sockaddr_in *) (current_addrinfo->ai_addr);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_opmode_print_config.c:266:41: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
struct sockaddr_in *sockaddr_in_struct = (struct sockaddr_in *) (current_addrinfo->ai_addr);
^
src/t64_opmode_print_config.c:277:64: warning: cast from 'struct sockaddr *' to 'struct sockaddr_in6 *' increases required alignment from 2 to 4 [-Wcast-align]
struct sockaddr_in6 *sockaddr_in6_struct = (struct sockaddr_in6 *) (current_addrinfo->ai_addr);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_opmode_print_config.c:277:42: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
struct sockaddr_in6 *sockaddr_in6_struct = (struct sockaddr_in6 *) (current_addrinfo->ai_addr);
^
src/t64_opmode_print_config.c:352:9: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
default:
^
src/t64_opmode_print_config.c:365:9: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
default:
^
src/t64_opmode_print_config.c:384:9: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
default:
^
src/t64_opmode_print_config.c:390:12: warning: enumeration value 'T64TE_TUNDRA__ADDRESSING_EXTERNAL_TRANSPORT_NONE' not explicitly handled in switch [-Wswitch-enum]
switch(addressing_external_transport) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_opmode_print_config.c:406:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64M_OPMODE_PRINT_CONFIG__STRINGIFY
^
src/t64_opmode_print_config.c:408:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_OPMODE_PRINT_CONFIG__NULL_REPRESENTATION
^
src/t64_opmode_print_config.c:409:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_OPMODE_PRINT_CONFIG__EMPTY_STRING_REPRESENTATION
^
src/t64_opmode_print_config.c:410:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_OPMODE_PRINT_CONFIG__TRUE_BOOLEAN_REPRESENTATION
^
src/t64_opmode_print_config.c:411:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_OPMODE_PRINT_CONFIG__FALSE_BOOLEAN_REPRESENTATION
^
53 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_opmode_rmtun.o -c src/t64_opmode_rmtun.c
In file included from src/t64_opmode_rmtun.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_opmode_rmtun.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_opmode_rmtun.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_opmode_rmtun.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_opmode_rmtun.c:23:
src/t64_opmode_rmtun.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_OPMODE_RMTUN_H
^
In file included from src/t64_opmode_rmtun.c:25:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
In file included from src/t64_opmode_rmtun.c:26:
src/t64_init_io.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_INIT_IO_H
^
In file included from src/t64_opmode_rmtun.c:27:
src/t64_conf_file.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_FILE_H
^
In file included from src/t64_opmode_rmtun.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
10 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_opmode_translate.o -c src/t64_opmode_translate.c
In file included from src/t64_opmode_translate.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_opmode_translate.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_opmode_translate.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_opmode_translate.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_opmode_translate.c:23:
src/t64_opmode_translate.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_OPMODE_TRANSLATE_H
^
In file included from src/t64_opmode_translate.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_opmode_translate.c:26:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
In file included from src/t64_opmode_translate.c:27:
src/t64_init_io.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_INIT_IO_H
^
In file included from src/t64_opmode_translate.c:28:
src/t64_signal.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_SIGNAL_H
^
In file included from src/t64_opmode_translate.c:29:
src/t64_xlat.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_H
^
In file included from src/t64_opmode_translate.c:30:
src/t64_conf_file.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_FILE_H
^
In file included from src/t64_opmode_translate.c:31:
src/t64_conf_cmdline.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_CMDLINE_H
^
src/t64_opmode_translate.c:34:43: warning: identifier '_t64fa_opmode_translate__initialize_xlat_thread_contexts' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static t64ts_tundra__xlat_thread_context *_t64fa_opmode_translate__initialize_xlat_thread_contexts(const t64ts_tundra__conf_cmdline *cmdline_configuration, const t64ts_tundra__conf_file *file_configuration);
^
src/t64_opmode_translate.c:35:48: warning: identifier '_t64fa_opmode_translate__initialize_external_addr_xlat_state_struct' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static t64ts_tundra__external_addr_xlat_state *_t64fa_opmode_translate__initialize_external_addr_xlat_state_struct(const t64ts_tundra__conf_file *file_configuration, char **addressing_external_next_fds_string_ptr);
^
src/t64_opmode_translate.c:36:13: warning: identifier '_t64f_opmode_translate__free_xlat_thread_contexts' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_translate__free_xlat_thread_contexts(const t64ts_tundra__conf_file *file_configuration, t64ts_tundra__xlat_thread_context *thread_contexts);
^
src/t64_opmode_translate.c:37:13: warning: identifier '_t64f_opmode_translate__free_external_addr_xlat_state_struct' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_translate__free_external_addr_xlat_state_struct(t64ts_tundra__external_addr_xlat_state *external_addr_xlat_state);
^
src/t64_opmode_translate.c:38:13: warning: identifier '_t64f_opmode_translate__daemonize' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_translate__daemonize(const t64ts_tundra__conf_file *file_configuration);
^
src/t64_opmode_translate.c:39:13: warning: identifier '_t64f_opmode_translate__start_xlat_threads' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_translate__start_xlat_threads(const t64ts_tundra__conf_file *file_configuration, t64ts_tundra__xlat_thread_context *thread_contexts);
^
src/t64_opmode_translate.c:40:13: warning: identifier '_t64f_opmode_translate__print_information_about_translation_start' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_translate__print_information_about_translation_start(const t64ts_tundra__conf_file *file_configuration);
^
src/t64_opmode_translate.c:41:13: warning: identifier '_t64f_opmode_translate__monitor_xlat_threads' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_translate__monitor_xlat_threads(const t64ts_tundra__conf_file *file_configuration, t64ts_tundra__xlat_thread_context *thread_contexts);
^
src/t64_opmode_translate.c:42:13: warning: identifier '_t64f_opmode_translate__terminate_xlat_threads' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_opmode_translate__terminate_xlat_threads(const t64ts_tundra__conf_file *file_configuration, t64ts_tundra__xlat_thread_context *thread_contexts);
^
In file included from src/t64_opmode_translate.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:53:9: warning: padding size of 't64ts_tundra__conf_cmdline' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_opmode_translate.c:51:40: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
t64ts_tundra__xlat_thread_context *thread_contexts = _t64fa_opmode_translate__initialize_xlat_thread_contexts(cmdline_configuration, file_configuration);
^
In file included from src/t64_opmode_translate.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_opmode_translate.c:111:13: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
default:
^
src/t64_opmode_translate.c:72:11: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
char *io_next_fds_string_ptr = cmdline_configuration->io_inherited_fds;
^
src/t64_opmode_translate.c:219:9: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
default: t64f_log__crash_invalid_internal_state("Invalid addressing mode");
^
src/t64_opmode_translate.c:231:9: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
default:
^
31 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_opmode_validate_config.o -c src/t64_opmode_validate_config.c
In file included from src/t64_opmode_validate_config.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_opmode_validate_config.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_opmode_validate_config.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_opmode_validate_config.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_opmode_validate_config.c:23:
src/t64_opmode_validate_config.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_OPMODE_VALIDATE_CONFIG_H
^
src/t64_opmode_validate_config.c:26:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_OPMODE_VALIDATE_CONFIG__CONFIGURATION_SUCCESSFUL_MESSAGE "Tundra has been successfully configured!"
^
src/t64_opmode_validate_config.c:35:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_OPMODE_VALIDATE_CONFIG__CONFIGURATION_SUCCESSFUL_MESSAGE
^
7 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_router_ipv4.o -c src/t64_router_ipv4.c
In file included from src/t64_router_ipv4.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_router_ipv4.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_router_ipv4.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_router_ipv4.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_router_ipv4.c:23:
src/t64_router_ipv4.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_ROUTER_IPV4_H
^
In file included from src/t64_router_ipv4.c:25:
src/t64_utils_ip.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_IP_H
^
In file included from src/t64_router_ipv4.c:25:
In file included from src/t64_utils_ip.h:26:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_router_ipv4.c:26:
src/t64_checksum.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CHECKSUM_H
^
In file included from src/t64_router_ipv4.c:27:
src/t64_xlat_io.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_IO_H
^
src/t64_router_ipv4.c:30:13: warning: identifier '_t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_router_ipv4__send_icmpv4_message_to_in_ipv4_packet_source_host(t64ts_tundra__xlat_thread_context *context, const uint8_t icmpv4_type, const uint8_t icmpv4_code, const uint16_t rest_of_header2);
^
src/t64_router_ipv4.c:31:13: warning: identifier '_t64f_router_ipv4__construct_ipv4_header_for_icmpv4_message' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_router_ipv4__construct_ipv4_header_for_icmpv4_message(t64ts_tundra__xlat_thread_context *context, struct iphdr *out_ipv4_header);
^
src/t64_router_ipv4.c:32:13: warning: identifier '_t64f_router_ipv4__construct_icmpv4_header' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_router_ipv4__construct_icmpv4_header(const uint8_t icmpv4_type, const uint8_t icmpv4_code, const uint16_t rest_of_header2, struct icmphdr *out_icmpv4_header);
^
In file included from src/t64_router_ipv4.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_router_ipv4.c:52:20: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
struct icmphdr icmpv4_header; // 8 bytes
^
src/t64_router_ipv4.c:72:42: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'const struct iphdr *' increases required alignment from 1 to 4 [-Wcast-align]
const struct iphdr *in_ipv4_header = (const struct iphdr *) context->in_packet_buffer;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_router_ipv4.c:72:25: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const struct iphdr *in_ipv4_header = (const struct iphdr *) context->in_packet_buffer;
^
src/t64_router_ipv4.c:95:15: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
uint16_t *out_icmpv4_header_raw = (uint16_t *) out_icmpv4_header;
^
20 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_router_ipv6.o -c src/t64_router_ipv6.c
In file included from src/t64_router_ipv6.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_router_ipv6.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_router_ipv6.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_router_ipv6.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_router_ipv6.c:23:
src/t64_router_ipv6.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_ROUTER_IPV6_H
^
In file included from src/t64_router_ipv6.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_router_ipv6.c:26:
src/t64_checksum.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CHECKSUM_H
^
In file included from src/t64_router_ipv6.c:27:
src/t64_xlat_io.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_IO_H
^
src/t64_router_ipv6.c:30:13: warning: identifier '_t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_router_ipv6__send_icmpv6_message_to_in_ipv6_packet_source_host(const t64ts_tundra__xlat_thread_context *context, const uint8_t icmpv6_type, const uint8_t icmpv6_code, const uint16_t rest_of_header2);
^
src/t64_router_ipv6.c:31:13: warning: identifier '_t64f_router_ipv6__construct_ipv6_header_for_icmpv6_message' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_router_ipv6__construct_ipv6_header_for_icmpv6_message(const t64ts_tundra__xlat_thread_context *context, struct ipv6hdr *out_ipv6_header);
^
src/t64_router_ipv6.c:32:13: warning: identifier '_t64f_router_ipv6__construct_icmpv6_header' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_router_ipv6__construct_icmpv6_header(const uint8_t icmpv6_type, const uint8_t icmpv6_code, const uint16_t rest_of_header2, struct icmp6hdr *out_icmpv6_header);
^
In file included from src/t64_router_ipv6.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_router_ipv6.c:52:21: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
struct icmp6hdr icmpv6_header; // 8 bytes
^
src/t64_router_ipv6.c:71:44: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'const struct ipv6hdr *' increases required alignment from 1 to 4 [-Wcast-align]
const struct ipv6hdr *in_ipv6_header = (const struct ipv6hdr *) context->in_packet_buffer;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_router_ipv6.c:71:27: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const struct ipv6hdr *in_ipv6_header = (const struct ipv6hdr *) context->in_packet_buffer;
^
src/t64_router_ipv6.c:91:15: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
uint16_t *out_icmpv6_header_raw = (uint16_t *) out_icmpv6_header;
^
19 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_signal.o -c src/t64_signal.c
In file included from src/t64_signal.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_signal.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_signal.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_signal.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_signal.c:23:
src/t64_signal.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_SIGNAL_H
^
In file included from src/t64_signal.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_signal.c:26:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
src/t64_signal.c:29:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_SIGNAL__MAIN_THREAD_TERMINATION_SIGNAL_MESSAGE "[T0 :: "T64C_LOG__CATEGORY_BANNER_SIGNAL"] A signal was received - the translator will shut down soon.\n"
^
src/t64_signal.c:32:39: warning: identifier '_t64gt_signal__termination_signal_caught' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static __thread volatile sig_atomic_t _t64gt_signal__termination_signal_caught = 0;
^
src/t64_signal.c:35:13: warning: identifier '_t64f_signal__termination_signal_handler_function' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_signal__termination_signal_handler_function(__attribute__((unused)) int sig, siginfo_t *info, __attribute__((unused)) void *ucontext);
^
src/t64_signal.c:36:13: warning: identifier '_t64f_signal__ignore_signal' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_signal__ignore_signal(const int signal_number);
^
src/t64_signal.c:37:13: warning: identifier '_t64f_signal__set_signal_handler' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_signal__set_signal_handler(const int signal_number, void (*signal_handler)(int, siginfo_t *, void *));
^
src/t64_signal.c:38:17: warning: identifier '_t64f_signal__generate_empty_signal_mask' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static sigset_t _t64f_signal__generate_empty_signal_mask(void);
^
src/t64_signal.c:69:21: warning: disabled expansion of recursive macro [-Wdisabled-macro-expansion]
} else if(info->si_pid == process_pid) { // If the signal has been sent from within this process
^
/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h:128:33: note: expanded from macro 'si_pid'
#define si_pid _sifields._kill.si_pid
^
src/t64_signal.c:78:19: warning: disabled expansion of recursive macro [-Wdisabled-macro-expansion]
signal_action.sa_handler = SIG_IGN;
^
/usr/include/x86_64-linux-gnu/bits/sigaction.h:39:41: note: expanded from macro 'sa_handler'
# define sa_handler __sigaction_handler.sa_handler
^
src/t64_signal.c:90:19: warning: disabled expansion of recursive macro [-Wdisabled-macro-expansion]
signal_action.sa_sigaction = signal_handler;
^
/usr/include/x86_64-linux-gnu/bits/sigaction.h:40:43: note: expanded from macro 'sa_sigaction'
# define sa_sigaction __sigaction_handler.sa_sigaction
^
src/t64_signal.c:108:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_SIGNAL__MAIN_THREAD_TERMINATION_SIGNAL_MESSAGE
^
17 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_utils.o -c src/t64_utils.c
In file included from src/t64_utils.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_utils.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_utils.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_utils.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_utils.c:23:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_utils.c:25:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
6 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_utils_ip.o -c src/t64_utils_ip.c
In file included from src/t64_utils_ip.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_utils_ip.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_utils_ip.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_utils_ip.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_utils_ip.c:23:
src/t64_utils_ip.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_IP_H
^
In file included from src/t64_utils_ip.c:23:
In file included from src/t64_utils_ip.h:26:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_utils_ip.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
10 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_utils_xlat_addr.o -c src/t64_utils_xlat_addr.c
In file included from src/t64_utils_xlat_addr.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_utils_xlat_addr.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_utils_xlat_addr.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_utils_xlat_addr.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_utils_xlat_addr.c:23:
src/t64_utils_xlat_addr.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_XLAT_ADDR_H
^
In file included from src/t64_utils_xlat_addr.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_utils_xlat_addr.c:26:
src/t64_utils_ip.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_IP_H
^
src/t64_utils_xlat_addr.c:29:13: warning: identifier '_t64f_utils_xlat_addr__nat64_clat_siit__check_embeddability_of_ipv4_into_prefix' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_utils_xlat_addr__nat64_clat_siit__check_embeddability_of_ipv4_into_prefix(const t64ts_tundra__xlat_thread_context *context, const uint8_t *ipv4);
^
In file included from src/t64_utils_xlat_addr.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
12 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_xlat_4to6.o -c src/t64_xlat_4to6.c
In file included from src/t64_xlat_4to6.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_xlat_4to6.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_xlat_4to6.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_xlat_4to6.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_xlat_4to6.c:23:
src/t64_xlat_4to6.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_4TO6_H
^
In file included from src/t64_xlat_4to6.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_xlat_4to6.c:26:
src/t64_utils_ip.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_IP_H
^
In file included from src/t64_xlat_4to6.c:27:
src/t64_checksum.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CHECKSUM_H
^
In file included from src/t64_xlat_4to6.c:28:
src/t64_xlat_io.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_IO_H
^
In file included from src/t64_xlat_4to6.c:29:
src/t64_xlat_4to6_icmp.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_4TO6_ICMP_H
^
In file included from src/t64_xlat_4to6.c:30:
src/t64_router_ipv4.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_ROUTER_IPV4_H
^
In file included from src/t64_xlat_4to6.c:31:
src/t64_xlat_addr.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_ADDR_H
^
src/t64_xlat_4to6.c:43:3: warning: identifier '_t64ts_xlat_4to6__out_ipv6_packet_data' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
} _t64ts_xlat_4to6__out_ipv6_packet_data;
^
src/t64_xlat_4to6.c:46:13: warning: identifier '_t64f_xlat_4to6__validate_and_translate_ip_header' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_4to6__validate_and_translate_ip_header(t64ts_tundra__xlat_thread_context *context, _t64ts_xlat_4to6__out_ipv6_packet_data *out_packet_data);
^
src/t64_xlat_4to6.c:47:13: warning: identifier '_t64f_xlat_4to6__translate_icmpv4_payload_to_icmpv6_and_send' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_4to6__translate_icmpv4_payload_to_icmpv6_and_send(t64ts_tundra__xlat_thread_context *context, _t64ts_xlat_4to6__out_ipv6_packet_data *out_packet_data);
^
src/t64_xlat_4to6.c:48:13: warning: identifier '_t64f_xlat_4to6__translate_tcp_payload_and_send' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_4to6__translate_tcp_payload_and_send(t64ts_tundra__xlat_thread_context *context, _t64ts_xlat_4to6__out_ipv6_packet_data *out_packet_data);
^
src/t64_xlat_4to6.c:49:13: warning: identifier '_t64f_xlat_4to6__translate_udp_payload_and_send' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_4to6__translate_udp_payload_and_send(t64ts_tundra__xlat_thread_context *context, _t64ts_xlat_4to6__out_ipv6_packet_data *out_packet_data);
^
src/t64_xlat_4to6.c:50:13: warning: identifier '_t64f_xlat_4to6__translate_generic_payload_and_send' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_4to6__translate_generic_payload_and_send(t64ts_tundra__xlat_thread_context *context, _t64ts_xlat_4to6__out_ipv6_packet_data *out_packet_data);
^
src/t64_xlat_4to6.c:51:13: warning: identifier '_t64f_xlat_4to6__appropriately_send_ipv6_packet' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_4to6__appropriately_send_ipv6_packet(t64ts_tundra__xlat_thread_context *context, struct ipv6hdr *ipv6_header, const t64ts_tundra__ipv6_fragment_header *nullable_ipv6_fragment_header, const uint8_t *nullable_payload1_ptr, const size_t zeroable_payload1_size_m8, const uint8_t *payload2_ptr, const size_t payload2_size, const bool dont_fragment);
^
src/t64_xlat_4to6.c:52:13: warning: identifier '_t64f_xlat_4to6__fragment_and_send_ipv6_packet' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_4to6__fragment_and_send_ipv6_packet(t64ts_tundra__xlat_thread_context *context, struct ipv6hdr *ipv6_header, const t64ts_tundra__ipv6_fragment_header *nullable_ipv6_fragment_header, const uint8_t *nullable_payload1_ptr, const size_t zeroable_payload1_size_m8, const uint8_t *payload2_ptr, const size_t payload2_size);
^
src/t64_xlat_4to6.c:53:13: warning: identifier '_t64f_xlat_4to6__fragment_and_send_ipv6_packet_part' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_4to6__fragment_and_send_ipv6_packet_part(const t64ts_tundra__xlat_thread_context *context, struct ipv6hdr *ready_ipv6_header, t64ts_tundra__ipv6_fragment_header *ready_ipv6_fragment_header, const uint8_t *payload_part_ptr, const size_t payload_part_size, size_t *fragment_offset_8byte_chunks, const bool more_fragments_after_this_part, const size_t max_fragment_payload_size);
^
In file included from src/t64_xlat_4to6.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat_4to6.c:34:9: warning: padding size of '_t64ts_xlat_4to6__out_ipv6_packet_data' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
In file included from src/t64_xlat_4to6.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat_4to6.c:91:42: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'const struct iphdr *' increases required alignment from 1 to 4 [-Wcast-align]
const struct iphdr *in_ipv4_header = (const struct iphdr *) context->in_packet_buffer;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:151:21: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
ssize_t current_option_size; // https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml
^
src/t64_xlat_4to6.c:91:25: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const struct iphdr *in_ipv4_header = (const struct iphdr *) context->in_packet_buffer;
^
src/t64_xlat_4to6.c:240:51: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
t64ts_xlat_4to6_icmp__out_icmpv6_message_data out_message_data;
^
src/t64_xlat_4to6.c:265:123: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'const struct iphdr *' increases required alignment from 1 to 4 [-Wcast-align]
new_tcp_header->check = t64f_checksum__incrementally_recalculate_rfc1071_checksum_4to6(new_tcp_header->check, (const struct iphdr *) context->in_packet_buffer, &out_packet_data->ipv6_header);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:276:123: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'const struct iphdr *' increases required alignment from 1 to 4 [-Wcast-align]
new_tcp_header->check = t64f_checksum__incrementally_recalculate_rfc1071_checksum_4to6(new_tcp_header->check, (const struct iphdr *) context->in_packet_buffer, &out_packet_data->ipv6_header);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:303:124: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'const struct iphdr *' increases required alignment from 1 to 4 [-Wcast-align]
const uint16_t new_checksum = t64f_checksum__incrementally_recalculate_rfc1071_checksum_4to6(new_udp_header.check, (const struct iphdr *) context->in_packet_buffer, &out_packet_data->ipv6_header);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6.c:303:24: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const uint16_t new_checksum = t64f_checksum__incrementally_recalculate_rfc1071_checksum_4to6(new_udp_header.check, (const struct iphdr *) context->in_packet_buffer, &out_packet_data->ipv6_header);
^
src/t64_xlat_4to6.c:375:12: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
size_t max_fragment_payload_size = (context->configuration->translator_ipv6_outbound_mtu - 48);
^
35 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_xlat_4to6_icmp.o -c src/t64_xlat_4to6_icmp.c
In file included from src/t64_xlat_4to6_icmp.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_xlat_4to6_icmp.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_xlat_4to6_icmp.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_xlat_4to6_icmp.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_xlat_4to6_icmp.c:23:
src/t64_xlat_4to6_icmp.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_4TO6_ICMP_H
^
In file included from src/t64_xlat_4to6_icmp.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_xlat_4to6_icmp.c:26:
src/t64_utils_ip.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_IP_H
^
In file included from src/t64_xlat_4to6_icmp.c:27:
src/t64_checksum.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CHECKSUM_H
^
In file included from src/t64_xlat_4to6_icmp.c:28:
src/t64_xlat_addr.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_ADDR_H
^
src/t64_xlat_4to6_icmp.c:36:3: warning: identifier '_t64ts_xlat_4to6_icmp__out_ipv6_packet_in_error_data' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
} _t64ts_xlat_4to6_icmp__out_ipv6_packet_in_error_data;
^
src/t64_xlat_4to6_icmp.c:40:23: warning: identifier '_t64gc_xlat_4to6_icmp__rfc1191_plateau_mtu_values' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static const uint16_t _t64gc_xlat_4to6_icmp__rfc1191_plateau_mtu_values[] = {
^
src/t64_xlat_4to6_icmp.c:43:23: warning: identifier '_t64gc_xlat_4to6_icmp__rfc1191_default_plateau_mtu_value' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static const uint16_t _t64gc_xlat_4to6_icmp__rfc1191_default_plateau_mtu_value = 68; // Used when the MTU value cannot be decided from the above defined array (for whatever reason).
^
src/t64_xlat_4to6_icmp.c:46:13: warning: identifier '_t64f_xlat_4to6_icmp__validate_and_translate_icmp_type_and_code' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_4to6_icmp__validate_and_translate_icmp_type_and_code(const uint8_t old_icmpv4_type, const uint8_t old_icmpv4_code, uint8_t *new_icmpv6_type, uint8_t *new_icmpv6_code);
^
src/t64_xlat_4to6_icmp.c:47:13: warning: identifier '_t64f_xlat_4to6_icmp__validate_and_translate_rest_of_icmp_header' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_4to6_icmp__validate_and_translate_rest_of_icmp_header(const t64ts_tundra__xlat_thread_context *context, const uint8_t *old_icmpv4_payload_ptr, const size_t old_icmpv4_payload_size, const uint8_t old_icmpv4_type, const uint8_t old_icmpv4_code, const uint8_t *old_icmpv4_rest_of_header, uint8_t *new_icmpv6_rest_of_header);
^
src/t64_xlat_4to6_icmp.c:48:17: warning: identifier '_t64f_xlat_4to6_icmp__recalculate_packet_too_big_mtu' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static uint16_t _t64f_xlat_4to6_icmp__recalculate_packet_too_big_mtu(const t64ts_tundra__xlat_thread_context *context, const uint8_t *old_icmpv4_payload_ptr, const size_t old_icmpv4_payload_size, uint16_t mtu);
^
src/t64_xlat_4to6_icmp.c:49:17: warning: identifier '_t64f_xlat_4to6_icmp__estimate_likely_mtu_as_per_rfc1191' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static uint16_t _t64f_xlat_4to6_icmp__estimate_likely_mtu_as_per_rfc1191(const uint8_t *old_icmpv4_payload_ptr, const size_t old_icmpv4_payload_size);
^
src/t64_xlat_4to6_icmp.c:50:13: warning: identifier '_t64f_xlat_4to6_icmp__translate_parameter_problem_pointer' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_4to6_icmp__translate_parameter_problem_pointer(const uint8_t old_pointer, uint8_t *new_pointer);
^
src/t64_xlat_4to6_icmp.c:51:13: warning: identifier '_t64f_xlat_4to6_icmp__validate_and_translate_ip_header_of_packet_in_error' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_4to6_icmp__validate_and_translate_ip_header_of_packet_in_error(t64ts_tundra__xlat_thread_context *context, const uint8_t *in_icmpv4_payload_ptr, const size_t in_icmpv4_payload_size, uint8_t *out_packet_in_error_buffer_56b, _t64ts_xlat_4to6_icmp__out_ipv6_packet_in_error_data *out_packet_in_error_data);
^
src/t64_xlat_4to6_icmp.c:58:46: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const struct icmphdr *' increases required alignment from 1 to 4 [-Wcast-align]
const struct icmphdr *in_icmpv4_header = (const struct icmphdr *) in_packet_payload_ptr;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c:59:42: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'struct icmp6hdr *' increases required alignment from 1 to 4 [-Wcast-align]
struct icmp6hdr *out_icmpv6_header = (struct icmp6hdr *) out_message_data->message_start_64b;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/t64_xlat_4to6_icmp.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat_4to6_icmp.c:31:9: warning: padding size of '_t64ts_xlat_4to6_icmp__out_ipv6_packet_in_error_data' with 6 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat_4to6_icmp.c:109:71: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'struct icmp6hdr *' increases required alignment from 1 to 4 [-Wcast-align]
struct icmp6hdr *new_icmpv6_packet_in_error_payload_ptr = (struct icmp6hdr *) (out_message_data->message_start_64b + 48);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c:109:30: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
struct icmp6hdr *new_icmpv6_packet_in_error_payload_ptr = (struct icmp6hdr *) (out_message_data->message_start_64b + 48);
^
src/t64_xlat_4to6_icmp.c:58:27: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const struct icmphdr *in_icmpv4_header = (const struct icmphdr *) in_packet_payload_ptr;
^
In file included from src/t64_xlat_4to6_icmp.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat_4to6_icmp.c:277:46: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const uint16_t *' (aka 'const unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
const uint16_t old_mtu = ntohs(*((const uint16_t *) (old_icmpv4_rest_of_header + 2)));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/netinet/in.h:423:33: note: expanded from macro 'ntohs'
# define ntohs(x) __bswap_16 (x)
^
src/t64_xlat_4to6_icmp.c:279:15: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint16_t *' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
*((uint16_t *) (new_icmpv6_rest_of_header + 2)) = htons(new_mtu);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c:277:28: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const uint16_t old_mtu = ntohs(*((const uint16_t *) (old_icmpv4_rest_of_header + 2)));
^
src/t64_xlat_4to6_icmp.c:322:43: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const struct iphdr *' increases required alignment from 1 to 4 [-Wcast-align]
const struct iphdr *packet_in_error = (const struct iphdr *) old_icmpv4_payload_ptr;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c:322:25: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const struct iphdr *packet_in_error = (const struct iphdr *) old_icmpv4_payload_ptr;
^
src/t64_xlat_4to6_icmp.c:372:42: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const struct iphdr *' increases required alignment from 1 to 4 [-Wcast-align]
const struct iphdr *in_ipv4_header = (const struct iphdr *) in_icmpv4_payload_ptr;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c:373:39: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'struct ipv6hdr *' increases required alignment from 1 to 4 [-Wcast-align]
struct ipv6hdr *out_ipv6_header = (struct ipv6hdr *) out_packet_in_error_buffer_56b;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_4to6_icmp.c:397:45: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
t64ts_tundra__ipv6_fragment_header *out_ipv6_fragment_header = (t64ts_tundra__ipv6_fragment_header *) (out_packet_in_error_buffer_56b + 40);
^
src/t64_xlat_4to6_icmp.c:372:25: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const struct iphdr *in_ipv4_header = (const struct iphdr *) in_icmpv4_payload_ptr;
^
37 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_xlat_6to4.o -c src/t64_xlat_6to4.c
In file included from src/t64_xlat_6to4.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_xlat_6to4.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_xlat_6to4.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_xlat_6to4.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_xlat_6to4.c:23:
src/t64_xlat_6to4.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_6TO4_H
^
In file included from src/t64_xlat_6to4.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_xlat_6to4.c:26:
src/t64_utils_ip.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_IP_H
^
In file included from src/t64_xlat_6to4.c:27:
src/t64_checksum.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CHECKSUM_H
^
In file included from src/t64_xlat_6to4.c:28:
src/t64_xlat_io.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_IO_H
^
In file included from src/t64_xlat_6to4.c:29:
src/t64_xlat_6to4_icmp.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_6TO4_ICMP_H
^
In file included from src/t64_xlat_6to4.c:30:
src/t64_router_ipv6.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_ROUTER_IPV6_H
^
In file included from src/t64_xlat_6to4.c:31:
src/t64_xlat_addr.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_ADDR_H
^
src/t64_xlat_6to4.c:40:3: warning: identifier '_t64ts_xlat_6to4__out_ipv4_packet_data' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
} _t64ts_xlat_6to4__out_ipv4_packet_data;
^
src/t64_xlat_6to4.c:43:13: warning: identifier '_t64f_xlat_6to4__validate_and_translate_ip_header' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_6to4__validate_and_translate_ip_header(t64ts_tundra__xlat_thread_context *context, _t64ts_xlat_6to4__out_ipv4_packet_data *out_packet_data);
^
src/t64_xlat_6to4.c:44:13: warning: identifier '_t64f_xlat_6to4__translate_icmpv6_payload_to_icmpv4_and_send' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_6to4__translate_icmpv6_payload_to_icmpv4_and_send(t64ts_tundra__xlat_thread_context *context, _t64ts_xlat_6to4__out_ipv4_packet_data *out_packet_data);
^
src/t64_xlat_6to4.c:45:13: warning: identifier '_t64f_xlat_6to4__translate_tcp_payload_and_send' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_6to4__translate_tcp_payload_and_send(const t64ts_tundra__xlat_thread_context *context, _t64ts_xlat_6to4__out_ipv4_packet_data *out_packet_data);
^
src/t64_xlat_6to4.c:46:13: warning: identifier '_t64f_xlat_6to4__translate_udp_payload_and_send' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_6to4__translate_udp_payload_and_send(const t64ts_tundra__xlat_thread_context *context, _t64ts_xlat_6to4__out_ipv4_packet_data *out_packet_data);
^
src/t64_xlat_6to4.c:47:13: warning: identifier '_t64f_xlat_6to4__translate_generic_payload_and_send' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_6to4__translate_generic_payload_and_send(const t64ts_tundra__xlat_thread_context *context, _t64ts_xlat_6to4__out_ipv4_packet_data *out_packet_data);
^
src/t64_xlat_6to4.c:48:13: warning: identifier '_t64f_xlat_6to4__appropriately_send_ipv4_packet' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_6to4__appropriately_send_ipv4_packet(const t64ts_tundra__xlat_thread_context *context, struct iphdr *ipv4_header, const uint8_t *nullable_payload1_ptr, const size_t zeroable_payload1_size_m8, const uint8_t *payload2_ptr, const size_t payload2_size);
^
src/t64_xlat_6to4.c:49:13: warning: identifier '_t64f_xlat_6to4__fragment_and_send_ipv4_packet' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_6to4__fragment_and_send_ipv4_packet(const t64ts_tundra__xlat_thread_context *context, struct iphdr *ipv4_header, const uint8_t *nullable_payload1_ptr, const size_t zeroable_payload1_size_m8, const uint8_t *payload2_ptr, const size_t payload2_size);
^
src/t64_xlat_6to4.c:50:13: warning: identifier '_t64f_xlat_6to4__fragment_and_send_ipv4_packet_part' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_6to4__fragment_and_send_ipv4_packet_part(const t64ts_tundra__xlat_thread_context *context, struct iphdr *ready_ipv4_header, const uint8_t *current_payload_part_ptr, size_t remaining_payload_part_size, size_t *fragment_offset_8byte_chunks, const bool more_fragments_after_this_part, const bool dont_fragment, const size_t max_fragment_payload_size);
^
In file included from src/t64_xlat_6to4.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat_6to4.c:36:20: warning: padding struct '_t64ts_xlat_6to4__out_ipv4_packet_data' with 4 bytes to align 'payload_ptr' [-Wpadded]
const uint8_t *payload_ptr; // Points to a part of 'context->in_packet_buffer' --> must not be modified!
^
src/t64_xlat_6to4.c:34:9: warning: padding size of '_t64ts_xlat_6to4__out_ipv4_packet_data' with 6 bytes to alignment boundary [-Wpadded]
typedef struct {
^
In file included from src/t64_xlat_6to4.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat_6to4.c:88:44: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'const struct ipv6hdr *' increases required alignment from 1 to 4 [-Wcast-align]
const struct ipv6hdr *in_ipv6_header = (const struct ipv6hdr *) context->in_packet_buffer;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:155:27: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const ssize_t current_header_size = 8 + (((ssize_t) current_header_ptr[1]) * 8);
^
src/t64_xlat_6to4.c:181:28: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const uint16_t fragment_offset = T64M_UTILS_IP__GET_IPV6_FRAGMENT_OFFSET(ipv6_fragment_header_ptr);
^
src/t64_xlat_6to4.c:88:27: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const struct ipv6hdr *in_ipv6_header = (const struct ipv6hdr *) context->in_packet_buffer;
^
src/t64_xlat_6to4.c:220:129: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'const struct ipv6hdr *' increases required alignment from 1 to 4 [-Wcast-align]
if(t64f_checksum__calculate_rfc1071_checksum_for_ipv6(out_packet_data->payload_ptr, out_packet_data->payload_size, NULL, 0, (const struct ipv6hdr *) context->in_packet_buffer, 58) != 0)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/t64_xlat_6to4.c:29:
src/t64_xlat_6to4_icmp.h:30:20: warning: padding struct 't64ts_xlat_6to4_icmp__out_icmpv4_message_data' with 4 bytes to align 'nullable_message_end_ptr' [-Wpadded]
const uint8_t *nullable_message_end_ptr; // Points to a part of 'context->in_packet_buffer' --> must not be modified!
^
src/t64_xlat_6to4.c:223:51: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
t64ts_xlat_6to4_icmp__out_icmpv4_message_data out_message_data;
^
src/t64_xlat_6to4.c:253:123: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'const struct ipv6hdr *' increases required alignment from 1 to 4 [-Wcast-align]
new_tcp_header->check = t64f_checksum__incrementally_recalculate_rfc1071_checksum_6to4(new_tcp_header->check, (const struct ipv6hdr *) context->in_packet_buffer, &out_packet_data->ipv4_header);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:263:123: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'const struct ipv6hdr *' increases required alignment from 1 to 4 [-Wcast-align]
new_tcp_header->check = t64f_checksum__incrementally_recalculate_rfc1071_checksum_6to4(new_tcp_header->check, (const struct ipv6hdr *) context->in_packet_buffer, &out_packet_data->ipv4_header);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:288:124: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'const struct ipv6hdr *' increases required alignment from 1 to 4 [-Wcast-align]
const uint16_t new_checksum = t64f_checksum__incrementally_recalculate_rfc1071_checksum_6to4(new_udp_header.check, (const struct ipv6hdr *) context->in_packet_buffer, &out_packet_data->ipv4_header);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4.c:288:24: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const uint16_t new_checksum = t64f_checksum__incrementally_recalculate_rfc1071_checksum_6to4(new_udp_header.check, (const struct ipv6hdr *) context->in_packet_buffer, &out_packet_data->ipv4_header);
^
src/t64_xlat_6to4.c:370:12: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
size_t max_fragment_payload_size = (context->configuration->translator_ipv4_outbound_mtu - 20);
^
39 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_xlat_6to4_icmp.o -c src/t64_xlat_6to4_icmp.c
In file included from src/t64_xlat_6to4_icmp.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_xlat_6to4_icmp.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_xlat_6to4_icmp.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_xlat_6to4_icmp.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_xlat_6to4_icmp.c:23:
src/t64_xlat_6to4_icmp.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_6TO4_ICMP_H
^
In file included from src/t64_xlat_6to4_icmp.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_xlat_6to4_icmp.c:26:
src/t64_utils_ip.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_IP_H
^
In file included from src/t64_xlat_6to4_icmp.c:27:
src/t64_checksum.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CHECKSUM_H
^
In file included from src/t64_xlat_6to4_icmp.c:28:
src/t64_xlat_addr.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_ADDR_H
^
src/t64_xlat_6to4_icmp.c:36:3: warning: identifier '_t64ts_xlat_6to4_icmp__out_ipv4_packet_in_error_data' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
} _t64ts_xlat_6to4_icmp__out_ipv4_packet_in_error_data;
^
src/t64_xlat_6to4_icmp.c:39:13: warning: identifier '_t64f_xlat_6to4_icmp__validate_and_translate_icmp_type_and_code' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_6to4_icmp__validate_and_translate_icmp_type_and_code(const uint8_t old_icmpv6_type, const uint8_t old_icmpv6_code, uint8_t *new_icmpv4_type, uint8_t *new_icmpv4_code);
^
src/t64_xlat_6to4_icmp.c:40:13: warning: identifier '_t64f_xlat_6to4_icmp__validate_and_translate_rest_of_header' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_6to4_icmp__validate_and_translate_rest_of_header(const t64ts_tundra__xlat_thread_context *context, const uint8_t old_icmpv6_type, const uint8_t old_icmpv6_code, const uint8_t *old_icmpv6_rest_of_header, uint8_t *new_icmpv4_rest_of_header);
^
src/t64_xlat_6to4_icmp.c:41:17: warning: identifier '_t64f_xlat_6to4_icmp__recalculate_packet_too_big_mtu' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static uint16_t _t64f_xlat_6to4_icmp__recalculate_packet_too_big_mtu(const t64ts_tundra__xlat_thread_context *context, uint16_t mtu);
^
src/t64_xlat_6to4_icmp.c:42:13: warning: identifier '_t64f_xlat_6to4_icmp__translate_parameter_problem_pointer' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_6to4_icmp__translate_parameter_problem_pointer(const uint8_t old_pointer, uint8_t *new_pointer);
^
src/t64_xlat_6to4_icmp.c:43:13: warning: identifier '_t64f_xlat_6to4_icmp__validate_and_translate_ip_header_of_packet_in_error' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_6to4_icmp__validate_and_translate_ip_header_of_packet_in_error(t64ts_tundra__xlat_thread_context *context, const uint8_t *in_icmpv6_payload_ptr, const size_t in_icmpv6_payload_size, uint8_t *out_packet_in_error_buffer_28b, _t64ts_xlat_6to4_icmp__out_ipv4_packet_in_error_data *out_packet_in_error_data, const bool dont_fragment);
^
src/t64_xlat_6to4_icmp.c:50:47: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const struct icmp6hdr *' increases required alignment from 1 to 4 [-Wcast-align]
const struct icmp6hdr *in_icmpv6_header = (const struct icmp6hdr *) in_packet_payload_ptr;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:51:41: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'struct icmphdr *' increases required alignment from 1 to 4 [-Wcast-align]
struct icmphdr *out_icmpv4_header = (struct icmphdr *) out_message_data->message_start_36b;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/t64_xlat_6to4_icmp.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat_6to4_icmp.c:31:9: warning: padding size of '_t64ts_xlat_6to4_icmp__out_ipv4_packet_in_error_data' with 6 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat_6to4_icmp.c:100:70: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'struct icmphdr *' increases required alignment from 1 to 4 [-Wcast-align]
struct icmphdr *new_icmpv4_packet_in_error_payload_ptr = (struct icmphdr *) (out_message_data->message_start_36b + 28);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:100:29: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
struct icmphdr *new_icmpv4_packet_in_error_payload_ptr = (struct icmphdr *) (out_message_data->message_start_36b + 28);
^
src/t64_xlat_6to4_icmp.c:50:28: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const struct icmp6hdr *in_icmpv6_header = (const struct icmp6hdr *) in_packet_payload_ptr;
^
In file included from src/t64_xlat_6to4_icmp.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
In file included from src/t64_xlat_6to4_icmp.c:23:
src/t64_xlat_6to4_icmp.h:30:20: warning: padding struct 't64ts_xlat_6to4_icmp__out_icmpv4_message_data' with 4 bytes to align 'nullable_message_end_ptr' [-Wpadded]
const uint8_t *nullable_message_end_ptr; // Points to a part of 'context->in_packet_buffer' --> must not be modified!
^
src/t64_xlat_6to4_icmp.c:269:42: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const uint16_t *' (aka 'const unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
const uint16_t old_mtu = ntohs(*((const uint16_t *) (old_icmpv6_rest_of_header + 2)));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/netinet/in.h:423:33: note: expanded from macro 'ntohs'
# define ntohs(x) __bswap_16 (x)
^
src/t64_xlat_6to4_icmp.c:271:11: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint16_t *' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
*((uint16_t *) (new_icmpv4_rest_of_header + 2)) = htons(new_mtu);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:269:24: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const uint16_t old_mtu = ntohs(*((const uint16_t *) (old_icmpv6_rest_of_header + 2)));
^
src/t64_xlat_6to4_icmp.c:353:44: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const struct ipv6hdr *' increases required alignment from 1 to 4 [-Wcast-align]
const struct ipv6hdr *in_ipv6_header = (const struct ipv6hdr *) in_icmpv6_payload_ptr;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:354:37: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'struct iphdr *' increases required alignment from 1 to 4 [-Wcast-align]
struct iphdr *out_ipv4_header = (struct iphdr *) out_packet_in_error_buffer_28b;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_6to4_icmp.c:384:27: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const ssize_t current_header_size = 8 + (((ssize_t) current_header_ptr[1]) * 8);
^
src/t64_xlat_6to4_icmp.c:407:23: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const uint8_t ipv4_protocol = (current_header_number == 58) ? 1 : current_header_number;
^
src/t64_xlat_6to4_icmp.c:353:27: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const struct ipv6hdr *in_ipv6_header = (const struct ipv6hdr *) in_icmpv6_payload_ptr;
^
34 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_xlat_addr.o -c src/t64_xlat_addr.c
In file included from src/t64_xlat_addr.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_xlat_addr.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_xlat_addr.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_xlat_addr.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_xlat_addr.c:23:
src/t64_xlat_addr.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_ADDR_H
^
In file included from src/t64_xlat_addr.c:25:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
In file included from src/t64_xlat_addr.c:26:
src/t64_xlat_addr_nat64.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_ADDR_NAT64_H
^
In file included from src/t64_xlat_addr.c:27:
src/t64_xlat_addr_clat.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_ADDR_CLAT_H
^
In file included from src/t64_xlat_addr.c:28:
src/t64_xlat_addr_siit.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_ADDR_SIIT_H
^
In file included from src/t64_xlat_addr.c:29:
src/t64_xlat_addr_external.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_ADDR_EXTERNAL_H
^
In file included from src/t64_xlat_addr.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat_addr.c:48:9: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
default:
^
In file included from src/t64_xlat_addr.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat_addr.c:69:9: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
default:
^
src/t64_xlat_addr.c:90:9: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
default:
^
src/t64_xlat_addr.c:111:9: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
default:
^
18 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_xlat_addr_clat.o -c src/t64_xlat_addr_clat.c
In file included from src/t64_xlat_addr_clat.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_xlat_addr_clat.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_xlat_addr_clat.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_xlat_addr_clat.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_xlat_addr_clat.c:23:
src/t64_xlat_addr_clat.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_ADDR_CLAT_H
^
In file included from src/t64_xlat_addr_clat.c:25:
src/t64_utils_xlat_addr.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_XLAT_ADDR_H
^
In file included from src/t64_xlat_addr_clat.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
10 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_xlat_addr_external.o -c src/t64_xlat_addr_external.c
In file included from src/t64_xlat_addr_external.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_xlat_addr_external.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_xlat_addr_external.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_xlat_addr_external.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_xlat_addr_external.c:23:
src/t64_xlat_addr_external.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_ADDR_EXTERNAL_H
^
In file included from src/t64_xlat_addr_external.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_xlat_addr_external.c:26:
src/t64_utils_ip.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_IP_H
^
In file included from src/t64_xlat_addr_external.c:27:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
In file included from src/t64_xlat_addr_external.c:28:
src/t64_conf_file.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CONF_FILE_H
^
In file included from src/t64_xlat_addr_external.c:29:
src/t64_router_ipv4.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_ROUTER_IPV4_H
^
In file included from src/t64_xlat_addr_external.c:30:
src/t64_router_ipv6.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_ROUTER_IPV6_H
^
In file included from src/t64_xlat_addr_external.c:31:
src/t64_xlat_interrupt.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_INTERRUPT_H
^
src/t64_xlat_addr_external.c:34:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_MAGIC_BYTE ((uint8_t) 0x54)
^
src/t64_xlat_addr_external.c:35:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_VERSION ((uint8_t) 1)
^
src/t64_xlat_addr_external.c:39:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_4TO6_MAIN_PACKET ((uint8_t) 1)
^
src/t64_xlat_addr_external.c:40:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_4TO6_ICMP_ERROR_PACKET ((uint8_t) 2)
^
src/t64_xlat_addr_external.c:41:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_6TO4_MAIN_PACKET ((uint8_t) 3)
^
src/t64_xlat_addr_external.c:42:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_6TO4_ICMP_ERROR_PACKET ((uint8_t) 4)
^
src/t64_xlat_addr_external.c:45:13: warning: identifier '_t64f_xlat_addr_external__perform_external_address_translation' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_addr_external__perform_external_address_translation(t64ts_tundra__xlat_thread_context *context, const uint8_t message_type, const uint8_t *in_src_ip, const uint8_t *in_dst_ip, uint8_t *out_src_ip, uint8_t *out_dst_ip, uint8_t *out_cache_lifetime);
^
src/t64_xlat_addr_external.c:46:13: warning: identifier '_t64f_xlat_addr_external__construct_and_send_request_message_to_external_translation_fd' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_addr_external__construct_and_send_request_message_to_external_translation_fd(t64ts_tundra__xlat_thread_context *context, t64ts_tundra__external_addr_xlat_message *message_buf, const uint8_t message_type, const uint32_t message_identifier, const uint8_t *in_src_ip, const uint8_t *in_dst_ip);
^
src/t64_xlat_addr_external.c:47:13: warning: identifier '_t64f_xlat_addr_external__receive_and_parse_response_message_from_external_translation_fd' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_addr_external__receive_and_parse_response_message_from_external_translation_fd(t64ts_tundra__xlat_thread_context *context, t64ts_tundra__external_addr_xlat_message *message_buf, const uint8_t message_type, const uint32_t message_identifier, uint8_t *out_src_ip, uint8_t *out_dst_ip, uint8_t *out_cache_lifetime);
^
src/t64_xlat_addr_external.c:48:13: warning: identifier '_t64f_xlat_addr_external__ensure_external_translation_fds_are_open' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_addr_external__ensure_external_translation_fds_are_open(t64ts_tundra__xlat_thread_context *context);
^
src/t64_xlat_addr_external.c:49:13: warning: identifier '_t64f_xlat_addr_external__close_external_translation_fds_if_necessary' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_addr_external__close_external_translation_fds_if_necessary(t64ts_tundra__xlat_thread_context *context);
^
src/t64_xlat_addr_external.c:50:12: warning: identifier '_t64f_xlat_addr_external__open_external_translation_socket' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static int _t64f_xlat_addr_external__open_external_translation_socket(const int family, const int protocol, const struct sockaddr *address, const socklen_t address_length, const struct timeval *timeout);
^
src/t64_xlat_addr_external.c:51:13: warning: identifier '_t64f_xlat_addr_external__receive_message_from_external_translation_fd' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_addr_external__receive_message_from_external_translation_fd(t64ts_tundra__xlat_thread_context *context, t64ts_tundra__external_addr_xlat_message *message_buf);
^
src/t64_xlat_addr_external.c:52:13: warning: identifier '_t64f_xlat_addr_external__send_message_to_external_translation_fd' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_addr_external__send_message_to_external_translation_fd(t64ts_tundra__xlat_thread_context *context, const t64ts_tundra__external_addr_xlat_message *message_buf);
^
src/t64_xlat_addr_external.c:53:13: warning: identifier '_t64f_xlat_addr_external__attempt_to_perform_4to6_address_translation_using_cache' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_addr_external__attempt_to_perform_4to6_address_translation_using_cache(const t64ts_tundra__external_addr_xlat_cache_entry *cache, const size_t cache_size, const uint8_t *in_src_ipv4, const uint8_t *in_dst_ipv4, uint8_t *out_src_ipv6, uint8_t *out_dst_ipv6);
^
src/t64_xlat_addr_external.c:54:13: warning: identifier '_t64f_xlat_addr_external__attempt_to_perform_6to4_address_translation_using_cache' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static bool _t64f_xlat_addr_external__attempt_to_perform_6to4_address_translation_using_cache(const t64ts_tundra__external_addr_xlat_cache_entry *cache, const size_t cache_size, const uint8_t *in_src_ipv6, const uint8_t *in_dst_ipv6, uint8_t *out_src_ipv4, uint8_t *out_dst_ipv4);
^
src/t64_xlat_addr_external.c:55:13: warning: identifier '_t64f_xlat_addr_external__save_4to6_address_mapping_to_cache' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_addr_external__save_4to6_address_mapping_to_cache(t64ts_tundra__external_addr_xlat_cache_entry *cache, const size_t cache_size, const uint8_t *in_src_ipv4, const uint8_t *in_dst_ipv4, const uint8_t *out_src_ipv6, const uint8_t *out_dst_ipv6, const time_t cache_lifetime);
^
src/t64_xlat_addr_external.c:56:13: warning: identifier '_t64f_xlat_addr_external__save_6to4_address_mapping_to_cache' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_addr_external__save_6to4_address_mapping_to_cache(t64ts_tundra__external_addr_xlat_cache_entry *cache, const size_t cache_size, const uint8_t *in_src_ipv6, const uint8_t *in_dst_ipv6, const uint8_t *out_src_ipv4, const uint8_t *out_dst_ipv4, const time_t cache_lifetime);
^
src/t64_xlat_addr_external.c:57:13: warning: identifier '_t64f_xlat_addr_external__save_address_mapping_to_target_cache_entry' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_addr_external__save_address_mapping_to_target_cache_entry(t64ts_tundra__external_addr_xlat_cache_entry *target_entry, const uint8_t *src_ipv4, const uint8_t *dst_ipv4, const uint8_t *src_ipv6, const uint8_t *dst_ipv6, const time_t cache_lifetime);
^
src/t64_xlat_addr_external.c:58:22: warning: identifier '_t64f_xlat_addr_external__compute_cache_hash_from_in_ipv4_address_pair' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static inline size_t _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv4_address_pair(const uint32_t *in_src_ipv4, const uint32_t *in_dst_ipv4, const size_t cache_size);
^
src/t64_xlat_addr_external.c:59:22: warning: identifier '_t64f_xlat_addr_external__compute_cache_hash_from_in_ipv6_address_pair' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static inline size_t _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv6_address_pair(const uint64_t *in_src_ipv6, const uint64_t *in_dst_ipv6, const size_t cache_size);
^
src/t64_xlat_addr_external.c:60:22: warning: identifier '_t64f_xlat_addr_external__get_current_timestamp_in_seconds' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static inline time_t _t64f_xlat_addr_external__get_current_timestamp_in_seconds(void);
^
In file included from src/t64_xlat_addr_external.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat_addr_external.c:70:13: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
uint8_t cache_lifetime = 0;
^
In file included from src/t64_xlat_addr_external.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat_addr_external.c:91:13: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
uint8_t cache_lifetime = 0;
^
src/t64_xlat_addr_external.c:112:13: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
uint8_t cache_lifetime = 0;
^
src/t64_xlat_addr_external.c:133:13: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
uint8_t cache_lifetime = 0;
^
src/t64_xlat_addr_external.c:151:20: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const uint32_t message_identifier = htonl(context->external_addr_xlat_state->message_identifier);
^
src/t64_xlat_addr_external.c:297:12: warning: enumeration value 'T64TE_TUNDRA__ADDRESSING_EXTERNAL_TRANSPORT_NONE' not explicitly handled in switch [-Wswitch-enum]
switch(context->configuration->addressing_external_transport) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:399:152: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const uint32_t *' (aka 'const unsigned int *') increases required alignment from 1 to 4 [-Wcast-align]
const t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv4_address_pair((const uint32_t *) in_src_ipv4, (const uint32_t *) in_dst_ipv4, cache_size));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:399:184: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const uint32_t *' (aka 'const unsigned int *') increases required alignment from 1 to 4 [-Wcast-align]
const t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv4_address_pair((const uint32_t *) in_src_ipv4, (const uint32_t *) in_dst_ipv4, cache_size));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:399:57: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv4_address_pair((const uint32_t *) in_src_ipv4, (const uint32_t *) in_dst_ipv4, cache_size));
^
src/t64_xlat_addr_external.c:422:152: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const uint64_t *' (aka 'const unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
const t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv6_address_pair((const uint64_t *) in_src_ipv6, (const uint64_t *) in_dst_ipv6, cache_size));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:422:184: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const uint64_t *' (aka 'const unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
const t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv6_address_pair((const uint64_t *) in_src_ipv6, (const uint64_t *) in_dst_ipv6, cache_size));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:422:57: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv6_address_pair((const uint64_t *) in_src_ipv6, (const uint64_t *) in_dst_ipv6, cache_size));
^
src/t64_xlat_addr_external.c:445:146: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const uint32_t *' (aka 'const unsigned int *') increases required alignment from 1 to 4 [-Wcast-align]
t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv4_address_pair((const uint32_t *) in_src_ipv4, (const uint32_t *) in_dst_ipv4, cache_size));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:445:178: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const uint32_t *' (aka 'const unsigned int *') increases required alignment from 1 to 4 [-Wcast-align]
t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv4_address_pair((const uint32_t *) in_src_ipv4, (const uint32_t *) in_dst_ipv4, cache_size));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:445:51: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv4_address_pair((const uint32_t *) in_src_ipv4, (const uint32_t *) in_dst_ipv4, cache_size));
^
src/t64_xlat_addr_external.c:455:146: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const uint64_t *' (aka 'const unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv6_address_pair((const uint64_t *) in_src_ipv6, (const uint64_t *) in_dst_ipv6, cache_size));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:455:178: warning: cast from 'const uint8_t *' (aka 'const unsigned char *') to 'const uint64_t *' (aka 'const unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv6_address_pair((const uint64_t *) in_src_ipv6, (const uint64_t *) in_dst_ipv6, cache_size));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/t64_xlat_addr_external.c:455:51: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
t64ts_tundra__external_addr_xlat_cache_entry *target_entry = (cache + _t64f_xlat_addr_external__compute_cache_hash_from_in_ipv6_address_pair((const uint64_t *) in_src_ipv6, (const uint64_t *) in_dst_ipv6, cache_size));
^
src/t64_xlat_addr_external.c:464:18: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const time_t current_timestamp = _t64f_xlat_addr_external__get_current_timestamp_in_seconds();
^
src/t64_xlat_addr_external.c:495:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_MAGIC_BYTE
^
src/t64_xlat_addr_external.c:496:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_VERSION
^
src/t64_xlat_addr_external.c:498:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_4TO6_MAIN_PACKET
^
src/t64_xlat_addr_external.c:499:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_4TO6_ICMP_ERROR_PACKET
^
src/t64_xlat_addr_external.c:500:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_6TO4_MAIN_PACKET
^
src/t64_xlat_addr_external.c:501:8: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#undef _T64C_XLAT_ADDR_EXTERNAL__MESSAGE_TYPE_6TO4_ICMP_ERROR_PACKET
^
63 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_xlat_addr_nat64.o -c src/t64_xlat_addr_nat64.c
In file included from src/t64_xlat_addr_nat64.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_xlat_addr_nat64.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_xlat_addr_nat64.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_xlat_addr_nat64.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_xlat_addr_nat64.c:23:
src/t64_xlat_addr_nat64.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_ADDR_NAT64_H
^
In file included from src/t64_xlat_addr_nat64.c:25:
src/t64_utils_xlat_addr.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_XLAT_ADDR_H
^
In file included from src/t64_xlat_addr_nat64.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
10 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_xlat_addr_siit.o -c src/t64_xlat_addr_siit.c
In file included from src/t64_xlat_addr_siit.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_xlat_addr_siit.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_xlat_addr_siit.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_xlat_addr_siit.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_xlat_addr_siit.c:23:
src/t64_xlat_addr_siit.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_ADDR_SIIT_H
^
In file included from src/t64_xlat_addr_siit.c:25:
src/t64_utils_xlat_addr.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_XLAT_ADDR_H
^
In file included from src/t64_xlat_addr_siit.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
10 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_xlat.o -c src/t64_xlat.c
In file included from src/t64_xlat.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_xlat.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_xlat.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_xlat.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_xlat.c:23:
src/t64_xlat.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_H
^
In file included from src/t64_xlat.c:25:
src/t64_signal.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_SIGNAL_H
^
In file included from src/t64_xlat.c:26:
src/t64_xlat_io.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_IO_H
^
In file included from src/t64_xlat.c:27:
src/t64_xlat_4to6.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_4TO6_H
^
In file included from src/t64_xlat.c:28:
src/t64_xlat_6to4.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_6TO4_H
^
src/t64_xlat.c:31:13: warning: identifier '_t64f_xlat__translate_packet' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat__translate_packet(t64ts_tundra__xlat_thread_context *context);
^
In file included from src/t64_xlat.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat.c:50:19: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const uint8_t ip_version = (*context->in_packet_buffer) >> 4;
^
15 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_xlat_interrupt.o -c src/t64_xlat_interrupt.c
In file included from src/t64_xlat_interrupt.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_xlat_interrupt.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_xlat_interrupt.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_xlat_interrupt.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_xlat_interrupt.c:23:
src/t64_xlat_interrupt.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_INTERRUPT_H
^
In file included from src/t64_xlat_interrupt.c:25:
src/t64_signal.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_SIGNAL_H
^
src/t64_xlat_interrupt.c:33:23: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const ssize_t ret_value = read(fd, buf, count);
^
src/t64_xlat_interrupt.c:47:23: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const ssize_t ret_value = write(fd, buf, count);
^
src/t64_xlat_interrupt.c:61:23: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const ssize_t ret_value = writev(fd, iov, iovcnt);
^
src/t64_xlat_interrupt.c:82:19: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const int ret_value = connect(sockfd, addr, addrlen);
^
src/t64_xlat_interrupt.c:101:19: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
const int ret_value = close(fd);
^
11 warnings generated.
clang -MD -MP -std=c11 -Wall -Wextra -Wpedantic -Weverything -O3 -flto -pthread -o src/t64_xlat_io.o -c src/t64_xlat_io.c
In file included from src/t64_xlat_io.c:22:
src/t64_tundra.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_H
^
In file included from src/t64_xlat_io.c:22:
In file included from src/t64_tundra.h:49:
src/t64_tundra_includes.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_INCLUDES_H
^
In file included from src/t64_xlat_io.c:22:
In file included from src/t64_tundra.h:50:
src/t64_tundra_defs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_DEFS_H
^
In file included from src/t64_xlat_io.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_TUNDRA_TYPEDEFS_H
^
In file included from src/t64_xlat_io.c:23:
src/t64_xlat_io.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_IO_H
^
In file included from src/t64_xlat_io.c:25:
src/t64_utils.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_UTILS_H
^
In file included from src/t64_xlat_io.c:26:
src/t64_checksum.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_CHECKSUM_H
^
In file included from src/t64_xlat_io.c:27:
src/t64_log.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_LOG_H
^
In file included from src/t64_xlat_io.c:28:
src/t64_xlat_interrupt.h:23:9: warning: macro name is a reserved identifier [-Wreserved-macro-identifier]
#define _T64I_XLAT_INTERRUPT_H
^
src/t64_xlat_io.c:31:13: warning: identifier '_t64f_xlat_io__send_packet' is reserved because it starts with '_' at global scope [-Wreserved-identifier]
static void _t64f_xlat_io__send_packet(const t64ts_tundra__xlat_thread_context *context, const struct iovec *iov, const int iovcnt, const size_t total_packet_size);
^
In file included from src/t64_xlat_io.c:22:
In file included from src/t64_tundra.h:51:
src/t64_tundra_typedefs.h:143:9: warning: padding size of 't64ts_tundra__xlat_thread_context' with 1 byte to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:71:20: warning: padding struct 't64ts_tundra__conf_file' with 2 bytes to align 'addressing_external_unix_tcp_timeout' [-Wpadded]
struct timeval addressing_external_unix_tcp_timeout;
^
src/t64_tundra_typedefs.h:65:9: warning: padding size of 't64ts_tundra__conf_file' with 3 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_tundra_typedefs.h:112:9: warning: padding size of 't64ts_tundra__external_addr_xlat_state' with 4 bytes to alignment boundary [-Wpadded]
typedef struct {
^
src/t64_xlat_io.c:58:41: warning: cast from 'const unsigned char *' to 'void *' drops const qualifier [-Wcast-qual]
iov[iovcnt].iov_base = (void *) nullable_payload1_ptr;
^
src/t64_xlat_io.c:64:41: warning: cast from 'const unsigned char *' to 'void *' drops const qualifier [-Wcast-qual]
iov[iovcnt].iov_base = (void *) nullable_payload2_ptr;
^
src/t64_xlat_io.c:49:9: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
int iovcnt = 0;
^
src/t64_xlat_io.c:93:41: warning: cast from 'const t64ts_tundra__ipv6_fragment_header *' to 'void *' drops const qualifier [-Wcast-qual]
iov[iovcnt].iov_base = (void *) nullable_ipv6_fragment_header;
^
src/t64_xlat_io.c:99:41: warning: cast from 'const unsigned char *' to 'void *' drops const qualifier [-Wcast-qual]
iov[iovcnt].iov_base = (void *) nullable_payload1_ptr;
^
src/t64_xlat_io.c:105:41: warning: cast from 'const unsigned char *' to 'void *' drops const qualifier [-Wcast-qual]
iov[iovcnt].iov_base = (void *) nullable_payload2_ptr;
^
src/t64_xlat_io.c:84:9: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
int iovcnt = 0;
^
21 warnings generated.
clang -O3 -flto -pthread -o tundra-nat64 src/t64_checksum.o src/t64_conf_cmdline.o src/t64_conf_file.o src/t64_conf_file_load.o src/t64_conf_rfc7050.o src/t64_init.o src/t64_init_io.o src/t64_log.o src/t64_main.o src/t64_opmode_mktun.o src/t64_opmode_print_config.o src/t64_opmode_rmtun.o src/t64_opmode_translate.o src/t64_opmode_validate_config.o src/t64_router_ipv4.o src/t64_router_ipv6.o src/t64_signal.o src/t64_utils.o src/t64_utils_ip.o src/t64_utils_xlat_addr.o src/t64_xlat_4to6.o src/t64_xlat_4to6_icmp.o src/t64_xlat_6to4.o src/t64_xlat_6to4_icmp.o src/t64_xlat_addr.o src/t64_xlat_addr_clat.o src/t64_xlat_addr_external.o src/t64_xlat_addr_nat64.o src/t64_xlat_addr_siit.o src/t64_xlat.o src/t64_xlat_interrupt.o src/t64_xlat_io.o
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment