summaryrefslogtreecommitdiff
path: root/gcc/ada/par-ch9.adb
diff options
context:
space:
mode:
authorBob Duff <duff@adacore.com>2019-12-16 10:34:22 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2019-12-16 10:34:22 +0000
commit0bba838d7f4e9b851416d463d077b28aff0b561f (patch)
tree0cf75e351f183df935e1cfbea6da0358164e9618 /gcc/ada/par-ch9.adb
parent17a98a3dbb7f4c0d9d734bbc8890d94daa2aa4c9 (diff)
downloadgcc-0bba838d7f4e9b851416d463d077b28aff0b561f.tar.gz
[Ada] Syntax error on improperly indented imported subprogram
2019-12-16 Bob Duff <duff@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. From-SVN: r279428
Diffstat (limited to 'gcc/ada/par-ch9.adb')
-rw-r--r--gcc/ada/par-ch9.adb54
1 files changed, 27 insertions, 27 deletions
diff --git a/gcc/ada/par-ch9.adb b/gcc/ada/par-ch9.adb
index 825dac112ce..d6c6dfc45e5 100644
--- a/gcc/ada/par-ch9.adb
+++ b/gcc/ada/par-ch9.adb
@@ -91,16 +91,16 @@ package body Ch9 is
begin
Push_Scope_Stack;
- Scope.Table (Scope.Last).Etyp := E_Name;
- Scope.Table (Scope.Last).Ecol := Start_Column;
- Scope.Table (Scope.Last).Sloc := Token_Ptr;
- Scope.Table (Scope.Last).Lreq := False;
+ Scopes (Scope.Last).Etyp := E_Name;
+ Scopes (Scope.Last).Ecol := Start_Column;
+ Scopes (Scope.Last).Sloc := Token_Ptr;
+ Scopes (Scope.Last).Lreq := False;
Task_Sloc := Prev_Token_Ptr;
if Token = Tok_Body then
Scan; -- past BODY
Name_Node := P_Defining_Identifier (C_Is);
- Scope.Table (Scope.Last).Labl := Name_Node;
+ Scopes (Scope.Last).Labl := Name_Node;
Current_Node := Name_Node;
if Token = Tok_Left_Paren then
@@ -168,7 +168,7 @@ package body Ch9 is
Task_Node := New_Node (N_Task_Type_Declaration, Task_Sloc);
Name_Node := P_Defining_Identifier;
Set_Defining_Identifier (Task_Node, Name_Node);
- Scope.Table (Scope.Last).Labl := Name_Node;
+ Scopes (Scope.Last).Labl := Name_Node;
Current_Node := Name_Node;
Set_Discriminant_Specifications
(Task_Node, P_Known_Discriminant_Part_Opt);
@@ -177,7 +177,7 @@ package body Ch9 is
Task_Node := New_Node (N_Single_Task_Declaration, Task_Sloc);
Name_Node := P_Defining_Identifier (C_Is);
Set_Defining_Identifier (Task_Node, Name_Node);
- Scope.Table (Scope.Last).Labl := Name_Node;
+ Scopes (Scope.Last).Labl := Name_Node;
Current_Node := Name_Node;
if Token = Tok_Left_Paren then
@@ -441,15 +441,15 @@ package body Ch9 is
begin
Push_Scope_Stack;
- Scope.Table (Scope.Last).Etyp := E_Name;
- Scope.Table (Scope.Last).Ecol := Start_Column;
- Scope.Table (Scope.Last).Lreq := False;
+ Scopes (Scope.Last).Etyp := E_Name;
+ Scopes (Scope.Last).Ecol := Start_Column;
+ Scopes (Scope.Last).Lreq := False;
Protected_Sloc := Prev_Token_Ptr;
if Token = Tok_Body then
Scan; -- past BODY
Name_Node := P_Defining_Identifier (C_Is);
- Scope.Table (Scope.Last).Labl := Name_Node;
+ Scopes (Scope.Last).Labl := Name_Node;
Current_Node := Name_Node;
if Token = Tok_Left_Paren then
@@ -504,7 +504,7 @@ package body Ch9 is
New_Node (N_Protected_Type_Declaration, Protected_Sloc);
Name_Node := P_Defining_Identifier (C_Is);
Set_Defining_Identifier (Protected_Node, Name_Node);
- Scope.Table (Scope.Last).Labl := Name_Node;
+ Scopes (Scope.Last).Labl := Name_Node;
Current_Node := Name_Node;
Set_Discriminant_Specifications
(Protected_Node, P_Known_Discriminant_Part_Opt);
@@ -521,7 +521,7 @@ package body Ch9 is
Discard_Junk_List (P_Known_Discriminant_Part_Opt);
end if;
- Scope.Table (Scope.Last).Labl := Name_Node;
+ Scopes (Scope.Last).Labl := Name_Node;
Current_Node := Name_Node;
end if;
@@ -1074,12 +1074,12 @@ package body Ch9 is
begin
Push_Scope_Stack;
- Scope.Table (Scope.Last).Sloc := Token_Ptr;
- Scope.Table (Scope.Last).Ecol := Start_Column;
+ Scopes (Scope.Last).Sloc := Token_Ptr;
+ Scopes (Scope.Last).Ecol := Start_Column;
Accept_Node := New_Node (N_Accept_Statement, Token_Ptr);
Scan; -- past ACCEPT
- Scope.Table (Scope.Last).Labl := Token_Node;
+ Scopes (Scope.Last).Labl := Token_Node;
Current_Node := Token_Node;
Set_Entry_Direct_Name (Accept_Node, P_Identifier (C_Do));
@@ -1123,8 +1123,8 @@ package body Ch9 is
-- Scan out DO if present
if Token = Tok_Do then
- Scope.Table (Scope.Last).Etyp := E_Name;
- Scope.Table (Scope.Last).Lreq := False;
+ Scopes (Scope.Last).Etyp := E_Name;
+ Scopes (Scope.Last).Lreq := False;
Scan; -- past DO
Hand_Seq := P_Handled_Sequence_Of_Statements;
Set_Handled_Statement_Sequence (Accept_Node, Hand_Seq);
@@ -1221,14 +1221,14 @@ package body Ch9 is
Entry_Node := New_Node (N_Entry_Body, Token_Ptr);
Scan; -- past ENTRY
- Scope.Table (Scope.Last).Ecol := Start_Column;
- Scope.Table (Scope.Last).Lreq := False;
- Scope.Table (Scope.Last).Etyp := E_Name;
- Scope.Table (Scope.Last).Sloc := Token_Ptr;
+ Scopes (Scope.Last).Ecol := Start_Column;
+ Scopes (Scope.Last).Lreq := False;
+ Scopes (Scope.Last).Etyp := E_Name;
+ Scopes (Scope.Last).Sloc := Token_Ptr;
Name_Node := P_Defining_Identifier;
Set_Defining_Identifier (Entry_Node, Name_Node);
- Scope.Table (Scope.Last).Labl := Name_Node;
+ Scopes (Scope.Last).Labl := Name_Node;
Current_Node := Name_Node;
Formal_Part_Node := P_Entry_Body_Formal_Part;
@@ -1521,10 +1521,10 @@ package body Ch9 is
begin
Push_Scope_Stack;
- Scope.Table (Scope.Last).Etyp := E_Select;
- Scope.Table (Scope.Last).Ecol := Start_Column;
- Scope.Table (Scope.Last).Sloc := Token_Ptr;
- Scope.Table (Scope.Last).Labl := Error;
+ Scopes (Scope.Last).Etyp := E_Select;
+ Scopes (Scope.Last).Ecol := Start_Column;
+ Scopes (Scope.Last).Sloc := Token_Ptr;
+ Scopes (Scope.Last).Labl := Error;
Select_Sloc := Token_Ptr;
Scan; -- past SELECT