Skip to content
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

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

Merged
merged 1 commit into from
Apr 16, 2024

Conversation

llvmbot
Copy link
Collaborator

@llvmbot llvmbot commented Apr 11, 2024

Backport 3c4b673

Requested by: @ldionne

@llvmbot llvmbot requested a review from a team as a code owner April 11, 2024 17:55
@llvmbot llvmbot added this to the LLVM 18.X Release milestone Apr 11, 2024
@llvmbot
Copy link
Collaborator Author

llvmbot commented Apr 11, 2024

@mordante What do you think about merging this PR to the release branch?

@llvmbot llvmbot requested a review from mordante April 11, 2024 17:55
@llvmbot llvmbot added the libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. label Apr 11, 2024
@llvmbot
Copy link
Collaborator Author

llvmbot commented Apr 11, 2024

@llvm/pr-subscribers-libcxx

Author: None (llvmbot)

Changes

Backport 3c4b673

Requested by: @ldionne


Full diff: https://github.com/llvm/llvm-project/pull/88419.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

We should take this in LLVM 18 because it's a regression from #87374

@tstellar
Copy link
Collaborator

Can we ignore this test failure?

@ldionne
Copy link
Member

ldionne commented Apr 16, 2024

Yes, it's std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp which is sometimes flaky.

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)
@tstellar tstellar merged commit db67e6f into llvm:release/18.x Apr 16, 2024
8 of 9 checks passed
@tstellar
Copy link
Collaborator

Hi @ldionne (or anyone else). If you would like to add a note about this fix in the release notes (completely optional). Please reply to this comment with a one or two sentence description of the fix.

@ldionne
Copy link
Member

ldionne commented Apr 17, 2024

I don't think a release note is necessary here because we introduced the "bug" and fixed it in the same point-release. So from the user's perspective there was no issue introduced.

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.

None yet

5 participants