Skip to content

Commit

Permalink
gcc-15: add '__nonstring' markers to byte arrays
Browse files Browse the repository at this point in the history
All of these cases are perfectly valid and good traditional C, but hit
by the "you're not NUL-terminating your byte array" warning.

And none of the cases want any terminating NUL character.

Mark them __nonstring to shut up gcc-15 (and in the case of the ak8974
magnetometer driver, I just removed the explicit array size and let gcc
expand the 3-byte and 6-byte arrays by one extra byte, because it was
the simpler change).

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Linus Torvalds committed Apr 20, 2025
1 parent be913e7 commit 05e8d26
Showing 4 changed files with 5 additions and 5 deletions.
4 changes: 2 additions & 2 deletions drivers/iio/magnetometer/ak8974.c
Original file line number Diff line number Diff line change
@@ -535,8 +535,8 @@ static int ak8974_detect(struct ak8974 *ak8974)
fab_data2, sizeof(fab_data2));

for (i = 0; i < 3; ++i) {
static const char axis[3] = "XYZ";
static const char pgaxis[6] = "ZYZXYX";
static const char axis[] = "XYZ";
static const char pgaxis[] = "ZYZXYX";
unsigned offz = le16_to_cpu(fab_data2[i]) & 0x7F;
unsigned fine = le16_to_cpu(fab_data1[i]);
unsigned sens = le16_to_cpu(fab_data1[i + 3]);
2 changes: 1 addition & 1 deletion drivers/input/joystick/magellan.c
Original file line number Diff line number Diff line change
@@ -48,7 +48,7 @@ struct magellan {

static int magellan_crunch_nibbles(unsigned char *data, int count)
{
static unsigned char nibbles[16] = "0AB3D56GH9:K<MN?";
static unsigned char nibbles[16] __nonstring = "0AB3D56GH9:K<MN?";

do {
if (data[count] == nibbles[data[count] & 0xf])
2 changes: 1 addition & 1 deletion drivers/net/wireless/ath/carl9170/fw.c
Original file line number Diff line number Diff line change
@@ -15,7 +15,7 @@
#include "fwcmd.h"
#include "version.h"

static const u8 otus_magic[4] = { OTUS_MAGIC };
static const u8 otus_magic[4] __nonstring = { OTUS_MAGIC };

static const void *carl9170_fw_find_desc(struct ar9170 *ar, const u8 descid[4],
const unsigned int len, const u8 compatible_revision)
2 changes: 1 addition & 1 deletion fs/cachefiles/key.c
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@
#include <linux/slab.h>
#include "internal.h"

static const char cachefiles_charmap[64] =
static const char cachefiles_charmap[64] __nonstring =
"0123456789" /* 0 - 9 */
"abcdefghijklmnopqrstuvwxyz" /* 10 - 35 */
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" /* 36 - 61 */

0 comments on commit 05e8d26

Please sign in to comment.