diff options
author | Janus Weil <janus@gcc.gnu.org> | 2011-10-20 00:05:23 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2011-10-20 00:05:23 +0200 |
commit | 2c23ebfec69d77f9d62e80bfb4157c184f88364f (patch) | |
tree | 7bb1b66ecb7f8dab68864953e87af67e4240c434 /gcc/fortran/check.c | |
parent | e423833d36290e6919a4f286f0ba92e2395267c5 (diff) | |
download | gcc-2c23ebfec69d77f9d62e80bfb4157c184f88364f.zip gcc-2c23ebfec69d77f9d62e80bfb4157c184f88364f.tar.gz gcc-2c23ebfec69d77f9d62e80bfb4157c184f88364f.tar.bz2 |
re PR fortran/47023 (C_Sizeof: Rejects valid code)
2011-10-19 Janus Weil <janus@gcc.gnu.org>
PR fortran/47023
* check.c (gfc_check_sizeof): Reject procedures as argument of SIZEOF.
* intrinsinc.texi (SIZEOF): Document it.
(STORAGE_SIZE): Fix special characters. Fix line breaks.
2011-10-19 Janus Weil <janus@gcc.gnu.org>
PR fortran/47023
* gfortran.dg/sizeof_proc.f90: New.
From-SVN: r180210
Diffstat (limited to 'gcc/fortran/check.c')
-rw-r--r-- | gcc/fortran/check.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c index eb8b3e1..bf45592 100644 --- a/gcc/fortran/check.c +++ b/gcc/fortran/check.c @@ -3444,8 +3444,15 @@ gfc_check_size (gfc_expr *array, gfc_expr *dim, gfc_expr *kind) gfc_try -gfc_check_sizeof (gfc_expr *arg ATTRIBUTE_UNUSED) +gfc_check_sizeof (gfc_expr *arg) { + if (arg->ts.type == BT_PROCEDURE) + { + gfc_error ("'%s' argument of '%s' intrinsic at %L may not be a procedure", + gfc_current_intrinsic_arg[0]->name, gfc_current_intrinsic, + &arg->where); + return FAILURE; + } return SUCCESS; } |