aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-vhdl_expr.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-12-26 16:02:25 +0100
committerTristan Gingold <tgingold@free.fr>2022-12-26 17:33:38 +0100
commitb458a7644447bb440ce4be6aa8458c71d54d8044 (patch)
treec4d534519515a8f0f6d9223a6e614199980ae008 /src/synth/synth-vhdl_expr.adb
parent46f5ed830772009e7b6c82ee98a5a16b6ea97da0 (diff)
downloadghdl-b458a7644447bb440ce4be6aa8458c71d54d8044.tar.gz
ghdl-b458a7644447bb440ce4be6aa8458c71d54d8044.tar.bz2
ghdl-b458a7644447bb440ce4be6aa8458c71d54d8044.zip
synth: handle instance_name attribute
Diffstat (limited to 'src/synth/synth-vhdl_expr.adb')
-rw-r--r--src/synth/synth-vhdl_expr.adb12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/synth/synth-vhdl_expr.adb b/src/synth/synth-vhdl_expr.adb
index 83aecb420..c701be7c2 100644
--- a/src/synth/synth-vhdl_expr.adb
+++ b/src/synth/synth-vhdl_expr.adb
@@ -2367,9 +2367,15 @@ package body Synth.Vhdl_Expr is
return Elab.Vhdl_Expr.Exec_Value_Attribute (Syn_Inst, Expr);
when Iir_Kind_Image_Attribute =>
return Elab.Vhdl_Expr.Exec_Image_Attribute (Syn_Inst, Expr);
- when Iir_Kind_Instance_Name_Attribute =>
- return Elab.Vhdl_Expr.Exec_Instance_Name_Attribute
- (Syn_Inst, Expr);
+ when Iir_Kind_Path_Name_Attribute
+ | Iir_Kind_Instance_Name_Attribute =>
+ declare
+ Mt : Memtyp;
+ begin
+ Mt := Elab.Vhdl_Expr.Exec_Path_Instance_Name_Attribute
+ (Syn_Inst, Expr);
+ return Create_Value_Memtyp (Mt);
+ end;
when Iir_Kind_Null_Literal =>
return Create_Value_Access (Null_Heap_Index, Expr_Type);
when Iir_Kind_Allocator_By_Subtype =>