From c7a0d6de46610ac9ceaea5afe1b7983550fc1be6 Mon Sep 17 00:00:00 2001 From: "Luke T. Shumaker" Date: Thu, 26 Dec 2024 18:37:01 -0700 Subject: libcr: Tell GCC that coroutine_table[n].name might not be nul-terminated --- libcr/coroutine.c | 6 +++++- libcr/tests/test_matrix/config.h | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'libcr') diff --git a/libcr/coroutine.c b/libcr/coroutine.c index 05892c3..32253c8 100644 --- a/libcr/coroutine.c +++ b/libcr/coroutine.c @@ -46,6 +46,10 @@ #error config.h must define CONFIG_COROUTINE_GDB (bool) #endif +/* Enforce that CONFIG_COROUTINE_NUM is greater than 1, to work around + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118212 */ +static_assert(CONFIG_COROUTINE_NUM > 1); + /* Implementation *************************************************************/ #if CONFIG_COROUTINE_VALGRIND @@ -386,7 +390,7 @@ struct coroutine { #if CONFIG_COROUTINE_VALGRIND unsigned stack_id; #endif - char name[CONFIG_COROUTINE_NAME_LEN]; + [[gnu::nonstring]] char name[CONFIG_COROUTINE_NAME_LEN]; }; /* constants ******************************************************************/ diff --git a/libcr/tests/test_matrix/config.h b/libcr/tests/test_matrix/config.h index 9802f08..becfce0 100644 --- a/libcr/tests/test_matrix/config.h +++ b/libcr/tests/test_matrix/config.h @@ -9,6 +9,6 @@ #define CONFIG_COROUTINE_DEFAULT_STACK_SIZE (4*1024) #define CONFIG_COROUTINE_NAME_LEN 16 -#define CONFIG_COROUTINE_NUM 1 +#define CONFIG_COROUTINE_NUM 2 #endif /* _CONFIG_H_ */ -- cgit v1.2.3-2-g168b