]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR fortran/78239 (ICE in char_len_param_value, at fortran/decl.c:926...
authorThomas Koenig <tkoenig@gcc.gnu.org>
Thu, 22 Dec 2016 20:27:52 +0000 (20:27 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Thu, 22 Dec 2016 20:27:52 +0000 (20:27 +0000)
2016-12-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

Backport from trunk
PR fortran/78239
* decl.c (char_len_param_value): Also check for -fimplicit-none
when determining if implicit none is in force.

2016-12-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

Backport from trunk
PR fortran/78239
* gfortran.dg/fimplicit_none_1.f90:  New test.
* gfortran.dg/fimplicit_none_2.f90:  New test

From-SVN: r243895

gcc/fortran/ChangeLog
gcc/fortran/decl.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/fimplicit_none_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/fimplicit_none_2.f90 [new file with mode: 0644]

index 7d7e9f2998a1569720ede77e152e2330c3173128..d4ea0e901cc7a779bc4a4c0dd1b09dc638f887a1 100644 (file)
@@ -1,3 +1,10 @@
+2016-12-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       Backport from trunk
+       PR fortran/78239
+       * decl.c (char_len_param_value): Also check for -fimplicit-none
+       when determining if implicit none is in force.
+
 2016-12-04  Janus Weil  <janus@gcc.gnu.org>
 
        Backport from trunk
index 741e77fdbf26002d7afd53975ef17c1dcf7115fa..81f9097e262a393ea6b414e38f477d100a85073f 100644 (file)
@@ -776,7 +776,8 @@ char_len_param_value (gfc_expr **expr, bool *deferred)
 
       if (!t && e->ts.type == BT_UNKNOWN
          && e->symtree->n.sym->attr.untyped == 1
-         && (e->symtree->n.sym->ns->seen_implicit_none == 1
+         && (flag_implicit_none
+             || e->symtree->n.sym->ns->seen_implicit_none == 1
              || e->symtree->n.sym->ns->parent->seen_implicit_none == 1))
        {
          gfc_free_expr (e);
index 78ed52518fa82fd12654ab2f38922ea19b751e35..beac2293cf1c8be829f18d353a7466055cac56e9 100644 (file)
@@ -1,3 +1,10 @@
+2016-12-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       Backport from trunk
+       PR fortran/78239
+       * gfortran.dg/fimplicit_none_1.f90:  New test.
+       * gfortran.dg/fimplicit_none_2.f90:  New test.
+
 2016-12-14  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/78731
diff --git a/gcc/testsuite/gfortran.dg/fimplicit_none_1.f90 b/gcc/testsuite/gfortran.dg/fimplicit_none_1.f90
new file mode 100644 (file)
index 0000000..997584e
--- /dev/null
@@ -0,0 +1,6 @@
+! { dg-do compile }
+! { dg-options "-fimplicit-none" }
+subroutine s(n) ! { dg-error "has no IMPLICIT type" }
+   character(n) :: c  ! { dg-error "Scalar INTEGER expression expected" }
+   c = 'c' ! { dg-error "has no IMPLICIT type" }
+end
diff --git a/gcc/testsuite/gfortran.dg/fimplicit_none_2.f90 b/gcc/testsuite/gfortran.dg/fimplicit_none_2.f90
new file mode 100644 (file)
index 0000000..fa8a8f4
--- /dev/null
@@ -0,0 +1,6 @@
+! { dg-do compile }
+! { dg-options "-fimplicit-none" }
+! PR fortran/78239 - used to ICE
+program p
+   character(*), parameter :: z(2) = [character(n) :: 'x', 'y'] ! { dg-error "Scalar INTEGER expression expected" }
+end