]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/59599 (Compiler internal error on intrinsic ichar)
authorMikael Morin <mikael@gcc.gnu.org>
Sat, 15 Feb 2014 11:48:41 +0000 (11:48 +0000)
committerMikael Morin <mikael@gcc.gnu.org>
Sat, 15 Feb 2014 11:48:41 +0000 (11:48 +0000)
fortran/
        PR fortran/59599
        * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
        number of arguments.

testsuite/
        PR fortran/59599
        * gfortran.dg/ichar_3.f90: New test.

From-SVN: r207799

gcc/fortran/ChangeLog
gcc/fortran/trans-intrinsic.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/ichar_3.f90 [new file with mode: 0644]

index c625a70e9e92bacdef381f57cd2f4965f8028cae..b6fe3cd28427178b4bd2f5264b552d26627e043a 100644 (file)
@@ -1,3 +1,9 @@
+2014-02-15  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/59599
+       * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
+       number of arguments.
+
 2014-02-11  Jakub Jelinek  <jakub@redhat.com>
 
        PR fortran/52370
index 1eb9490f7835f57c30ad4c135154d570bae964a3..cff8e89507f9f6d684f1e548595d9a5552d8e706 100644 (file)
@@ -4689,8 +4689,10 @@ static void
 gfc_conv_intrinsic_ichar (gfc_se * se, gfc_expr * expr)
 {
   tree args[2], type, pchartype;
+  int nargs;
 
-  gfc_conv_intrinsic_function_args (se, expr, args, 2);
+  nargs = gfc_intrinsic_argument_list_length (expr);
+  gfc_conv_intrinsic_function_args (se, expr, args, nargs);
   gcc_assert (POINTER_TYPE_P (TREE_TYPE (args[1])));
   pchartype = gfc_get_pchar_type (expr->value.function.actual->expr->ts.kind);
   args[1] = fold_build1_loc (input_location, NOP_EXPR, pchartype, args[1]);
index 0891251b590f2b5f546236f98c7a2e6f550d69d5..ec848c64a9a10987d804f2c46cd889d7204f7b77 100644 (file)
@@ -1,3 +1,8 @@
+2014-02-15  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/59599
+       * gfortran.dg/ichar_3.f90: New test.
+
 2014-02-15  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/60183
diff --git a/gcc/testsuite/gfortran.dg/ichar_3.f90 b/gcc/testsuite/gfortran.dg/ichar_3.f90
new file mode 100644 (file)
index 0000000..d0f5c8b
--- /dev/null
@@ -0,0 +1,13 @@
+! { dg-do compile }
+!
+! PR fortran/59599
+! The call to ichar was triggering an ICE.
+!
+! Original testcase from Fran Martinez Fadrique <fmartinez@gmv.com>
+
+character(1) cpk(2)
+integer res(2)
+cpk = 'a'
+res = ichar( cpk, kind=1 )
+print *, ichar( cpk, kind=1 )
+end