https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124369
--- Comment #3 from Liam Powell <liam at liampwll dot com> --- Note the loop is not required. This was just a way to get the program to show erroneous execution. Replacing the loop with a begin/end will lead to the program being correctly rejected as only the first scope is skipped. The function is required, just a plain assignment will cause the error to be correctly flagged.
