It currently fails with this assertion: isctype.pass.cpp:30: int main(): Assertion `!t.isctype('-', t.lookup_classname(s.begin(), s.end()))' failed. this test passed in the previous release.
Is this the only failure in that test? (i.e, if you comment out that assert and re-run it, does it pass) I suspect that ctype_base (defined in __locale) is not getting built correctly for your system; there's a set of #ifdefs for different systems there, and none for mips.
The 'assert(!t.isctype('@', t.lookup_classname(s.begin(), s.end())));' on line 31 and then the wchar_t version of the same two on lines 159 and 160 also fail. I've only had a quick look at ctype_base in __locale so far but my machine should be covered by the __GLIBC__. I'll keep digging.
It looks like the result of lookup_classname() is wrong. If I understand this correctly, it should return a bitmask to test against the values in classic_table. I think this class should be digit|alpha|upper|lower but some how 'graph' has crept in too. This then matches the punct|graph|print used for the '-'.
I'm fairly certain the problem is __regex_word. It's trying to use an unoccupied bit (0x80) but this bit is only unoccupied on little endian machines. On big-endian the bytes are reversed in the enum containing _ISgraph/_ISprint/etc. (by _ISbit() in /usr/include/ctype.h) so __regex_word and _ISgraph happen to have the same value. It seems that __regex_word needs to be 0x8000 on a big-endian machine. It's late so I'm leaving a build running overnight to confirm. I should know if this is the problem in the morning.
I can confirm that this was the problem. I've posted a patch at http://reviews.llvm.org/D17132
In r260527, I added some tests to catch this if it happens again. Can you please update to that version and run the tests, with and without your patch?
The tests you added in r260527 pass even without my patch. This is because the table is shared between C and C++ and we're colliding with the _ISgraph bit used by C rather than any of the C++ related bits.
Committed an '#ifdef __mips__' version in r261088 and merged it in r261097