public inbox for libstdc++@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] libstdc++: Make <stdatomic.h> forward to C version if included by C
@ 2023-01-12 21:04 Jonathan Wakely
  0 siblings, 0 replies; only message in thread
From: Jonathan Wakely @ 2023-01-12 21:04 UTC (permalink / raw)
  To: libstdc++, gcc-patches

I was asked about this privately. I don't really like that it would ever
be needed, but it also seems fairly harmless. We already do similar
things for some of the libstdc++ versions of <stdlib.h> etc.

Any objections?

Tested x86_64-linux.

-- >8 --

This shouldn't be needed, but apparently the Bazel build tool has a
misfeature where it uses -nostdinc and explicitly provides the system
include paths, and it uses the same set of paths for compiling C and C++
code. This means that the libstdc++ header paths get used when compiling
C code, and so our new <stdatomic.h> gets included.

Just forward to the C header using #include_next if that happens.

libstdc++-v3/ChangeLog:

	* include/c_compatibility/stdatomic.h: Use #include_next if
	included by C code.
---
 libstdc++-v3/include/c_compatibility/stdatomic.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libstdc++-v3/include/c_compatibility/stdatomic.h b/libstdc++-v3/include/c_compatibility/stdatomic.h
index a51a84c2054..aa7bbb923dc 100644
--- a/libstdc++-v3/include/c_compatibility/stdatomic.h
+++ b/libstdc++-v3/include/c_compatibility/stdatomic.h
@@ -124,7 +124,7 @@ using std::atomic_flag_clear_explicit;
 using std::atomic_thread_fence;
 using std::atomic_signal_fence;
 
-#elif defined __clang__
+#elif !defined __cplusplus || defined __clang__
 # include_next <stdatomic.h>
 #endif // C++23
 #endif // _GLIBCXX_STDATOMIC_H
-- 
2.39.0


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-01-12 21:04 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-12 21:04 [PATCH] libstdc++: Make <stdatomic.h> forward to C version if included by C Jonathan Wakely

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).