The GNAT Pro User's Guide reads: `-fno-inline' Suppresses all back-end inlining, even if other optimization or inlining switches are set. This includes suppression of inlining that results from the use of the pragma Inline_Always. Any occurrences of pragma Inline or Inline_Always are ignored, and `-gnatn' and `-gnatN' have no effect if this switch is present.
This is confusing because both pragma Inline_Always and -gnatN are front-end inlining. -fno-inline simply suppresses all inlining. Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-03 Eric Botcazou <ebotca...@adacore.com> * gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline suppresses all inlining.
Index: gnat_ugn.texi =================================================================== --- gnat_ugn.texi (revision 177236) +++ gnat_ugn.texi (working copy) @@ -3961,10 +3961,9 @@ @item -fno-inline @cindex @option{-fno-inline} (@command{gcc}) -Suppresses all back-end inlining, even if other optimization or inlining -switches are set. -This includes suppression of inlining that results -from the use of the pragma @code{Inline_Always}. +Suppresses all inlining, even if other optimization or inlining +switches are set. This includes suppression of inlining that +results from the use of the pragma @code{Inline_Always}. Any occurrences of pragma @code{Inline} or @code{Inline_Always} are ignored, and @option{-gnatn} and @option{-gnatN} have no effect if this switch is present.