Skip to content

Commit e3a9015

Browse files
committed
Revert original patch + printf addition
1 parent 885e3bd commit e3a9015

File tree

5 files changed

+26
-116
lines changed

5 files changed

+26
-116
lines changed

libcxx/include/__locale_dir/locale_base_api.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
#ifndef _LIBCPP___LOCALE_DIR_LOCALE_BASE_API_H
1010
#define _LIBCPP___LOCALE_DIR_LOCALE_BASE_API_H
1111

12-
#include <__config>
13-
1412
#if defined(_LIBCPP_MSVCRT_LIKE)
1513
# include <__locale_dir/locale_base_api/win32.h>
1614
#elif defined(_AIX) || defined(__MVS__)
@@ -29,12 +27,6 @@
2927
# include <__locale_dir/locale_base_api/freebsd.h>
3028
#endif
3129

32-
#ifdef _LIBCPP_LOCALE__L_EXTENSIONS
33-
# include <__locale_dir/locale_base_api/bsd_locale_defaults.h>
34-
#else
35-
# include <__locale_dir/locale_base_api/bsd_locale_fallbacks.h>
36-
#endif
37-
3830
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
3931
# pragma GCC system_header
4032
#endif

libcxx/include/__locale_dir/locale_base_api/bsd_locale_defaults.h

Lines changed: 14 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -14,105 +14,23 @@
1414
#ifndef _LIBCPP___LOCALE_DIR_LOCALE_BASE_API_BSD_LOCALE_DEFAULTS_H
1515
#define _LIBCPP___LOCALE_DIR_LOCALE_BASE_API_BSD_LOCALE_DEFAULTS_H
1616

17-
#include <ctype.h>
18-
#include <stdio.h>
19-
#include <stdlib.h>
20-
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
21-
# include <wchar.h>
22-
#endif
23-
24-
// <xlocale.h> must come after the includes above since the functions it includes depend on
25-
// what headers have been included up to that point.
26-
#if defined(__APPLE__) || defined(__FreeBSD__)
27-
# include <xlocale.h>
28-
#endif
29-
30-
#include <__config>
31-
#include <__cstddef/size_t.h>
32-
#include <__std_mbstate_t.h>
33-
#include <__utility/forward.h>
34-
3517
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
3618
# pragma GCC system_header
3719
#endif
3820

39-
_LIBCPP_BEGIN_NAMESPACE_STD
40-
41-
inline _LIBCPP_HIDE_FROM_ABI decltype(MB_CUR_MAX) __libcpp_mb_cur_max_l(locale_t __loc) { return MB_CUR_MAX_L(__loc); }
42-
43-
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
44-
inline _LIBCPP_HIDE_FROM_ABI wint_t __libcpp_btowc_l(int __c, locale_t __loc) { return ::btowc_l(__c, __loc); }
45-
46-
inline _LIBCPP_HIDE_FROM_ABI int __libcpp_wctob_l(wint_t __c, locale_t __loc) { return ::wctob_l(__c, __loc); }
47-
48-
inline _LIBCPP_HIDE_FROM_ABI size_t __libcpp_wcsnrtombs_l(
49-
char* __dest, const wchar_t** __src, size_t __nwc, size_t __len, mbstate_t* __ps, locale_t __loc) {
50-
return ::wcsnrtombs_l(__dest, __src, __nwc, __len, __ps, __loc);
51-
}
52-
53-
inline _LIBCPP_HIDE_FROM_ABI size_t __libcpp_wcrtomb_l(char* __s, wchar_t __wc, mbstate_t* __ps, locale_t __loc) {
54-
return ::wcrtomb_l(__s, __wc, __ps, __loc);
55-
}
56-
57-
inline _LIBCPP_HIDE_FROM_ABI size_t __libcpp_mbsnrtowcs_l(
58-
wchar_t* __dest, const char** __src, size_t __nms, size_t __len, mbstate_t* __ps, locale_t __loc) {
59-
return ::mbsnrtowcs_l(__dest, __src, __nms, __len, __ps, __loc);
60-
}
61-
62-
inline _LIBCPP_HIDE_FROM_ABI size_t
63-
__libcpp_mbrtowc_l(wchar_t* __pwc, const char* __s, size_t __n, mbstate_t* __ps, locale_t __loc) {
64-
return ::mbrtowc_l(__pwc, __s, __n, __ps, __loc);
65-
}
66-
67-
inline _LIBCPP_HIDE_FROM_ABI int __libcpp_mbtowc_l(wchar_t* __pwc, const char* __pmb, size_t __max, locale_t __loc) {
68-
return ::mbtowc_l(__pwc, __pmb, __max, __loc);
69-
}
70-
71-
inline _LIBCPP_HIDE_FROM_ABI size_t __libcpp_mbrlen_l(const char* __s, size_t __n, mbstate_t* __ps, locale_t __loc) {
72-
return ::mbrlen_l(__s, __n, __ps, __loc);
73-
}
74-
#endif // _LIBCPP_HAS_NO_WIDE_CHARACTERS
75-
76-
inline _LIBCPP_HIDE_FROM_ABI lconv* __libcpp_localeconv_l(locale_t __loc) {
77-
fprintf(stderr, "Entering __libcpp_localeconv_l inside bsd_locale_defaults.h\n");
78-
return ::localeconv_l(__loc);
79-
}
80-
81-
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
82-
inline _LIBCPP_HIDE_FROM_ABI size_t
83-
__libcpp_mbsrtowcs_l(wchar_t* __dest, const char** __src, size_t __len, mbstate_t* __ps, locale_t __loc) {
84-
return ::mbsrtowcs_l(__dest, __src, __len, __ps, __loc);
85-
}
86-
#endif
87-
88-
template <class... _Args>
89-
_LIBCPP_HIDE_FROM_ABI int
90-
__libcpp_snprintf_l(char* __s, size_t __n, locale_t __loc, const char* __format, _Args&&... __args) {
91-
_LIBCPP_DIAGNOSTIC_PUSH
92-
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wformat-nonliteral")
93-
_LIBCPP_GCC_DIAGNOSTIC_IGNORED("-Wformat-nonliteral")
94-
return ::snprintf_l(__s, __n, __loc, __format, std::forward<_Args>(__args)...);
95-
_LIBCPP_DIAGNOSTIC_POP
96-
}
97-
98-
template <class... _Args>
99-
_LIBCPP_HIDE_FROM_ABI int __libcpp_asprintf_l(char** __s, locale_t __loc, const char* __format, _Args&&... __args) {
100-
_LIBCPP_DIAGNOSTIC_PUSH
101-
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wformat-nonliteral")
102-
_LIBCPP_GCC_DIAGNOSTIC_IGNORED("-Wformat-nonliteral")
103-
return ::asprintf_l(__s, __loc, __format, std::forward<_Args>(__args)...);
104-
_LIBCPP_DIAGNOSTIC_POP
105-
}
106-
107-
template <class... _Args>
108-
_LIBCPP_HIDE_FROM_ABI int __libcpp_sscanf_l(const char* __s, locale_t __loc, const char* __format, _Args&&... __args) {
109-
_LIBCPP_DIAGNOSTIC_PUSH
110-
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wformat-nonliteral")
111-
_LIBCPP_GCC_DIAGNOSTIC_IGNORED("-Wformat-nonliteral")
112-
return ::sscanf_l(__s, __loc, __format, std::forward<_Args>(__args)...);
113-
_LIBCPP_DIAGNOSTIC_POP
114-
}
115-
116-
_LIBCPP_END_NAMESPACE_STD
21+
#define __libcpp_mb_cur_max_l(loc) MB_CUR_MAX_L(loc)
22+
#define __libcpp_btowc_l(ch, loc) btowc_l(ch, loc)
23+
#define __libcpp_wctob_l(wch, loc) wctob_l(wch, loc)
24+
#define __libcpp_wcsnrtombs_l(dst, src, nwc, len, ps, loc) wcsnrtombs_l(dst, src, nwc, len, ps, loc)
25+
#define __libcpp_wcrtomb_l(src, wc, ps, loc) wcrtomb_l(src, wc, ps, loc)
26+
#define __libcpp_mbsnrtowcs_l(dst, src, nms, len, ps, loc) mbsnrtowcs_l(dst, src, nms, len, ps, loc)
27+
#define __libcpp_mbrtowc_l(pwc, s, n, ps, l) mbrtowc_l(pwc, s, n, ps, l)
28+
#define __libcpp_mbtowc_l(pwc, pmb, max, l) mbtowc_l(pwc, pmb, max, l)
29+
#define __libcpp_mbrlen_l(s, n, ps, l) mbrlen_l(s, n, ps, l)
30+
#define __libcpp_localeconv_l(l) localeconv_l(l)
31+
#define __libcpp_mbsrtowcs_l(dest, src, len, ps, l) mbsrtowcs_l(dest, src, len, ps, l)
32+
#define __libcpp_snprintf_l(...) snprintf_l(__VA_ARGS__)
33+
#define __libcpp_asprintf_l(...) asprintf_l(__VA_ARGS__)
34+
#define __libcpp_sscanf_l(...) sscanf_l(__VA_ARGS__)
11735

11836
#endif // _LIBCPP___LOCALE_DIR_LOCALE_BASE_API_BSD_LOCALE_DEFAULTS_H

libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,9 @@
1313
#ifndef _LIBCPP___LOCALE_DIR_LOCALE_BASE_API_BSD_LOCALE_FALLBACKS_H
1414
#define _LIBCPP___LOCALE_DIR_LOCALE_BASE_API_BSD_LOCALE_FALLBACKS_H
1515

16-
#include <locale.h>
17-
1816
#include <__locale_dir/locale_guard.h>
17+
#include <cstdio>
1918
#include <stdarg.h>
20-
#include <stdio.h>
2119
#include <stdlib.h>
2220

2321
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS

libcxx/include/locale

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ template <class charT> class messages_byname;
215215
# include <streambuf>
216216
# include <version>
217217

218-
// TODO: Properly qualify calls now that __bsd_locale_defaults.h defines functions instead of macros
218+
// TODO: Fix __bsd_locale_defaults.h
219219
// NOLINTBEGIN(libcpp-robust-against-adl)
220220

221221
# if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
@@ -230,6 +230,16 @@ template <class charT> class messages_byname;
230230
# define _LIBCPP_HAS_CATOPEN 0
231231
# endif
232232

233+
# ifdef _LIBCPP_LOCALE__L_EXTENSIONS
234+
# include <__locale_dir/locale_base_api/bsd_locale_defaults.h>
235+
# else
236+
# include <__locale_dir/locale_base_api/bsd_locale_fallbacks.h>
237+
# endif
238+
239+
# if defined(__APPLE__) || defined(__FreeBSD__)
240+
# include <xlocale.h>
241+
# endif
242+
233243
# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
234244
# pragma GCC system_header
235245
# endif

libcxx/test/libcxx/clang_modules_include.gen.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,6 @@
2424
//--- {header}.compile.pass.cpp
2525
// RUN: %{{cxx}} %s %{{flags}} %{{compile_flags}} -fmodules -fcxx-modules -fmodules-cache-path=%t -fsyntax-only
2626
27-
// Older macOS SDKs were not properly modularized, which causes issues with localization.
28-
// This feature should instead be based on the SDK version.
29-
// UNSUPPORTED: stdlib=system && target={{{{.+}}}}-apple-macosx13{{{{.*}}}}
30-
3127
// GCC doesn't support -fcxx-modules
3228
// UNSUPPORTED: gcc
3329
@@ -56,10 +52,6 @@
5652
5753
// REQUIRES: clang-modules-build
5854
59-
// Older macOS SDKs were not properly modularized, which causes issues with localization.
60-
// This feature should instead be based on the SDK version.
61-
// UNSUPPORTED: stdlib=system && target={{{{.+}}}}-apple-macosx13{{{{.*}}}}
62-
6355
// GCC doesn't support -fcxx-modules
6456
// UNSUPPORTED: gcc
6557

0 commit comments

Comments
 (0)