Node: INTGLOB, Next: LEX, Previous: EXPIMP, Up: Diagnostics
Same name `intrinsic' given ...
The name intrinsic is used for a global entity (a common block or a program unit) in one program unit and implicitly used as an intrinsic in another program unit.
This diagnostic is designed to catch cases where a program
intends to use a name entirely as a global name, but
recognizes the name as an intrinsic in the program unit that
references the name, a situation that would likely produce
INTEGER FUNCTION TIME() ... END ... PROGRAM SAMP INTEGER TIME PRINT *, 'Time is ', TIME() END
The above example defines a program unit named
the reference to
TIME in the main program unit
is normally treated by
g77 as a reference to the intrinsic
TIME() (unless a command-line option that prevents such
treatment has been specified).
As a result, the program
SAMP will not
TIME function in the same source file.
libU77 procedures as
intrinsics, and since some existing code uses the same names
for its own procedures as used by some
procedures, this situation is expected to arise often enough
to make this sort of warning worth issuing.
After verifying that the program unit making implicit use
of the intrinsic is indeed written expecting the intrinsic,
statement to that
program unit to prevent this warning.
Or, if you believe the program unit is designed to invoke the
program-defined procedure instead of the intrinsic (as
g77), add an
statement to the program unit that references the name to
prevent this warning.
This and related warnings are disabled by using
-Wno-globals option when compiling.
Note that this warning is not issued for standard intrinsics.
Standard intrinsics include those described in the FORTRAN 77
standard and, if
-ff90 is specified, those described
in the Fortran 90 standard.
Such intrinsics are not as likely to be confused with user
procedures as intrinsics provided as extensions to the