This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] PR fortran/81509 and fortran/45513


On Thu, Dec 27, 2018 at 11:24:07AM +0000, Sudakshina Das wrote:
> > 	PR fortran/45513
> > 	PR fortran/81509
> > 	* gfortran.dg/graphite/id-26.f03: Fix non-conforming use of IAND.
> > 	* gfortran.dg/pr81509_1.f90: New test.
> > 	* gfortran.dg/pr81509_2.f90: New test.
> >
> This patch has caused the following failures on aarch64-none-linux-gnu:
> 
> FAIL: libgomp.fortran/aligned1.f03   -O0  (test for excess errors)
> FAIL: libgomp.fortran/aligned1.f03   -O1  (test for excess errors)
> FAIL: libgomp.fortran/aligned1.f03   -O2  (test for excess errors)
> FAIL: libgomp.fortran/aligned1.f03   -O3 -fomit-frame-pointer 
> -funroll-loops -fpeel-loops -ftracer -finline-functions  (test for 
> excess errors)
> FAIL: libgomp.fortran/aligned1.f03   -O3 -g  (test for excess errors)
> FAIL: libgomp.fortran/aligned1.f03   -Os  (test for excess errors)
> 
> With the failure as:
> 
> Excess errors:
> /build/src/gcc/libgomp/testsuite/libgomp.fortran/aligned1.f03:55:14: 
> Error: Arguments of 'iand' have different kind type parameters at (1)
> /build/src/gcc/libgomp/testsuite/libgomp.fortran/aligned1.f03:59:14: 
> Error: Arguments of 'iand' have different kind type parameters at (1)
> 

Well, it nice to see that the patch is catching invalid Fortran.
Can you test this patch?

Index: libgomp/testsuite/libgomp.fortran/aligned1.f03
===================================================================
--- libgomp/testsuite/libgomp.fortran/aligned1.f03      (revision 267418)
+++ libgomp/testsuite/libgomp.fortran/aligned1.f03      (working copy)
@@ -52,11 +52,11 @@
   ! Attempt to create 64-byte aligned allocatable
   do i = 1, 64
     allocate (c(1023 + i))
-    if (iand (loc (c(1)), 63) == 0) exit
+    if (iand (int(loc (c(1)), 8), int(63, 8)) == 0) exit
     deallocate (c)
     allocate (b(i)%a(1023 + i))
     allocate (c(1023 + i))
-    if (iand (loc (c(1)), 63) == 0) exit
+    if (iand (int(loc (c(1)), 8), int(63, 8)) == 0) exit
     deallocate (c)
   end do
   if (allocated (c)) then



-- 
Steve
20170425 https://www.youtube.com/watch?v=VWUpyCsUKR4
20161221 https://www.youtube.com/watch?v=IbCHE-hONow


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]