[Bug fortran/98023] ICE: free_expr0(): Bad expr type

2020-11-26 Thread kargl at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98023

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu.org

--- Comment #1 from kargl at gcc dot gnu.org ---
Bandage.


Index: gcc/gcc/fortran/expr.c
===
--- gcc/gcc/fortran/expr.c  (revision 280157)
+++ gcc/gcc/fortran/expr.c  (working copy)
@@ -525,7 +525,7 @@ free_expr0 (gfc_expr *e)
 void
 gfc_free_expr (gfc_expr *e)
 {
-  if (e == NULL)
+  if (e == NULL || e->expr_type == EXPR_UNKNOWN)
 return;
   free_expr0 (e);
   free (e);

[Bug fortran/98023] ICE: free_expr0(): Bad expr type

2020-11-27 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98023

Martin Liška  changed:

   What|Removed |Added

   Last reconfirmed||2020-11-27
 CC||marxin at gcc dot gnu.org,
   ||pault at gcc dot gnu.org
 Ever confirmed|0   |1
 Status|UNCONFIRMED |NEW

--- Comment #2 from Martin Liška  ---
Btw. started with r8-3056-g5bab4c9631c478b7.

[Bug fortran/98023] ICE: free_expr0(): Bad expr type

2020-11-30 Thread anlauf at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98023

--- Comment #3 from anlauf at gcc dot gnu.org ---
The patch in comment#1 does not work for me on x86_64-pc-linux-gnu.

In decl.c:

6242cleanup:
6243  if (saved_kind_expr)
6244gfc_free_expr (saved_kind_expr);
6245  if (type_param_spec_list)
6246gfc_free_actual_arglist (type_param_spec_list);

(gdb) p type_param_spec_list->expr->expr_type
$177 = 42350080

So type_param_spec_list really gets screwed up.