[Bug fortran/88228] ICE in check_null, at fortran/expr.c:2691

2018-12-09 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88228

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |7.5

--- Comment #7 from kargl at gcc dot gnu.org ---
Fixed on trunk, branch-8, and branch-7.

[Bug fortran/88228] ICE in check_null, at fortran/expr.c:2691

2018-12-09 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88228

--- Comment #6 from kargl at gcc dot gnu.org ---
Author: kargl
Date: Sun Dec  9 18:32:01 2018
New Revision: 266928

URL: https://gcc.gnu.org/viewcvs?rev=266928&root=gcc&view=rev
Log:
2018-12-09  Fritz Reese  

PR fortran/88228
* resolve.c (resolve_operator):  Do not call resolve_function.
Break like other cases.

2018-12-09  Steven G. Kargl  

PR fortran/88228
* gfortran.dg/pr88228.f90: New test.

Added:
branches/gcc-7-branch/gcc/testsuite/gfortran.dg/pr88228.f90
Modified:
branches/gcc-7-branch/gcc/fortran/ChangeLog
branches/gcc-7-branch/gcc/fortran/resolve.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog

[Bug fortran/88228] ICE in check_null, at fortran/expr.c:2691

2018-12-09 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88228

--- Comment #5 from kargl at gcc dot gnu.org ---
Author: kargl
Date: Sun Dec  9 17:09:15 2018
New Revision: 266927

URL: https://gcc.gnu.org/viewcvs?rev=266927&root=gcc&view=rev
Log:
2018-12-09  Fritz Reese  

PR fortran/88228
* resolve.c (resolve_operator):  Do not call resolve_function.
Break like other cases.

2018-12-09  Steven G. Kargl  

PR fortran/88228
* gfortran.dg/pr88228.f90: New test.

Added:
branches/gcc-8-branch/gcc/testsuite/gfortran.dg/pr88228.f90
Modified:
branches/gcc-8-branch/gcc/fortran/ChangeLog
branches/gcc-8-branch/gcc/fortran/resolve.c
branches/gcc-8-branch/gcc/testsuite/ChangeLog

[Bug fortran/88228] ICE in check_null, at fortran/expr.c:2691

2018-12-09 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88228

--- Comment #4 from kargl at gcc dot gnu.org ---
Author: kargl
Date: Sun Dec  9 16:32:48 2018
New Revision: 266926

URL: https://gcc.gnu.org/viewcvs?rev=266926&root=gcc&view=rev
Log:
2018-12-09  Fritz Reese  

PR fortran/88228
* resolve.c (resolve_operator):  Do not call resolve_function.
Break like other cases.

2018-12-09  Steven G. Kargl  

PR fortran/88228
* gfortran.dg/pr88228.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/pr88228.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog

[Bug fortran/88228] ICE in check_null, at fortran/expr.c:2691

2018-12-02 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88228

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu.org

--- Comment #3 from kargl at gcc dot gnu.org ---
(In reply to kargl from comment #2)
> Index: gcc/fortran/expr.c
> ===
> --- gcc/fortran/expr.c(revision 266386)
> +++ gcc/fortran/expr.c(working copy)
> @@ -2688,6 +2688,9 @@ check_transformational (gfc_expr *e)
>  static match
>  check_null (gfc_expr *e)
>  {
> +  if (e->expr_type == EXPR_CONSTANT)
> +   return MATCH_NO;
> +
>if (strcmp ("null", e->symtree->n.sym->name) != 0)
>  return MATCH_NO;
>  
> @@ -2793,10 +2796,15 @@ gfc_check_init_expr (gfc_expr *e)
>   && (m = check_transformational (e)) == MATCH_NO
>   && (m = check_elemental (e)) == MATCH_NO)
> {
> - gfc_error ("Intrinsic function %qs at %L is not permitted "
> -"in an initialization expression",
> -e->symtree->n.sym->name, &e->where);
> - m = MATCH_ERROR;
> + if (e->expr_type == EXPR_CONSTANT)
> +   return true;
> + else
> +   {
> + gfc_error ("Intrinsic function %qs at %L is not permitted "
> +"in an initialization expression",
> +e->symtree->n.sym->name, &e->where);
> + m = MATCH_ERROR;
> +   }
> }
>  
>   if (m == MATCH_ERROR)

Patch is insufficient new patch is sitting my tree.

[Bug fortran/88228] ICE in check_null, at fortran/expr.c:2691

2018-11-30 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88228

--- Comment #2 from kargl at gcc dot gnu.org ---
Index: gcc/fortran/expr.c
===
--- gcc/fortran/expr.c  (revision 266386)
+++ gcc/fortran/expr.c  (working copy)
@@ -2688,6 +2688,9 @@ check_transformational (gfc_expr *e)
 static match
 check_null (gfc_expr *e)
 {
+  if (e->expr_type == EXPR_CONSTANT)
+   return MATCH_NO;
+
   if (strcmp ("null", e->symtree->n.sym->name) != 0)
 return MATCH_NO;

@@ -2793,10 +2796,15 @@ gfc_check_init_expr (gfc_expr *e)
&& (m = check_transformational (e)) == MATCH_NO
&& (m = check_elemental (e)) == MATCH_NO)
  {
-   gfc_error ("Intrinsic function %qs at %L is not permitted "
-  "in an initialization expression",
-  e->symtree->n.sym->name, &e->where);
-   m = MATCH_ERROR;
+   if (e->expr_type == EXPR_CONSTANT)
+ return true;
+   else
+ {
+   gfc_error ("Intrinsic function %qs at %L is not permitted "
+  "in an initialization expression",
+  e->symtree->n.sym->name, &e->where);
+   m = MATCH_ERROR;
+ }
  }

if (m == MATCH_ERROR)

[Bug fortran/88228] ICE in check_null, at fortran/expr.c:2691

2018-11-27 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88228

Dominique d'Humieres  changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code
   Priority|P3  |P4
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-11-27
 CC||foreese at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres  ---
Confirmed.