Hi Janus, Janus Weil wrote:
I have found a fix that is rather trivial in the sense that it's a one-liner.
I think it is the proper fix.
However, it may not be as trivial conceptually (in particular I'm not 100% sure what caused this regression in the first place
I think it is the combination of having "static" noninternal procedures (which is a new 4.8 feature) combined with the middle-end assumption that the FE marks procedures as TREE_USED. (The ME does mark them as TREE_USED, but too late.)
(The other question is why the diagnostic doesn't work for internal procedures - or for GNU C's nested function. I think also for module variables such a diagnostic would be useful. However, both are just missed diagnostics and not diagnostic-output regressions.)
Anyway, it regtests cleanly and fixes the problem as advertised. Ok for trunk?
Yes. Thanks for the patch. Tobias
2012-10-19 Janus Weil <ja...@gcc.gnu.org> PR fortran/54224 * trans-expr.c (conv_function_val): Set TREE_USED. 2012-10-19 Janus Weil <ja...@gcc.gnu.org> PR fortran/54224 * gfortran.dg/warn_unused_function.f90: New.