aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/decl.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/decl.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/decl.c')
-rw-r--r--gcc/fortran/decl.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index bd31070..54ee5d3 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -2631,6 +2631,8 @@ kind_expr:
of the named constants from iso_c_binding. */
ts->is_c_interop = e->ts.is_iso_c;
ts->f90_type = e->ts.f90_type;
+ if (e->symtree)
+ ts->interop_kind = e->symtree->n.sym;
}
gfc_free_expr (e);