summaryrefslogtreecommitdiff
path: root/src/vhdl
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl')
-rw-r--r--src/vhdl/translate/trans-chap9.adb8
-rw-r--r--src/vhdl/translate/trans.adb8
-rw-r--r--src/vhdl/translate/trans.ads8
3 files changed, 20 insertions, 4 deletions
diff --git a/src/vhdl/translate/trans-chap9.adb b/src/vhdl/translate/trans-chap9.adb
index f6ee22b..146bb81 100644
--- a/src/vhdl/translate/trans-chap9.adb
+++ b/src/vhdl/translate/trans-chap9.adb
@@ -1420,15 +1420,17 @@ package body Trans.Chap9 is
function Get_Arch_Name return String is
begin
if Arch /= Null_Iir then
- return "ARCH__" & Image_Identifier (Arch);
+ return "ARCH__" & Identifier_To_String (Arch);
else
return "LASTARCH";
end if;
end Get_Arch_Name;
+ Entity_Library : constant Iir :=
+ Get_Library (Get_Design_File (Entity_Unit));
Str : constant String :=
- Image_Identifier (Get_Library (Get_Design_File (Entity_Unit)))
- & "__" & Image_Identifier (Entity) & "__"
+ Identifier_To_String (Entity_Library) & "__"
+ & Identifier_To_String (Entity) & "__"
& Get_Arch_Name & "__";
Sub_Inter : O_Inter_List;
Arg : O_Dnode;
diff --git a/src/vhdl/translate/trans.adb b/src/vhdl/translate/trans.adb
index a79898c..dbf1696 100644
--- a/src/vhdl/translate/trans.adb
+++ b/src/vhdl/translate/trans.adb
@@ -733,6 +733,14 @@ package body Trans is
Nam_Length := N_Len + 2;
end Name_Id_To_String;
+ function Identifier_To_String (N : Iir) return String
+ is
+ use Name_Table;
+ begin
+ Name_Id_To_String (Get_Identifier (N));
+ return Nam_Buffer (1 .. Nam_Length);
+ end Identifier_To_String;
+
procedure Add_Name (Len : in out Natural; Name : Name_Id)
is
use Name_Table;
diff --git a/src/vhdl/translate/trans.ads b/src/vhdl/translate/trans.ads
index dd1e508..a97dcf7 100644
--- a/src/vhdl/translate/trans.ads
+++ b/src/vhdl/translate/trans.ads
@@ -408,7 +408,13 @@ package Trans is
-- Create a copy of SCOPE using instantiated scope (if needed).
function Instantiate_Var_Scope (Scope : Var_Scope_Type)
- return Var_Scope_Type;
+ return Var_Scope_Type;
+
+ -- Utility function: convert identifier of N to a string, encoding
+ -- extended characters in extended identifiers (this is different from
+ -- image_identifier that simply returns the identifier, without special
+ -- handling of extended identifiers).
+ function Identifier_To_String (N : Iir) return String;
private
type Local_Identifier_Type is new Natural;
type Id_Mark_Type is record