tree-wide: use c99 static for array size declarations

https://hamberg.no/erlend/posts/2013-02-18-static-array-indices.html

This only works with clang, unfortunately gcc doesn't seem to implement the check
(tested with gcc-8.2.1-5.fc29.x86_64).

Simulated error:
[2/3] Compiling C object 'systemd-nspawn@exe/src_nspawn_nspawn.c.o'.
../src/nspawn/nspawn.c:3179:45: warning: array argument is too small; contains 15 elements, callee requires at least 16 [-Warray-bounds]
                        candidate = (uid_t) siphash24(arg_machine, strlen(arg_machine), hash_key);
                                            ^                                           ~~~~~~~~
../src/basic/siphash24.h:24:64: note: callee declares array parameter as static here
uint64_t siphash24(const void *in, size_t inlen, const uint8_t k[static 16]);
                                                               ^~~~~~~~~~~~
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2019-01-04 12:37:25 +01:00
parent d27d60b3bc
commit 3042bbebdd
13 changed files with 18 additions and 18 deletions
+2 -2
View File
@@ -48,7 +48,7 @@ static inline void sipround(struct siphash *state) {
state->v2 = rotate_left(state->v2, 32);
}
void siphash24_init(struct siphash *state, const uint8_t k[16]) {
void siphash24_init(struct siphash *state, const uint8_t k[static 16]) {
uint64_t k0, k1;
assert(state);
@@ -187,7 +187,7 @@ uint64_t siphash24_finalize(struct siphash *state) {
return state->v0 ^ state->v1 ^ state->v2 ^ state->v3;
}
uint64_t siphash24(const void *in, size_t inlen, const uint8_t k[16]) {
uint64_t siphash24(const void *in, size_t inlen, const uint8_t k[static 16]) {
struct siphash state;
assert(in);