https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107721
--- Comment #6 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> --- I had to go back in the Standard to deepen my understanding. Yes simplifying it would help. I think what we need to do is acknowledge that we should match '(' and if found, recursively call the gfc_match_array_constructor and check for the closing ')' on the other end of it.