[PATCH] D55746: [libcxx] [test] [re.traits] Correct expected values for invalid UTF-8

Michał Górny via Phabricator reviews at reviews.llvm.org
Mon Dec 17 10:25:45 PST 2018

mgorny added a comment.

In D55746#1333210 <https://reviews.llvm.org/D55746#1333210>, @mclow.lists wrote:

> [ It's also possible that different implementations of the locales (part of the C library/OS) are returning different values. If that turns out to be the case, then we should document those differences and move on. ]

I think that's the case. I've written a simple test program to check it. Could you try it on Darwin?

  #include <ctype.h>
  #include <locale.h>
  #include <stdio.h>
  int main() {
  	unsigned char c = 0xDA, o;
  	/* verify with C locale */
  	setlocale(LC_ALL, "C");
  	o = tolower(c);
  	printf("C locale: %02x (%c) -> %02x (%c)\n", c, c, o, o);
  	/* ISO-8859-1 */
  	setlocale(LC_ALL, "en_US.ISO-8859-1");
  	o = tolower(c);
  	printf("iso-8859-1 locale: %02x (%c) -> %02x (%c)\n", c, c, o, o);
  	/* UTF-8 locale */
  	setlocale(LC_ALL, "en_US.UTF-8");
  	o = tolower(c);
  	printf("utf-8 locale: %02x (%c) -> %02x (%c)\n", c, c, o, o);



More information about the libcxx-commits mailing list