X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/e5b61a8dec3586f96d25bd3ef454176526ff0f69..3e248c3b5b309bc03eb5f70762d3f5671d51f996:/symm/square.c diff --git a/symm/square.c b/symm/square.c index f3056de..888d495 100644 --- a/symm/square.c +++ b/symm/square.c @@ -31,6 +31,7 @@ #include #include +#include #include "blkc.h" #include "gcipher.h" @@ -92,10 +93,17 @@ void square_init(square_ctx *k, const void *buf, size_t sz) } nr = 8; + /* --- GCC complains about an out-of-bounds subscript here --- * + * + * This is impossible. Thanks to @KSZ_ASSERT@, we know that @4 <= sz <= + * 16@ and hence @1 <= i <= nk <= 4@; but @SQUARE_KWORDS == 36@. + */ + + ww = MUFFLE_WARNINGS_EXPR(GCC_WARNING("-Warray-bounds"), kk[i - 1]); + /* --- Expand this material to fill the rest of the table --- */ nw = (nr + 1) * 4; - ww = kk[i - 1]; p = RCON; for (; i < nw; i++) { uint32 w = kk[i - nk];