mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 17:27:42 +00:00
zebra: temporary workaround for a clang issue with atomics
Current clang has an issue with the pointer/target argument to at least one atomic/intrinsic. A variable with '_Atomic' generates a compile-time error. Use a cast as a workaround here to allow use of clang for now. Signed-off-by: Mark Stapp <mjs@voltanet.io>
This commit is contained in:
parent
cac967ca3b
commit
e07e954966
@ -651,8 +651,16 @@ static int dplane_route_enqueue(struct zebra_dplane_ctx *ctx)
|
||||
}
|
||||
DPLANE_UNLOCK();
|
||||
|
||||
curr = atomic_add_fetch_explicit(&zdplane_info.dg_routes_queued,
|
||||
1, memory_order_seq_cst);
|
||||
curr = atomic_add_fetch_explicit(
|
||||
#ifdef __clang__
|
||||
/* TODO -- issue with the clang atomic/intrinsics currently;
|
||||
* casting away the 'Atomic'-ness of the variable works.
|
||||
*/
|
||||
(uint32_t *)&(zdplane_info.dg_routes_queued),
|
||||
#else
|
||||
&(zdplane_info.dg_routes_queued),
|
||||
#endif
|
||||
1, memory_order_seq_cst);
|
||||
|
||||
/* Maybe update high-water counter also */
|
||||
high = atomic_load_explicit(&zdplane_info.dg_routes_queued_max,
|
||||
|
Loading…
Reference in New Issue
Block a user