[PATCH] D17132: [libcxx] Fix definition of regex_traits::__regex_word on big-endian glibc systems

Daniel Sanders via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 11 09:48:47 PST 2016


dsanders added a comment.

In http://reviews.llvm.org/D17132#349993, @mclow.lists wrote:

> In r260527, I added some tests to catch this if it happens again.
>
> If those tests fail w/o this patch and succeed with, then I'm happy with applying it.


The tests in r260527, don't fail without this patch because it doesn't check 'graph'. It also doesn't fail when I add it. The reason for this is that std::ctype_base::graph isn't the same as _ISgraph:

  std::regex_traits<char>::__regex_word = 128
  std::ctype_base::graph = 1036
  _ISgraph = 128

ctype_base is defining graph by combining alnum and punct instead of using the _IS* macro like the other bits.

I'm not sure where it's getting the definition of classic_table. Presumably it's coming from glibc because adding a #error next to the optional one in libcxx doesn't cause build failures.


http://reviews.llvm.org/D17132





More information about the cfe-commits mailing list