sys/stdatomic.h: be nicer to c++
Use of stdatomic.h is undefined in C++, even the C++ 2020 standard does not list stdatomic.h as a C library header supported by the language. More, there are some subtle differences between the <atomic> C++ header, and C11+ stdatomic.h provided features. Nonetheless, it is a quality of the implementation aspect, so let mis-users mis-use stdatomic.h as they want, by making a compat shim for _Bool. PR: 262683 Reported by: yuri Reviewed by: dim, emaste Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D34686
This commit is contained in:
parent
8bcffb86c7
commit
c1a24b9dbe
@ -163,6 +163,11 @@ atomic_signal_fence(memory_order __order __unused)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(__cplusplus) && !defined(_Bool)
|
||||||
|
#define _Bool bool
|
||||||
|
#define __bool_locally_defined
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 7.17.5 Lock-free property.
|
* 7.17.5 Lock-free property.
|
||||||
*/
|
*/
|
||||||
@ -406,4 +411,9 @@ atomic_flag_clear(volatile atomic_flag *__object)
|
|||||||
}
|
}
|
||||||
#endif /* !_KERNEL */
|
#endif /* !_KERNEL */
|
||||||
|
|
||||||
|
#ifdef __bool_locally_defined
|
||||||
|
#undef _Bool
|
||||||
|
#undef __bool_locally_defined
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* !_STDATOMIC_H_ */
|
#endif /* !_STDATOMIC_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user