From ad60ce8c2c19e8c646d1daba5f6cdc1b853983da Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 19 Sep 2025 12:03:46 -0500 Subject: [PATCH] bsps/*acpi*: Address unterminated string warnings The ACPI source has multiple tables where a Name field is defined. The name field is a character array with a length of 4. All of the string initializers are four characters plus a NUL. The code is careful to use strn*() functions and intentionally avoids assuming there is space for the NUL. With lots of entries in the various arrays, this was clearly a design decision to save space. This was caught by GCC's -Wunterminated-string-initialization warning. The solution used is to use the "nonstring" attribute recommended by the GCC manual. Closes #5329 --- bsps/include/acpi/acpica/aclocal.h | 6 ++++++ bsps/shared/acpi/acpica/namespace/nsrepair2.c | 3 +++ 2 files changed, 9 insertions(+) diff --git a/bsps/include/acpi/acpica/aclocal.h b/bsps/include/acpi/acpica/aclocal.h index c8beb6f1b8..7dba0ee65f 100644 --- a/bsps/include/acpi/acpica/aclocal.h +++ b/bsps/include/acpi/acpica/aclocal.h @@ -480,6 +480,9 @@ ACPI_STATUS (*ACPI_INTERNAL_METHOD) ( */ typedef struct acpi_name_info { +#ifdef __rtems__ + __attribute__ ((nonstring)) +#endif /* rtems */ char Name[ACPI_NAMESEG_SIZE]; UINT16 ArgumentList; UINT8 ExpectedBtypes; @@ -568,6 +571,9 @@ typedef ACPI_STATUS (*ACPI_OBJECT_CONVERTER) ( typedef struct acpi_simple_repair_info { +#ifdef __rtems__ + __attribute__ ((nonstring)) +#endif /* rtems */ char Name[ACPI_NAMESEG_SIZE]; UINT32 UnexpectedBtypes; UINT32 PackageIndex; diff --git a/bsps/shared/acpi/acpica/namespace/nsrepair2.c b/bsps/shared/acpi/acpica/namespace/nsrepair2.c index 32263828fc..cb39659812 100644 --- a/bsps/shared/acpi/acpica/namespace/nsrepair2.c +++ b/bsps/shared/acpi/acpica/namespace/nsrepair2.c @@ -169,6 +169,9 @@ ACPI_STATUS (*ACPI_REPAIR_FUNCTION) ( typedef struct acpi_repair_info { +#ifdef __rtems__ + __attribute__ ((nonstring)) +#endif /* rtems */ char Name[ACPI_NAMESEG_SIZE]; ACPI_REPAIR_FUNCTION RepairFunction;