https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109641
--- Comment #5 from Adelson Oliveira <adelson.oliveira at gmail dot com> --- (In reply to anlauf from comment #2) > Replacing the first argument of > > FUNCTION MULTc4(v,m) > REAL, INTENT(IN) :: v(:) > > by > > complex, INTENT(IN) :: v(:) > > makes the code compile, but should not. And the fortran-dump appears to > explain why: we prematurely convert the first argument in the expression > > r=v*m > > from real to complex, so we resolve to the wrong specific. > This also explains why real*real does not exhibit this problem. Interesting! But I wonder why simply changing the intrinsic operator (*) to something different, say (.MULT.) there is no error at all no matter one uses complex or real.