You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[flang] Catch calls to impure intrinsics from PURE subprograms
The code in expression semantics that catches a call to an impure
procedure in a PURE context misses calls to impure intrinsics,
since their designators have a SpecificIntrinsic rather than a
Symbol. Replace the current check with a new one that uses the
characteristics of the called procedure, which works for both
intrinsic and non-intrinsic cases.
Testing this change revealed that an explicit INTRINSIC statement
wasn't doing the right thing for extension "dual" intrinsics that
can be called as either a function or as a subroutine; the use of
an INTRINSIC statement would disallow its use as a subroutine.
I've fixed that here as well.
Fixes#157124.
0 commit comments