Skip to content

Commit 5498143

Browse files
committed
[libc++] Don't give functions C linkage
1 parent daaaf4e commit 5498143

File tree

8 files changed

+55
-115
lines changed

8 files changed

+55
-115
lines changed

libcxx/include/__config

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -572,10 +572,6 @@ typedef __char32_t char32_t;
572572
# endif
573573
# define _LIBCPP_HIDE_FROM_ABI_VIRTUAL _LIBCPP_HIDDEN _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION
574574

575-
// This macro provides a HIDE_FROM_ABI equivalent that can be applied to extern
576-
// "C" function, as those lack mangling.
577-
# define _LIBCPP_HIDE_FROM_ABI_C _LIBCPP_HIDDEN _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION
578-
579575
# ifdef _LIBCPP_BUILDING_LIBRARY
580576
# if _LIBCPP_ABI_VERSION > 1
581577
# define _LIBCPP_HIDE_FROM_ABI_AFTER_V1 _LIBCPP_HIDE_FROM_ABI

libcxx/include/__locale_dir/locale_base_api/android.h

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,26 +42,18 @@ extern "C" {
4242
# include <__support/xlocale/__strtonum_fallback.h>
4343
# elif __ANDROID_API__ < 26
4444

45-
# if defined(__cplusplus)
46-
extern "C" {
47-
# endif
48-
49-
inline _LIBCPP_HIDE_FROM_ABI_C float strtof_l(const char* __nptr, char** __endptr, locale_t) {
45+
inline _LIBCPP_HIDE_FROM_ABI float strtof_l(const char* __nptr, char** __endptr, locale_t) {
5046
return ::strtof(__nptr, __endptr);
5147
}
5248

53-
inline _LIBCPP_HIDE_FROM_ABI_C double strtod_l(const char* __nptr, char** __endptr, locale_t) {
49+
inline _LIBCPP_HIDE_FROM_ABI double strtod_l(const char* __nptr, char** __endptr, locale_t) {
5450
return ::strtod(__nptr, __endptr);
5551
}
5652

57-
inline _LIBCPP_HIDE_FROM_ABI_C long strtol_l(const char* __nptr, char** __endptr, int __base, locale_t) {
53+
inline _LIBCPP_HIDE_FROM_ABI long strtol_l(const char* __nptr, char** __endptr, int __base, locale_t) {
5854
return ::strtol(__nptr, __endptr, __base);
5955
}
6056

61-
# if defined(__cplusplus)
62-
}
63-
# endif
64-
6557
# endif // __ANDROID_API__ < 26
6658

6759
# endif // __NDK_MAJOR__ <= 16

libcxx/include/__locale_dir/locale_base_api/ibm.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,6 @@
2020

2121
#include "cstdlib"
2222

23-
#ifdef __cplusplus
24-
extern "C" {
25-
#endif
26-
2723
#if defined(__MVS__)
2824
# include <wctype.h>
2925
// POSIX routines
@@ -118,7 +114,4 @@ inline _LIBCPP_HIDE_FROM_ABI int vasprintf(char** strp, const char* fmt, va_list
118114
return str_size;
119115
}
120116

121-
#ifdef __cplusplus
122-
}
123-
#endif
124117
#endif // _LIBCPP___LOCALE_LOCALE_BASE_API_IBM_H

libcxx/include/__locale_dir/locale_base_api/musl.h

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,34 +20,25 @@
2020
#include <cstdlib>
2121
#include <cwchar>
2222

23-
#ifdef __cplusplus
24-
extern "C" {
25-
#endif
26-
27-
inline _LIBCPP_HIDE_FROM_ABI_C long long strtoll_l(const char* __nptr, char** __endptr, int __base, locale_t) {
23+
inline _LIBCPP_HIDE_FROM_ABI long long strtoll_l(const char* __nptr, char** __endptr, int __base, locale_t) {
2824
return ::strtoll(__nptr, __endptr, __base);
2925
}
3026

31-
inline _LIBCPP_HIDE_FROM_ABI_C unsigned long long
32-
strtoull_l(const char* __nptr, char** __endptr, int __base, locale_t) {
27+
inline _LIBCPP_HIDE_FROM_ABI unsigned long long strtoull_l(const char* __nptr, char** __endptr, int __base, locale_t) {
3328
return ::strtoull(__nptr, __endptr, __base);
3429
}
3530

36-
inline _LIBCPP_HIDE_FROM_ABI_C long long wcstoll_l(const wchar_t* __nptr, wchar_t** __endptr, int __base, locale_t) {
31+
inline _LIBCPP_HIDE_FROM_ABI long long wcstoll_l(const wchar_t* __nptr, wchar_t** __endptr, int __base, locale_t) {
3732
return ::wcstoll(__nptr, __endptr, __base);
3833
}
3934

40-
inline _LIBCPP_HIDE_FROM_ABI_C unsigned long long
35+
inline _LIBCPP_HIDE_FROM_ABI unsigned long long
4136
wcstoull_l(const wchar_t* __nptr, wchar_t** __endptr, int __base, locale_t) {
4237
return ::wcstoull(__nptr, __endptr, __base);
4338
}
4439

45-
inline _LIBCPP_HIDE_FROM_ABI_C long double wcstold_l(const wchar_t* __nptr, wchar_t** __endptr, locale_t) {
40+
inline _LIBCPP_HIDE_FROM_ABI long double wcstold_l(const wchar_t* __nptr, wchar_t** __endptr, locale_t) {
4641
return ::wcstold(__nptr, __endptr);
4742
}
4843

49-
#ifdef __cplusplus
50-
}
51-
#endif
52-
5344
#endif // _LIBCPP___LOCALE_LOCALE_BASE_API_MUSL_H

libcxx/include/__locale_dir/locale_base_api/openbsd.h

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,12 @@
1616
#include <ctype.h>
1717
#include <cwctype>
1818

19-
#ifdef __cplusplus
20-
extern "C" {
21-
#endif
22-
23-
inline _LIBCPP_HIDE_FROM_ABI_C long strtol_l(const char* __nptr, char** __endptr, int __base, locale_t) {
19+
inline _LIBCPP_HIDE_FROM_ABI long strtol_l(const char* __nptr, char** __endptr, int __base, locale_t) {
2420
return ::strtol(__nptr, __endptr, __base);
2521
}
2622

27-
inline _LIBCPP_HIDE_FROM_ABI_C unsigned long strtoul_l(const char* __nptr, char** __endptr, int __base, locale_t) {
23+
inline _LIBCPP_HIDE_FROM_ABI unsigned long strtoul_l(const char* __nptr, char** __endptr, int __base, locale_t) {
2824
return ::strtoul(__nptr, __endptr, __base);
2925
}
3026

31-
#ifdef __cplusplus
32-
}
33-
#endif
34-
3527
#endif // _LIBCPP___LOCALE_LOCALE_BASE_API_OPENBSD_H

libcxx/include/__support/xlocale/__nop_locale_mgmt.h

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,16 @@
1212

1313
#include <__config>
1414

15-
#ifdef __cplusplus
16-
extern "C" {
17-
#endif
18-
1915
// Patch over lack of extended locale support
2016
typedef void* locale_t;
2117

22-
inline _LIBCPP_HIDE_FROM_ABI_C locale_t duplocale(locale_t) { return NULL; }
18+
inline _LIBCPP_HIDE_FROM_ABI locale_t duplocale(locale_t) { return NULL; }
2319

24-
inline _LIBCPP_HIDE_FROM_ABI_C void freelocale(locale_t) {}
20+
inline _LIBCPP_HIDE_FROM_ABI void freelocale(locale_t) {}
2521

26-
inline _LIBCPP_HIDE_FROM_ABI_C locale_t newlocale(int, const char*, locale_t) { return NULL; }
22+
inline _LIBCPP_HIDE_FROM_ABI locale_t newlocale(int, const char*, locale_t) { return NULL; }
2723

28-
inline _LIBCPP_HIDE_FROM_ABI_C locale_t uselocale(locale_t) { return NULL; }
24+
inline _LIBCPP_HIDE_FROM_ABI locale_t uselocale(locale_t) { return NULL; }
2925

3026
#define LC_COLLATE_MASK (1 << LC_COLLATE)
3127
#define LC_CTYPE_MASK (1 << LC_CTYPE)
@@ -36,8 +32,4 @@ inline _LIBCPP_HIDE_FROM_ABI_C locale_t uselocale(locale_t) { return NULL; }
3632
#define LC_ALL_MASK \
3733
(LC_COLLATE_MASK | LC_CTYPE_MASK | LC_MONETARY_MASK | LC_NUMERIC_MASK | LC_TIME_MASK | LC_MESSAGES_MASK)
3834

39-
#ifdef __cplusplus
40-
} // extern "C"
41-
#endif
42-
4335
#endif // _LIBCPP___SUPPORT_XLOCALE_NOP_LOCALE_MGMT_H

libcxx/include/__support/xlocale/__posix_l_fallback.h

Lines changed: 33 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -25,93 +25,85 @@
2525
# include <wctype.h>
2626
#endif
2727

28-
#ifdef __cplusplus
29-
extern "C" {
30-
#endif
31-
32-
inline _LIBCPP_HIDE_FROM_ABI_C int isalnum_l(int __c, locale_t) { return ::isalnum(__c); }
28+
inline _LIBCPP_HIDE_FROM_ABI int isalnum_l(int __c, locale_t) { return ::isalnum(__c); }
3329

34-
inline _LIBCPP_HIDE_FROM_ABI_C int isalpha_l(int __c, locale_t) { return ::isalpha(__c); }
30+
inline _LIBCPP_HIDE_FROM_ABI int isalpha_l(int __c, locale_t) { return ::isalpha(__c); }
3531

36-
inline _LIBCPP_HIDE_FROM_ABI_C int isblank_l(int __c, locale_t) { return ::isblank(__c); }
32+
inline _LIBCPP_HIDE_FROM_ABI int isblank_l(int __c, locale_t) { return ::isblank(__c); }
3733

38-
inline _LIBCPP_HIDE_FROM_ABI_C int iscntrl_l(int __c, locale_t) { return ::iscntrl(__c); }
34+
inline _LIBCPP_HIDE_FROM_ABI int iscntrl_l(int __c, locale_t) { return ::iscntrl(__c); }
3935

40-
inline _LIBCPP_HIDE_FROM_ABI_C int isdigit_l(int __c, locale_t) { return ::isdigit(__c); }
36+
inline _LIBCPP_HIDE_FROM_ABI int isdigit_l(int __c, locale_t) { return ::isdigit(__c); }
4137

42-
inline _LIBCPP_HIDE_FROM_ABI_C int isgraph_l(int __c, locale_t) { return ::isgraph(__c); }
38+
inline _LIBCPP_HIDE_FROM_ABI int isgraph_l(int __c, locale_t) { return ::isgraph(__c); }
4339

44-
inline _LIBCPP_HIDE_FROM_ABI_C int islower_l(int __c, locale_t) { return ::islower(__c); }
40+
inline _LIBCPP_HIDE_FROM_ABI int islower_l(int __c, locale_t) { return ::islower(__c); }
4541

46-
inline _LIBCPP_HIDE_FROM_ABI_C int isprint_l(int __c, locale_t) { return ::isprint(__c); }
42+
inline _LIBCPP_HIDE_FROM_ABI int isprint_l(int __c, locale_t) { return ::isprint(__c); }
4743

48-
inline _LIBCPP_HIDE_FROM_ABI_C int ispunct_l(int __c, locale_t) { return ::ispunct(__c); }
44+
inline _LIBCPP_HIDE_FROM_ABI int ispunct_l(int __c, locale_t) { return ::ispunct(__c); }
4945

50-
inline _LIBCPP_HIDE_FROM_ABI_C int isspace_l(int __c, locale_t) { return ::isspace(__c); }
46+
inline _LIBCPP_HIDE_FROM_ABI int isspace_l(int __c, locale_t) { return ::isspace(__c); }
5147

52-
inline _LIBCPP_HIDE_FROM_ABI_C int isupper_l(int __c, locale_t) { return ::isupper(__c); }
48+
inline _LIBCPP_HIDE_FROM_ABI int isupper_l(int __c, locale_t) { return ::isupper(__c); }
5349

54-
inline _LIBCPP_HIDE_FROM_ABI_C int isxdigit_l(int __c, locale_t) { return ::isxdigit(__c); }
50+
inline _LIBCPP_HIDE_FROM_ABI int isxdigit_l(int __c, locale_t) { return ::isxdigit(__c); }
5551

56-
inline _LIBCPP_HIDE_FROM_ABI_C int toupper_l(int __c, locale_t) { return ::toupper(__c); }
52+
inline _LIBCPP_HIDE_FROM_ABI int toupper_l(int __c, locale_t) { return ::toupper(__c); }
5753

58-
inline _LIBCPP_HIDE_FROM_ABI_C int tolower_l(int __c, locale_t) { return ::tolower(__c); }
54+
inline _LIBCPP_HIDE_FROM_ABI int tolower_l(int __c, locale_t) { return ::tolower(__c); }
5955

6056
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
61-
inline _LIBCPP_HIDE_FROM_ABI_C int iswalnum_l(wint_t __c, locale_t) { return ::iswalnum(__c); }
57+
inline _LIBCPP_HIDE_FROM_ABI int iswalnum_l(wint_t __c, locale_t) { return ::iswalnum(__c); }
6258

63-
inline _LIBCPP_HIDE_FROM_ABI_C int iswalpha_l(wint_t __c, locale_t) { return ::iswalpha(__c); }
59+
inline _LIBCPP_HIDE_FROM_ABI int iswalpha_l(wint_t __c, locale_t) { return ::iswalpha(__c); }
6460

65-
inline _LIBCPP_HIDE_FROM_ABI_C int iswblank_l(wint_t __c, locale_t) { return ::iswblank(__c); }
61+
inline _LIBCPP_HIDE_FROM_ABI int iswblank_l(wint_t __c, locale_t) { return ::iswblank(__c); }
6662

67-
inline _LIBCPP_HIDE_FROM_ABI_C int iswcntrl_l(wint_t __c, locale_t) { return ::iswcntrl(__c); }
63+
inline _LIBCPP_HIDE_FROM_ABI int iswcntrl_l(wint_t __c, locale_t) { return ::iswcntrl(__c); }
6864

69-
inline _LIBCPP_HIDE_FROM_ABI_C int iswdigit_l(wint_t __c, locale_t) { return ::iswdigit(__c); }
65+
inline _LIBCPP_HIDE_FROM_ABI int iswdigit_l(wint_t __c, locale_t) { return ::iswdigit(__c); }
7066

71-
inline _LIBCPP_HIDE_FROM_ABI_C int iswgraph_l(wint_t __c, locale_t) { return ::iswgraph(__c); }
67+
inline _LIBCPP_HIDE_FROM_ABI int iswgraph_l(wint_t __c, locale_t) { return ::iswgraph(__c); }
7268

73-
inline _LIBCPP_HIDE_FROM_ABI_C int iswlower_l(wint_t __c, locale_t) { return ::iswlower(__c); }
69+
inline _LIBCPP_HIDE_FROM_ABI int iswlower_l(wint_t __c, locale_t) { return ::iswlower(__c); }
7470

75-
inline _LIBCPP_HIDE_FROM_ABI_C int iswprint_l(wint_t __c, locale_t) { return ::iswprint(__c); }
71+
inline _LIBCPP_HIDE_FROM_ABI int iswprint_l(wint_t __c, locale_t) { return ::iswprint(__c); }
7672

77-
inline _LIBCPP_HIDE_FROM_ABI_C int iswpunct_l(wint_t __c, locale_t) { return ::iswpunct(__c); }
73+
inline _LIBCPP_HIDE_FROM_ABI int iswpunct_l(wint_t __c, locale_t) { return ::iswpunct(__c); }
7874

79-
inline _LIBCPP_HIDE_FROM_ABI_C int iswspace_l(wint_t __c, locale_t) { return ::iswspace(__c); }
75+
inline _LIBCPP_HIDE_FROM_ABI int iswspace_l(wint_t __c, locale_t) { return ::iswspace(__c); }
8076

81-
inline _LIBCPP_HIDE_FROM_ABI_C int iswupper_l(wint_t __c, locale_t) { return ::iswupper(__c); }
77+
inline _LIBCPP_HIDE_FROM_ABI int iswupper_l(wint_t __c, locale_t) { return ::iswupper(__c); }
8278

83-
inline _LIBCPP_HIDE_FROM_ABI_C int iswxdigit_l(wint_t __c, locale_t) { return ::iswxdigit(__c); }
79+
inline _LIBCPP_HIDE_FROM_ABI int iswxdigit_l(wint_t __c, locale_t) { return ::iswxdigit(__c); }
8480

85-
inline _LIBCPP_HIDE_FROM_ABI_C wint_t towupper_l(wint_t __c, locale_t) { return ::towupper(__c); }
81+
inline _LIBCPP_HIDE_FROM_ABI wint_t towupper_l(wint_t __c, locale_t) { return ::towupper(__c); }
8682

87-
inline _LIBCPP_HIDE_FROM_ABI_C wint_t towlower_l(wint_t __c, locale_t) { return ::towlower(__c); }
83+
inline _LIBCPP_HIDE_FROM_ABI wint_t towlower_l(wint_t __c, locale_t) { return ::towlower(__c); }
8884
#endif // _LIBCPP_HAS_NO_WIDE_CHARACTERS
8985

90-
inline _LIBCPP_HIDE_FROM_ABI_C int strcoll_l(const char* __s1, const char* __s2, locale_t) {
86+
inline _LIBCPP_HIDE_FROM_ABI int strcoll_l(const char* __s1, const char* __s2, locale_t) {
9187
return ::strcoll(__s1, __s2);
9288
}
9389

94-
inline _LIBCPP_HIDE_FROM_ABI_C size_t strxfrm_l(char* __dest, const char* __src, size_t __n, locale_t) {
90+
inline _LIBCPP_HIDE_FROM_ABI size_t strxfrm_l(char* __dest, const char* __src, size_t __n, locale_t) {
9591
return ::strxfrm(__dest, __src, __n);
9692
}
9793

98-
inline _LIBCPP_HIDE_FROM_ABI_C size_t
94+
inline _LIBCPP_HIDE_FROM_ABI size_t
9995
strftime_l(char* __s, size_t __max, const char* __format, const struct tm* __tm, locale_t) {
10096
return ::strftime(__s, __max, __format, __tm);
10197
}
10298

10399
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
104-
inline _LIBCPP_HIDE_FROM_ABI_C int wcscoll_l(const wchar_t* __ws1, const wchar_t* __ws2, locale_t) {
100+
inline _LIBCPP_HIDE_FROM_ABI int wcscoll_l(const wchar_t* __ws1, const wchar_t* __ws2, locale_t) {
105101
return ::wcscoll(__ws1, __ws2);
106102
}
107103

108-
inline _LIBCPP_HIDE_FROM_ABI_C size_t wcsxfrm_l(wchar_t* __dest, const wchar_t* __src, size_t __n, locale_t) {
104+
inline _LIBCPP_HIDE_FROM_ABI size_t wcsxfrm_l(wchar_t* __dest, const wchar_t* __src, size_t __n, locale_t) {
109105
return ::wcsxfrm(__dest, __src, __n);
110106
}
111107
#endif // _LIBCPP_HAS_NO_WIDE_CHARACTERS
112108

113-
#ifdef __cplusplus
114-
}
115-
#endif
116-
117109
#endif // _LIBCPP___SUPPORT_XLOCALE_POSIX_L_FALLBACK_H

libcxx/include/__support/xlocale/__strtonum_fallback.h

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,48 +22,40 @@
2222
# include <wchar.h>
2323
#endif
2424

25-
#ifdef __cplusplus
26-
extern "C" {
27-
#endif
28-
29-
inline _LIBCPP_HIDE_FROM_ABI_C float strtof_l(const char* __nptr, char** __endptr, locale_t) {
25+
inline _LIBCPP_HIDE_FROM_ABI float strtof_l(const char* __nptr, char** __endptr, locale_t) {
3026
return ::strtof(__nptr, __endptr);
3127
}
3228

33-
inline _LIBCPP_HIDE_FROM_ABI_C double strtod_l(const char* __nptr, char** __endptr, locale_t) {
29+
inline _LIBCPP_HIDE_FROM_ABI double strtod_l(const char* __nptr, char** __endptr, locale_t) {
3430
return ::strtod(__nptr, __endptr);
3531
}
3632

37-
inline _LIBCPP_HIDE_FROM_ABI_C long double strtold_l(const char* __nptr, char** __endptr, locale_t) {
33+
inline _LIBCPP_HIDE_FROM_ABI long double strtold_l(const char* __nptr, char** __endptr, locale_t) {
3834
return ::strtold(__nptr, __endptr);
3935
}
4036

41-
inline _LIBCPP_HIDE_FROM_ABI_C long long strtoll_l(const char* __nptr, char** __endptr, int __base, locale_t) {
37+
inline _LIBCPP_HIDE_FROM_ABI long long strtoll_l(const char* __nptr, char** __endptr, int __base, locale_t) {
4238
return ::strtoll(__nptr, __endptr, __base);
4339
}
4440

45-
inline _LIBCPP_HIDE_FROM_ABI_C unsigned long long
41+
inline _LIBCPP_HIDE_FROM_ABI unsigned long long
4642
strtoull_l(const char* __nptr, char** __endptr, int __base, locale_t) {
4743
return ::strtoull(__nptr, __endptr, __base);
4844
}
4945

5046
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
51-
inline _LIBCPP_HIDE_FROM_ABI_C long long wcstoll_l(const wchar_t* __nptr, wchar_t** __endptr, int __base, locale_t) {
47+
inline _LIBCPP_HIDE_FROM_ABI long long wcstoll_l(const wchar_t* __nptr, wchar_t** __endptr, int __base, locale_t) {
5248
return ::wcstoll(__nptr, __endptr, __base);
5349
}
5450

55-
inline _LIBCPP_HIDE_FROM_ABI_C unsigned long long
51+
inline _LIBCPP_HIDE_FROM_ABI unsigned long long
5652
wcstoull_l(const wchar_t* __nptr, wchar_t** __endptr, int __base, locale_t) {
5753
return ::wcstoull(__nptr, __endptr, __base);
5854
}
5955

60-
inline _LIBCPP_HIDE_FROM_ABI_C long double wcstold_l(const wchar_t* __nptr, wchar_t** __endptr, locale_t) {
56+
inline _LIBCPP_HIDE_FROM_ABI long double wcstold_l(const wchar_t* __nptr, wchar_t** __endptr, locale_t) {
6157
return ::wcstold(__nptr, __endptr);
6258
}
6359
#endif // _LIBCPP_HAS_NO_WIDE_CHARACTERS
6460

65-
#ifdef __cplusplus
66-
}
67-
#endif
68-
6961
#endif // _LIBCPP___SUPPORT_XLOCALE_STRTONUM_FALLBACK_H

0 commit comments

Comments
 (0)