diff --git a/chacha.c b/chacha.c index 541a7ac..ca52fe5 100644 --- a/chacha.c +++ b/chacha.c @@ -41,7 +41,7 @@ static const unsigned rounds = 8; a = PLUS(a, b); d = ROTATE(XOR(d, a), 8); \ c = PLUS(c, d); b = ROTATE(XOR(b, c), 7); -static const char sigma[16] = "expand 32-byte k"; +static const char sigma[16] NONSTRING = "expand 32-byte k"; void chacha_keysetup(chacha_ctx *x, const u8 *k) { x->input[0] = U8TO32_LITTLE(sigma + 0); diff --git a/util.h b/util.h index 6b1a390..72c28d8 100644 --- a/util.h +++ b/util.h @@ -32,6 +32,13 @@ #define STRINGIFY(s) #s #define ALIAS(f) __attribute__((alias(STRINGIFY(f)))) +// supported since GCC 15 +#if __has_attribute (nonstring) +# define NONSTRING __attribute__ ((nonstring)) +#else +# define NONSTRING +#endif + typedef uint8_t u8; typedef uint16_t u16; typedef uint32_t u32;