[libcxx-commits] [PATCH] D122861: [libcxx] Add some missing xlocale wrapper functions for OpenBSD

Mark de Wever via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Thu Apr 7 08:44:35 PDT 2022

Mordante added a comment.

In D122861#3434764 <https://reviews.llvm.org/D122861#3434764>, @brad wrote:

> In D122861#3433609 <https://reviews.llvm.org/D122861#3433609>, @Mordante wrote:
>> I wonder whether this only affects OpenBSD or other platforms as well. If it also affects other platforms should these functions be here or in `_support/xlocale/__strtonum_fallback.h`?
> I was wondering about that as well, but thought I should keep this specific to OpenBSD for now to reduce the likelihood of something breaking and can be expanded later if desired.

Fair point.

Comment at: libcxx/include/__support/openbsd/xlocale.h:24
+static inline long strtol_l(const char *nptr, char **endptr, int base,
+                            locale_t) {
brad wrote:
> Mordante wrote:
> > Why the `static inline` instead of `inline`?
> > Please add `_LIBCPP_HIDE_FROM_ABI`.
> > Why the `static inline` instead of `inline`?
> > Please add `_LIBCPP_HIDE_FROM_ABI`.
> I copied bits from libcxx/include/__support/solaris/xlocale.h, but the same goes for libcxx/include/__support/ibm/xlocale.h and libcxx/include/__support/musl/xlocale.h.
> I don't see _LIBCPP_HIDE_FROM_ABI used anywhere in that sub-dir.
This is used in `_support/xlocale/__strtonum_fallback.h`
inline _LIBCPP_INLINE_VISIBILITY long long                                      
strtoll_l(const char *nptr, char **endptr, int base, locale_t) {
  return ::strtoll(nptr, endptr, base);
Note that `_LIBCPP_INLINE_VISIBILITY` is the deprecated name for `_LIBCPP_HIDE_FROM_ABI`

@ldionne Do you know why these locale headers use `static inline` instead of `inline LIBCPP_HIDE_FROM_ABI`?

  rG LLVM Github Monorepo



More information about the libcxx-commits mailing list