Skip to content

Commit e5dfde8

Browse files
committed
Extract subprogram symbol entry
into a wrapper.
1 parent bede848 commit e5dfde8

File tree

3 files changed

+25
-11
lines changed

3 files changed

+25
-11
lines changed

gnat2goto/driver/goto_utils.adb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,22 @@ package body GOTO_Utils is
121121
return Ret;
122122
end Symbol_Expr;
123123

124+
procedure New_Subprogram_Symbol_Entry (Subprog_Name : Symbol_Id;
125+
Subprog_Type : Irep;
126+
A_Symbol_Table : in out Symbol_Table)
127+
is
128+
Subprog_Symbol : Symbol;
129+
begin
130+
Subprog_Symbol.Name := Subprog_Name;
131+
Subprog_Symbol.BaseName := Subprog_Name;
132+
Subprog_Symbol.PrettyName := Subprog_Name;
133+
Subprog_Symbol.SymType := Subprog_Type;
134+
Subprog_Symbol.Mode := Intern ("C");
135+
Subprog_Symbol.Value := Make_Nil (No_Location);
136+
137+
A_Symbol_Table.Insert (Subprog_Name, Subprog_Symbol);
138+
end New_Subprogram_Symbol_Entry;
139+
124140
procedure New_Type_Symbol_Entry (Type_Name : Symbol_Id; Type_Of_Type : Irep;
125141
A_Symbol_Table : in out Symbol_Table) is
126142
Type_Symbol : Symbol;

gnat2goto/driver/goto_utils.ads

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ package GOTO_Utils is
4141
function Symbol_Expr (Sym : Symbol) return Irep
4242
with Post => Kind (Symbol_Expr'Result) = I_Symbol_Expr;
4343

44+
procedure New_Subprogram_Symbol_Entry (Subprog_Name : Symbol_Id;
45+
Subprog_Type : Irep;
46+
A_Symbol_Table : in out Symbol_Table)
47+
with Pre => Kind (Subprog_Type) = I_Code_Type;
48+
-- Insert the subprogram specification into the symbol table
49+
4450
procedure New_Type_Symbol_Entry (Type_Name : Symbol_Id; Type_Of_Type : Irep;
4551
A_Symbol_Table : in out Symbol_Table)
4652
with Pre => Kind (Type_Of_Type) in Class_Type;

gnat2goto/driver/tree_walk.adb

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5280,18 +5280,10 @@ package body Tree_Walk is
52805280
Do_Subprogram_Specification (N);
52815281
Subprog_Name : constant Symbol_Id :=
52825282
Intern (Unique_Name (Defining_Unit_Name (N)));
5283-
5284-
Subprog_Symbol : Symbol;
5285-
52865283
begin
5287-
Subprog_Symbol.Name := Subprog_Name;
5288-
Subprog_Symbol.BaseName := Subprog_Name;
5289-
Subprog_Symbol.PrettyName := Subprog_Name;
5290-
Subprog_Symbol.SymType := Subprog_Type;
5291-
Subprog_Symbol.Mode := Intern ("C");
5292-
Subprog_Symbol.Value := Make_Nil (Sloc (N));
5293-
5294-
Global_Symbol_Table.Insert (Subprog_Name, Subprog_Symbol);
5284+
New_Subprogram_Symbol_Entry (Subprog_Name => Subprog_Name,
5285+
Subprog_Type => Subprog_Type,
5286+
A_Symbol_Table => Global_Symbol_Table);
52955287
end Register_Subprogram_Specification;
52965288

52975289
-------------------------------

0 commit comments

Comments
 (0)