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...