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

--- Comment #4 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
Comparing the outputs of -fDump-tree-original for r257064 and r257065 shows:

--- pr84523.f90.003t.original_65        2018-02-24 14:45:17.000000000 +0100
+++ pr84523.f90.003t.original_64        2018-02-24 14:44:32.000000000 +0100
...
@@ -116,32 +116,32 @@ construct (struct t_rowcol & restrict rc
     *rc = t_rowcol.6;
   }
   {
-    integer(kind=8) D.3821;
-    integer(kind=4) D.3822;
-    integer(kind=8) D.3823;
-    integer(kind=8) D.3824;
-    integer(kind=4) D.3825;
+    integer(kind=8) D.3815;
+    integer(kind=4) D.3816;
+    integer(kind=8) D.3817;
+    integer(kind=8) D.3818;
+    integer(kind=4) D.3819;
     unsigned long size.2;
-    logical(kind=4) D.3827;
+    logical(kind=4) D.3821;
     integer(kind=4) overflow.3;

     rc->nh = *nh;
-    rc->spots.dtype = {.elem_len=112, .rank=1, .type=5};
-    D.3821 = (integer(kind=8)) MAX_EXPR <*nh, 0>;
-    D.3822 = NON_LVALUE_EXPR <D.3821 != 0 ? 9223372036854775807 / D.3821 <= 0
? 1 : 0 : 0>;
-    D.3823 = NON_LVALUE_EXPR <D.3821>;
-    D.3824 = D.3823;
-    D.3825 = ((unsigned long) D.3823 > 164703072086692425 ? 1 : 0) + D.3822;
                                        ^
-    D.3827 = *nh <= 0;
-    if (D.3827)
+    rc->spots.dtype = 6697;
+    D.3815 = (integer(kind=8)) MAX_EXPR <*nh, 0>;
+    D.3816 = NON_LVALUE_EXPR <D.3815 != 0 ? 9223372036854775807 / D.3815 <= 0
? 1 : 0 : 0>;
+    D.3817 = NON_LVALUE_EXPR <D.3815>;
+    D.3818 = D.3817;
+    D.3819 = ((unsigned long) D.3817 > 177372539170284150 ? 1 : 0) + D.3816;
                                        ^
+    D.3821 = *nh <= 0;
+    if (D.3821)
       {
         size.2 = 0;
       }
     else
       {
-        size.2 = (unsigned long) D.3823 * 112;
+        size.2 = (unsigned long) D.3817 * 104;
       }
-    overflow.3 = D.3825;
+    overflow.3 = D.3819;
     if (overflow.3 != 0)
       {
         _gfortran_runtime_error (&"Integer overflow when calculating the
amount of memory to allocate"[1]{lb: 1 sz: 1});
@@ -158,57 +158,57 @@ construct (struct t_rowcol & restrict rc
     rc->spots.dim[0].ubound = (integer(kind=8)) *nh;
     rc->spots.dim[0].stride = 1;
     rc->spots.offset = -1;
-    rc->spots.span = 112;
                      ^
+    rc->spots.span = 104;
                      ^
     {
...

Reply via email to