diff options
Diffstat (limited to 'src/vhdl/sem_inst.adb')
-rw-r--r-- | src/vhdl/sem_inst.adb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/vhdl/sem_inst.adb b/src/vhdl/sem_inst.adb index 029ec235d..e22f8e1d4 100644 --- a/src/vhdl/sem_inst.adb +++ b/src/vhdl/sem_inst.adb @@ -275,6 +275,12 @@ package body Sem_Inst is end if; when Attr_Chain => R := Instantiate_Iir_Chain (S); + when Attr_Maybe_Ref_Chain => + if Get_Is_Ref (N) then + R := Instantiate_Iir (S, True); + else + R := Instantiate_Iir_Chain (S); + end if; when Attr_Chain_Next => R := Null_Iir; when Attr_Of_Ref | Attr_Of_Maybe_Ref => @@ -733,6 +739,10 @@ package body Sem_Inst is end if; when Attr_Chain => Set_Instance_On_Chain (S, S_Inst); + when Attr_Maybe_Ref_Chain => + if not Get_Is_Ref (N) then + Set_Instance_On_Chain (S, S_Inst); + end if; when Attr_Chain_Next => null; when Attr_Of_Ref | Attr_Of_Maybe_Ref => @@ -1120,6 +1130,10 @@ package body Sem_Inst is end if; when Attr_Chain => Substitute_On_Chain (S, E, Rep); + when Attr_Maybe_Ref_Chain => + if not Get_Is_Ref (N) then + Substitute_On_Chain (S, E, Rep); + end if; when Attr_Chain_Next => null; when Attr_Of_Ref | Attr_Of_Maybe_Ref => |