This patch fixes an incorrect syntax error. In particular, in an example like the following:
procedure Main is procedure Imported with Import; begin null; end; where there is a subprogram declaration with an Import aspect specification, and the declaration is indented the same as a following "begin", the compiler was giving incorrect syntax errors: main.adb:2:31: ";" should be "is" main.adb:5:01: "end Imported;" expected main.adb:5:01: missing "begin" for procedure "Main" at line 1 The problem was that the mechanisms described under "Handling Semicolon Used in Place of IS" in par.adb were not updated to handle Import aspect. Tested on x86_64-pc-linux-gnu, committed on trunk 2019-12-16 Bob Duff <d...@adacore.com> gcc/ada/ * par.adb: Add Scopes function to do range checking on the scope stack. Call Scopes all over the parser. Add SIS_Aspect_Import_Seen flag. * par-ch6.adb (P_Subprogram): Initialize SIS_Aspect_Import_Seen to False at the start, and check it at the end. * par-ch13.adb (Get_Aspect_Specifications): Set SIS_Aspect_Import_Seen to True when appropriate. * par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb, par-ch5.adb, par-ch7.adb, par-ch9.adb, par-endh.adb, par-util.adb: Call Scopes.
patch.diff.gz
Description: application/gzip