diff --git a/libc/src/__support/macros/config.h b/libc/src/__support/macros/config.h index 5c3ec634449f85..23436365cc544d 100644 --- a/libc/src/__support/macros/config.h +++ b/libc/src/__support/macros/config.h @@ -28,6 +28,7 @@ #define LIBC_HAS_FEATURE(f) 0 #endif +#ifndef __GNUC__ // Declare a LIBC_NAMESPACE with hidden visibility. `namespace // LIBC_NAMESPACE_DECL {` should be used around all declarations and definitions // for libc internals as opposed to just `namespace LIBC_NAMESPACE {`. This @@ -37,5 +38,10 @@ // dynamic relocations. This does not affect the public C symbols which are // controlled independently via `LLVM_LIBC_FUNCTION_ATTR`. #define LIBC_NAMESPACE_DECL [[gnu::visibility("hidden")]] LIBC_NAMESPACE +#else +// TODO(#98548): GCC emits a warning when using the visibility attribute which +// needs to be diagnosed and addressed. +#define LIBC_NAMESPACE_DECL LIBC_NAMESPACE +#endif #endif // LLVM_LIBC_SRC___SUPPORT_MACROS_CONFIG_H