]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix fc-prototypes usage with C_INT64_T and non LP64 Targets.
authorAndrew Pinski <apinski@marvell.com>
Wed, 29 Mar 2023 21:34:30 +0000 (21:34 +0000)
committerAndrew Pinski <apinski@marvell.com>
Thu, 30 Mar 2023 03:49:14 +0000 (20:49 -0700)
The problem here is we were outputing long_long instead of
"long long". This was just an oversight and a missing check.

Committed as obvious after a bootstrap/test on x86_64-linux-gnu.

gcc/fortran/ChangeLog:

* dump-parse-tree.cc (get_c_type_name): Fix "long_long"
type name to be "long long". Add a comment on why adding
2 to the name too.

gcc/fortran/dump-parse-tree.cc

index 3b24bdc1a6c76ef34001cf335f88668475084472..f4490da6a198511607d3c7a5b66b0cb27640251a 100644 (file)
@@ -3696,7 +3696,10 @@ get_c_type_name (gfc_typespec *ts, gfc_array_spec *as, const char **pre,
          if (c_interop_kinds_table[i].f90_type == ts->type
              && c_interop_kinds_table[i].value == ts->kind)
            {
+             /* Skip over 'c_'. */
              *type_name = c_interop_kinds_table[i].name + 2;
+             if (strcmp (*type_name, "long_long") == 0)
+               *type_name = "long long";
              if (strcmp (*type_name, "signed_char") == 0)
                *type_name = "signed char";
              else if (strcmp (*type_name, "size_t") == 0)