aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2023-02-04 09:56:07 +0100
committerTristan Gingold <tgingold@free.fr>2023-02-04 09:56:07 +0100
commitcc98c151058602f0ee00d4d05aeaabde500bd88e (patch)
tree0482948ac1e46266441261feb49e4b9f40be1b7c /src
parentbf58e603c2bfc27e67c651df74e38d02cfb65e20 (diff)
downloadghdl-cc98c151058602f0ee00d4d05aeaabde500bd88e.tar.gz
ghdl-cc98c151058602f0ee00d4d05aeaabde500bd88e.tar.bz2
ghdl-cc98c151058602f0ee00d4d05aeaabde500bd88e.zip
translate: add --no-elaboration flag
Diffstat (limited to 'src')
-rw-r--r--src/vhdl/translate/trans-chap2.adb2
-rw-r--r--src/vhdl/translate/trans-chap9.adb2
-rw-r--r--src/vhdl/translate/trans.adb5
-rw-r--r--src/vhdl/translate/trans.ads1
-rw-r--r--src/vhdl/translate/translation.adb2
5 files changed, 10 insertions, 2 deletions
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;