From patchwork Wed Jun 9 20:59:24 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [fortran] PR44347 - ensure scalar arguments for selected_real_kind From: Daniel Franke X-Patchwork-Id: 55127 Message-Id: <201006092259.24398.franke@embl-hamburg.de> To: fortran@gcc.gnu.org Cc: gcc-patches@gcc.gnu.org Date: Wed, 9 Jun 2010 22:59:24 +0200 Pretty obvious. gcc/fortran: 2010-06-09 Daniel Franke PR fortran/44347 * check.c (gfc_check_selected_real_kind): Verify that the actual arguments are scalar. gcc/testsuite: 2010-06-09 Daniel Franke PR fortran/44347 * gfortran.dg/selected_real_kind_1.f90: New. Regression tested on i686-pc-linux-gnu. Ok for trunk (accepts-invalid)? 4.5 (ICE)? Daniel Index: check.c =================================================================== --- check.c (revision 160504) +++ check.c (working copy) @@ -2930,11 +2930,23 @@ gfc_check_selected_real_kind (gfc_expr * return FAILURE; } - if (p != NULL && type_check (p, 0, BT_INTEGER) == FAILURE) - return FAILURE; + if (p) + { + if (type_check (p, 0, BT_INTEGER) == FAILURE) + return FAILURE; - if (r != NULL && type_check (r, 1, BT_INTEGER) == FAILURE) - return FAILURE; + if (scalar_check (p, 0) == FAILURE) + return FAILURE; + } + + if (r) + { + if (type_check (r, 1, BT_INTEGER) == FAILURE) + return FAILURE; + + if (scalar_check (r, 1) == FAILURE) + return FAILURE; + } return SUCCESS; }