From: Maria Matejka Date: Fri, 26 Jan 2024 13:50:36 +0000 (+0100) Subject: Fixes for CLang X-Git-Tag: v3.0.0~309 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8fb1f098d1003784391c6e7fa4f5f797477c0d35;p=thirdparty%2Fbird.git Fixes for CLang --- diff --git a/filter/decl.m4 b/filter/decl.m4 index e24ee94d4..dcb24f8cf 100644 --- a/filter/decl.m4 +++ b/filter/decl.m4 @@ -622,6 +622,8 @@ FID_WR_PUT(11) #pragma GCC diagnostic ignored "-Woverride-init" #endif +#pragma clang diagnostic ignored "-Winitializer-overrides" + static struct sym_scope f_type_method_scopes[] = { FID_WR_PUT(12) }; diff --git a/nest/rt-attr.c b/nest/rt-attr.c index c8c2c0bbe..d8a91e396 100644 --- a/nest/rt-attr.c +++ b/nest/rt-attr.c @@ -383,7 +383,7 @@ rt_dump_sources(struct rte_owner *o) (splitting % 8) ? ',' : '\n', (splitting % 8) ? ' ' : '\t', src->private_id, src->global_id, - atomic_load_explicit(&src->uc, memory_order_relaxed)); + atomic_load_explicit(&src->uc.uc, memory_order_relaxed)); splitting++; } diff --git a/sysdep/unix/alloc.c b/sysdep/unix/alloc.c index 341c02a2e..6a2799939 100644 --- a/sysdep/unix/alloc.c +++ b/sysdep/unix/alloc.c @@ -105,7 +105,7 @@ long page_size = 0; # define ajlog(...) struct free_page { - struct free_page *next; + struct free_page * _Atomic next; }; # endif @@ -259,7 +259,8 @@ free_page(void *ptr) struct free_page *fp = ptr; if (shutting_down || (pages_kept_here < KEEP_PAGES_MAX_LOCAL)) { - UNUSED struct free_page *next = fp->next = local_page_stack; + struct free_page *next = local_page_stack; + atomic_store_explicit(&fp->next, next, memory_order_relaxed); PROTECT_PAGE(fp); local_page_stack = fp; @@ -270,7 +271,8 @@ free_page(void *ptr) } /* If there are too many local pages, we add the free page to the global hot-free-page list */ - UNUSED struct free_page *next = fp->next = PAGE_STACK_GET; + struct free_page *next = PAGE_STACK_GET; + atomic_store_explicit(&fp->next, next, memory_order_relaxed); PROTECT_PAGE(fp); /* Unblock the stack with the page being freed */ diff --git a/sysdep/unix/log.c b/sysdep/unix/log.c index 41c8f07f7..bbe1bd8e4 100644 --- a/sysdep/unix/log.c +++ b/sysdep/unix/log.c @@ -36,7 +36,7 @@ static pool *log_pool; static struct rfile *dbg_rf; static char *current_syslog_name = NULL; /* NULL -> syslog closed */ -_Atomic uint max_thread_id = ATOMIC_VAR_INIT(1); +_Atomic uint max_thread_id = 1; _Thread_local uint this_thread_id; #include