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/



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to