http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54897
--- Comment #2 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-10-11 09:48:39 UTC --- See if changing the test to the following (unconditional) works for you: int test[sizeof(std::bitset<__SIZE_MAX__>) != 1 ? 1 : -1]; It passes on x86_64-linux, -m32 and -m64. In case, you are welcome to commit the change. I think it does still test for the original issue on the affected targets. Anyway, it was only a quick try of mine at adapting the testcase provided by submitter, the actual issue was just a thinko, IMO we shouldn't spend too much time on this.