Skip to content

Commit 2afbc2f

Browse files
committed
rgw/rgw_cksum: work around -Wsometimes-uninitialized
clang complains that `cck3` might not be initialized: ``` /home/jenkins-build/build/workspace/ceph-api/src/rgw/rgw_cksum.cc:74:2: error: variable 'cck3' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized] 74 | default: | ^~~~~~~ /home/jenkins-build/build/workspace/ceph-api/src/rgw/rgw_cksum.cc:78:31: note: uninitialized use occurs here 78 | cck3 = rgw::digest::byteswap(cck3); | ^~~~ /home/jenkins-build/build/workspace/ceph-api/src/rgw/rgw_cksum.cc:61:15: note: initialize the variable 'cck3' to silence this warning 61 | uint32_t cck3; | ^ | = 0 ``` The `default:` case however is not reachable because `ck1.type` has already been checked. Adding initializers to `cck3` would only hide potential future bugs, therefore I suggest just bailing out of the function for this unreachable piece of code. With C++23, we could use `std::unreachable()` instead. Signed-off-by: Max Kellermann <[email protected]>
1 parent f7c998c commit 2afbc2f

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/rgw/rgw_cksum.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,9 @@ namespace rgw::cksum {
7272
cck3 = crc32iscsi_comb(cck1, cck2, len1);
7373
break;
7474
default:
75-
break;
75+
/* unreachable (already checked by outer switch/case) */
76+
// TODO change to std::unreachable() once we are C++23
77+
goto out;
7678
}
7779
/* and byteswap */
7880
cck3 = rgw::digest::byteswap(cck3);

0 commit comments

Comments
 (0)