[PATCH] [libcxx] Get categories.numeric and facet.numpunct localization tests passing on linux

Dan Albert danalbert at google.com
Thu Aug 21 11:06:05 PDT 2014


================
Comment at: test/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp:10722
@@ -10721,1 +10721,3 @@
     const my_facet f(1);
+
+#if !defined(__GLIBC__)
----------------
Marshall Clow wrote:
> Are these values mandated by a standard somewhere - or are they just "implementation defined"?
> 
> 
I had previously misread this part of the diff. This looks wrong to me now that I look closer (and with all the context). Specifically, [ul]nan4. That can't be right.

================
Comment at: test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp:58
@@ +57,3 @@
+        // GLIBC uses ' ' as the thousands_sep. That seems to be inline with
+        // http://docs.oracle.com/cd/E19455-01/806-0169/overview-9/index.html
+#       if !defined(__GLIBC__)
----------------
Interesting. According to that doc (and a bit of Googling), Mac's implementation is actually wrong here. I've found information claiming that the correct thousands separator for fr_FR.UTF-8 would be either '.', ' ', or, perhaps most accurately, '\u2009' (a thin space). Certainly not ',' though. My vote is that we lose the #ifdefs in this test and mark xfail for Mac.

http://reviews.llvm.org/D4997






More information about the cfe-commits mailing list