Commit a634323a by Tobias Burnus Committed by Tobias Burnus

simplify.c (gfc_simplify_storage_size): Use proper integer kind for the returned value.

2014-07-25  Tobias Burnus  <burnus@net-b.de>

        * simplify.c (gfc_simplify_storage_size): Use proper
        integer kind for the returned value.

2014-07-25  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/storage_size_5.f90: New.

From-SVN: r213060
parent a4b0388b
2014-07-25 Tobias Burnus <burnus@net-b.de>
* simplify.c (gfc_simplify_storage_size): Use proper
integer kind for the returned value.
2014-07-24 Uros Bizjak <ubizjak@gmail.com>
* intrinsic.texi (Intrinsic Procedures) <ATOMIC_DEFINE>: Move to
......
......@@ -5841,11 +5841,9 @@ gfc_simplify_storage_size (gfc_expr *x,
if (k == -1)
return &gfc_bad_expr;
result = gfc_get_constant_expr (BT_INTEGER, gfc_index_integer_kind,
&x->where);
result = gfc_get_constant_expr (BT_INTEGER, k, &x->where);
mpz_set_si (result->value.integer, gfc_element_size (x));
mpz_mul_ui (result->value.integer, result->value.integer, BITS_PER_UNIT);
return range_check (result, "STORAGE_SIZE");
......
2014-07-25 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/storage_size_5.f90: New.
2014-07-25 Richard Biener <rguenther@suse.de>
PR middle-end/61762
......
! { dg-do compile }
! { dg-options "-fdump-tree-original" }
!
subroutine test()
implicit none
integer :: i0, i1, i2, i3, i4
i0 = kind(STORAGE_SIZE(5))
i1 = kind(STORAGE_SIZE(5, kind=1))
i2 = kind(STORAGE_SIZE(5, kind=2))
i3 = kind(STORAGE_SIZE(5, kind=4))
i4 = kind(STORAGE_SIZE(5, kind=8))
end subroutine test
subroutine test2(x)
implicit none
class(*) :: x
integer :: j0, j1, j2, j3, j4
integer(1) :: k1
integer(2) :: k2
j0 = kind(STORAGE_SIZE(x))
j1 = kind(STORAGE_SIZE(x, kind=1))
j2 = kind(STORAGE_SIZE(x, kind=2))
j3 = kind(STORAGE_SIZE(x, kind=4))
j4 = kind(STORAGE_SIZE(x, kind=8))
k1 = STORAGE_SIZE(x, kind=1)
k2 = STORAGE_SIZE(x, kind=2)
end subroutine test2
! { dg-final { scan-tree-dump-times "i0 = 4;" 1 "original" } }
! { dg-final { scan-tree-dump-times "i1 = 1;" 1 "original" } }
! { dg-final { scan-tree-dump-times "i2 = 2;" 1 "original" } }
! { dg-final { scan-tree-dump-times "i3 = 4;" 1 "original" } }
! { dg-final { scan-tree-dump-times "i4 = 8;" 1 "original" } }
! { dg-final { scan-tree-dump-times "j0 = 4;" 1 "original" } }
! { dg-final { scan-tree-dump-times "j1 = 1;" 1 "original" } }
! { dg-final { scan-tree-dump-times "j2 = 2;" 1 "original" } }
! { dg-final { scan-tree-dump-times "j3 = 4;" 1 "original" } }
! { dg-final { scan-tree-dump-times "j4 = 8;" 1 "original" } }
! { dg-final { scan-tree-dump-times "k1 = \\(integer\\(kind=1\\)\\)" 1 "original" } }
! { dg-final { scan-tree-dump-times "k2 = \\(integer\\(kind=2\\)\\)" 1 "original" } }
! { dg-final { cleanup-tree-dump "original" } }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment