https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85182
--- Comment #1 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- This is how static assertions are defined in C11, not a bug in GCC: it's a constraint violation if the constant expression compares equal to 0, regardless of the context in which the declaration appears (thus, a constraint violation in a function that is never called, for example).