[fortran, patch] Add PROTECTED support (PR23994) - committed
Tobias Schlüter
tobias.schlueter@physik.uni-muenchen.de
Sun Dec 10 20:15:00 GMT 2006
Tobias Burnus <burnus@net-b.de> wrote on Sun, 10 Dec 2006:
> diff -u gcc/fortran/interface.c gcc/fortran/interface.c
> --- gcc/fortran/interface.c (working copy)
> +++ gcc/fortran/interface.c (Arbeitskopie)
> @@ -1206,6 +1206,36 @@
> }
>
>
> +/* Given a symbol of a formal argument list and an expression, see if
> + the two are compatible as arguments. Returns nonzero if
> + compatible, zero if not compatible. */
> +
> +static int
> +compare_parameter_protected (gfc_symbol * formal, gfc_expr * actual)
> +{
> + if (actual->expr_type != EXPR_VARIABLE)
> + return 1;
> +
> + if (!actual->symtree->n.sym->attr.protected)
> + return 1;
> +
> + if (!actual->symtree->n.sym->attr.use_assoc)
> + return 1;
> +
> + if (formal->attr.intent == INTENT_IN
> + || formal->attr.intent == INTENT_UNKNOWN)
> + return 1;
> +
> + if (!actual->symtree->n.sym->attr.pointer)
> + return 0;
> + return 0;
^^^^^^^^^^^^^^^^
As I just verified, this is not what you checked in :-)
> +
> + if (actual->symtree->n.sym->attr.pointer && formal->attr.pointer)
> + return 0;
> +
> + return 1;
> +}
- Tobi
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
More information about the Fortran
mailing list