Try compiling it with a different compiler. It's possible that there is a very subtle error with your code, and another compiler might be able to tell you more. I recommend trying out Clang, as it has widely been touted for having better error messages, though the most recent versions of GCC are seeking to change this notion.
If it fails on both compilers without a real error message in sight, then you have some of the finest test-code for this bug at your disposal and submitting a bug report about it would be much appreciated by the compiler community.