Skip to content

Commit b66919b

Browse files
committed
[libc++][Android] Restrict use of mblen/towctrans/wctrans
These functions weren't added until API 26 (Android 8.0), but libc++ is supported for API 21 and up. These APIs are undeclared as of r.android.com/3216959.
1 parent 49f90e7 commit b66919b

File tree

4 files changed

+12
-0
lines changed

4 files changed

+12
-0
lines changed

libcxx/test/std/depr/depr.c.headers/stdlib_h.pass.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,10 @@ int main(int, char**) {
141141
wchar_t* pw = 0;
142142
const wchar_t* pwc = 0;
143143
char* pc = 0;
144+
// mblen was added in Android API 26.
145+
#if !defined(__ANDROID__) || __ANDROID_API__ >= 26
144146
ASSERT_SAME_TYPE(int, decltype(mblen("",0)));
147+
#endif
145148
ASSERT_SAME_TYPE(int, decltype(mbtowc(pw,"",0)));
146149
ASSERT_SAME_TYPE(int, decltype(wctomb(pc,L' ')));
147150
ASSERT_SAME_TYPE(size_t, decltype(mbstowcs(pw,"",0)));

libcxx/test/std/depr/depr.c.headers/wctype_h.compile.pass.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,5 +109,8 @@ ASSERT_SAME_TYPE(int, decltype(iswctype(w, wct)));
109109
ASSERT_SAME_TYPE(wctype_t, decltype(wctype("")));
110110
ASSERT_SAME_TYPE(wint_t, decltype(towlower(w)));
111111
ASSERT_SAME_TYPE(wint_t, decltype(towupper(w)));
112+
// towctrans and wctrans were added in Android API 26.
113+
#if !defined(__ANDROID__) || __ANDROID_API__ >= 26
112114
ASSERT_SAME_TYPE(wint_t, decltype(towctrans(w, wctr)));
113115
ASSERT_SAME_TYPE(wctrans_t, decltype(wctrans("")));
116+
#endif

libcxx/test/std/language.support/support.runtime/cstdlib.pass.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,10 @@ int main(int, char**)
141141
wchar_t* pw = 0;
142142
const wchar_t* pwc = 0;
143143
char* pc = 0;
144+
// mblen was added in Android API 26.
145+
#if !defined(__ANDROID__) || __ANDROID_API__ >= 26
144146
static_assert((std::is_same<decltype(std::mblen("",0)), int>::value), "");
147+
#endif
145148
static_assert((std::is_same<decltype(std::mbtowc(pw,"",0)), int>::value), "");
146149
static_assert((std::is_same<decltype(std::wctomb(pc,L' ')), int>::value), "");
147150
static_assert((std::is_same<decltype(std::mbstowcs(pw,"",0)), std::size_t>::value), "");

libcxx/test/std/strings/c.strings/cwctype.pass.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,11 @@ int main(int, char**) {
111111
ASSERT_SAME_TYPE(std::wctype_t, decltype(std::wctype("")));
112112
ASSERT_SAME_TYPE(std::wint_t, decltype(std::towlower(w)));
113113
ASSERT_SAME_TYPE(std::wint_t, decltype(std::towupper(w)));
114+
// towctrans and wctrans were added in Android API 26.
115+
#if !defined(__ANDROID__) || __ANDROID_API__ >= 26
114116
ASSERT_SAME_TYPE(std::wint_t, decltype(std::towctrans(w, std::wctrans_t())));
115117
ASSERT_SAME_TYPE(std::wctrans_t, decltype(std::wctrans("")));
118+
#endif
116119

117120
return 0;
118121
}

0 commit comments

Comments
 (0)