[Bug fortran/38665] [4.4 Regression] ICE in check_host_association
mikael at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Mon Dec 29 23:38:00 GMT 2008
------- Comment #3 from mikael at gcc dot gnu dot org 2008-12-29 23:13 -------
failing assert line 4338:
4334 gfc_match_rvalue (&expr);
4335 gfc_clear_error ();
4336 gfc_buffer_error (0);
4337
4338 gcc_assert (expr && sym == expr->symtree->n.sym);
4339
4340 *e = *expr;
4341 gfc_free (expr);
4342 sym->refs++;
sym->name = "mult"
expr->expr_type = EXPR_VARIABLE
expr->symtree->name = "p1"
if we change the gfc_match_rvalue to a gfc_match_expr, we get a segfault at the
same place because expr->symtree = NULL, and even if we remove the gcc_assert,
we report an error because the function call has been changed into a
multiplication of non-intrinsic types.
Now the solutions:
(1) Add some conditions to the if before to prevent executing this.
(2) Remove the gfc_match_whatever that has nothing to do in resolve.c and find
a better way (yes, I prefer (2), how did you guess?).
Hum, maybe (1) is better for 4.4.0
--
mikael at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P4 |P3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38665
More information about the Gcc-bugs
mailing list