diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2017-08-01 17:59:11 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2017-08-01 17:59:11 +0000 |
commit | e655a6cc43e880b291b726394c1c6be6db461e89 (patch) | |
tree | ae5f1937db6ee534a99d8620aff5982d4785e186 /gcc/fortran/decl.c | |
parent | 5cada901b548a5b02e18fe5d5d074c5d100a406d (diff) | |
download | gcc-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.c | 2 |
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); |