From: dfranke Date: Wed, 9 Jun 2010 21:36:33 +0000 (+0000) Subject: gcc/fortran/: X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0d290c9d17fe55e9c70da316068fd3fb2d0ab72d;p=thirdparty%2Fgcc.git 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160506 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index cafbd314b2ef..c67dd8f58797 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2010-06-09 Daniel Franke + + PR fortran/44347 + * check.c (gfc_check_selected_real_kind): Verify that the + actual arguments are scalar. + 2010-06-09 Daniel Franke PR fortran/44359 diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c index 6a5c263ed502..81f3e24847b9 100644 --- a/gcc/fortran/check.c +++ b/gcc/fortran/check.c @@ -2930,11 +2930,23 @@ gfc_check_selected_real_kind (gfc_expr *p, gfc_expr *r) 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; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5dcee0fb1661..d0154a9fe27f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-06-09 Daniel Franke + + PR fortran/44347 + * gfortran.dg/selected_real_kind_1.f90: New. + 2010-06-09 Daniel Franke PR fortran/44359 diff --git a/gcc/testsuite/gfortran.dg/selected_real_kind_1.f90 b/gcc/testsuite/gfortran.dg/selected_real_kind_1.f90 new file mode 100644 index 000000000000..0f40a595d2f7 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/selected_real_kind_1.f90 @@ -0,0 +1,10 @@ +! { dg-do "compile" } +! +! PR fortran/44347 - arguments of SELECTED_REAL_KIND shall be scalar +! Testcase contributed by Vittorio Zecca +! + + dimension ip(1), ir(1) + i = selected_real_kind(ip, i) ! { dg-error "must be a scalar" } + j = selected_real_kind(i, ir) ! { dg-error "must be a scalar" } +end