public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r11-9468] Fortran: Ignore KIND argument of a few more intrinsics. [PR103789]
@ 2022-01-16 21:20 Mikael Morin
  0 siblings, 0 replies; only message in thread
From: Mikael Morin @ 2022-01-16 21:20 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:8d394947776ad2b3ab8376dbf3c198f357bcd322

commit r11-9468-g8d394947776ad2b3ab8376dbf3c198f357bcd322
Author: Mikael Morin <mikael@gcc.gnu.org>
Date:   Fri Jan 7 22:34:59 2022 +0100

    Fortran: Ignore KIND argument of a few more intrinsics. [PR103789]
    
    After PR97896 for which some code was added to ignore the KIND argument
    of the INDEX intrinsics, and PR87711 for which that was extended to LEN_TRIM
    as well, this propagates it further to MASKL, MASKR, SCAN and VERIFY.
    
            PR fortran/103789
    
    gcc/fortran/ChangeLog:
    
            * trans-array.c (arg_evaluated_for_scalarization): Add MASKL, MASKR,
            SCAN and VERIFY to the list of intrinsics whose KIND argument is to be
            ignored.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/maskl_1.f90: New test.
            * gfortran.dg/maskr_1.f90: New test.
            * gfortran.dg/scan_3.f90: New test.
            * gfortran.dg/verify_3.f90: New test.
    
    (cherry picked from commit c1c17a43e172ebc28f2cd247f6e83c5fdbc6219f)

Diff:
---
 gcc/fortran/trans-array.c              |  4 ++++
 gcc/testsuite/gfortran.dg/maskl_1.f90  | 10 ++++++++++
 gcc/testsuite/gfortran.dg/maskr_1.f90  | 10 ++++++++++
 gcc/testsuite/gfortran.dg/scan_3.f90   | 11 +++++++++++
 gcc/testsuite/gfortran.dg/verify_3.f90 | 11 +++++++++++
 5 files changed, 46 insertions(+)

diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index e187a08f8f0..308213c57e3 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -11225,11 +11225,15 @@ arg_evaluated_for_scalarization (gfc_intrinsic_sym *function,
 	  switch (function->id)
 	    {
 	      case GFC_ISYM_INDEX:
+	      case GFC_ISYM_SCAN:
+	      case GFC_ISYM_VERIFY:
 		if (arg_num == 3)
 		  return false;
 		break;
 
 	      case GFC_ISYM_LEN_TRIM:
+	      case GFC_ISYM_MASKL:
+	      case GFC_ISYM_MASKR:
 		if (arg_num == 1)
 		  return false;
 
diff --git a/gcc/testsuite/gfortran.dg/maskl_1.f90 b/gcc/testsuite/gfortran.dg/maskl_1.f90
new file mode 100644
index 00000000000..9e25c2c9cdc
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/maskl_1.f90
@@ -0,0 +1,10 @@
+! { dg-do compile }
+!
+! PR fortran/103789
+! Check the absence of ICE when generating calls to MASKL with a KIND argument.
+
+program p
+   integer :: z(2), y(2)
+   y = [1, 13]
+   z = maskl(y, kind=4) + 1
+end program p
diff --git a/gcc/testsuite/gfortran.dg/maskr_1.f90 b/gcc/testsuite/gfortran.dg/maskr_1.f90
new file mode 100644
index 00000000000..ebfd3dbba33
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/maskr_1.f90
@@ -0,0 +1,10 @@
+! { dg-do compile }
+!
+! PR fortran/103789
+! Check the absence of ICE when generating calls to MASKR with a KIND argument.
+
+program p
+   integer :: z(2), y(2)
+   y = [1, 13]
+   z = maskr(y, kind=4) + 1
+end program p
diff --git a/gcc/testsuite/gfortran.dg/scan_3.f90 b/gcc/testsuite/gfortran.dg/scan_3.f90
new file mode 100644
index 00000000000..80262ae2167
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/scan_3.f90
@@ -0,0 +1,11 @@
+! { dg-do compile }
+!
+! PR fortran/103789
+! Check the absence of ICE when generating calls to SCAN with a KIND argument.
+
+program p
+   character(len=10) :: y(2)
+   integer :: z(2)
+   y = ['abc', 'def']
+   z = scan(y, 'e', kind=4) + 1
+end program p
diff --git a/gcc/testsuite/gfortran.dg/verify_3.f90 b/gcc/testsuite/gfortran.dg/verify_3.f90
new file mode 100644
index 00000000000..f01e24e199e
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/verify_3.f90
@@ -0,0 +1,11 @@
+! { dg-do compile }
+!
+! PR fortran/103789
+! Check the absence of ICE when generating calls to VERIFY with a KIND argument.
+
+program p
+   character(len=10) :: y(2)
+   integer :: z(2)
+   y = ['abc', 'def']
+   z = verify(y, 'e', kind=4) + 1
+end program p


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-01-16 21:20 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-16 21:20 [gcc r11-9468] Fortran: Ignore KIND argument of a few more intrinsics. [PR103789] Mikael Morin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).