This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
[patch, fortran] PR41909 [4.4/4.5 Regression] ICE with "call foo" in "program foo"
- From: Jerry DeLisle <jvdelisle at verizon dot net>
- To: gfortran list <fortran at gcc dot gnu dot org>
- Cc: gcc patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 05 Nov 2009 20:27:52 -0800
- Subject: [patch, fortran] PR41909 [4.4/4.5 Regression] ICE with "call foo" in "program foo"
Hi Folks,
This simple patch avoids the assertion that is giving the ICE.
Regression tested on x86-64.
With the patch, the test case in the PR gives:
$ gfc pr41909.f90
pr41909.f90:3.13:
call test()
1
pr41909.f90:1.12:
program test
2
Error: Global name 'test' at (1) is already being used as a PROGRAM at (2)
OK for trunk?
Regards,
Jerry
Index: resolve.c
===================================================================
--- resolve.c (revision 153956)
+++ resolve.c (working copy)
@@ -1117,6 +1117,9 @@
gfc_symbol* context_proc;
gfc_namespace* real_context;
+ if (sym->attr.flavor == FL_PROGRAM)
+ return false;
+
gcc_assert (sym->attr.flavor == FL_PROCEDURE);
/* If we've got an ENTRY, find real procedure. */