[gcc/devel/gccgo] PR fortran/95053 - ICE in gfc_divide(): Bad basic type
Ian Lance Taylor
ian@gcc.gnu.org
Sun Jul 12 18:07:41 GMT 2020
https://gcc.gnu.org/g:1422c2e4462c9b7c44aa035ac56af77565556181
commit 1422c2e4462c9b7c44aa035ac56af77565556181
Author: Harald Anlauf <anlauf@gmx.de>
Date: Mon May 11 21:27:11 2020 +0200
PR fortran/95053 - ICE in gfc_divide(): Bad basic type
The fix for PR 93499 introduced a too strict check in gfc_divide
that could trigger errors in the early parsing phase. Relax the
check and defer to a later stage.
gcc/fortran/
2020-05-11 Harald Anlauf <anlauf@gmx.de>
PR fortran/95053
* arith.c (gfc_divide): Do not error out if operand 2 is
non-numeric. Defer checks to later stage.
gcc/testsuite/
2020-05-11 Harald Anlauf <anlauf@gmx.de>
PR fortran/95053
* gfortran.dg/pr95053.f: New test.
Diff:
---
gcc/fortran/ChangeLog | 6 ++++++
gcc/fortran/arith.c | 3 ++-
gcc/testsuite/ChangeLog | 5 +++++
gcc/testsuite/gfortran.dg/pr95053.f | 7 +++++++
4 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index a1a625abc1d..9f7b60e2ef9 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2020-05-11 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/95053
+ * arith.c (gfc_divide): Do not error out if operand 2 is
+ non-numeric. Defer checks to later stage.
+
2020-05-11 Tobias Burnus <tobias@codesourcery.com>
PR fortran/94672
diff --git a/gcc/fortran/arith.c b/gcc/fortran/arith.c
index 1cd0867a941..dd72f44d377 100644
--- a/gcc/fortran/arith.c
+++ b/gcc/fortran/arith.c
@@ -1828,7 +1828,8 @@ gfc_divide (gfc_expr *op1, gfc_expr *op2)
rc = ARITH_DIV0;
break;
default:
- gfc_internal_error ("gfc_divide(): Bad basic type");
+ /* basic type is non-numeric, handle this elsewhere. */
+ break;
}
if (rc == ARITH_DIV0)
{
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 158cf3857ba..99d06830cc1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2020-05-11 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/95053
+ * gfortran.dg/pr95053.f: New test.
+
2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
PR target/95046
diff --git a/gcc/testsuite/gfortran.dg/pr95053.f b/gcc/testsuite/gfortran.dg/pr95053.f
new file mode 100644
index 00000000000..1d15c669467
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr95053.f
@@ -0,0 +1,7 @@
+! { dg-do compile }
+! PR fortran/95053 - ICE in gfc_divide(): Bad basic type
+!
+ 123 FORMAT ('A'/'B')
+ 132 FORMAT (A/
+ + ' B')
+ END
More information about the Gcc-cvs
mailing list