Jeff Epler
9632360caa
Use a macro to compute the size of arrays at compile time ( #18044 )
...
* Add ARRAY_SIZE and CEILING utility macros
* Apply a coccinelle patch to use ARRAY_SIZE
* fix up some straggling items
* Fix 'make test:secure'
* Enhance ARRAY_SIZE macro to reject acting on pointers
The previous definition would not produce a diagnostic for
```
int *p;
size_t num_elem = ARRAY_SIZE(p)
```
but the new one will.
* explicitly get definition of ARRAY_SIZE
* Convert to ARRAY_SIZE when const is involved
The following spatch finds additional instances where the array is
const and the division is by the size of the type, not the size of
the first element:
```
@ rule5a using "empty.iso" @
type T;
const T[] E;
@@
- (sizeof(E)/sizeof(T))
+ ARRAY_SIZE(E)
@ rule6a using "empty.iso" @
type T;
const T[] E;
@@
- sizeof(E)/sizeof(T)
+ ARRAY_SIZE(E)
```
* New instances of ARRAY_SIZE added since initial spatch run
* Use `ARRAY_SIZE` in docs (found by grep)
* Manually use ARRAY_SIZE
hs_set is expected to be the same size as uint16_t, though it's made
of two 8-bit integers
* Just like char, sizeof(uint8_t) is guaranteed to be 1
This is at least true on any plausible system where qmk is actually used.
Per my understanding it's universally true, assuming that uint8_t exists:
https://stackoverflow.com/questions/48655310/can-i-assume-that-sizeofuint8-t-1
* Run qmk-format on core C files touched in this branch
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-08-30 10:20:04 +02:00
..
2022-08-14 00:47:42 +00:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-14 00:47:42 +00:00
2022-08-21 23:55:30 +01:00
2022-08-13 17:47:05 -07:00
2022-08-21 23:55:30 +01:00
2022-08-30 10:20:04 +02:00
2022-08-28 09:59:40 -07:00
2022-08-21 23:55:30 +01:00
2022-08-14 00:47:42 +00:00
2022-08-30 10:20:04 +02:00
2022-08-20 10:22:48 -07:00
2022-08-30 10:20:04 +02:00
2022-08-13 17:47:05 -07:00
2022-08-20 11:34:17 +01:00
2022-08-28 19:35:17 +01:00
2022-08-14 00:47:42 +00:00
2022-08-21 23:55:30 +01:00
2022-08-20 17:17:02 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-23 05:01:45 +00:00
2022-08-07 02:23:58 +01:00
2022-08-24 13:39:49 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-21 23:55:30 +01:00
2022-08-14 00:47:42 +00:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-14 00:47:42 +00:00
2022-08-13 17:47:05 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-20 10:22:48 -07:00
2022-08-16 18:22:47 +01:00
2022-08-13 17:47:05 -07:00
2022-08-20 10:22:48 -07:00
2022-08-20 11:34:17 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-07 02:23:58 +01:00
2022-08-13 19:45:00 +00:00
2022-08-21 23:55:30 +01:00
2022-08-28 19:55:56 +00:00
2022-08-28 21:47:30 -07:00
2022-08-14 01:54:23 -07:00
2022-08-14 01:54:23 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 11:34:17 +01:00
2022-08-21 23:55:30 +01:00
2022-08-30 08:20:05 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-14 12:16:16 +10:00
2022-08-28 09:59:40 -07:00
2022-08-14 01:54:23 -07:00
2022-08-20 10:22:48 -07:00
2022-08-14 01:54:23 -07:00
2022-08-28 21:48:41 -07:00
2022-08-29 11:22:01 -07:00
2022-08-14 01:54:23 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-20 11:34:17 +01:00
2022-08-21 23:55:30 +01:00
2022-08-14 01:54:23 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-14 12:16:16 +10:00
2022-08-28 21:39:45 -07:00
2022-08-10 18:38:32 -07:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-14 12:16:16 +10:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-20 11:34:17 +01:00
2022-08-30 10:20:04 +02:00
2022-08-18 01:01:54 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-30 10:20:04 +02:00
2022-08-30 10:20:04 +02:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-28 09:59:40 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-15 17:54:07 +10:00
2022-08-27 23:13:44 -07:00
2022-08-15 17:54:07 +10:00
2022-08-07 02:23:58 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-30 10:20:04 +02:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-28 21:40:10 +01:00
2022-08-21 23:55:30 +01:00
2022-08-18 01:23:34 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-29 11:25:20 -07:00
2022-08-15 17:54:07 +10:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-15 02:53:19 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-22 19:04:01 +10:00
2022-08-30 10:20:04 +02:00
2022-08-14 01:55:03 +01:00
2022-08-21 23:55:30 +01:00
2022-08-28 09:59:40 -07:00
2022-08-21 23:55:30 +01:00
2022-08-30 10:20:04 +02:00
2022-08-21 23:55:30 +01:00
2022-08-30 10:20:04 +02:00
2022-08-28 09:59:40 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-20 10:22:48 -07:00
2022-08-30 10:20:04 +02:00
2022-08-21 23:55:30 +01:00
2022-08-28 09:59:40 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-30 10:20:04 +02:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-15 17:54:07 +10:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-29 20:03:16 -07:00
2022-08-20 10:55:40 +10:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-21 23:55:30 +01:00
2022-08-24 15:28:38 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:55:40 +10:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-28 19:35:17 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-28 09:59:40 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-28 19:35:17 +01:00
2022-08-07 02:23:58 +01:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-28 12:55:35 -07:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-28 09:59:40 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-20 11:34:17 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 22:09:30 +00:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-20 10:39:35 +10:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-27 23:13:44 -07:00
2022-08-30 10:20:04 +02:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-21 23:55:30 +01:00
2022-08-16 18:22:47 +01:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 11:34:17 +01:00
2022-08-10 18:34:20 -07:00
2022-08-20 11:34:17 +01:00
2022-08-27 23:13:44 -07:00
2022-08-21 23:55:30 +01:00
2022-08-30 10:20:04 +02:00
2022-08-20 10:55:40 +10:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:55:40 +10:00
2022-08-24 20:39:34 +00:00
2022-08-21 23:55:30 +01:00
2022-08-30 10:20:04 +02:00
2022-08-21 23:55:30 +01:00
2022-08-07 02:23:58 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-27 23:13:44 -07:00
2022-08-21 22:09:30 +00:00
2022-08-20 10:22:48 -07:00
2022-08-30 10:20:04 +02:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-25 21:17:41 +10:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-17 22:51:34 +00:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-29 01:38:01 +00:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:55:40 +10:00
2022-08-30 10:20:04 +02:00
2022-08-30 10:20:04 +02:00
2022-08-21 23:55:30 +01:00
2022-08-28 09:59:40 -07:00
2022-08-21 12:03:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-27 23:13:44 -07:00
2022-08-20 11:34:17 +01:00
2022-08-20 01:45:28 +01:00
2022-08-21 23:55:30 +01:00
2022-08-28 09:59:40 -07:00
2022-08-20 10:55:40 +10:00
2022-08-20 10:22:48 -07:00
2022-08-20 11:34:17 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-15 17:55:58 +00:00
2022-08-20 10:22:48 -07:00
2022-08-20 11:34:17 +01:00
2022-08-21 23:55:30 +01:00
2022-08-28 09:59:40 -07:00
2022-08-21 23:55:30 +01:00
2022-08-30 10:20:04 +02:00
2022-08-23 17:56:51 +00:00
2022-08-20 10:55:40 +10:00
2022-08-20 10:22:48 -07:00
2022-08-28 09:59:40 -07:00
2022-08-28 09:59:40 -07:00
2022-08-21 23:55:30 +01:00
2022-08-07 01:24:34 +00:00
2022-08-21 23:55:30 +01:00
2022-08-07 02:28:46 -07:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 01:42:49 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-30 10:20:04 +02:00
2022-08-30 10:20:04 +02:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 11:34:17 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-20 11:34:17 +01:00
2022-08-21 23:55:30 +01:00
2022-08-17 00:26:35 -07:00
2022-08-28 09:59:40 -07:00
2022-08-21 23:55:30 +01:00
2022-08-28 12:55:19 -07:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-07 02:23:58 +01:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:55:40 +10:00
2022-08-28 09:59:40 -07:00
2022-08-20 10:55:40 +10:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:55:40 +10:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 22:09:30 +00:00
2022-08-21 23:55:30 +01:00
2022-08-28 21:48:41 -07:00
2022-08-30 10:20:04 +02:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 01:48:38 +01:00
2022-08-30 10:20:04 +02:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:55:40 +10:00
2022-08-27 23:13:44 -07:00
2022-08-20 10:55:40 +10:00
2022-08-21 23:08:50 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 11:34:17 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 01:48:38 +01:00
2022-08-20 01:48:38 +01:00
2022-08-28 09:59:40 -07:00
2022-08-20 11:34:17 +01:00
2022-08-20 10:22:48 -07:00
2022-08-27 23:13:44 -07:00
2022-08-19 23:50:09 +00:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-29 20:03:30 -07:00
2022-08-28 09:59:40 -07:00
2022-08-21 23:55:30 +01:00
2022-08-20 21:21:07 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00
2022-08-30 10:20:04 +02:00
2022-08-21 23:55:30 +01:00
2022-08-20 10:22:48 -07:00
2022-08-20 10:55:40 +10:00
2022-08-20 10:22:48 -07:00
2022-08-21 23:55:30 +01:00
2022-08-21 23:55:30 +01:00