[PATCH] PR fortran/77372
Steve Kargl
sgk@troutmask.apl.washington.edu
Thu Aug 25 22:13:00 GMT 2016
I plan to commit the following patch on Saturday if
no one objects in the next 40 or so hours.
2016-08-25 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77372
simplify.c (simplify_ieee_selected_real_kind): Check for NULL pointers.
2016-08-25 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77372
gfortran.dg/pr77372.f90: New test.
Index: gcc/fortran/simplify.c
===================================================================
--- gcc/fortran/simplify.c (revision 239762)
+++ gcc/fortran/simplify.c (working copy)
@@ -7044,9 +7044,19 @@ gfc_simplify_compiler_version (void)
gfc_expr *
simplify_ieee_selected_real_kind (gfc_expr *expr)
{
- gfc_actual_arglist *arg = expr->value.function.actual;
- gfc_expr *p = arg->expr, *q = arg->next->expr,
- *rdx = arg->next->next->expr;
+ gfc_actual_arglist *arg;
+ gfc_expr *p = NULL, *q = NULL, *rdx = NULL;
+
+ arg = expr->value.function.actual;
+ if (arg->expr)
+ p = arg->expr;
+ if (arg->next)
+ {
+ if (arg->next->expr)
+ q = arg->next->expr;
+ if (arg->next->next && arg->next->next->expr)
+ rdx = arg->next->next->expr;
+ }
/* Currently, if IEEE is supported and this module is built, it means
all our floating-point types conform to IEEE. Hence, we simply handle
Index: gcc/testsuite/gfortran.dg/pr77372.f90
===================================================================
--- gcc/testsuite/gfortran.dg/pr77372.f90 (nonexistent)
+++ gcc/testsuite/gfortran.dg/pr77372.f90 (working copy)
@@ -0,0 +1,7 @@
+! { dg-do compile }
+program p
+ use ieee_arithmetic
+ real(kind=ieee_selected_real_kind(10_1)) :: z1
+ real(kind=ieee_selected_real_kind(10_2)) :: z2
+ real(kind=ieee_selected_real_kind(10_4)) :: z4
+end
--
Steve
More information about the Fortran
mailing list