diff mbox

[Fortran] Fix an issue with CLASS and -fcoarray=lib on the trunk

Message ID 20140501085016.D61EC103@mailhost.lps.ens.fr
State New
Headers show

Commit Message

Dominique d'Humières May 1, 2014, 8:50 a.m. UTC
This causes several failures with -m32 (see
http://gcc.gnu.org/ml/gcc-regression/2014-05/msg00003.html):

FAIL: gfortran.dg/coarray_lib_this_image_1.f90  -O   scan-tree-dump-times original "bar \\(real\\(kind=4\\)\\[2\\] \\* restrict x, void \\* restrict caf_token.., integer\\(kind=8\\) caf_offset..\\)" 1
FAIL: gfortran.dg/coarray_lib_this_image_1.f90  -O   scan-tree-dump-times original "myucobound = \\(integer\\(kind=4\\)\\) \\(\\(\\(unsigned int\\) parm...dim\\[1\\].lbound \\+ \\(unsigned int\\) _gfortran_caf_num_images \\(0, -1\\)\\) \\+ 4294967295\\);" 1
FAIL: gfortran.dg/coarray_lib_this_image_2.f90  -O   scan-tree-dump-times original "bar \\(&parm.[0-9]+, caf_token.[0-9]+, \\(integer\\(kind=8\\)\\) parm.[0-9]+.data - \\(integer\\(kind=8\\)\\) x\\);" 1
FAIL: gfortran.dg/coarray_lib_this_image_2.f90  -O   scan-tree-dump-times original "bar \\(struct array1_real\\(kind=4\\) & restrict x, void \\* restrict caf_token.., integer\\(kind=8\\) caf_offset..\\)" 1
FAIL: gfortran.dg/coarray_lib_this_image_2.f90  -O   scan-tree-dump-times original "mylbound = parm...dim\\[0\\].stride >= 0 && parm...dim\\[0\\].ubound >= parm...dim\\[0\\].lbound \\|\\| parm...dim\\[0\\].stride < 0 \\? \\(integer\\(kind=4\\)\\) parm...dim\\[0\\].lbound : 1;" 1
FAIL: gfortran.dg/coarray_lib_this_image_2.f90  -O   scan-tree-dump-times original "myucobound = \\(integer\\(kind=4\\)\\) \\(\\(\\(unsigned int\\) parm...dim\\[1\\].lbound \\+ \\(unsigned int\\) _gfortran_caf_num_images \\(0, -1\\)\\) \\+ 4294967295\\);" 1
FAIL: gfortran.dg/coarray_poly_6.f90  -O   scan-tree-dump-times original "bar \\(struct __class_MAIN___T_0_1t \\* x, void \\* restrict caf_token.., integer\\(kind=8\\) caf_offset..\\)" 1
FAIL: gfortran.dg/coarray_poly_6.f90  -O   scan-tree-dump-times original "foo \\(&class.., y._data._data.token, \\(integer\\(kind=8\\)\\) class..._data.data - \\(integer\\(kind=8\\)\\) y._data._data.data\\);" 1
FAIL: gfortran.dg/coarray_poly_6.f90  -O   scan-tree-dump-times original "foo \\(struct __class_MAIN___T_0_1t & restrict x, void \\* restrict caf_token.., integer\\(kind=8\\) caf_offset..\\)" 1
FAIL: gfortran.dg/coarray_poly_7.f90  -O   scan-tree-dump-times original "bar \\(struct __class_MAIN___T_1_1t \\* x, void \\* restrict caf_token.., integer\\(kind=8\\) caf_offset..\\)" 1
FAIL: gfortran.dg/coarray_poly_7.f90  -O   scan-tree-dump-times original "foo \\(&class.., y._data._data.token, \\(integer\\(kind=8\\)\\) class..._data.data - \\(integer\\(kind=8\\)\\) y._data._data.data\\);" 1
FAIL: gfortran.dg/coarray_poly_7.f90  -O   scan-tree-dump-times original "foo \\(struct __class_MAIN___T_1_1t & restrict x, void \\* restrict caf_token.., integer\\(kind=8\\) caf_offset..\\)" 1
FAIL: gfortran.dg/coarray_poly_8.f90  -O   scan-tree-dump-times original "bar \\(struct __class_MAIN___T_1_1t \\* x, void \\* restrict caf_token.., integer\\(kind=8\\) caf_offset..\\)" 1
FAIL: gfortran.dg/coarray_poly_8.f90  -O   scan-tree-dump-times original "foo \\(&class.., y._data._data.token, \\(integer\\(kind=8\\)\\) class..._data.data - \\(integer\\(kind=8\\)\\) y._data._data.data\\);" 1
FAIL: gfortran.dg/coarray_poly_8.f90  -O   scan-tree-dump-times original "foo \\(struct __class_MAIN___T_1_1t & restrict x, void \\* restrict caf_token.., integer\\(kind=8\\) caf_offset..\\)" 1

Most of the failures are fixed by replacing 'kind=8' with 'kind=.' or 'kind=\[48\]'.

The remaining failures in gfortran.dg/coarray_lib_this_image_*.f90 are fixed by
the following patches


Dominique
diff mbox

Patch

--- ../_clean/gcc/testsuite/gfortran.dg/coarray_lib_this_image_1.f90    2014-04-30 21:41:33.000000000 +0200
+++ gcc/testsuite/gfortran.dg/coarray_lib_this_image_1.f90      2014-05-01 10:37:26.000000000 +0200
@@ -16,10 +16,10 @@  contains
   end subroutine bar
 end

-! { dg-final { scan-tree-dump-times "bar \\(real\\(kind=4\\)\\\[2\\\] \\* restrict x, void \\* restrict caf_token.., integer\\(kind=8\\) caf_offset..\\)" 1 "original" } }
+! { dg-final { scan-tree-dump-times "bar \\(real\\(kind=4\\)\\\[2\\\] \\* restrict x, void \\* restrict caf_token.., integer\\(kind=\[48\]\\) caf_offset..\\)" 1 "original" } }
 ! { dg-final { scan-tree-dump-times "mylcobound = 5;" 1 "original" } }
-! { dg.final { scan-tree-dump-times "parm...dim\\\[1\\\].lbound = 5;" 1 "original" } }
-! { dg-final { scan-tree-dump-times "myucobound = \\(integer\\(kind=4\\)\\) \\(\\(\\(unsigned int\\) parm...dim\\\[1\\\].lbound \\+ \\(unsigned int\\) _gfortran_caf_num_images \\(0, -1\\)\\) \\+ 4294967295\\);" 1 "original" } }
+! { dg-final { scan-tree-dump-times "parm...dim\\\[1\\\].lbound = 5;" 1 "original" } }
+! { dg-final { scan-tree-dump-times "myucobound =\[^\n\r\]* parm...dim\\\[1\\\].lbound \\+ \[^\n\r]*_gfortran_caf_num_images \\(0, -1\\).? \\+ -?\[0-9\]+\\);" 1 "original" } }
 ! { dg-final { scan-tree-dump-times "mylbound = 1;" 1 "original" } }
 ! { dg-final { scan-tree-dump-times "mythis_image = _gfortran_caf_this_image \\(0\\);" 1 "original" } }
 ! { dg-final { scan-tree-dump-times "bar \\(x, caf_token.., 0\\);" 1 "original" } }
--- ../_clean/gcc/testsuite/gfortran.dg/coarray_lib_this_image_2.f90    2014-04-30 21:41:32.000000000 +0200
+++ gcc/testsuite/gfortran.dg/coarray_lib_this_image_2.f90      2014-05-01 10:33:28.000000000 +0200
@@ -16,12 +16,12 @@  contains
   end subroutine bar
 end

-! { dg-final { scan-tree-dump-times "bar \\(struct array1_real\\(kind=4\\) & restrict x, void \\* restrict caf_token.., integer\\(kind=8\\) caf_offset..\\)" 1 "original" } }
+! { dg-final { scan-tree-dump-times "bar \\(struct array1_real\\(kind=4\\) & restrict x, void \\* restrict caf_token.., integer\\(kind=\[48\]\\) caf_offset..\\)" 1 "original" } }
 ! { dg-final { scan-tree-dump-times "mylcobound = 5;" 1 "original" } }
 ! { dg-final { scan-tree-dump-times "parm...dim\\\[1\\\].lbound = 5;" 1 "original" } }
-! { dg-final { scan-tree-dump-times "myucobound = \\(integer\\(kind=4\\)\\) \\(\\(\\(unsigned int\\) parm...dim\\\[1\\\].lbound \\+ \\(unsigned int\\) _gfortran_caf_num_images \\(0, -1\\)\\) \\+ 4294967295\\);" 1 "original" } }
-! { dg-final { scan-tree-dump-times "mylbound = parm...dim\\\[0\\\].stride >= 0 && parm...dim\\\[0\\\].ubound >= parm...dim\\\[0\\\].lbound \\|\\| parm...dim\\\[0\\\].stride < 0 \\? \\(integer\\(kind=4\\)\\) parm...dim\\\[0\\\].lbound : 1;" 1 "original" } }
+! { dg-final { scan-tree-dump-times "myucobound =\[^\n\r\]* parm...dim\\\[1\\\].lbound \\+ \[^\n\r\]*_gfortran_caf_num_images \\(0, -1\\).? \\+ -?\[0-9\]+\\);" 1 "original" } }
+! { dg-final { scan-tree-dump-times "mylbound = parm...dim\\\[0\\\].stride >= 0 && parm...dim\\\[0\\\].ubound >= parm...dim\\\[0\\\].lbound \\|\\| parm...dim\\\[0\\\].stride < 0 \\?\[^\n\r\]* parm...dim\\\[0\\\].lbound : 1;" 1 "original" } }
 ! { dg-final { scan-tree-dump-times "mythis_image = _gfortran_caf_this_image \\(0\\);" 1 "original" } }
-! { dg-final { scan-tree-dump-times "bar \\(&parm.\[0-9\]+, caf_token.\[0-9\]+, \\(integer\\(kind=8\\)\\) parm.\[0-9\]+.data - \\(integer\\(kind=8\\)\\) x\\);" 1 "original" } }
+! { dg-final { scan-tree-dump-times "bar \\(&parm.\[0-9\]+, caf_token.\[0-9\]+, \\(integer\\(kind=\[48\]\\)\\) parm.\[0-9\]+.data - \\(integer\\(kind=\[48\]\\)\\) x\\);" 1 "original" } }
 ! { dg-final { scan-tree-dump-times "_gfortran_caf_init \\(&argc, &argv\\);" 1 "original" } }
 ! { dg-final { cleanup-tree-dump "original" } }