From 8df962f5d740320bf33d13b934f167d7c2e10931 Mon Sep 17 00:00:00 2001 From: David Billinghurst Date: Mon, 14 Jan 2002 23:33:09 +0000 Subject: [PATCH] re PR fortran/3807 (Function BESJN(integer,double) problems) 2001-01-14 David Billinghurst PR fortran/3807 * f/intrin.c (ffeintrin_check_): Allow for case of intrinsic control string have COL-spec an integer > 0. From-SVN: r48854 --- gcc/f/ChangeLog | 6 ++++++ gcc/f/intrin.c | 10 +++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog index c151a1f404a..b3a9d4acb32 100644 --- a/gcc/f/ChangeLog +++ b/gcc/f/ChangeLog @@ -1,3 +1,9 @@ +2001-01-14 David Billinghurst + + 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 * g77spec.c (lookup_option): Handle -fversion. diff --git a/gcc/f/intrin.c b/gcc/f/intrin.c index 393706aa331..99d849b7271 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) -- 2.30.2