Bug 78297 - ICE in finish_equivalences, at fortran/trans-common.c:1246
Summary: ICE in finish_equivalences, at fortran/trans-common.c:1246
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: fortran (show other bugs)
Version: 7.0
: P3 normal
Target Milestone: 5.5
Assignee: kargls
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-11-10 18:49 UTC by Gerhard Steinmetz
Modified: 2016-11-23 22:50 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2016-11-10 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gerhard Steinmetz 2016-11-10 18:49:23 UTC
Gives an ICE down to at least 4.8 :


$ cat z1.f90
module m
   real :: a(2), b(2)
   real :: c(2), d(2)
   equivalence (a, b)
   equivalence (c, d)
   common /xcom/ a
end
block data
   use m
end block data


$ gfortran-7-20161106 -c z1.f90
z1.f90:10:0:

 end block data

internal compiler error: Segmentation fault
0xc3a64f crash_signal
        ../../gcc/toplev.c:338
0x747490 finish_equivalences
        ../../gcc/fortran/trans-common.c:1246
0x747490 gfc_trans_common(gfc_namespace*)
        ../../gcc/fortran/trans-common.c:1289
0x74d1b0 gfc_generate_block_data(gfc_namespace*)
        ../../gcc/fortran/trans-decl.c:6524
0x6e2133 gfc_parse_file()
        ../../gcc/fortran/parse.c:6102
0x725822 gfc_be_parse_file
        ../../gcc/fortran/f95-lang.c:198
Comment 1 Gerhard Steinmetz 2016-11-10 18:49:56 UTC
Compiles with both items in common block.


$ cat z2.f90
module m
   real :: a(2), b(2)
   real :: c(2), d(2)
   equivalence (a, b)
   equivalence (c, d)
   common /xcom/ a, c
end
block data
   use m
end block data
Comment 2 Dominique d'Humieres 2016-11-10 22:44:47 UTC
Confirmed from 4.8 up to trunk (7.0).
Comment 3 kargls 2016-11-23 21:44:38 UTC
Author: kargl
Date: Wed Nov 23 21:44:05 2016
New Revision: 242802

URL: https://gcc.gnu.org/viewcvs?rev=242802&root=gcc&view=rev
Log:
2016-11-23  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/78297
	* trans-common.c (finish_equivalences): Do not dereference a NULL pointer.

2016-11-23  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/78297
	* gfortran.dg/pr78297.f90: New test.

Added:
    trunk/gcc/testsuite/gfortran.dg/pr78297.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/trans-common.c
    trunk/gcc/testsuite/ChangeLog
Comment 4 kargls 2016-11-23 22:18:17 UTC
Author: kargl
Date: Wed Nov 23 22:16:53 2016
New Revision: 242806

URL: https://gcc.gnu.org/viewcvs?rev=242806&root=gcc&view=rev
Log:
2016-11-23  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/78297
	* trans-common.c (finish_equivalences): Do not dereference a NULL pointer.

2016-11-23  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/78297
	* gfortran.dg/pr78297.f90: New test.

Added:
    branches/gcc-6-branch/gcc/testsuite/gfortran.dg/pr78297.f90
Modified:
    branches/gcc-6-branch/gcc/fortran/ChangeLog
    branches/gcc-6-branch/gcc/fortran/trans-common.c
    branches/gcc-6-branch/gcc/testsuite/ChangeLog
Comment 5 kargls 2016-11-23 22:49:26 UTC
Author: kargl
Date: Wed Nov 23 22:48:54 2016
New Revision: 242811

URL: https://gcc.gnu.org/viewcvs?rev=242811&root=gcc&view=rev
Log:
2016-11-23  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/78297
	* trans-common.c (finish_equivalences): Do not dereference a NULL pointer.

2016-11-23  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/78297
	* gfortran.dg/pr78297.f90: New test.

Added:
    branches/gcc-5-branch/gcc/testsuite/gfortran.dg/pr78297.f90
Modified:
    branches/gcc-5-branch/gcc/fortran/ChangeLog
    branches/gcc-5-branch/gcc/fortran/trans-common.c
    branches/gcc-5-branch/gcc/testsuite/ChangeLog
Comment 6 kargls 2016-11-23 22:50:25 UTC
Fixed on 5-branch, 6-branch, and trunk.