Skip to content

Commit 22ffb51

Browse files
committed
[libc++] Don't push and pop extensions diagnostics when using clang modules
1 parent 197f3ec commit 22ffb51

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

libcxx/include/__config

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -838,21 +838,30 @@ typedef __char32_t char32_t;
838838
# define _LIBCPP_CLANG_DIAGNOSTIC_IGNORED_CXX23_EXTENSION _LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wc++2b-extensions")
839839
#endif
840840

841+
# if !__has_feature(modules)
842+
# define _LIBCPP_PUSH_EXTENSION_DIAGNOSTICS \
843+
_LIBCPP_DIAGNOSTIC_PUSH \
844+
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wc++11-extensions") \
845+
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wc++14-extensions") \
846+
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wc++17-extensions") \
847+
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wc++20-extensions") \
848+
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED_CXX23_EXTENSION \
849+
_LIBCPP_GCC_DIAGNOSTIC_IGNORED("-Wc++14-extensions") \
850+
_LIBCPP_GCC_DIAGNOSTIC_IGNORED("-Wc++17-extensions") \
851+
_LIBCPP_GCC_DIAGNOSTIC_IGNORED("-Wc++20-extensions") \
852+
_LIBCPP_GCC_DIAGNOSTIC_IGNORED("-Wc++23-extensions")
853+
# define _LIBCPP_POP_EXTENSION_DIAGNOSTICS _LIBCPP_DIAGNOSTIC_POP
854+
# else
855+
# define _LIBCPP_PUSH_EXTENSION_DIAGNOSTICS
856+
# define _LIBCPP_POP_EXTENSION_DIAGNOSTICS
857+
# endif
858+
841859
// Inline namespaces are available in Clang/GCC/MSVC regardless of C++ dialect.
842860
// clang-format off
843-
# define _LIBCPP_BEGIN_NAMESPACE_STD _LIBCPP_DIAGNOSTIC_PUSH \
844-
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wc++11-extensions") \
845-
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wc++14-extensions") \
846-
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wc++17-extensions") \
847-
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wc++20-extensions") \
848-
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED_CXX23_EXTENSION \
849-
_LIBCPP_GCC_DIAGNOSTIC_IGNORED("-Wc++14-extensions") \
850-
_LIBCPP_GCC_DIAGNOSTIC_IGNORED("-Wc++17-extensions") \
851-
_LIBCPP_GCC_DIAGNOSTIC_IGNORED("-Wc++20-extensions") \
852-
_LIBCPP_GCC_DIAGNOSTIC_IGNORED("-Wc++23-extensions") \
861+
# define _LIBCPP_BEGIN_NAMESPACE_STD _LIBCPP_PUSH_EXTENSION_DIAGNOSTICS \
853862
namespace _LIBCPP_TYPE_VISIBILITY_DEFAULT std { \
854863
inline namespace _LIBCPP_ABI_NAMESPACE {
855-
# define _LIBCPP_END_NAMESPACE_STD }} _LIBCPP_DIAGNOSTIC_POP
864+
# define _LIBCPP_END_NAMESPACE_STD }} _LIBCPP_POP_EXTENSION_DIAGNOSTICS
856865

857866
# define _LIBCPP_BEGIN_NAMESPACE_FILESYSTEM _LIBCPP_BEGIN_NAMESPACE_STD \
858867
inline namespace __fs { namespace filesystem {

0 commit comments

Comments
 (0)