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

--- Comment #16 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
The statements are removed upon conversion to gimple:

--- Falsch/a.f90.004t.gimple    2018-02-03 15:08:29.370147886 +0100
+++ Korrekt/a.f90.004t.gimple   2018-02-03 15:07:16.428178637 +0100
@@ -893,6 +893,9 @@
                 [a.f90:24:0] _22 = [a.f90:24:0] [a.f90:24:0]
container.array.offset;
                 [a.f90:24:0] _23 = _22 + 1;
                 [a.f90:24:0] [a.f90:24:0] [a.f90:24:0] [a.f90:24:0]
[a.f90:24:0] MEM[(struct array_t[0:] *)_21][_23].child.dtype = {};
+                [a.f90:24:0] [a.f90:24:0] [a.f90:24:0] [a.f90:24:0]
[a.f90:24:0] MEM[(struct array_t[0:] *)_21][_23].child.dtype.elem_len = 4;
+                [a.f90:24:0] [a.f90:24:0] [a.f90:24:0] [a.f90:24:0]
[a.f90:24:0] MEM[(struct array_t[0:] *)_21][_23].child.dtype.rank = 1;
+                [a.f90:24:0] [a.f90:24:0] [a.f90:24:0] [a.f90:24:0]
[a.f90:24:0] MEM[(struct array_t[0:] *)_21][_23].child.dtype.type = 1;
                 [a.f90:24:0] overflow.22 = 0;
                 [a.f90:24:0] if (overflow.22 != 0) goto <D.4128>; else goto
<D.4129>;
                 <D.4128>:
--- Falsch/a.f90.006t.omplower  2018-02-03 15:08:29.370147886 +0100
+++ Korrekt/a.f90.006t.omplower 2018-02-03 15:07:16.428178637 +0100
@@ -914,6 +914,9 @@
                 [a.f90:24:0] _22 = [a.f90:24:0] [a.f90:24:0]
container.array.offset;
                 [a.f90:24:0] _23 = _22 + 1;
                 [a.f90:24:0] [a.f90:24:0] [a.f90:24:0] [a.f90:24:0]
[a.f90:24:0] MEM[(struct array_t[0:] *)_21][_23].child.dtype = {};
+                [a.f90:24:0] [a.f90:24:0] [a.f90:24:0] [a.f90:24:0]
[a.f90:24:0] MEM[(struct array_t[0:] *)_21][_23].child.dtype.elem_len = 4;
+                [a.f90:24:0] [a.f90:24:0] [a.f90:24:0] [a.f90:24:0]
[a.f90:24:0] MEM[(struct array_t[0:] *)_21][_23].child.dtype.rank = 1;
+                [a.f90:24:0] [a.f90:24:0] [a.f90:24:0] [a.f90:24:0]
[a.f90:24:0] MEM[(struct array_t[0:] *)_21][_23].child.dtype.type = 1;
                 [a.f90:24:0] overflow.22 = 0;
                 [a.f90:24:0] if (overflow.22 != 0) goto <D.4128>; else goto
<D.4129>;
                 <D.4128>:

Looks like a middle-end bug to me.

Reply via email to