On 2019-06-11 11:22, Achim Gratz wrote: > Keith Thompson writes: >> On Windows targets (including Cygwin and MinGW), the "-fms-extensions" >> option is enabled by default. This option enables certain Microsoft >> extensions -- and apparently inhibits any diagnostics for implicit int. >> >> It is unfortunate, and arguably a bug, that this means that >> "g++ -std=c++11 -pedantic" fails to diagnose implicit int errors. >> I'm not sure whether this is a bug in gcc or in the way Windows >> versions of gcc are built. > > In the case of Cygwin it is quite certainly a bug as Cygwin is not a > Windows target.
Seems like ms-extensions is enabled if the target is x86 with MS ABI, or plan9-extensions is enabled. The former allows use of struct/union member names the same as typedef names, and the latter allows passing pointers to structs/unions and typedefs with anonymous fields, and referring to anonymous fields declared using typedefs. Cygwin may require these extensions to handle Windows structure definitions in a Windows compatible way, to allow compilation of the Windows C and C++ modules under winsup. That it enables C++ implicit int is unfortunate. -- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada This email may be disturbing to some readers as it contains too much technical detail. Reader discretion is advised. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple