summaryrefslogtreecommitdiff
path: root/libcr/coroutine.c
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2024-12-26 18:37:01 -0700
committerLuke T. Shumaker <lukeshu@lukeshu.com>2024-12-26 20:07:33 -0700
commitc7a0d6de46610ac9ceaea5afe1b7983550fc1be6 (patch)
treec8a2d283f62bba07e8871bcc0dab4174f6fe135e /libcr/coroutine.c
parente783ff4d07ecb0a7bae90651c17735069a094a82 (diff)
libcr: Tell GCC that coroutine_table[n].name might not be nul-terminated
Diffstat (limited to 'libcr/coroutine.c')
-rw-r--r--libcr/coroutine.c6
1 files changed, 5 insertions, 1 deletions
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 ******************************************************************/