Use __attribute__((fallthrough)) rather than magic GCC comments.

GCC added an implicit-fallthrough warning a while back, where it
would complain if you had a nontrivial "case:" block that didn't end
with break, return, or something like that.  Clang recently added
the same thing.

GCC, however, would let you annotate a fall-through as intended by
any of various magic "/* fall through */" comments.  Clang, however,
only seems to like "__attribute__((fallthrough))".  Fortunately, GCC
accepts that too.

A previous commit in this branch defined a FALLTHROUGH macro to do
the right thing if GNUC is defined; here we replace all of our "fall
through" comments with uses of that macro.

This is an automated commit, made with the following perl one-liner:

  #!/usr/bin/perl -i -p
  s#/\* *falls? ?thr.*?\*/#FALLTHROUGH;#i;

(In order to avoid conflicts, I'm applying this script separately to
each maint branch. This is the 0.4.3 version.)
This commit is contained in:
Nick Mathewson 2020-05-06 10:45:48 -04:00
parent a1365b91ff
commit c116728209
26 changed files with 86 additions and 86 deletions

View File

@ -31,7 +31,7 @@ add_default_log_for_quiet_level(quiet_level_t quiet)
/* --hush: log at warning or higher. */ /* --hush: log at warning or higher. */
add_default_log(LOG_WARN); add_default_log(LOG_WARN);
break; break;
case QUIET_NONE: /* fall through */ case QUIET_NONE: FALLTHROUGH;
default: default:
add_default_log(LOG_NOTICE); add_default_log(LOG_NOTICE);
} }

View File

@ -1238,7 +1238,7 @@ channel_tls_handle_var_cell(var_cell_t *var_cell, or_connection_t *conn)
/* But that should be happening any longer've disabled bufferevents. */ /* But that should be happening any longer've disabled bufferevents. */
tor_assert_nonfatal_unreached_once(); tor_assert_nonfatal_unreached_once();
/* fall through */ FALLTHROUGH;
case OR_CONN_STATE_TLS_SERVER_RENEGOTIATING: case OR_CONN_STATE_TLS_SERVER_RENEGOTIATING:
if (!(command_allowed_before_handshake(var_cell->command))) { if (!(command_allowed_before_handshake(var_cell->command))) {
log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL, log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL,

View File

@ -2108,7 +2108,7 @@ choose_good_exit_server(origin_circuit_t *circ,
/* For these three, we want to pick the exit like a middle hop, /* For these three, we want to pick the exit like a middle hop,
* since it should be random. */ * since it should be random. */
tor_assert_nonfatal(is_internal); tor_assert_nonfatal(is_internal);
/* Falls through */ FALLTHROUGH;
case CIRCUIT_PURPOSE_C_GENERAL: case CIRCUIT_PURPOSE_C_GENERAL:
if (is_internal) /* pick it like a middle hop */ if (is_internal) /* pick it like a middle hop */
return router_choose_random_node(NULL, options->ExcludeNodes, flags); return router_choose_random_node(NULL, options->ExcludeNodes, flags);

View File

@ -846,7 +846,7 @@ circuit_purpose_to_controller_hs_state_string(uint8_t purpose)
"Unrecognized circuit purpose: %d", "Unrecognized circuit purpose: %d",
(int)purpose); (int)purpose);
tor_fragile_assert(); tor_fragile_assert();
/* fall through */ FALLTHROUGH;
case CIRCUIT_PURPOSE_OR: case CIRCUIT_PURPOSE_OR:
case CIRCUIT_PURPOSE_C_GENERAL: case CIRCUIT_PURPOSE_C_GENERAL:

View File

@ -780,7 +780,7 @@ circuit_expire_building(void)
if (!hs_circ_is_rend_sent_in_intro1(CONST_TO_ORIGIN_CIRCUIT(victim))) { if (!hs_circ_is_rend_sent_in_intro1(CONST_TO_ORIGIN_CIRCUIT(victim))) {
break; break;
} }
/* fallthrough! */ FALLTHROUGH;
case CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT: case CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT:
case CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED: case CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED:
/* If we have reached this line, we want to spare the circ for now. */ /* If we have reached this line, we want to spare the circ for now. */

View File

@ -307,7 +307,7 @@ connection_edge_process_inbuf(edge_connection_t *conn, int package_partial)
note_user_activity(approx_time()); note_user_activity(approx_time());
} }
/* falls through. */ FALLTHROUGH;
case EXIT_CONN_STATE_OPEN: case EXIT_CONN_STATE_OPEN:
if (connection_edge_package_raw_inbuf(conn, package_partial, NULL) < 0) { if (connection_edge_package_raw_inbuf(conn, package_partial, NULL) < 0) {
/* (We already sent an end cell if possible) */ /* (We already sent an end cell if possible) */
@ -332,7 +332,7 @@ connection_edge_process_inbuf(edge_connection_t *conn, int package_partial)
} }
/* Fall through if the connection is on a circuit without optimistic /* Fall through if the connection is on a circuit without optimistic
* data support. */ * data support. */
/* Falls through. */ FALLTHROUGH;
case EXIT_CONN_STATE_CONNECTING: case EXIT_CONN_STATE_CONNECTING:
case AP_CONN_STATE_RENDDESC_WAIT: case AP_CONN_STATE_RENDDESC_WAIT:
case AP_CONN_STATE_CIRCUIT_WAIT: case AP_CONN_STATE_CIRCUIT_WAIT:
@ -766,7 +766,7 @@ connection_edge_flushed_some(edge_connection_t *conn)
note_user_activity(approx_time()); note_user_activity(approx_time());
} }
/* falls through. */ FALLTHROUGH;
case EXIT_CONN_STATE_OPEN: case EXIT_CONN_STATE_OPEN:
sendme_connection_edge_consider_sending(conn); sendme_connection_edge_consider_sending(conn);
break; break;

View File

@ -113,7 +113,7 @@ cpath_assert_layer_ok(const crypt_path_t *cp)
{ {
case CPATH_STATE_OPEN: case CPATH_STATE_OPEN:
relay_crypto_assert_ok(&cp->pvt_crypto); relay_crypto_assert_ok(&cp->pvt_crypto);
/* fall through */ FALLTHROUGH;
case CPATH_STATE_CLOSED: case CPATH_STATE_CLOSED:
/*XXXX Assert that there's no handshake_state either. */ /*XXXX Assert that there's no handshake_state either. */
tor_assert(!cp->rend_dh_handshake_state); tor_assert(!cp->rend_dh_handshake_state);

View File

@ -509,7 +509,7 @@ create_cell_format_impl(cell_t *cell_out, const create_cell_t *cell_in,
p += 16; p += 16;
space -= 16; space -= 16;
} }
/* Fall through */ FALLTHROUGH;
case CELL_CREATE_FAST: case CELL_CREATE_FAST:
tor_assert(cell_in->handshake_len <= space); tor_assert(cell_in->handshake_len <= space);
memcpy(p, cell_in->onionskin, cell_in->handshake_len); memcpy(p, cell_in->onionskin, cell_in->handshake_len);

View File

@ -2788,7 +2788,7 @@ parse_short_policy(const char *summary)
switch (*next) { switch (*next) {
case ',': case ',':
++next; ++next;
/* fall through */ FALLTHROUGH;
case '\0': case '\0':
high = low; high = low;
break; break;

View File

@ -489,7 +489,7 @@ end_reason_to_http_connect_response_line(int endreason)
return "HTTP/1.0 502 Bad Gateway (tor protocol violation)\r\n\r\n"; return "HTTP/1.0 502 Bad Gateway (tor protocol violation)\r\n\r\n";
case END_STREAM_REASON_ENTRYPOLICY: case END_STREAM_REASON_ENTRYPOLICY:
return "HTTP/1.0 403 Forbidden (entry policy violation)\r\n\r\n"; return "HTTP/1.0 403 Forbidden (entry policy violation)\r\n\r\n";
case END_STREAM_REASON_NOTDIRECTORY: /* Fall Through */ case END_STREAM_REASON_NOTDIRECTORY: FALLTHROUGH;
default: default:
tor_assert_nonfatal_unreached(); tor_assert_nonfatal_unreached();
return "HTTP/1.0 500 Internal Server Error (weird end reason)\r\n\r\n"; return "HTTP/1.0 500 Internal Server Error (weird end reason)\r\n\r\n";

View File

@ -940,7 +940,7 @@ connection_ap_process_end_not_open(
break; /* break means it'll close, below */ break; /* break means it'll close, below */
/* Else fall through: expire this circuit, clear the /* Else fall through: expire this circuit, clear the
* chosen_exit_name field, and try again. */ * chosen_exit_name field, and try again. */
/* Falls through. */ FALLTHROUGH;
case END_STREAM_REASON_RESOLVEFAILED: case END_STREAM_REASON_RESOLVEFAILED:
case END_STREAM_REASON_TIMEOUT: case END_STREAM_REASON_TIMEOUT:
case END_STREAM_REASON_MISC: case END_STREAM_REASON_MISC:

View File

@ -191,7 +191,7 @@ get_scheduler_type_string(scheduler_types_t type)
case SCHEDULER_KIST_LITE: case SCHEDULER_KIST_LITE:
return "KISTLite"; return "KISTLite";
case SCHEDULER_NONE: case SCHEDULER_NONE:
/* fallthrough */ FALLTHROUGH;
default: default:
tor_assert_unreached(); tor_assert_unreached();
return "(N/A)"; return "(N/A)";
@ -287,7 +287,7 @@ select_scheduler(void)
scheduler_kist_set_lite_mode(); scheduler_kist_set_lite_mode();
goto end; goto end;
case SCHEDULER_NONE: case SCHEDULER_NONE:
/* fallthrough */ FALLTHROUGH;
default: default:
/* Our option validation should have caught this. */ /* Our option validation should have caught this. */
tor_assert_unreached(); tor_assert_unreached();

View File

@ -293,7 +293,7 @@ send_circuit_level_sendme(circuit_t *circ, crypt_path_t *layer_hint,
log_debug(LD_PROTOCOL, "Emitting SENDME version 1 cell."); log_debug(LD_PROTOCOL, "Emitting SENDME version 1 cell.");
break; break;
case 0x00: case 0x00:
/* Fallthrough because default is to use v0. */ FALLTHROUGH;
default: default:
/* Unknown version, fallback to version 0 meaning no payload. */ /* Unknown version, fallback to version 0 meaning no payload. */
payload_len = 0; payload_len = 0;

View File

@ -861,7 +861,7 @@ fetch_from_buf_socks(buf_t *buf, socks_request_t *req,
case SOCKS_RESULT_TRUNCATED: case SOCKS_RESULT_TRUNCATED:
if (datalen == n_pullup) if (datalen == n_pullup)
return 0; return 0;
/* FALLTHRU */ FALLTHROUGH;
case SOCKS_RESULT_MORE_EXPECTED: case SOCKS_RESULT_MORE_EXPECTED:
res = 0; res = 0;
break; break;
@ -967,7 +967,7 @@ parse_socks(const char *data, size_t datalen, socks_request_t *req,
strlcpy((char*)req->reply, SOCKS_PROXY_IS_NOT_AN_HTTP_PROXY_MSG, strlcpy((char*)req->reply, SOCKS_PROXY_IS_NOT_AN_HTTP_PROXY_MSG,
MAX_SOCKS_REPLY_LEN); MAX_SOCKS_REPLY_LEN);
req->replylen = strlen((char*)req->reply)+1; req->replylen = strlen((char*)req->reply)+1;
/* fall through */ FALLTHROUGH;
default: /* version is not socks4 or socks5 */ default: /* version is not socks4 or socks5 */
log_warn(LD_APP, log_warn(LD_APP,
"Socks version %d not recognized. (This port is not an " "Socks version %d not recognized. (This port is not an "

View File

@ -95,13 +95,13 @@ uint64_t siphash24(const void *src, unsigned long src_sz, const struct sipkey *k
} }
#else #else
switch (src_sz - blocks) { switch (src_sz - blocks) {
case 7: last7 |= (uint64_t)m[i + 6] << 48; /* Falls through. */ case 7: last7 |= (uint64_t)m[i + 6] << 48; FALLTHROUGH;
case 6: last7 |= (uint64_t)m[i + 5] << 40; /* Falls through. */ case 6: last7 |= (uint64_t)m[i + 5] << 40; FALLTHROUGH;
case 5: last7 |= (uint64_t)m[i + 4] << 32; /* Falls through. */ case 5: last7 |= (uint64_t)m[i + 4] << 32; FALLTHROUGH;
case 4: last7 |= (uint64_t)m[i + 3] << 24; /* Falls through. */ case 4: last7 |= (uint64_t)m[i + 3] << 24; FALLTHROUGH;
case 3: last7 |= (uint64_t)m[i + 2] << 16; /* Falls through. */ case 3: last7 |= (uint64_t)m[i + 2] << 16; FALLTHROUGH;
case 2: last7 |= (uint64_t)m[i + 1] << 8; /* Falls through. */ case 2: last7 |= (uint64_t)m[i + 1] << 8; FALLTHROUGH;
case 1: last7 |= (uint64_t)m[i + 0] ; /* Falls through. */ case 1: last7 |= (uint64_t)m[i + 0] ; FALLTHROUGH;
case 0: case 0:
default:; default:;
} }

View File

@ -385,14 +385,14 @@ sub256_modm_batch(bignum256modm out, const bignum256modm a, const bignum256modm
size_t i = 0; size_t i = 0;
bignum256modm_element_t carry = 0; bignum256modm_element_t carry = 0;
switch (limbsize) { switch (limbsize) {
case 8: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; /* Falls through. */ case 8: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; FALLTHROUGH;
case 7: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; /* Falls through. */ case 7: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; FALLTHROUGH;
case 6: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; /* Falls through. */ case 6: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; FALLTHROUGH;
case 5: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; /* Falls through. */ case 5: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; FALLTHROUGH;
case 4: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; /* Falls through. */ case 4: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; FALLTHROUGH;
case 3: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; /* Falls through. */ case 3: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; FALLTHROUGH;
case 2: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; /* Falls through. */ case 2: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; FALLTHROUGH;
case 1: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; /* Falls through. */ case 1: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 31); out[i] &= 0x3fffffff; i++; FALLTHROUGH;
case 0: case 0:
default: out[i] = (a[i] - b[i]) - carry; default: out[i] = (a[i] - b[i]) - carry;
} }
@ -403,14 +403,14 @@ sub256_modm_batch(bignum256modm out, const bignum256modm a, const bignum256modm
static int static int
lt256_modm_batch(const bignum256modm a, const bignum256modm b, size_t limbsize) { lt256_modm_batch(const bignum256modm a, const bignum256modm b, size_t limbsize) {
switch (limbsize) { switch (limbsize) {
case 8: if (a[8] > b[8]) return 0; if (a[8] < b[8]) return 1; /* Falls through. */ case 8: if (a[8] > b[8]) return 0; if (a[8] < b[8]) return 1; FALLTHROUGH;
case 7: if (a[7] > b[7]) return 0; if (a[7] < b[7]) return 1; /* Falls through. */ case 7: if (a[7] > b[7]) return 0; if (a[7] < b[7]) return 1; FALLTHROUGH;
case 6: if (a[6] > b[6]) return 0; if (a[6] < b[6]) return 1; /* Falls through. */ case 6: if (a[6] > b[6]) return 0; if (a[6] < b[6]) return 1; FALLTHROUGH;
case 5: if (a[5] > b[5]) return 0; if (a[5] < b[5]) return 1; /* Falls through. */ case 5: if (a[5] > b[5]) return 0; if (a[5] < b[5]) return 1; FALLTHROUGH;
case 4: if (a[4] > b[4]) return 0; if (a[4] < b[4]) return 1; /* Falls through. */ case 4: if (a[4] > b[4]) return 0; if (a[4] < b[4]) return 1; FALLTHROUGH;
case 3: if (a[3] > b[3]) return 0; if (a[3] < b[3]) return 1; /* Falls through. */ case 3: if (a[3] > b[3]) return 0; if (a[3] < b[3]) return 1; FALLTHROUGH;
case 2: if (a[2] > b[2]) return 0; if (a[2] < b[2]) return 1; /* Falls through. */ case 2: if (a[2] > b[2]) return 0; if (a[2] < b[2]) return 1; FALLTHROUGH;
case 1: if (a[1] > b[1]) return 0; if (a[1] < b[1]) return 1; /* Falls through. */ case 1: if (a[1] > b[1]) return 0; if (a[1] < b[1]) return 1; FALLTHROUGH;
case 0: if (a[0] > b[0]) return 0; if (a[0] < b[0]) return 1; case 0: if (a[0] > b[0]) return 0; if (a[0] < b[0]) return 1;
} }
return 0; return 0;
@ -420,14 +420,14 @@ lt256_modm_batch(const bignum256modm a, const bignum256modm b, size_t limbsize)
static int static int
lte256_modm_batch(const bignum256modm a, const bignum256modm b, size_t limbsize) { lte256_modm_batch(const bignum256modm a, const bignum256modm b, size_t limbsize) {
switch (limbsize) { switch (limbsize) {
case 8: if (a[8] > b[8]) return 0; if (a[8] < b[8]) return 1; /* Falls through. */ case 8: if (a[8] > b[8]) return 0; if (a[8] < b[8]) return 1; FALLTHROUGH;
case 7: if (a[7] > b[7]) return 0; if (a[7] < b[7]) return 1; /* Falls through. */ case 7: if (a[7] > b[7]) return 0; if (a[7] < b[7]) return 1; FALLTHROUGH;
case 6: if (a[6] > b[6]) return 0; if (a[6] < b[6]) return 1; /* Falls through. */ case 6: if (a[6] > b[6]) return 0; if (a[6] < b[6]) return 1; FALLTHROUGH;
case 5: if (a[5] > b[5]) return 0; if (a[5] < b[5]) return 1; /* Falls through. */ case 5: if (a[5] > b[5]) return 0; if (a[5] < b[5]) return 1; FALLTHROUGH;
case 4: if (a[4] > b[4]) return 0; if (a[4] < b[4]) return 1; /* Falls through. */ case 4: if (a[4] > b[4]) return 0; if (a[4] < b[4]) return 1; FALLTHROUGH;
case 3: if (a[3] > b[3]) return 0; if (a[3] < b[3]) return 1; /* Falls through. */ case 3: if (a[3] > b[3]) return 0; if (a[3] < b[3]) return 1; FALLTHROUGH;
case 2: if (a[2] > b[2]) return 0; if (a[2] < b[2]) return 1; /* Falls through. */ case 2: if (a[2] > b[2]) return 0; if (a[2] < b[2]) return 1; FALLTHROUGH;
case 1: if (a[1] > b[1]) return 0; if (a[1] < b[1]) return 1; /* Falls through. */ case 1: if (a[1] > b[1]) return 0; if (a[1] < b[1]) return 1; FALLTHROUGH;
case 0: if (a[0] > b[0]) return 0; if (a[0] < b[0]) return 1; case 0: if (a[0] > b[0]) return 0; if (a[0] < b[0]) return 1;
} }
return 1; return 1;

View File

@ -294,10 +294,10 @@ sub256_modm_batch(bignum256modm out, const bignum256modm a, const bignum256modm
size_t i = 0; size_t i = 0;
bignum256modm_element_t carry = 0; bignum256modm_element_t carry = 0;
switch (limbsize) { switch (limbsize) {
case 4: out[i] = (a[i] - b[i]) ; carry = (out[i] >> 63); out[i] &= 0xffffffffffffff; i++; /* Falls through. */ case 4: out[i] = (a[i] - b[i]) ; carry = (out[i] >> 63); out[i] &= 0xffffffffffffff; i++; FALLTHROUGH;
case 3: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 63); out[i] &= 0xffffffffffffff; i++; /* Falls through. */ case 3: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 63); out[i] &= 0xffffffffffffff; i++; FALLTHROUGH;
case 2: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 63); out[i] &= 0xffffffffffffff; i++; /* Falls through. */ case 2: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 63); out[i] &= 0xffffffffffffff; i++; FALLTHROUGH;
case 1: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 63); out[i] &= 0xffffffffffffff; i++; /* Falls through. */ case 1: out[i] = (a[i] - b[i]) - carry; carry = (out[i] >> 63); out[i] &= 0xffffffffffffff; i++; FALLTHROUGH;
case 0: case 0:
default: out[i] = (a[i] - b[i]) - carry; default: out[i] = (a[i] - b[i]) - carry;
} }
@ -310,10 +310,10 @@ lt256_modm_batch(const bignum256modm a, const bignum256modm b, size_t limbsize)
size_t i = 0; size_t i = 0;
bignum256modm_element_t t, carry = 0; bignum256modm_element_t t, carry = 0;
switch (limbsize) { switch (limbsize) {
case 4: t = (a[i] - b[i]) ; carry = (t >> 63); i++; /* Falls through. */ case 4: t = (a[i] - b[i]) ; carry = (t >> 63); i++; FALLTHROUGH;
case 3: t = (a[i] - b[i]) - carry; carry = (t >> 63); i++; /* Falls through. */ case 3: t = (a[i] - b[i]) - carry; carry = (t >> 63); i++; FALLTHROUGH;
case 2: t = (a[i] - b[i]) - carry; carry = (t >> 63); i++; /* Falls through. */ case 2: t = (a[i] - b[i]) - carry; carry = (t >> 63); i++; FALLTHROUGH;
case 1: t = (a[i] - b[i]) - carry; carry = (t >> 63); i++; /* Falls through. */ case 1: t = (a[i] - b[i]) - carry; carry = (t >> 63); i++; FALLTHROUGH;
case 0: t = (a[i] - b[i]) - carry; carry = (t >> 63); case 0: t = (a[i] - b[i]) - carry; carry = (t >> 63);
} }
return (int)carry; return (int)carry;
@ -325,10 +325,10 @@ lte256_modm_batch(const bignum256modm a, const bignum256modm b, size_t limbsize)
size_t i = 0; size_t i = 0;
bignum256modm_element_t t, carry = 0; bignum256modm_element_t t, carry = 0;
switch (limbsize) { switch (limbsize) {
case 4: t = (b[i] - a[i]) ; carry = (t >> 63); i++; /* Falls through. */ case 4: t = (b[i] - a[i]) ; carry = (t >> 63); i++; FALLTHROUGH;
case 3: t = (b[i] - a[i]) - carry; carry = (t >> 63); i++; /* Falls through. */ case 3: t = (b[i] - a[i]) - carry; carry = (t >> 63); i++; FALLTHROUGH;
case 2: t = (b[i] - a[i]) - carry; carry = (t >> 63); i++; /* Falls through. */ case 2: t = (b[i] - a[i]) - carry; carry = (t >> 63); i++; FALLTHROUGH;
case 1: t = (b[i] - a[i]) - carry; carry = (t >> 63); i++; /* Falls through. */ case 1: t = (b[i] - a[i]) - carry; carry = (t >> 63); i++; FALLTHROUGH;
case 0: t = (b[i] - a[i]) - carry; carry = (t >> 63); case 0: t = (b[i] - a[i]) - carry; carry = (t >> 63);
} }
return (int)!carry; return (int)!carry;

View File

@ -2263,7 +2263,7 @@ entry_guards_note_guard_success(guard_selection_t *gs,
break; break;
default: default:
tor_assert_nonfatal_unreached(); tor_assert_nonfatal_unreached();
/* Fall through. */ FALLTHROUGH;
case GUARD_CIRC_STATE_USABLE_IF_NO_BETTER_GUARD: case GUARD_CIRC_STATE_USABLE_IF_NO_BETTER_GUARD:
if (guard->is_primary) { if (guard->is_primary) {
/* XXXX #20832 -- I don't actually like this logic. It seems to make /* XXXX #20832 -- I don't actually like this logic. It seems to make

View File

@ -1904,7 +1904,7 @@ handle_control_add_onion(control_connection_t *conn,
case RSAE_BADAUTH: case RSAE_BADAUTH:
control_write_endreply(conn, 512, "Invalid client authorization"); control_write_endreply(conn, 512, "Invalid client authorization");
break; break;
case RSAE_INTERNAL: /* FALLSTHROUGH */ case RSAE_INTERNAL: FALLTHROUGH;
default: default:
control_write_endreply(conn, 551, "Failed to add Onion Service"); control_write_endreply(conn, 551, "Failed to add Onion Service");
} }

View File

@ -1365,7 +1365,7 @@ directory_initiate_request,(directory_request_t *request))
case 1: case 1:
/* start flushing conn */ /* start flushing conn */
conn->base_.state = DIR_CONN_STATE_CLIENT_SENDING; conn->base_.state = DIR_CONN_STATE_CLIENT_SENDING;
/* fall through */ FALLTHROUGH;
case 0: case 0:
/* queue the command on the outbuf */ /* queue the command on the outbuf */
directory_send_command(conn, 1, request); directory_send_command(conn, 1, request);

View File

@ -222,7 +222,7 @@ token_check_object(memarea_t *area, const char *kwd,
kwd, crypto_pk_num_bits(tok->key)); kwd, crypto_pk_num_bits(tok->key));
RET_ERR(ebuf); RET_ERR(ebuf);
} }
/* fall through */ FALLTHROUGH;
case NEED_KEY: /* There must be some kind of key. */ case NEED_KEY: /* There must be some kind of key. */
if (!tok->key) { if (!tok->key) {
tor_snprintf(ebuf, sizeof(ebuf), "Missing public key for %s", kwd); tor_snprintf(ebuf, sizeof(ebuf), "Missing public key for %s", kwd);

View File

@ -548,7 +548,7 @@ send_resolved_cell,(edge_connection_t *conn, uint8_t answer_type,
answer_type = RESOLVED_TYPE_ERROR; answer_type = RESOLVED_TYPE_ERROR;
/* We let this fall through and treat it as an error. */ /* We let this fall through and treat it as an error. */
} }
/* Falls through. */ FALLTHROUGH;
case RESOLVED_TYPE_ERROR_TRANSIENT: case RESOLVED_TYPE_ERROR_TRANSIENT:
case RESOLVED_TYPE_ERROR: case RESOLVED_TYPE_ERROR:
{ {

View File

@ -831,7 +831,7 @@ rend_client_report_intro_point_failure(extend_info_t *failed_intro,
log_warn(LD_BUG, "Unknown failure type %u. Removing intro point.", log_warn(LD_BUG, "Unknown failure type %u. Removing intro point.",
failure_type); failure_type);
tor_fragile_assert(); tor_fragile_assert();
/* fall through */ FALLTHROUGH;
case INTRO_POINT_FAILURE_GENERIC: case INTRO_POINT_FAILURE_GENERIC:
rend_cache_intro_failure_note(failure_type, rend_cache_intro_failure_note(failure_type,
(uint8_t *)failed_intro->identity_digest, (uint8_t *)failed_intro->identity_digest,

View File

@ -37,8 +37,8 @@ digest_alg_to_nss_oid(digest_algorithm_t alg)
case DIGEST_SHA1: return SEC_OID_SHA1; case DIGEST_SHA1: return SEC_OID_SHA1;
case DIGEST_SHA256: return SEC_OID_SHA256; case DIGEST_SHA256: return SEC_OID_SHA256;
case DIGEST_SHA512: return SEC_OID_SHA512; case DIGEST_SHA512: return SEC_OID_SHA512;
case DIGEST_SHA3_256: /* Fall through */ case DIGEST_SHA3_256: FALLTHROUGH;
case DIGEST_SHA3_512: /* Fall through */ case DIGEST_SHA3_512: FALLTHROUGH;
default: default:
return SEC_OID_UNKNOWN; return SEC_OID_UNKNOWN;
} }
@ -89,12 +89,12 @@ static bool
library_supports_digest(digest_algorithm_t alg) library_supports_digest(digest_algorithm_t alg)
{ {
switch (alg) { switch (alg) {
case DIGEST_SHA1: /* Fall through */ case DIGEST_SHA1: FALLTHROUGH;
case DIGEST_SHA256: /* Fall through */ case DIGEST_SHA256: FALLTHROUGH;
case DIGEST_SHA512: case DIGEST_SHA512:
return true; return true;
case DIGEST_SHA3_256: /* Fall through */ case DIGEST_SHA3_256: FALLTHROUGH;
case DIGEST_SHA3_512: /* Fall through */ case DIGEST_SHA3_512: FALLTHROUGH;
default: default:
return false; return false;
} }
@ -201,8 +201,8 @@ crypto_digest_alloc_bytes(digest_algorithm_t alg)
#define END_OF_FIELD(f) (offsetof(crypto_digest_t, f) + \ #define END_OF_FIELD(f) (offsetof(crypto_digest_t, f) + \
STRUCT_FIELD_SIZE(crypto_digest_t, f)) STRUCT_FIELD_SIZE(crypto_digest_t, f))
switch (alg) { switch (alg) {
case DIGEST_SHA1: /* Fall through */ case DIGEST_SHA1: FALLTHROUGH;
case DIGEST_SHA256: /* Fall through */ case DIGEST_SHA256: FALLTHROUGH;
case DIGEST_SHA512: case DIGEST_SHA512:
return END_OF_FIELD(d.ctx); return END_OF_FIELD(d.ctx);
case DIGEST_SHA3_256: case DIGEST_SHA3_256:
@ -228,8 +228,8 @@ crypto_digest_new_internal(digest_algorithm_t algorithm)
switch (algorithm) switch (algorithm)
{ {
case DIGEST_SHA1: /* fall through */ case DIGEST_SHA1: FALLTHROUGH;
case DIGEST_SHA256: /* fall through */ case DIGEST_SHA256: FALLTHROUGH;
case DIGEST_SHA512: case DIGEST_SHA512:
r->d.ctx = PK11_CreateDigestContext(digest_alg_to_nss_oid(algorithm)); r->d.ctx = PK11_CreateDigestContext(digest_alg_to_nss_oid(algorithm));
if (BUG(!r->d.ctx)) { if (BUG(!r->d.ctx)) {
@ -316,8 +316,8 @@ crypto_digest_add_bytes(crypto_digest_t *digest, const char *data,
* just doing it ourselves. Hashes are fast. * just doing it ourselves. Hashes are fast.
*/ */
switch (digest->algorithm) { switch (digest->algorithm) {
case DIGEST_SHA1: /* fall through */ case DIGEST_SHA1: FALLTHROUGH;
case DIGEST_SHA256: /* fall through */ case DIGEST_SHA256: FALLTHROUGH;
case DIGEST_SHA512: case DIGEST_SHA512:
tor_assert(len <= UINT_MAX); tor_assert(len <= UINT_MAX);
SECStatus s = PK11_DigestOp(digest->d.ctx, SECStatus s = PK11_DigestOp(digest->d.ctx,
@ -325,7 +325,7 @@ crypto_digest_add_bytes(crypto_digest_t *digest, const char *data,
(unsigned int)len); (unsigned int)len);
tor_assert(s == SECSuccess); tor_assert(s == SECSuccess);
break; break;
case DIGEST_SHA3_256: /* FALLSTHROUGH */ case DIGEST_SHA3_256: FALLTHROUGH;
case DIGEST_SHA3_512: case DIGEST_SHA3_512:
keccak_digest_update(&digest->d.sha3, (const uint8_t *)data, len); keccak_digest_update(&digest->d.sha3, (const uint8_t *)data, len);
break; break;

View File

@ -160,11 +160,11 @@ crypto_digest_alloc_bytes(digest_algorithm_t alg)
case DIGEST_SHA512: case DIGEST_SHA512:
return END_OF_FIELD(d.sha512); return END_OF_FIELD(d.sha512);
#ifdef OPENSSL_HAS_SHA3 #ifdef OPENSSL_HAS_SHA3
case DIGEST_SHA3_256: /* Fall through */ case DIGEST_SHA3_256: FALLTHROUGH;
case DIGEST_SHA3_512: case DIGEST_SHA3_512:
return END_OF_FIELD(d.md); return END_OF_FIELD(d.md);
#else #else
case DIGEST_SHA3_256: /* Fall through */ case DIGEST_SHA3_256: FALLTHROUGH;
case DIGEST_SHA3_512: case DIGEST_SHA3_512:
return END_OF_FIELD(d.sha3); return END_OF_FIELD(d.sha3);
#endif /* defined(OPENSSL_HAS_SHA3) */ #endif /* defined(OPENSSL_HAS_SHA3) */
@ -304,14 +304,14 @@ crypto_digest_add_bytes(crypto_digest_t *digest, const char *data,
SHA512_Update(&digest->d.sha512, (void*)data, len); SHA512_Update(&digest->d.sha512, (void*)data, len);
break; break;
#ifdef OPENSSL_HAS_SHA3 #ifdef OPENSSL_HAS_SHA3
case DIGEST_SHA3_256: /* FALLSTHROUGH */ case DIGEST_SHA3_256: FALLTHROUGH;
case DIGEST_SHA3_512: { case DIGEST_SHA3_512: {
int r = EVP_DigestUpdate(digest->d.md, data, len); int r = EVP_DigestUpdate(digest->d.md, data, len);
tor_assert(r); tor_assert(r);
} }
break; break;
#else /* !defined(OPENSSL_HAS_SHA3) */ #else /* !defined(OPENSSL_HAS_SHA3) */
case DIGEST_SHA3_256: /* FALLSTHROUGH */ case DIGEST_SHA3_256: FALLTHROUGH;
case DIGEST_SHA3_512: case DIGEST_SHA3_512:
keccak_digest_update(&digest->d.sha3, (const uint8_t *)data, len); keccak_digest_update(&digest->d.sha3, (const uint8_t *)data, len);
break; break;
@ -377,7 +377,7 @@ crypto_digest_get_digest(crypto_digest_t *digest,
SHA512_Final(r, &tmpenv.d.sha512); SHA512_Final(r, &tmpenv.d.sha512);
break; break;
//LCOV_EXCL_START //LCOV_EXCL_START
case DIGEST_SHA3_256: /* FALLSTHROUGH */ case DIGEST_SHA3_256: FALLTHROUGH;
case DIGEST_SHA3_512: case DIGEST_SHA3_512:
default: default:
log_warn(LD_BUG, "Handling unexpected algorithm %d", digest->algorithm); log_warn(LD_BUG, "Handling unexpected algorithm %d", digest->algorithm);

View File

@ -815,7 +815,7 @@ test_socks_truncated(void *ptr)
for (i = 0; i < ARRAY_LENGTH(commands); ++i) { for (i = 0; i < ARRAY_LENGTH(commands); ++i) {
for (j = 0; j < commands[i].len; ++j) { for (j = 0; j < commands[i].len; ++j) {
switch (commands[i].setup) { switch (commands[i].setup) {
default: /* Falls through */ default: FALLTHROUGH;
case NONE: case NONE:
/* This test calls for no setup on the socks state. */ /* This test calls for no setup on the socks state. */
break; break;