On 5/14/23 1:28 AM, Po Lu wrote: >> You may feel free to take an exact GCC release (source or binary), >> analyze it, reverse-engineer it, or verify that it does what you want >> it to do, and then trust that those undefined and undocumented >> behaviors are ***benevolent***, but that doesn't cause it to be >> defined and documented, and your trust will, if you are wise, depend >> on you pinning an exact source code commit of the compiler. Do not >> depend on bugfix releases of GCC to preserve your undocumented >> semantics. They may or they may not, but if they don't, it's not a GCC >> bug, because it is ***undocumented***. > > GCC does not implement its documentation. The documentation is supposed > to describe (_not_ specify) how GCC behaves, and when the documentation > is wrong or contains omissions, the documentation will have to be fixed. > Not the compiler itself. > > And it's not just GCC. Almost all programs work this way.
But perhaps we can solve this argument. Please submit a bug report at https://gcc.gnu.org/bugzilla/ to report that the documentation is wrong or contains omissions, and has to be fixed. Point out that the C Extensions page omits the documentation on implicit function declarations and implicit ints. Consider including a patch that updates https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html to mention them as well. If and when this page is updated to document that the compiler's behavior with these features constitutes a C Extension, then I will withdraw every comment I have made in this thread. -- Eli Schwartz