[Bug fortran/92113] [8 regression] r276673 causes segfault in gfortran.dg/pr51434.f90

tkoenig at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Oct 19 16:34:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92113

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |koenigni at gcc dot gnu.org,
                   |                            |segher at gcc dot gnu.org

--- Comment #2 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
It is not clear to me what is going on here.

I have spent quite some time trying to find the revision
which fixed the bug for gcc 9 and gcc 10, without success;
I am getting contradictory results when I try to bisect.
Bisecting with trunk led to failures up to recent revisions,
compiling the compiler again led to something which now works (??).

The only thing I can find is, if I revert the patch on current gcc 8,
I get a diff with -fdump-tree-optimized-uid

--- ARTIFICIAL/pr51434.f90.232t.optimized       2019-10-19 16:06:31.580900454
+0000
+++ READONLY/pr51434.f90.232t.optimized 2019-10-19 16:06:23.961105008 +0000
@@ -18,7 +18,7 @@
 {
   unsigned long ivtmp.25D.2274;
   unsigned long ivtmp.20D.2269;
-  static struct a cD.2212 = {.mD.2189=5, .tD.2191={"a", "b", "c", "d", "e", "
", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "}};
+  static struct a cD.2212;
   static integer(kind=4)D.3 options.3D.2226[7] = {68, 8191, 0, 1, 1, 0, 31};
   character(kind=1)D.17 pretmp_6;
   character(kind=1)D.17 pretmp_14

which certainly looks very suspicious.

The fact that this seems to depend on random (?) circumstances, and
depend on optimization levels, may point to a problem with
declaring different variables for the same thing, this time with
an initializer. However, I am not sure how to debug this...


More information about the Gcc-bugs mailing list