On 1/15/25 1:13 PM, Thomas Koenig wrote:
Am 09.01.25 um 14:36 schrieb Thomas Koenig:
Am 09.01.25 um 14:34 schrieb Thomas Koenig:
This patch fixes and reorganizes dumping C prototypes.

And here is the "five seconds later, I realized I had forgotten
to attach the patch" e-mail...

... with the original text:

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


Yes I think this is OK, a definite improvement.

Regards,

Jerry

Reply via email to