X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/aa02ed367404c659ab7205ef9662ef92032d7786..HEAD:/symm/square.c diff --git a/symm/square.c b/symm/square.c index 73b22bb6..34d313d7 100644 --- a/symm/square.c +++ b/symm/square.c @@ -31,6 +31,7 @@ #include #include +#include #include "blkc.h" #include "gcipher.h" @@ -46,7 +47,7 @@ const octet square_keysz[] = { KSZ_RANGE, SQUARE_KEYSZ, 4, 16, 4 }; extern const octet square_s[256], square_si[256]; extern const uint32 square_t[4][256], square_ti[4][256]; extern const uint32 square_u[4][256]; -extern const octet square_rcon[32]; +extern const octet square_rcon[35]; #define S square_s #define SI square_si @@ -94,20 +95,11 @@ void square_init(square_ctx *k, const void *buf, size_t sz) /* --- GCC complains about an out-of-bounds subscript here --- * * - * This is impossible. Thanks to @KSZ_ASSERT@, we know that @sz <= 16@ and - * hence @i <= nk <= 4@; but @SQUARE_KWORDS == 36@. + * This is impossible. Thanks to @KSZ_ASSERT@, we know that @4 <= sz <= + * 16@ and hence @1 <= i <= nk <= 4@; but @SQUARE_KWORDS == 36@. */ -#if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Warray-bounds" -#endif - - ww = kk[i - 1]; - -#if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) -# pragma GCC diagnostic pop -#endif + ww = MUFFLE_WARNINGS_EXPR(GCC_WARNING("-Warray-bounds"), kk[i - 1]); /* --- Expand this material to fill the rest of the table --- */