]> 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, 22 Feb 2014 12:22:17 +0000 (12:22 +0000)
committerMikael Morin <mikael@gcc.gnu.org>
Sat, 22 Feb 2014 12:22:17 +0000 (12:22 +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: r208042

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

index 6b3fbd6a9065cde3f61672762dce6adcec8fd87e..2a5c5a2f4159619e3276af61a457a5e0e395bafa 100644 (file)
@@ -1,3 +1,9 @@
+2014-02-22  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/59599
+       * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
+       number of arguments.
+
 2014-02-19  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/49397
index ddd9eaea5c208cc5fb7859b4d21e80eb0a2c8019..9f979500211c9a5a4f7e31ee64ff0ba5c85c003a 100644 (file)
@@ -4685,8 +4685,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 691626e56db6b37612cfff213840b807707889e1..1f750602f33100399aa1482b3ecfbbfaddf2d1c6 100644 (file)
@@ -1,3 +1,8 @@
+2014-02-22  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/59599
+       * gfortran.dg/ichar_3.f90: New test.
+
 2014-02-21  Steven G. Kargl  <kargl@gcc.gnu.org>
 
        Backport from mainline
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