Am 11.01.25 um 18:32 schrieb Jerry D:
The attached patch is the latest clean build and test run I can come up
with. I completely cannot understand why moving the forall_iterator from
the sub-structure 'concur' back to where it was at the 'ext' sub-
structure of typedef struct gfc_code. 'ext' is a union. I suspected
there is an overlap going on there such that something is getting
overwritten or optimized away. I am unable to find the culprit.
One possibility of checking that is to make the union into a struct
and see if anything wrong is left somewhere. If the handling
of the union is clean otherwise, there should not be any problem.
Hmm... I just ran a regression test with
diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h
index aa495b5487e..554ad5da16d 100644
--- a/gcc/fortran/gfortran.h
+++ b/gcc/fortran/gfortran.h
@@ -3125,7 +3125,7 @@ typedef struct gfc_code
gfc_symbol *resolved_sym;
gfc_intrinsic_sym *resolved_isym;
- union
+ struct
{
gfc_actual_arglist *actual;
gfc_iterator *iterator;
and this turned out anything but clean, there are quite a few
test cases segfaulting, possibly because of aliasing in the
pointers pointing to different I/O structures. This is now
PR 118432.
Best regards
Thomas