RTEMS | x86_64 BSPs: unterminated string initializer warnings (#5329)

Joel Sherrill (@joel) gitlab at rtems.org
Thu Sep 4 15:19:19 UTC 2025



Joel Sherrill created an issue: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5329



## Summary

The ACPI code in bsps/shared appears to be only be used in x86_64 BSPs. There are at least two tables which have a 4 character array which gets a 4 character plus NUL for a total of five characters. This generates this type of warning for each element in the array of structures when _-Wunterminated-string-initialization_ is enabled. 

`../../../bsps/shared/acpi/acpica/namespace/nsrepair.c:215:7: warning: initializer-string for array of 'char' truncates NUL terminator but destination lacks 'nonstring' attribute (5 chars into 4 available) [-Wunterminated-string-initialization]`

I tracked through one use of the string element and in that case _strncmp()_ with a length of 4 was used. This warning appears to be an intentional and safe use. GCC's documentation has this:

> Warn about character arrays initialized as unterminated character sequences with a string literal, unless the declaration being initialized has the nonstring attribute. For example:
> 
>     char arr[3] = "foo"; /* Warning.  */
>     char arr2[3] __attribute__((nonstring)) = "bar"; /* No warning.  */
> 
> warning is enabled by -Wextra. If -Wc++-compat is enabled, the warning has slightly different wording and warns even if the declaration being initialized has the nonstring warning, as in C++ such initializations are an error.

Adding the nonstring attribute to the definition of ACPI_NAME_INFO.Name in bsps/include/acpi/acpica/aclocal.h is likely to be the correct solution.

The fix should be simple once proper use is confirmed. Since the code is third party, this will need to be in an ifdef __rtems__ section and RTEMS_NON_STRING may need to be added to basedefs.h.

## Steps to reproduce
Add  _-Wunterminated-string-initialization_ to optwarn.yml.

### Pre-set options

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5329
You're receiving this email because of your account on gitlab.rtems.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20250904/c8daca9e/attachment.htm>


More information about the bugs mailing list