re PR fortran/3807 (Function BESJN(integer,double) problems)

2001-01-14  David Billinghurst <David.Billinghurst@riotinto.com>

        PR fortran/3807
        * f/intrin.c (ffeintrin_check_):  Allow for case of intrinsic
        control string have COL-spec an integer > 0.

From-SVN: r48854
This commit is contained in:
David Billinghurst 2002-01-14 23:33:09 +00:00 committed by Toon Moene
parent 3bc9ce3945
commit 8df962f5d7
2 changed files with 13 additions and 3 deletions

View file

@ -1,3 +1,9 @@
2001-01-14 David Billinghurst <David.Billinghurst@riotinto.com>
PR fortran/3807
* f/intrin.c (ffeintrin_check_): Allow for case of intrinsic
control string have COL-spec an integer > 0.
2002-01-08 Joseph S. Myers <jsm28@cam.ac.uk> 2002-01-08 Joseph S. Myers <jsm28@cam.ac.uk>
* g77spec.c (lookup_option): Handle -fversion. * g77spec.c (lookup_option): Handle -fversion.

View file

@ -1,5 +1,5 @@
/* intrin.c -- Recognize references to intrinsics /* intrin.c -- Recognize references to intrinsics
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. Copyright (C) 1995, 1996, 1997, 1998, 2002 Free Software Foundation, Inc.
Contributed by James Craig Burley. Contributed by James Craig Burley.
This file is part of GNU Fortran. This file is part of GNU Fortran.
@ -622,10 +622,11 @@ ffeintrin_check_ (ffeintrinImp imp, ffebldOp op,
{ {
bool okay = TRUE; bool okay = TRUE;
bool have_anynum = FALSE; bool have_anynum = FALSE;
int arg_count=0;
for (arg = args; for (arg = args, arg_count=0;
arg != NULL; arg != NULL;
arg = (c[colon + 1] == '*') ? ffebld_trail (arg) : NULL) arg = ffebld_trail (arg), arg_count++ )
{ {
ffebld a = ffebld_head (arg); ffebld a = ffebld_head (arg);
ffeinfo i; ffeinfo i;
@ -635,6 +636,9 @@ ffeintrin_check_ (ffeintrinImp imp, ffebldOp op,
continue; continue;
i = ffebld_info (a); i = ffebld_info (a);
if ( c[colon+1] != '*' && (c[colon+1]-'0') != arg_count )
continue;
anynum = (ffeinfo_basictype (i) == FFEINFO_basictypeHOLLERITH) anynum = (ffeinfo_basictype (i) == FFEINFO_basictypeHOLLERITH)
|| (ffeinfo_basictype (i) == FFEINFO_basictypeTYPELESS); || (ffeinfo_basictype (i) == FFEINFO_basictypeTYPELESS);
if (anynum) if (anynum)