https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80701
Thomas Koenig <tkoenig at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |NEW
CC| |tkoenig at gcc dot gnu.org
Component|fortran |middle-end
Blocks| |46476
Summary|gfortran ignores dead code |Option for generating link
|after return statement |symbol for functions
| |removed by DCE
Severity|normal |enhancement
--- Comment #5 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
(In reply to Gustavo Hime from comment #4)
> However, since the object code does not contain the dead part, and hence no
> symbols are resolved at link-time, many of the potential problems remain,
> i.e., the code will still compile and link in spite of there being a
> function call to a symbol that isn't defined.
This one really depends on personal preference.
Personally, I like adding statemens like
parameter, logical :: debug = .false.
...
if (debug) then
call some_routine_for_debugging_stuff
end if
Removing dead code including function calls is something that is done in the
middle-end. Here is an equivalent C test case:
$ cat undef.c
void foo(void);
int main()
{
if (0)
foo();
return 0;
}
$ gcc -Wall -Wextra undef.c
$
I don't think we will get agreement to turn on such a warning
by default. However, a request for an option that warns in such
a case is justified.
Confirming as enhancement request.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46476
[Bug 46476] Missing Warning about unreachable code after return