On Wed, Jan 08, 2025 at 04:09:36PM +0100, Andre Vehreschild wrote:
> One of the issues are lines:
>
> module.cc 7125-7130: Here it is assumed that the signed and unsigned types are
> adjacent maybe?!
>
> I have changed this:
>
> diff --git a/gcc/fortran/module.cc b/gcc/fortran/module.cc
> index c4312b641c1..05bc802957e 100644
> --- a/gcc/fortran/module.cc
> +++ b/gcc/fortran/module.cc
> @@ -7113,8 +7113,8 @@ use_iso_fortran_env_module (void)
> int i, j;
>
> intmod_sym symbol[] = {
> -#define NAMED_INTCST(a,b,c,d) { a, b, 0, d },
> -#define NAMED_UINTCST(a,b,c,d) { a, b, 0, d },
> +#define NAMED_INTCST(a, b, c, d) {a, b, c, d},
> +#define NAMED_UINTCST(a, b, c, d) {a, b, c, d},
> #define NAMED_KINDARRAY(a,b,c,d) { a, b, 0, d },
> #define NAMED_DERIVED_TYPE(a,b,c,d) { a, b, 0, d },
> #define NAMED_FUNCTION(a,b,c,d) { a, b, c, d },
> @@ -7122,12 +7122,12 @@ use_iso_fortran_env_module (void)
> #include "iso-fortran-env.def"
> { ISOFORTRANENV_INVALID, NULL, -1234, 0 } };
>
> - i = 0;
> -#define NAMED_INTCST(a,b,c,d) symbol[i++].value = c;
> -#include "iso-fortran-env.def"
> + // i = 0;
> + // #define NAMED_INTCST(a,b,c,d) symbol[i++].value = c;
> + // #include "iso-fortran-env.def"
>
> -#define NAMED_UINTCST(a,b,c,d) symbol[i++].value = c;
> -#include "iso-fortran-env.def"
> + // #define NAMED_UINTCST(a,b,c,d) symbol[i++].value = c;
> + // #include "iso-fortran-env.def"
>
> /* Generate the symbol for the module itself. */
> mod_symtree = gfc_find_symtree (gfc_current_ns->sym_root, mod);
>
>
> And at least iso_fortran_env_8.f90 does not fail anymore.
I'm testing for that instead:
--- gcc/module.cc.jj 2025-01-08 15:23:54.511732946 +0100
+++ gcc/module.cc 2025-01-08 16:32:14.963984426 +0100
@@ -7122,9 +7122,11 @@ use_iso_fortran_env_module (void)
i = 0;
#define NAMED_INTCST(a,b,c,d) symbol[i++].value = c;
-#include "iso-fortran-env.def"
-
#define NAMED_UINTCST(a,b,c,d) symbol[i++].value = c;
+#define NAMED_KINDARRAY(a,b,c,d) i++;
+#define NAMED_DERIVED_TYPE(a,b,c,d) i++;
+#define NAMED_FUNCTION(a,b,c,d) i++;
+#define NAMED_SUBROUTINE(a,b,c,d) i++;
#include "iso-fortran-env.def"
/* Generate the symbol for the module itself. */
Jakub