]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/22327 ([4.0 only] Wrong code in array constructor)
authorFeng Wang <fengwang@nudt.edu.cn>
Thu, 7 Jul 2005 01:56:04 +0000 (01:56 +0000)
committerFeng Wang <fengwang@gcc.gnu.org>
Thu, 7 Jul 2005 01:56:04 +0000 (01:56 +0000)
2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>

PR fortran/22327
* trans-array.c (gfc_trans_array_constructor_value): Fix index of data.

2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>

PR fortran/22327
* gfortran.dg/array_constructor_5.f90: New test.

From-SVN: r101682

gcc/fortran/ChangeLog
gcc/fortran/trans-array.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/array_constructor_5.f90 [new file with mode: 0644]

index 129b763f7a09eee3746dbfbdb72bad7b8d12d6f1..8a33912fc54ed37815a6ec4988a0ed7f2076b0fd 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
+
+       PR fortran/22327
+       * trans-array.c (gfc_trans_array_constructor_value): Fix index of data.
+
 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
 
        * decl.c (gfc_match_entry): Allow ENTRY without parentheses
index 8e9a0891c4920bcb1c17a1191483918f06c6333a..d54dff3e3664d3226d2d66a163621f9f3a667019 100644 (file)
@@ -862,7 +862,7 @@ gfc_trans_array_constructor_value (stmtblock_t * pblock, tree type,
              gfc_add_expr_to_block (&body, tmp);
 
              *poffset = fold_build2 (PLUS_EXPR, gfc_array_index_type,
-                                     *poffset, bound);
+                                     *poffset, build_int_cst (NULL_TREE, n));
            }
          if (!INTEGER_CST_P (*poffset))
             {
index 817f273352713cf61c8c0c2c521f8bc9d97ec223..1cbe9d6176ae1466b6854210cdeb0437bfcec9a7 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
+
+       PR fortran/22327
+       * gfortran.dg/array_constructor_5.f90: New test.
+
 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
 
        * gfortran.fortran-torture/execute/entry_9.f90: New test.
diff --git a/gcc/testsuite/gfortran.dg/array_constructor_5.f90 b/gcc/testsuite/gfortran.dg/array_constructor_5.f90
new file mode 100644 (file)
index 0000000..8b8f6b0
--- /dev/null
@@ -0,0 +1,11 @@
+! { dg-do run }
+! PR22327
+program array_constructor
+    implicit none
+    integer :: a(6), i
+    i = 6
+    a = (/ 1, 2, 3, 4, 5, i /)
+    do i = 1, 6
+        if (a(i) /= i) call abort()
+    end do
+end program array_constructor