diff options
Diffstat (limited to 'src/synth/elab-vhdl_decls.adb')
-rw-r--r-- | src/synth/elab-vhdl_decls.adb | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/synth/elab-vhdl_decls.adb b/src/synth/elab-vhdl_decls.adb index 5d5f38d25..7be65af08 100644 --- a/src/synth/elab-vhdl_decls.adb +++ b/src/synth/elab-vhdl_decls.adb @@ -350,7 +350,17 @@ package body Elab.Vhdl_Decls is when Iir_Kind_Attribute_Specification => Elab_Attribute_Specification (Syn_Inst, Decl); when Iir_Kind_Type_Declaration => - Elab_Type_Definition (Syn_Inst, Get_Type_Definition (Decl)); + declare + Incomp : constant Node := + Get_Incomplete_Type_Declaration (Decl); + Def : constant Node := Get_Type_Definition (Decl); + begin + Elab_Type_Definition (Syn_Inst, Def); + if Incomp /= Null_Node then + Elab_Incomplete_Type_Finish + (Syn_Inst, Get_Type_Definition (Incomp), Def); + end if; + end; when Iir_Kind_Anonymous_Type_Declaration => Elab_Anonymous_Type_Definition (Syn_Inst, Get_Type_Definition (Decl), |