Hello world,

This patch fixes and reorganizes dumping C prototypes.  It makes the
following changes:

        - BIND(C) types are now always output before any global symbols
        - CFI_cdesc_t is issued for assumed shape and assumed rank arguments.
        - BIND(C,NAME="...") entities were not always issued.

gcc/fortran/ChangeLog:

        PR fortran/118359
        * dump-parse-tree.cc (show_external_symbol): New function.
        (write_type): Add prototype, put in restrictions on what not to dump.
        (has_cfi_cdesc): New function.
        (need_iso_fortran_binding): New function.
        (gfc_dump_c_prototypes): Adjust to take only a file output.  Add
        "#include <ISO_Fortran_binding.h" if CFI_cdesc_t is found.
        Traverse global namespaces to dump types and the globalsymol list
        to dump external symbols.
        (gfc_dump_external_c_prototypes): Traverse global namespaces.
        (get_c_type_name): Handle CFI_cdesc_t.
        (write_proc): Also pass array spec to get_c_type_name.
        * gfortran.h (gfc_dump_c_prototypes): Adjust prototype.
        * parse.cc (gfc_parse_file): Adjust call to gfc_dump_c_prototypes.


Regression-tested.  As for testcases... as the dump is to
standard output, I don't know how to do that. If anybody
has an idea, please let me know.

OK for trunk?

Best regards

        Thomas



Reply via email to