#include <stdio.h>
#include <mLib/bits.h>
+#include <mLib/macros.h>
#include "blkc.h"
#include "gcipher.h"
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
/* --- 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 --- */