aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/sem_names.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/sem_names.adb')
-rw-r--r--src/vhdl/sem_names.adb22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/vhdl/sem_names.adb b/src/vhdl/sem_names.adb
index 45c5638ca..dd2851899 100644
--- a/src/vhdl/sem_names.adb
+++ b/src/vhdl/sem_names.adb
@@ -3578,15 +3578,19 @@ package body Sem_Names is
case Get_Identifier (Attr) is
when Name_Simple_Name =>
- Res := Create_Iir (Iir_Kind_Simple_Name_Attribute);
- Eval_Simple_Name (Get_Identifier (Prefix));
- Set_Simple_Name_Identifier (Res, Name_Table.Get_Identifier);
- Attr_Type := Create_Unidim_Array_By_Length
- (String_Type_Definition,
- Iir_Int64 (Name_Table.Nam_Length),
- Attr);
- Set_Simple_Name_Subtype (Res, Attr_Type);
- Set_Expr_Staticness (Res, Locally);
+ declare
+ Id : constant Name_Id := Name_Table.Get_Identifier
+ (Eval_Simple_Name (Get_Identifier (Prefix)));
+ begin
+ Res := Create_Iir (Iir_Kind_Simple_Name_Attribute);
+ Set_Simple_Name_Identifier (Res, Id);
+ Attr_Type := Create_Unidim_Array_By_Length
+ (String_Type_Definition,
+ Iir_Int64 (Name_Table.Get_Name_Length (Id)),
+ Attr);
+ Set_Simple_Name_Subtype (Res, Attr_Type);
+ Set_Expr_Staticness (Res, Locally);
+ end;
when Name_Path_Name =>
Res := Create_Iir (Iir_Kind_Path_Name_Attribute);