https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38354
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Adam Warner from comment #4) > Why can a compile-time array of 32-bit function pointers (compatible with > the non-large code model) be compiled using g++ but not gcc? The C standard is much more restrictive about what is allowed in constant initializers than the C++ standard. > Permitting this code to compile when the -fpermissive flag is supplied seems > reasonable: "-fpermissive: Downgrade some diagnostics about nonconformant > code from errors to warnings. Thus, using -fpermissive allows some > nonconforming code to compile." But as the compiler tells you, that option is only valid for the C++ front-end.