aboutsummaryrefslogtreecommitdiffstats
path: root/translate
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2014-06-24 22:09:22 +0200
committerTristan Gingold <tgingold@free.fr>2014-06-24 22:09:22 +0200
commit8b3ec6b7edf3aedbe7084609881571d1603e9621 (patch)
treede07a6cefc5f9ea045a7df4390cb95a829bddcd5 /translate
parent43c5002a7838d2b721f0b5d373ad6769293dbd6e (diff)
downloadghdl-8b3ec6b7edf3aedbe7084609881571d1603e9621.tar.gz
ghdl-8b3ec6b7edf3aedbe7084609881571d1603e9621.tar.bz2
ghdl-8b3ec6b7edf3aedbe7084609881571d1603e9621.zip
Use library unit instead of design unit.
Diffstat (limited to 'translate')
-rw-r--r--translate/trans_be.adb2
-rw-r--r--translate/translation.adb25
2 files changed, 11 insertions, 16 deletions
diff --git a/translate/trans_be.adb b/translate/trans_be.adb
index 80b468996..af14402eb 100644
--- a/translate/trans_be.adb
+++ b/translate/trans_be.adb
@@ -135,7 +135,7 @@ package body Trans_Be is
pragma Unreferenced (Fi);
begin
case Get_Kind (Decl) is
- when Iir_Kind_Design_Unit =>
+ when Iir_Kind_Architecture_Declaration =>
Error_Msg_Sem ("FOREIGN architectures are not yet handled", Decl);
when Iir_Kind_Procedure_Declaration
| Iir_Kind_Function_Declaration =>
diff --git a/translate/translation.adb b/translate/translation.adb
index 1284bad2e..815db0d17 100644
--- a/translate/translation.adb
+++ b/translate/translation.adb
@@ -22982,17 +22982,16 @@ package body Translation is
-- binding aspect.
case Get_Kind (Aspect) is
when Iir_Kind_Entity_Aspect_Entity =>
- Entity_Unit := Get_Entity (Aspect);
+ Entity := Get_Entity (Aspect);
Arch := Get_Architecture (Aspect);
if Flags.Flag_Elaborate and then Arch = Null_Iir then
-- This is valid only during elaboration.
- Arch := Libraries.Get_Latest_Architecture
- (Get_Library_Unit (Entity_Unit));
+ Arch := Libraries.Get_Latest_Architecture (Entity);
end if;
Config := Null_Iir;
when Iir_Kind_Entity_Aspect_Configuration =>
- Config := Get_Library_Unit (Get_Configuration (Aspect));
- Entity_Unit := Get_Entity (Config);
+ Config := Get_Configuration (Aspect);
+ Entity := Get_Entity (Config);
Arch := Get_Block_Specification
(Get_Block_Configuration (Config));
when Iir_Kind_Entity_Aspect_Open =>
@@ -23000,7 +22999,7 @@ package body Translation is
when others =>
Error_Kind ("translate_entity_instantiation", Aspect);
end case;
- Entity := Get_Library_Unit (Entity_Unit);
+ Entity_Unit := Get_Design_Unit (Entity);
Entity_Info := Get_Info (Entity);
if Config_Override /= Null_Iir then
Config := Config_Override;
@@ -27364,18 +27363,15 @@ package body Translation is
Val := New_Rti_Address (Get_Info (Inst).Comp_Rti_Const);
when Iir_Kind_Entity_Aspect_Entity =>
declare
- Ent : Iir;
+ Ent : constant Iir := Get_Entity (Inst);
begin
- Ent := Get_Library_Unit (Get_Entity (Inst));
Val := New_Rti_Address (Get_Info (Ent).Block_Rti_Const);
end;
when Iir_Kind_Entity_Aspect_Configuration =>
declare
- Config : Iir;
- Ent : Iir;
+ Config : constant Iir := Get_Configuration (Inst);
+ Ent : constant Iir := Get_Entity (Config);
begin
- Config := Get_Library_Unit (Get_Configuration (Inst));
- Ent := Get_Library_Unit (Get_Entity (Config));
Val := New_Rti_Address (Get_Info (Ent).Block_Rti_Const);
end;
when others =>
@@ -28077,10 +28073,9 @@ package body Translation is
Mark_Arch : Id_Mark_Type;
Mark_Sep : Id_Mark_Type;
Arch : Iir;
- Entity : Iir;
+ Entity : constant Iir := Get_Entity (El);
begin
-- Note: this is done inside the architecture identifier.
- Entity := Get_Library_Unit (Get_Entity (El));
Push_Identifier_Prefix
(Mark_Entity, Get_Identifier (Entity));
Arch := Get_Block_Specification
@@ -30134,7 +30129,7 @@ package body Translation is
return;
end if;
Config_Lib := Get_Library_Unit (Config);
- Entity := Get_Library_Unit (Get_Entity (Config_Lib));
+ Entity := Get_Entity (Config_Lib);
Arch := Get_Block_Specification
(Get_Block_Configuration (Config_Lib));