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