diff gcc/testsuite/gfortran.dg/power_5.f90 @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 84e7813d76e9
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/gfortran.dg/power_5.f90	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,35 @@
+! { dg-do run }
+! { dg-options "-ffrontend-optimize -fdump-tree-original" }
+! PR 57071 - Check that 1**k is transformed into 1
+program main
+  implicit none
+  integer, parameter :: n = 3
+  integer(kind=8), dimension(-n:n) :: a
+  integer, dimension(-n:n) :: c, d
+  integer :: m
+  integer :: i, v
+  integer (kind=2) :: i2
+
+  v = 1
+  m = n
+  ! Test in scalar expressions
+  do i=-n,n
+     if (v /= 1**i) call abort
+  end do
+
+  ! Test in array constructors
+  a(-m:m) = [ (1**i, i= -m, m) ]
+  if (any(a .ne. v)) call abort
+
+  ! Test in array expressions
+  c = [ ( i, i = -n , n ) ]
+  d = 1**c
+  if (any(d .ne. v)) call abort
+
+  ! Test in different kind expressions
+  do i2=-n,n
+     if (v /= 1**i2) call abort
+  end do
+
+end program main
+! { dg-final { scan-tree-dump-times "_gfortran_pow_i4_i4" 0 "original" } }