GCC Bugzilla – Bug 51019
unclear documentation on -fomit-frame-pointer default for -Os and different platforms
Last modified: 2012-01-13 06:55:22 UTC
The texinfo documentation for GCC 4.6.2 says:
Starting with GCC version 4.6, the default setting (when not
optimizing for size) for 32-bit Linux x86 and 32-bit Darwin x86
targets has been changed to `-fomit-frame-pointer'. The default
can be reverted to `-fno-omit-frame-pointer' by configuring GCC
with the `--enable-frame-pointer' configure option.
Enabled at levels `-O', `-O2', `-O3', `-Os'.
The "when not optimizing for size" comment feels contradictory to having "-Os" listed on the "Enabled at levels" line. Also, it is not clear what the default is on other than "32-bit Linux x86 and 32-bit Darwin x86". In practice, I observe the following behavior with GCC 4.6.2: on Linux/x86_64, -fomit-frame-pointer is the default at both -O2 and -Os (I did not test others); on Linux/i386, it is the default at -O2, but not at -Os. This needs to be documented more clearly.
Confirmed. Related to bug 13822.