[PATCH] Add mask values for the default rune table.

Dan Albert danalbert at google.com
Tue Mar 10 13:50:43 PDT 2015


The `#else` case (waaaaaaay down at the bottom) already does this... my mistake.

> It was my belief that the underlying OS/C library would provide these defines.

>  My goal was to get the same results as if you were calling islower, etc in the C library.

> 

> Is that not true for Android, etc?


For Android and newlib the problem is that the mask of the table isn't wide enough, so we run in to cases where we don't have `m & n == 0` for any `m` and `n` in the `ctype_base` masks. `_CTYPE_R`, for example, is `_CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_D | _CTYPE_B`, rather than just `1 << 1`.

For those implementations that have this issue, we can just fall through to the `#else` case and use the defaults.

jroelofs: you should submit that test case to keep us honest. I think we already have some tests that do that, but they're in tests that require more locale support (any) than some platforms (bionic, newlib) provide, so they don't get run.


REPOSITORY
  rL LLVM

http://reviews.llvm.org/D8129

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the cfe-commits mailing list