8484 be "local identifiers" and should be distinct in the "inclusive
8585 scope" -- i.e., not scoped by ` BLOCK ` constructs.
8686 As most (but not all) compilers implement ` BLOCK ` scoping of construct
87- names, so does f18 , with a portability warning.
87+ names, so does Flang , with a portability warning.
8888* 15.6.4 paragraph 2 prohibits an implicitly typed statement function
8989 from sharing the same name as a symbol in its scope's host, if it
9090 has one.
153153 that a call to intrinsic module procedure ` ieee_support_halting ` with
154154 a constant argument has a compile time constant result in `constant
155155 expression` and ` specification expression` contexts. In compilations
156- where this information is not known at compile time, f18 generates code
156+ where this information is not known at compile time, Flang generates code
157157 to determine the absence or presence of this capability at runtime.
158158 A call to ` ieee_support_halting ` in contexts that the standard requires
159159 to be constant will generate a compilation error. ` ieee_support_standard `
366366* The legacy extension intrinsic functions ` IZEXT ` and ` JZEXT `
367367 are supported; ` ZEXT ` has different behavior with various older
368368 compilers, so it is not supported.
369- * f18 doesn't impose a limit on the number of continuation lines
369+ * Flang doesn't impose a limit on the number of continuation lines
370370 allowed for a single statement.
371371* When a type-bound procedure declaration statement has neither interface
372372 nor attributes, the "::" before the bindings is optional, even
553553* Fortran explicitly ignores type declaration statements when they
554554 attempt to type the name of a generic intrinsic function (8.2 p3).
555555 One can declare ` CHARACTER::COS ` and still get a real result
556- from ` COS(3.14159) ` , for example. f18 will complain when a
556+ from ` COS(3.14159) ` , for example. Flang will complain when a
557557 generic intrinsic function's inferred result type does not
558558 match an explicit declaration. This message is a warning.
559559
570570
571571## Standard features that might as well not be
572572
573- * f18 supports designators with constant expressions, properly
573+ * Flang supports designators with constant expressions, properly
574574 constrained, as initial data targets for data pointers in
575575 initializers of variable and component declarations and in
576576 ` DATA ` statements; e.g., ` REAL, POINTER :: P => T(1:10:2) ` .
587587* The standard doesn't explicitly require that a named constant that
588588 appears as part of a complex-literal-constant be a scalar, but
589589 most compilers emit an error when an array appears.
590- f18 supports them with a portability warning.
591- * f18 does not enforce a blanket prohibition against generic
590+ Flang supports them with a portability warning.
591+ * Flang does not enforce a blanket prohibition against generic
592592 interfaces containing a mixture of functions and subroutines.
593593 We allow both to appear, unlike several other Fortran compilers.
594594 This is especially desirable when two generics of the same
655655 treat them as references to implicitly typed local variables, and
656656 load uninitialized values.
657657
658- In f18 , we chose to emit an error message for this case since the standard
658+ In Flang , we chose to emit an error message for this case since the standard
659659 is unclear, the usage is not portable, and the issue can be easily resolved
660660 by adding a declaration.
661661
686686
687687* When a ` DATA ` statement in a ` BLOCK ` construct could be construed as
688688 either initializing a host-associated object or declaring a new local
689- initialized object, f18 interprets the standard's classification of
689+ initialized object, Flang interprets the standard's classification of
690690 a ` DATA ` statement as being a "declaration" rather than a "specification"
691691 construct, and notes that the ` BLOCK ` construct is defined as localizing
692692 names that have specifications in the ` BLOCK ` construct.
@@ -703,7 +703,7 @@ end subroutine
703703 Other Fortran compilers disagree with each other in their interpretations
704704 of this example.
705705 The precedent among the most commonly used compilers
706- agrees with f18 's interpretation: a ` DATA ` statement without any other
706+ agrees with Flang 's interpretation: a ` DATA ` statement without any other
707707 specification of the name refers to the host-associated object.
708708
709709* Many Fortran compilers allow a non-generic procedure to be ` USE ` -associated
@@ -729,7 +729,7 @@ module m2
729729end module
730730```
731731
732- This case elicits a warning from f18 , as it should not be treated
732+ This case elicits a warning from Flang , as it should not be treated
733733 any differently than the same case with the non-generic procedure of
734734 the same name being defined in the same scope rather than being
735735 ` USE ` -associated into it, which is explicitly non-conforming in the
@@ -747,7 +747,7 @@ end module
747747 symbols, much less appear in specification inquiries, and there are
748748 application codes that expect exterior symbols whose names match
749749 components to be visible in a derived-type definition's default initialization
750- expressions, and so f18 follows that precedent.
750+ expressions, and so Flang follows that precedent.
751751
752752* 19.3.1p1 "Within its scope, a local identifier of an entity of class (1)
753753 or class (4) shall not be the same as a global identifier used in that scope..."
@@ -769,17 +769,17 @@ end module
769769 left-hand side for a pointer assignment statement, and we emit a
770770 portability warning when it is not.
771771
772- * F18 allows a ` USE ` statement to reference a module that is defined later
772+ * Flang allows a ` USE ` statement to reference a module that is defined later
773773 in the same compilation unit, so long as mutual dependencies do not form
774774 a cycle.
775775 This feature forestalls any risk of such a ` USE ` statement reading an
776776 obsolete module file from a previous compilation and then overwriting
777777 that file later.
778778
779- * F18 allows ` OPTIONAL ` dummy arguments to interoperable procedures
779+ * Flang allows ` OPTIONAL ` dummy arguments to interoperable procedures
780780 unless they are ` VALUE ` (C865).
781781
782- * F18 processes the ` NAMELIST ` group declarations in a scope after it
782+ * Flang processes the ` NAMELIST ` group declarations in a scope after it
783783 has resolved all of the names in that scope. This means that names
784784 that appear before their local declarations do not resolve to host
785785 associated objects and do not elicit errors about improper redeclarations
@@ -862,11 +862,11 @@ print *, [(j,j=1,10)]
862862
863863* The Fortran standard doesn't mention integer overflow explicitly. In many cases,
864864 however, integer overflow makes programs non-conforming.
865- F18 follows other widely-used Fortran compilers. Specifically, f18 assumes
865+ Flang follows other widely-used Fortran compilers. Specifically, Flang assumes
866866 integer overflow never occurs in address calculations and increment of
867867 do-variable unless the option ` -fwrapv ` is enabled.
868868
869- * Two new ieee_round_type values were added in f18 beyond the four values
869+ * Two new ieee_round_type values were added in Flang beyond the four values
870870 defined in f03 and f08: ieee_away and ieee_other. Contemporary hardware
871871 typically does not have support for these rounding modes;
872872 ieee_support_rounding calls for these values return false.
0 commit comments