https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113760
--- Comment #12 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Thank for your comment. In the end I went with -std=c++03 -pedantic-errors -Wextra-semi -> warnings -std=c++03 -pedantic -Wextra-semi -> warnings (not pedwarn) based on the principle that a more specific option overrides a more general option. This is also what clang++ does. Granted, -Wvla in C doesn't behave like that...