https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70913
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC|anlauf at gmx dot de | --- Comment #8 from anlauf at gcc dot gnu.org --- Splitting declaration and initialization of b, we get the expected error: program p implicit none character :: a = 'a' character :: b(1) data b(1) / 'b' / equivalence (a, b(1)) end pr70913-c8.f90:6:17: 6 | equivalence (a, b(1)) | 1 Error: Overlapping unequal initializers in EQUIVALENCE at (1) Running under gdb, we seem to enter expr_to_char with exprs for b which look rather different (rank, character length). The real issue is likely elsewhere.