[libcxx-commits] [libcxx] [libc++] Make ABI annotations explicit for windows-specific code (PR #140507)

Martin Storsjö via libcxx-commits libcxx-commits at lists.llvm.org
Mon May 19 05:05:47 PDT 2025


mstorsjo wrote:

This seems to fail to compile:
```

llvm-project/libcxx/src/support/win32/locale_win32.cpp:18:1: error: cannot add 'abi_tag' attribute in a redeclaration
   18 | _LIBCPP_BEGIN_NAMESPACE_STD
      | ^
llvm-project/runtimes/build-aarch64/include/c++/v1/__config:586:39: note: expanded from macro '_LIBCPP_BEGIN_NAMESPACE_STD'
  586 | #  define _LIBCPP_BEGIN_NAMESPACE_STD _LIBCPP_BEGIN_UNVERSIONED_NAMESPACE_STD inline namespace _LIBCPP_ABI_NAMESPACE {
      |                                       ^
llvm-project/runtimes/build-aarch64/include/c++/v1/__config:581:40: note: expanded from macro '_LIBCPP_BEGIN_UNVERSIONED_NAMESPACE_STD'
  581 |     _LIBCPP_PUSH_EXTENSION_DIAGNOSTICS _LIBCPP_END_EXPLICIT_ABI_ANNOTATIONS namespace _LIBCPP_NAMESPACE_VISIBILITY std {
      |                                        ^
llvm-project/runtimes/build-aarch64/include/c++/v1/__config:566:5: note: expanded from macro '_LIBCPP_END_EXPLICIT_ABI_ANNOTATIONS'
  566 |     _Pragma(_LIBCPP_TOSTRING(clang attribute _LibcxxExplicitABIAnnotations.push(__attribute__((                        \
      |     ^
<scratch space>:28:110: note: expanded from here
   28 |  clang attribute _LibcxxExplicitABIAnnotations.push(__attribute__(( __exclude_from_explicit_instantiation__, __abi_tag__("ne210000"))), apply_to = function)                                                                      |                                                                                                              ^
llvm-project/runtimes/build-aarch64/include/c++/v1/__locale_dir/support/windows.h:292:48: note: previous declaration is here
  292 | _LIBCPP_ATTRIBUTE_FORMAT(__printf__, 3, 4) int __asprintf(char** __ret, __locale_t __loc, const char* __format, ...);
      |                                                ^
```

https://github.com/llvm/llvm-project/pull/140507


More information about the libcxx-commits mailing list