https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101446
--- Comment #7 from İsmail Dönmez <ismail at i10z dot com> --- Well, it's even more confusing, grepping through glibc build log: ../include/stdlib.h:297:8: warning: ISO C forbids zero-size array 'msg' [-Wpedantic] 297 | char msg[0]; | ^~~ ../inet/netinet/ip6.h:92:21: warning: ISO C forbids zero-size array 'ip6r0_addr' [-Wpedantic] 92 | struct in6_addr ip6r0_addr[0]; | ^~~~~~~~~~ So even the zero-size array warning behaves differently.