diff options
-rw-r--r-- | libcxx/test/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.pass.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libcxx/test/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.pass.cpp b/libcxx/test/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.pass.cpp index fe420a5a1c9..114bba94c3f 100644 --- a/libcxx/test/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.pass.cpp +++ b/libcxx/test/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.pass.cpp @@ -63,8 +63,14 @@ int main() std::ostream os(&sb); const void* n = 0; os << n; - assert(sb.str() == "0x0" || sb.str() == "(nil)"); assert(os.good()); + // %p is implementation defined. + // On some platforms (Windows), it's a hex number without + // any leading 0x like prefix. + // In that format, we assume a null pointer will yield 2 '0' hex digits + // for each 8 bits of address space. + assert(sb.str() == "0x0" || sb.str() == "(nil)" || + sb.str() == std::string(sizeof(void*)*2,'0')); } { testbuf<char> sb; |