From cc98c151058602f0ee00d4d05aeaabde500bd88e Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Sat, 4 Feb 2023 09:56:07 +0100 Subject: translate: add --no-elaboration flag --- src/vhdl/translate/trans-chap2.adb | 2 +- src/vhdl/translate/trans-chap9.adb | 2 +- src/vhdl/translate/trans.adb | 5 +++++ src/vhdl/translate/trans.ads | 1 + src/vhdl/translate/translation.adb | 2 ++ 5 files changed, 10 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/vhdl/translate/trans-chap2.adb b/src/vhdl/translate/trans-chap2.adb index 0ab31a3ee..c4bcc757f 100644 --- a/src/vhdl/translate/trans-chap2.adb +++ b/src/vhdl/translate/trans-chap2.adb @@ -1649,7 +1649,7 @@ package body Trans.Chap2 is Instantiate_Info_Package (Inst); - if Is_Nested_Package (Inst) then + if Is_Nested_Package (Inst) or else not Flag_Elaboration then return; end if; diff --git a/src/vhdl/translate/trans-chap9.adb b/src/vhdl/translate/trans-chap9.adb index 4e5b54023..04f98ed5f 100644 --- a/src/vhdl/translate/trans-chap9.adb +++ b/src/vhdl/translate/trans-chap9.adb @@ -272,7 +272,7 @@ package body Trans.Chap9 is procedure Translate_Process_Declarations (Proc : Iir) is Mark : Id_Mark_Type; - Info : Ortho_Info_Acc; + Info : Proc_Info_Acc; Drivers : Iir_List; It : List_Iterator; diff --git a/src/vhdl/translate/trans.adb b/src/vhdl/translate/trans.adb index f2744897c..a54ffb0f2 100644 --- a/src/vhdl/translate/trans.adb +++ b/src/vhdl/translate/trans.adb @@ -302,6 +302,11 @@ package body Trans is Set_Scope_Via_Field (Child, Field, Inst_Build.Scope); end Add_Scope_Field; + function Get_Scope_Field (Child : Var_Scope_Type) return O_Fnode is + begin + return Child.Field; + end Get_Scope_Field; + function Get_Scope_Offset (Child : Var_Scope_Type; Otype : O_Tnode) return O_Cnode is begin diff --git a/src/vhdl/translate/trans.ads b/src/vhdl/translate/trans.ads index 68e3a79b8..8fa6dacee 100644 --- a/src/vhdl/translate/trans.ads +++ b/src/vhdl/translate/trans.ads @@ -289,6 +289,7 @@ package Trans is -- Return the offset of field for CHILD in its parent scope. function Get_Scope_Offset (Child : Var_Scope_Type; Otype : O_Tnode) return O_Cnode; + function Get_Scope_Field (Child : Var_Scope_Type) return O_Fnode; -- Finish the building of the current instance and return the type -- built. diff --git a/src/vhdl/translate/translation.adb b/src/vhdl/translate/translation.adb index b7c8eab00..76fa7a0b3 100644 --- a/src/vhdl/translate/translation.adb +++ b/src/vhdl/translate/translation.adb @@ -2110,6 +2110,8 @@ package body Translation is Translation.Flag_Index_Checks := False; elsif Opt = "--no-identifiers" then Translation.Flag_Discard_Identifiers := True; + elsif Opt = "--no-elaboration" then + Translation.Flag_Elaboration := False; else return False; end if; -- cgit v1.2.3