Dear Fortranners, when debugging the testcase, I noticed that a coarray declaration in a COMMON statement wrongly set the dimension attribute instead of the codimension. As a consequence, subsequent checks that catch this invalid situation would not trigger. I see two possible solutions: - in gfc_match_common, replace /* Deal with an optional array specification after the symbol name. */ m = gfc_match_array_spec (&as, true, true); by m = gfc_match_array_spec (&as, true, false); which in turn would lead to a syntax error. Interestingly, the Intel compiler also takes this route and gives a syntax error. - check the resulting as->corank and emit an error as in the attached patch. The attached patch regtests fine on x86_64-pc-linux-gnu. OK for mainline? Thanks, Harald