diff options
author | Janus Weil <janus@gcc.gnu.org> | 2011-10-18 12:48:12 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2011-10-18 12:48:12 +0200 |
commit | 00820a2a60b1624af0bb093f4b7c93ea62113b3c (patch) | |
tree | 148eaa9b42a6e2b9cba8c5f9681b188b9ea70790 /gcc/fortran/resolve.c | |
parent | fc8396e9611daa58c0cb9a9e55844e797e0347ea (diff) | |
download | gcc-00820a2a60b1624af0bb093f4b7c93ea62113b3c.zip gcc-00820a2a60b1624af0bb093f4b7c93ea62113b3c.tar.gz gcc-00820a2a60b1624af0bb093f4b7c93ea62113b3c.tar.bz2 |
re PR fortran/47023 (C_Sizeof: Rejects valid code)
2011-10-18 Janus Weil <janus@gcc.gnu.org>
PR fortran/47023
* decl.c (verify_c_interop_param): Renamed to
'gfc_verify_c_interop_param'. Add error message for polymorphic
arguments.
(verify_c_interop): Renamed to 'gfc_verify_c_interop'. Reject
polymorphic variables.
(verify_bind_c_sym): Renamed 'verify_c_interop'.
* gfortran.h (verify_c_interop,verify_c_interop_param): Renamed.
* check.c (gfc_check_sizeof): Ditto.
* resolve.c (gfc_iso_c_func_interface,resolve_fl_procedure): Ditto.
* symbol.c (verify_bind_c_derived_type): Ditto.
2011-10-18 Janus Weil <janus@gcc.gnu.org>
PR fortran/47023
* gfortran.dg/iso_c_binding_class.f03: New.
From-SVN: r180130
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 9b76f98..0d7e030 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -2809,7 +2809,7 @@ gfc_iso_c_func_interface (gfc_symbol *sym, gfc_actual_arglist *args, &(args->expr->where)); /* See if we have interoperable type and type param. */ - if (verify_c_interop (arg_ts) == SUCCESS + if (gfc_verify_c_interop (arg_ts) == SUCCESS || gfc_check_any_c_kind (arg_ts) == SUCCESS) { if (args_sym->attr.target == 1) @@ -10544,7 +10544,7 @@ resolve_fl_procedure (gfc_symbol *sym, int mp_flag) { /* Skip implicitly typed dummy args here. */ if (curr_arg->sym->attr.implicit_type == 0) - if (verify_c_interop_param (curr_arg->sym) == FAILURE) + if (gfc_verify_c_interop_param (curr_arg->sym) == FAILURE) /* If something is found to fail, record the fact so we can mark the symbol for the procedure as not being BIND(C) to try and prevent multiple errors being |