5.2.15 VOLATILE statement R548 volatile-stmt is VOLATILE [ :: ] object-name-list The VOLATILE statement specifies the VOLATILE attribute (5.1.2.16) for a list of objects.
5.1.2.16 VOLATILE attribute The VOLATILE attribute specifies that an object may be referenced, defined, or become undefined, by means not specified by the program. An object may have the VOLATILE attribute in a particular scoping unit without necessarily having it in other scoping units. If an object has the VOLATILE attribute, then all of its subobjects also have the VOLATILE attribute. NOTE 5.21 The Fortran processor should use the most recent definition of a volatile object when a value is required. Likewise, it should make the most recent Fortran definition available. It is the programmer's responsibility to manage the interactions with the non-Fortran processes. A pointer with the VOLATILE attribute may additionally have its association status and array bounds changed by means not specified by the program. NOTE 5.22 If the target of a pointer is referenced, defined, or becomes undefined, by means not specified by the program, while the pointer is associated with the target, then the pointer shall have the VOLATILE attribute. Usually a pointer should have the VOLATILE attribute if its target has the VOLATILE attribute. Similarly, all members of an EQUIVALENCE group should have the VOLATILE attribute if one member has the VOLATILE attribute. An allocatable object with the VOLATILE attribute may additionally have its allocation status, dynamic type and type parameters, and array bounds changed by means not specified by the program. -- Summary: VOLATILE attribute and statement Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: fxcoudert at gcc dot gnu dot org OtherBugsDependingO 20585 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29601