https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96986
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic Priority|P4 |P5 --- Comment #4 from anlauf at gcc dot gnu.org --- (In reply to Fritz Reese from comment #3) > The error message blames fun_a() while neither fun_a() nor its containing > subroutine volatile_test() have a VOLATILE dummy argument. Do you think > 15.4.2.2 still applies? The standard has: ! 15.6.2.1 General ! A procedure is defined by the initial SUBROUTINE or FUNCTION statement of a ! subprogram, and each ENTRY statement defines an additional procedure (15.6.2.6). ! 15.6.2.6 ENTRY statement ! An ENTRY statement permits a procedure reference to begin with a particular ! executable statement within the function or subroutine subprogram in which ! the ENTRY statement appears. !... ! If the ENTRY statement is in a subroutine subprogram, an additional subroutine ! is defined by that subprogram. ... So basically I think the error is correct. Nevertheless the error message is probably sub-optimal. Would you prefer it to refer to "volatile_test"? I personally do not use ENTRY in my own code, and I don't know how to properly write an explicit interface for a similar subroutine including its entries. The best solution would be the use of modules, which is what I do. Downgrading to P5 / diagnostic.