1
- with Sem_Util ; use Sem_Util;
2
1
with Namet ; use Namet;
3
2
with Nlists ; use Nlists;
4
3
with Aspects ; use Aspects;
@@ -135,6 +134,7 @@ package body GOTO_Utils is
135
134
Object_Symbol.SymType := Object_Type;
136
135
Object_Symbol.Mode := Intern (" C" );
137
136
Object_Symbol.Value := Object_Init_Value;
137
+ Object_Symbol.IsLValue := True;
138
138
139
139
A_Symbol_Table.Insert (Object_Name, Object_Symbol);
140
140
end New_Object_Symbol_Entry ;
@@ -155,52 +155,51 @@ package body GOTO_Utils is
155
155
A_Symbol_Table.Insert (Subprog_Name, Subprog_Symbol);
156
156
end New_Subprogram_Symbol_Entry ;
157
157
158
- procedure New_Type_Symbol_Entry (Type_Name : String; Type_Type : Irep;
158
+ procedure New_Type_Symbol_Entry (Type_Name : Symbol_Id; Type_Of_Type : Irep;
159
159
A_Symbol_Table : in out Symbol_Table) is
160
160
Type_Symbol : Symbol;
161
161
begin
162
- Type_Symbol.SymType := Type_Type ;
162
+ Type_Symbol.SymType := Type_Of_Type ;
163
163
Type_Symbol.IsType := True;
164
- Type_Symbol.Name := Intern ( Type_Name) ;
165
- Type_Symbol.PrettyName := Intern ( Type_Name) ;
166
- Type_Symbol.BaseName := Intern ( Type_Name) ;
164
+ Type_Symbol.Name := Type_Name;
165
+ Type_Symbol.PrettyName := Type_Name;
166
+ Type_Symbol.BaseName := Type_Name;
167
167
Type_Symbol.Mode := Intern (" C" );
168
168
169
- A_Symbol_Table.Insert (Intern ( Type_Name) , Type_Symbol);
169
+ A_Symbol_Table.Insert (Type_Name, Type_Symbol);
170
170
end New_Type_Symbol_Entry ;
171
171
172
- procedure New_Constant_Symbol_Entry (N : Node_Id;
173
- A_Symbol_Table : in out Symbol_Table) is
174
- Constant_Name : constant Symbol_Id :=
175
- Intern (Unique_Name (Defining_Identifier (N)));
176
- Constant_Symbol : Symbol;
177
- begin
178
- Constant_Symbol.Name := Constant_Name;
179
- Constant_Symbol.BaseName := Constant_Name;
180
- Constant_Symbol.PrettyName := Constant_Name;
181
- Constant_Symbol.SymType := Make_Nil (Sloc (N));
182
- Constant_Symbol.Mode := Intern (" C" );
183
- Constant_Symbol.Value := Make_Nil (Sloc (N));
184
-
185
- A_Symbol_Table.Insert (Constant_Name, Constant_Symbol);
186
- end New_Constant_Symbol_Entry ;
187
-
188
- procedure New_Member_Symbol_Entry (Member_Name : String; Base_Name : String;
189
- Enum_Type : Irep; Value_Expr : Irep;
190
- A_Symbol_Table : in out Symbol_Table) is
172
+ procedure New_Valueless_Object_Symbol_Entry (Constant_Name : Symbol_Id;
173
+ A_Symbol_Table : in out Symbol_Table)
174
+ is
175
+ Object_Symbol : Symbol;
176
+ begin
177
+ Object_Symbol.Name := Constant_Name;
178
+ Object_Symbol.BaseName := Constant_Name;
179
+ Object_Symbol.PrettyName := Constant_Name;
180
+ Object_Symbol.SymType := Make_Nil (No_Location);
181
+ Object_Symbol.Mode := Intern (" C" );
182
+ Object_Symbol.Value := Make_Nil (No_Location);
183
+
184
+ A_Symbol_Table.Insert (Constant_Name, Object_Symbol);
185
+ end New_Valueless_Object_Symbol_Entry ;
186
+
187
+ procedure New_Enum_Member_Symbol_Entry (
188
+ Member_Name : Symbol_Id; Base_Name : Symbol_Id; Enum_Type : Irep;
189
+ Value_Expr : Irep; A_Symbol_Table : in out Symbol_Table) is
191
190
Member_Symbol : Symbol;
192
191
begin
193
- Member_Symbol.Name := Intern ( Member_Name) ;
194
- Member_Symbol.PrettyName := Intern ( Base_Name) ;
195
- Member_Symbol.BaseName := Intern ( Base_Name) ;
192
+ Member_Symbol.Name := Member_Name;
193
+ Member_Symbol.PrettyName := Base_Name;
194
+ Member_Symbol.BaseName := Base_Name;
196
195
Member_Symbol.Mode := Intern (" C" );
197
196
Member_Symbol.IsStaticLifetime := True;
198
197
Member_Symbol.IsStateVar := True;
199
198
Member_Symbol.SymType := Enum_Type;
200
199
Member_Symbol.Value := Value_Expr;
201
200
202
201
A_Symbol_Table.Insert (Member_Symbol.Name, Member_Symbol);
203
- end New_Member_Symbol_Entry ;
202
+ end New_Enum_Member_Symbol_Entry ;
204
203
205
204
-- ------------------------------
206
205
-- New_Parameter_Symbol_Entry --
0 commit comments