https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86985
--- Comment #3 from Omar Sandoval <osandov at osandov dot com> --- They are not equivalent in GCC, see https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html. In particular, flexible arrays cannot be the only member in a struct, cannot be a member of a union, cannot be used as a dimension of a multidimensional array, and can have a static initializer with elements; the opposite is true for zero length arrays.