Shouldn't this just output a diagnostic like everything else? I mean it's a legitimate coding error that someone can make which would not cause a compile error (which is indeed how I found this assertion, I had a header file which inadvertently included itself). // Foo.h #ifndef FOO_H...