Skip to content

release/18.x: [libc++] Fix -Wgnu-include-next in stddef.h (#88214) #88421

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

llvmbot
Copy link
Member

@llvmbot llvmbot commented Apr 11, 2024

Backport 3c4b673

Requested by: @ian-twilightcoder

As reported in llvm#86843, we must have #pragma GCC system_header before we
use #include_next, otherwise the compiler may not understand that we're
in a system header and may issue a diagnostic for our usage of

(cherry picked from commit 3c4b673)
@llvmbot llvmbot requested a review from a team as a code owner April 11, 2024 18:01
@llvmbot llvmbot added this to the LLVM 18.X Release milestone Apr 11, 2024
@llvmbot llvmbot added the libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. label Apr 11, 2024
@llvmbot
Copy link
Member Author

llvmbot commented Apr 11, 2024

@llvm/pr-subscribers-libcxx

Author: None (llvmbot)

Changes

Backport 3c4b673

Requested by: @ian-twilightcoder


Full diff: https://github.com/llvm/llvm-project/pull/88421.diff

1 Files Affected:

  • (modified) libcxx/include/stddef.h (+4-4)
diff --git a/libcxx/include/stddef.h b/libcxx/include/stddef.h
index 470b5408336c6d..1583e78e3739ba 100644
--- a/libcxx/include/stddef.h
+++ b/libcxx/include/stddef.h
@@ -26,6 +26,10 @@
 
 #include <__config>
 
+#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+#  pragma GCC system_header
+#endif
+
 // Note: This include is outside of header guards because we sometimes get included multiple times
 //       with different defines and the underlying <stddef.h> will know how to deal with that.
 #include_next <stddef.h>
@@ -33,10 +37,6 @@
 #ifndef _LIBCPP_STDDEF_H
 #  define _LIBCPP_STDDEF_H
 
-#  if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-#    pragma GCC system_header
-#  endif
-
 #  ifdef __cplusplus
 typedef decltype(nullptr) nullptr_t;
 #  endif

@ian-twilightcoder
Copy link
Contributor

Already covered by #88419

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.
Projects
Development

Successfully merging this pull request may close these issues.

3 participants