This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Problem in intrinsic.c?
- From: "François-Xavier Coudert" <fxcoudert at gmail dot com>
- To: "Fortran List" <fortran at gcc dot gnu dot org>
- Date: Fri, 29 Sep 2006 18:35:01 +0200
- Subject: Problem in intrinsic.c?
- Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=SlkUPUxSW4a5Kh8dkdGvt/XSvSUGsZzjFr7v9Ljymb0b1R5bBGuT/zw/QmcpEk20Ous0HAVAtRRyt8dKN1ot2ky4jZ4ShNtvHJ7UxIKJsUe6QxECpzWnRar3qNr32/ZVyHexY9WYM72+MbkoCsqGTwUd57mnyVnrl5yLFLyRvUA=
If I read (actually, read and grep) intrinsic.c correctly, I find that
the list of intrinsics "allowed to be used as actual arguments" is:
abs access achar acos acosh adjustl adjustr aimag aint alarm all
allocated alog alog10 amod anint any asin asinh associated atan atan2
atanh bit_size btest cabs ccos ceiling cexp chdir chmod clog cmplx
command_argument_count complex conjg cos cosh count cpu_time cshift
csin csqrt ctime dabs dacos dacosh dasin dasinh datan datan2 datanh
date_and_time dble dcmplx dconjg dcos dcosh ddim dexp digits dim dimag
dint dlog dlog10 dmod dnint dot_product dprod dsign dsin dsinh dsqrt
dtan dtanh dtime eoshift epsilon etime exit exp exponent fdate fget
fgetc floor flush fnum fput fputc fraction free fstat ftell gerror
getarg get_command get_command_argument getcwd getenv
get_environment_variable getlog gmtime hostnm huge iabs iachar iand
iargc ibclr ibits ibset idate idim idnint ieor index int ior irand
ishft ishftc isign itime kill kind lbound len len_trim link loc log
log10 logical lshift lstat ltime malloc matmul maxexponent maxloc
maxval merge minexponent minloc minval mod mvbits nearest nint not
null pack perror precision present product radix rand random_number
random_seed range rename repeat reshape rrspacing rshift scale scan
secnds second selected_int_kind selected_real_kind set_exponent shape
sign signal sin sinh size sleep spacing spread sqrt srand stat sum
symlnk system system_clock tan tanh tiny transfer transpose trim
ttynam ubound umask unlink unpack verify zabs zcos zexp zlog zsin
zsqrt
That is, all the functions for which the third argument of add_sym_*
is 1. Now, I suspect I'm either mistaken, or this argument hadn't
always been chosen with utmost care (some of these functions actually
are my doing, so please don't feel offended).
Could someone confirm or infirm my analysis? And could someone point
me to the relevant part(s) of the Standard, saying which functions can
be used as arguments?
Thanks,
FX
PS: I'm investigating PR 16580, hence the introspection into intrinsic.c