diff options
author | Janne Blomqvist <jb@gcc.gnu.org> | 2019-05-12 11:26:18 +0300 |
---|---|---|
committer | Janne Blomqvist <jb@gcc.gnu.org> | 2019-05-12 11:26:18 +0300 |
commit | 4c0164573e213045052ca6bc3113d7d63cf62816 (patch) | |
tree | 99ca3a0763fbd7cf9794ed6e1f3e21c43d3e7968 /gcc/fortran/dump-parse-tree.c | |
parent | 1fa26ccd67ea2b458f4fb9ba8779c11059353d0f (diff) | |
download | gcc-4c0164573e213045052ca6bc3113d7d63cf62816.zip gcc-4c0164573e213045052ca6bc3113d7d63cf62816.tar.gz gcc-4c0164573e213045052ca6bc3113d7d63cf62816.tar.bz2 |
fortran: C++ support for generating C prototypes
When generating C prototypes for Fortran procedures with the
-fc-prototypes and -fc-prototypes-external options, print a snippet
defining macros for complex types, and add C++ support by suppressing
mangling.
fortran/ChangeLog:
2019-05-12 Janne Blomqvist <jb@gcc.gnu.org>
* dump-parse-tree.c (get_c_type_name): Use macros for complex type
names.
* parse.c (gfc_parse_file): Define complex macros, add CPP support
when printing C prototypes.
From-SVN: r271106
Diffstat (limited to 'gcc/fortran/dump-parse-tree.c')
-rw-r--r-- | gcc/fortran/dump-parse-tree.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c index 54af5df..41b2c88 100644 --- a/gcc/fortran/dump-parse-tree.c +++ b/gcc/fortran/dump-parse-tree.c @@ -3143,11 +3143,11 @@ get_c_type_name (gfc_typespec *ts, gfc_array_spec *as, const char **pre, else if (strcmp (*type_name, "size_t") == 0) *type_name = "ssize_t"; else if (strcmp (*type_name, "float_complex") == 0) - *type_name = "float complex"; + *type_name = "__GFORTRAN_FLOAT_COMPLEX"; else if (strcmp (*type_name, "double_complex") == 0) - *type_name = "double complex"; + *type_name = "__GFORTRAN_DOUBLE_COMPLEX"; else if (strcmp (*type_name, "long_double_complex") == 0) - *type_name = "long double complex"; + *type_name = "__GFORTRAN_LONG_DOUBLE_COMPLEX"; ret = T_OK; } @@ -3166,11 +3166,11 @@ get_c_type_name (gfc_typespec *ts, gfc_array_spec *as, const char **pre, else if (strcmp (*type_name, "size_t") == 0) *type_name = "ssize_t"; else if (strcmp (*type_name, "float_complex") == 0) - *type_name = "float complex"; + *type_name = "__GFORTRAN_FLOAT_COMPLEX"; else if (strcmp (*type_name, "double_complex") == 0) - *type_name = "double complex"; + *type_name = "__GFORTRAN_DOUBLE_COMPLEX"; else if (strcmp (*type_name, "long_double_complex") == 0) - *type_name = "long double complex"; + *type_name = "__GFORTRAN_LONG_DOUBLE_COMPLEX"; ret = T_WARN; break; |