diff --git a/libcxx/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp b/libcxx/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp --- a/libcxx/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp +++ b/libcxx/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp @@ -39,17 +39,19 @@ int main(int, char**) { using namespace fs; - using CharT = wchar_t; + using CharT = char32_t; using Traits = std::char_traits; using Alloc = malloc_allocator; using Str = std::basic_string; - const wchar_t* expect = longString; + const CharT* expect = longString; const path p((const char*)longString); { - DisableAllocationGuard g; + // On Windows, charset conversions cause allocations outside of the + // provided allocator. + TEST_NOT_WIN32(DisableAllocationGuard g); Alloc a; Alloc::disable_default_constructor = true; - Str s = p.generic_string(a); + Str s = p.generic_string(a); assert(s == expect); assert(Alloc::alloc_count > 0); assert(Alloc::outstanding_alloc() == 1);