This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Is the included code standard conforming?


Unless I am quite mistaken, it is essentially impossible for a compiler to generate correct code in this case, at least if the program and subroutines are compiled separately. The main program does not have an explicit interface for test_r and test_d, and so the compiler has no way of resolving the generic to a specific prior to passing it. However, when test_r and test_d are compiled, the compiler has no way of knowing whether or not the passed function needs to be resolved from a generic to a specific (nor, most likely, any mechanism for resolving it).

Well, there are a lot of a intrinsic functions for which one specific name (usually for the default real kind) is identical to the generic name. (And I should know, because I've just changed the whole list in intrinsic.c to be correct wrt the Standard a few minutes ago ;-)


Examples include: abs, acos, aimag, aint, anint, asin, atan, atan2, conjg, cos, cosh, dim, dprod, exp, index, len, mod, nint, sign, sin, sinh, sqrt, tan, tanh. The fact that this list does not contain log is a mistery to me (as are the reasons behind the complexity and oddities in this whole list). Richard Maine would probably have some interesting insight into this, if he reads this mail and has time to answer.


So, I guess we could (as a compiler extension) decide that LOG is also a specific name for LOG, with a default real as argument.


FX


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]