aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Billinghurst <David.Billinghurst@riotinto.com>2002-01-14 23:33:09 +0000
committerToon Moene <toon@gcc.gnu.org>2002-01-14 23:33:09 +0000
commit8df962f5d740320bf33d13b934f167d7c2e10931 (patch)
tree59547e02143e8739b5f6f0b85bc4f9a36cf7cbd8 /gcc
parent3bc9ce394561eaa2d4cb16cb0e8ec3afa62bc212 (diff)
downloadgcc-8df962f5d740320bf33d13b934f167d7c2e10931.zip
gcc-8df962f5d740320bf33d13b934f167d7c2e10931.tar.gz
gcc-8df962f5d740320bf33d13b934f167d7c2e10931.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/f/ChangeLog6
-rw-r--r--gcc/f/intrin.c10
2 files changed, 13 insertions, 3 deletions
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index c151a1f..b3a9d4a 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -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>
* g77spec.c (lookup_option): Handle -fversion.
diff --git a/gcc/f/intrin.c b/gcc/f/intrin.c
index 393706a..99d849b 100644
--- a/gcc/f/intrin.c
+++ b/gcc/f/intrin.c
@@ -1,5 +1,5 @@
/* 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.
This file is part of GNU Fortran.
@@ -622,10 +622,11 @@ ffeintrin_check_ (ffeintrinImp imp, ffebldOp op,
{
bool okay = TRUE;
bool have_anynum = FALSE;
+ int arg_count=0;
- for (arg = args;
+ for (arg = args, arg_count=0;
arg != NULL;
- arg = (c[colon + 1] == '*') ? ffebld_trail (arg) : NULL)
+ arg = ffebld_trail (arg), arg_count++ )
{
ffebld a = ffebld_head (arg);
ffeinfo i;
@@ -635,6 +636,9 @@ ffeintrin_check_ (ffeintrinImp imp, ffebldOp op,
continue;
i = ffebld_info (a);
+ if ( c[colon+1] != '*' && (c[colon+1]-'0') != arg_count )
+ continue;
+
anynum = (ffeinfo_basictype (i) == FFEINFO_basictypeHOLLERITH)
|| (ffeinfo_basictype (i) == FFEINFO_basictypeTYPELESS);
if (anynum)