OSDN Git Service

2001-01-14 David Billinghurst <David.Billinghurst@riotinto.com>
authortoon <toon@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 14 Jan 2002 23:33:09 +0000 (23:33 +0000)
committertoon <toon@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 14 Jan 2002 23:33:09 +0000 (23:33 +0000)
        PR fortran/3807
        * f/intrin.c (ffeintrin_check_):  Allow for case of intrinsic
        control string have COL-spec an integer > 0.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48854 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/f/ChangeLog
gcc/f/intrin.c

index c151a1f..b3a9d4a 100644 (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>
 
        * g77spec.c (lookup_option): Handle -fversion.
index 393706a..99d849b 100644 (file)
@@ -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)