https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90329
--- Comment #40 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I must say I don't like -fbroken-callers option name too much, can we use instead something like -ftail-call-workaround={0,1,2} / -f{,no-}tail-call-workaround where -ftail-call-workaround == -ftail-call-workaround=1 would be the default (for now) and enabled only if resolve_symbol finds FL_PROCEDURE if_source == IFSRC_UNKNOWN symbols (remembered in some gfc_ns member and set on containing procedure, not say containing BLOCK), -fno-tail-call-workaround == -ftail-call-workaround=0 would disable this and -ftail-call-workaround=2 would be enabled no matter whether there are any FL_PROCEDURE IFSRC_UNKNOWN symbols or not?