===================================================================
@@ -3199,6 +3199,20 @@
if Token = Tok_When then
T_Comma;
+ -- A semicolon followed by "when" is probably meant to be a comma
+
+ elsif Token = Tok_Semicolon then
+ Save_Scan_State (Save_State);
+ Scan; -- past the semicolon
+
+ if Token /= Tok_When then
+ Restore_Scan_State (Save_State);
+ exit;
+ end if;
+
+ Error_Msg_SP -- CODEFIX
+ ("|"";"" should be "",""");
+
-- If comma/WHEN, skip comma and we have another alternative
elsif Token = Tok_Comma then