aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/parse.c
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2017-08-01 17:59:11 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2017-08-01 17:59:11 +0000
commite655a6cc43e880b291b726394c1c6be6db461e89 (patch)
treeae5f1937db6ee534a99d8620aff5982d4785e186 /gcc/fortran/parse.c
parent5cada901b548a5b02e18fe5d5d074c5d100a406d (diff)
downloadgcc-e655a6cc43e880b291b726394c1c6be6db461e89.zip
gcc-e655a6cc43e880b291b726394c1c6be6db461e89.tar.gz
gcc-e655a6cc43e880b291b726394c1c6be6db461e89.tar.bz2
re PR fortran/45435 (Automatically generate C interop interface blocks from C code)
2017-08-01 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/45435 * lang.opt (fc-prototypes): Add option. * gfortran.h (gfc_typespec): Add interop_kind to struct. (gfc_dump_c_prototypes): Add prototype. * decl.c (gfc_match_kind_spec): Copy symbol used for kind to typespec. * parse.c (gfc_parse_file): Call gfc_dump_prototypes. * dump-parse-tree.c (gfc_dump_c_prototypes): New function. (type_return): New enum. (get_c_type_name): New function. (write_decl): New function. (write_type): New function. (write_variable): New function. (write_proc): New function. (write_interop_decl): New function. * invoke.texi: Document -fc-prototypes. From-SVN: r250791
Diffstat (limited to 'gcc/fortran/parse.c')
-rw-r--r--gcc/fortran/parse.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index 305a036..9ac50f0 100644
--- a/gcc/fortran/parse.c
+++ b/gcc/fortran/parse.c
@@ -6218,6 +6218,9 @@ loop:
if (flag_dump_fortran_original)
gfc_dump_parse_tree (gfc_current_ns, stdout);
+ if (flag_c_prototypes)
+ gfc_dump_c_prototypes (gfc_current_ns, stdout);
+
gfc_get_errors (NULL, &errors);
if (s.state == COMP_MODULE || s.state == COMP_SUBMODULE)
{