[fortran,patch] Don't write common more than once in a module file (PR 30285)
Tobias Schlüter
tobias.schlueter@physik.uni-muenchen.de
Sat Nov 17 08:32:00 GMT 2007
FX Coudert wrote:
> Hum, they're static buffers actually, so I don't think I can do that,
> unfortunately :(
>
> typedef struct gfc_common_head
> {
> locus where;
> char use_assoc, saved, threadprivate;
> char name[GFC_MAX_SYMBOL_LEN + 1];
> struct gfc_symbol *head;
> char binding_label[GFC_MAX_BINDING_LABEL_LEN + 1];
> int is_bind_c;
> }
> gfc_common_head;
Whoops, that's an error then. But I don't think it's worth fixing at
this point.
> +static int
> +compare_written_commons (void *a1, void *b1)
> +{
> + const char *aname = ((struct written_common *) a1)->name;
> + const char *alabel = ((struct written_common *) a1)->label;
> + const char *bname = ((struct written_common *) b1)->name;
> + const char *blabel = ((struct written_common *) b1)->label;
> + int c;
> +
> + return ((c = strcmp (aname, bname)) != 0 ? c : strcmp (alabel, blabel));
> +}
That's smart :-) I just pasted it to write that it's wrong but then I
figured it out :-) It would be simpler if you moved the first strcmp
two lines up.
The updated patch looks ok.
Thanks,
- Tobi
More information about the Fortran
mailing list