aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl')
-rw-r--r--src/vhdl/disp_tree.adb6
-rw-r--r--src/vhdl/iirs.adb26
-rw-r--r--src/vhdl/iirs.adb.in6
-rw-r--r--src/vhdl/iirs.ads6
-rw-r--r--src/vhdl/nodes_meta.adb42
-rw-r--r--src/vhdl/nodes_meta.ads10
-rw-r--r--src/vhdl/sem_inst.adb3
-rw-r--r--src/vhdl/translate/trans-chap2.adb3
8 files changed, 74 insertions, 28 deletions
diff --git a/src/vhdl/disp_tree.adb b/src/vhdl/disp_tree.adb
index 62fc3c4bf..34f31fe6d 100644
--- a/src/vhdl/disp_tree.adb
+++ b/src/vhdl/disp_tree.adb
@@ -289,6 +289,9 @@ package body Disp_Tree is
function Image_Time_Stamp_Id (Id : Time_Stamp_Id) return String
renames Files_Map.Get_Time_Stamp_String;
+ function Image_File_Checksum_Id (Id : File_Checksum_Id) return String
+ renames Files_Map.Get_File_Checksum_String;
+
function Image_Iir_Predefined_Functions (F : Iir_Predefined_Functions)
return String is
begin
@@ -467,6 +470,9 @@ package body Disp_Tree is
when Type_Time_Stamp_Id =>
Put_Line (Image_Time_Stamp_Id
(Get_Time_Stamp_Id (N, F)));
+ when Type_File_Checksum_Id =>
+ Put_Line (Image_File_Checksum_Id
+ (Get_File_Checksum_Id (N, F)));
when Type_Token_Type =>
Put_Line (Image_Token_Type (Get_Token_Type (N, F)));
when Type_Name_Id =>
diff --git a/src/vhdl/iirs.adb b/src/vhdl/iirs.adb
index 99b875610..9d056d7c1 100644
--- a/src/vhdl/iirs.adb
+++ b/src/vhdl/iirs.adb
@@ -141,6 +141,12 @@ package body Iirs is
function Iir_To_Time_Stamp_Id is new Ada.Unchecked_Conversion
(Source => Iir, Target => Time_Stamp_Id);
+ function File_Checksum_Id_To_Iir is new Ada.Unchecked_Conversion
+ (Source => File_Checksum_Id, Target => Iir);
+
+ function Iir_To_File_Checksum_Id is new Ada.Unchecked_Conversion
+ (Source => Iir, Target => File_Checksum_Id);
+
function Iir_To_Iir_List is new Ada.Unchecked_Conversion
(Source => Iir, Target => Iir_List);
function Iir_List_To_Iir is new Ada.Unchecked_Conversion
@@ -536,21 +542,21 @@ package body Iirs is
Set_Field1 (Design, Library);
end Set_Library_Declaration;
- function Get_File_Time_Stamp (Design : Iir) return Time_Stamp_Id is
+ function Get_File_Checksum (Design : Iir) return File_Checksum_Id is
begin
pragma Assert (Design /= Null_Iir);
- pragma Assert (Has_File_Time_Stamp (Get_Kind (Design)),
- "no field File_Time_Stamp");
- return Iir_To_Time_Stamp_Id (Get_Field4 (Design));
- end Get_File_Time_Stamp;
+ pragma Assert (Has_File_Checksum (Get_Kind (Design)),
+ "no field File_Checksum");
+ return Iir_To_File_Checksum_Id (Get_Field4 (Design));
+ end Get_File_Checksum;
- procedure Set_File_Time_Stamp (Design : Iir; Stamp : Time_Stamp_Id) is
+ procedure Set_File_Checksum (Design : Iir; Checksum : File_Checksum_Id) is
begin
pragma Assert (Design /= Null_Iir);
- pragma Assert (Has_File_Time_Stamp (Get_Kind (Design)),
- "no field File_Time_Stamp");
- Set_Field4 (Design, Time_Stamp_Id_To_Iir (Stamp));
- end Set_File_Time_Stamp;
+ pragma Assert (Has_File_Checksum (Get_Kind (Design)),
+ "no field File_Checksum");
+ Set_Field4 (Design, File_Checksum_Id_To_Iir (Checksum));
+ end Set_File_Checksum;
function Get_Analysis_Time_Stamp (Design : Iir) return Time_Stamp_Id is
begin
diff --git a/src/vhdl/iirs.adb.in b/src/vhdl/iirs.adb.in
index 481a35542..40c9d6802 100644
--- a/src/vhdl/iirs.adb.in
+++ b/src/vhdl/iirs.adb.in
@@ -141,6 +141,12 @@ package body Iirs is
function Iir_To_Time_Stamp_Id is new Ada.Unchecked_Conversion
(Source => Iir, Target => Time_Stamp_Id);
+ function File_Checksum_Id_To_Iir is new Ada.Unchecked_Conversion
+ (Source => File_Checksum_Id, Target => Iir);
+
+ function Iir_To_File_Checksum_Id is new Ada.Unchecked_Conversion
+ (Source => Iir, Target => File_Checksum_Id);
+
function Iir_To_Iir_List is new Ada.Unchecked_Conversion
(Source => Iir, Target => Iir_List);
function Iir_List_To_Iir is new Ada.Unchecked_Conversion
diff --git a/src/vhdl/iirs.ads b/src/vhdl/iirs.ads
index 75db32235..c8cc0f99c 100644
--- a/src/vhdl/iirs.ads
+++ b/src/vhdl/iirs.ads
@@ -173,7 +173,7 @@ package Iirs is
-- analysis and detecting obsolete units across libraries.
-- Get/Set_Analysis_Time_Stamp (Field3)
--
- -- Get/Set_File_Time_Stamp (Field4)
+ -- Get/Set_File_Checksum (Field4)
--
-- Get the chain of unit contained in the file. This is a simply linked
-- chain, but the tail is kept to speed-up appending operation.
@@ -5006,8 +5006,8 @@ package Iirs is
-- File time stamp is the system time of the file last modification.
-- Field: Field4 (uc)
- function Get_File_Time_Stamp (Design : Iir) return Time_Stamp_Id;
- procedure Set_File_Time_Stamp (Design : Iir; Stamp : Time_Stamp_Id);
+ function Get_File_Checksum (Design : Iir) return File_Checksum_Id;
+ procedure Set_File_Checksum (Design : Iir; Checksum : File_Checksum_Id);
-- Time stamp of the last analysis system time.
-- Field: Field3 (uc)
diff --git a/src/vhdl/nodes_meta.adb b/src/vhdl/nodes_meta.adb
index 13422cbc9..514ed57d5 100644
--- a/src/vhdl/nodes_meta.adb
+++ b/src/vhdl/nodes_meta.adb
@@ -22,7 +22,7 @@ package body Nodes_Meta is
Field_First_Design_Unit => Type_Iir,
Field_Last_Design_Unit => Type_Iir,
Field_Library_Declaration => Type_Iir,
- Field_File_Time_Stamp => Type_Time_Stamp_Id,
+ Field_File_Checksum => Type_File_Checksum_Id,
Field_Analysis_Time_Stamp => Type_Time_Stamp_Id,
Field_Library => Type_Iir,
Field_File_Dependence_List => Type_Iir_List,
@@ -327,8 +327,8 @@ package body Nodes_Meta is
return "last_design_unit";
when Field_Library_Declaration =>
return "library_declaration";
- when Field_File_Time_Stamp =>
- return "file_time_stamp";
+ when Field_File_Checksum =>
+ return "file_checksum";
when Field_Analysis_Time_Stamp =>
return "analysis_time_stamp";
when Field_Library =>
@@ -1407,7 +1407,7 @@ package body Nodes_Meta is
return Attr_Ref;
when Field_Library_Declaration =>
return Attr_Ref;
- when Field_File_Time_Stamp =>
+ when Field_File_Checksum =>
return Attr_None;
when Field_Analysis_Time_Stamp =>
return Attr_None;
@@ -2004,7 +2004,7 @@ package body Nodes_Meta is
Field_Design_File_Directory,
Field_Design_File_Filename,
Field_Analysis_Time_Stamp,
- Field_File_Time_Stamp,
+ Field_File_Checksum,
Field_Elab_Flag,
Field_File_Dependence_List,
Field_Chain,
@@ -4415,6 +4415,30 @@ package body Nodes_Meta is
end case;
end Set_Date_Type;
+ function Get_File_Checksum_Id
+ (N : Iir; F : Fields_Enum) return File_Checksum_Id is
+ begin
+ pragma Assert (Fields_Type (F) = Type_File_Checksum_Id);
+ case F is
+ when Field_File_Checksum =>
+ return Get_File_Checksum (N);
+ when others =>
+ raise Internal_Error;
+ end case;
+ end Get_File_Checksum_Id;
+
+ procedure Set_File_Checksum_Id
+ (N : Iir; F : Fields_Enum; V: File_Checksum_Id) is
+ begin
+ pragma Assert (Fields_Type (F) = Type_File_Checksum_Id);
+ case F is
+ when Field_File_Checksum =>
+ Set_File_Checksum (N, V);
+ when others =>
+ raise Internal_Error;
+ end case;
+ end Set_File_Checksum_Id;
+
function Get_Iir
(N : Iir; F : Fields_Enum) return Iir is
begin
@@ -5804,8 +5828,6 @@ package body Nodes_Meta is
begin
pragma Assert (Fields_Type (F) = Type_Time_Stamp_Id);
case F is
- when Field_File_Time_Stamp =>
- return Get_File_Time_Stamp (N);
when Field_Analysis_Time_Stamp =>
return Get_Analysis_Time_Stamp (N);
when others =>
@@ -5818,8 +5840,6 @@ package body Nodes_Meta is
begin
pragma Assert (Fields_Type (F) = Type_Time_Stamp_Id);
case F is
- when Field_File_Time_Stamp =>
- Set_File_Time_Stamp (N, V);
when Field_Analysis_Time_Stamp =>
Set_Analysis_Time_Stamp (N, V);
when others =>
@@ -5894,10 +5914,10 @@ package body Nodes_Meta is
return K = Iir_Kind_Library_Clause;
end Has_Library_Declaration;
- function Has_File_Time_Stamp (K : Iir_Kind) return Boolean is
+ function Has_File_Checksum (K : Iir_Kind) return Boolean is
begin
return K = Iir_Kind_Design_File;
- end Has_File_Time_Stamp;
+ end Has_File_Checksum;
function Has_Analysis_Time_Stamp (K : Iir_Kind) return Boolean is
begin
diff --git a/src/vhdl/nodes_meta.ads b/src/vhdl/nodes_meta.ads
index f1b874b21..830ca25b5 100644
--- a/src/vhdl/nodes_meta.ads
+++ b/src/vhdl/nodes_meta.ads
@@ -28,6 +28,7 @@ package Nodes_Meta is
Type_Boolean,
Type_Date_State_Type,
Type_Date_Type,
+ Type_File_Checksum_Id,
Type_Iir,
Type_Iir_All_Sensitized,
Type_Iir_Constraint,
@@ -61,7 +62,7 @@ package Nodes_Meta is
Field_First_Design_Unit,
Field_Last_Design_Unit,
Field_Library_Declaration,
- Field_File_Time_Stamp,
+ Field_File_Checksum,
Field_Analysis_Time_Stamp,
Field_Library,
Field_File_Dependence_List,
@@ -401,6 +402,11 @@ package Nodes_Meta is
procedure Set_Date_Type
(N : Iir; F : Fields_Enum; V: Date_Type);
+ function Get_File_Checksum_Id
+ (N : Iir; F : Fields_Enum) return File_Checksum_Id;
+ procedure Set_File_Checksum_Id
+ (N : Iir; F : Fields_Enum; V: File_Checksum_Id);
+
function Get_Iir
(N : Iir; F : Fields_Enum) return Iir;
procedure Set_Iir
@@ -529,7 +535,7 @@ package Nodes_Meta is
function Has_First_Design_Unit (K : Iir_Kind) return Boolean;
function Has_Last_Design_Unit (K : Iir_Kind) return Boolean;
function Has_Library_Declaration (K : Iir_Kind) return Boolean;
- function Has_File_Time_Stamp (K : Iir_Kind) return Boolean;
+ function Has_File_Checksum (K : Iir_Kind) return Boolean;
function Has_Analysis_Time_Stamp (K : Iir_Kind) return Boolean;
function Has_Library (K : Iir_Kind) return Boolean;
function Has_File_Dependence_List (K : Iir_Kind) return Boolean;
diff --git a/src/vhdl/sem_inst.adb b/src/vhdl/sem_inst.adb
index 4993c8347..b60b34b9b 100644
--- a/src/vhdl/sem_inst.adb
+++ b/src/vhdl/sem_inst.adb
@@ -252,7 +252,8 @@ package body Sem_Inst is
Set_Source_Ptr (Res, F, Get_Source_Ptr (N, F));
when Type_Date_Type
| Type_Date_State_Type
- | Type_Time_Stamp_Id =>
+ | Type_Time_Stamp_Id
+ | Type_File_Checksum_Id =>
-- Can this happen ?
raise Internal_Error;
when Type_Base_Type =>
diff --git a/src/vhdl/translate/trans-chap2.adb b/src/vhdl/translate/trans-chap2.adb
index 875e4a060..69ec3e547 100644
--- a/src/vhdl/translate/trans-chap2.adb
+++ b/src/vhdl/translate/trans-chap2.adb
@@ -1015,7 +1015,8 @@ package body Trans.Chap2 is
raise Internal_Error;
when Type_Date_Type
| Type_Date_State_Type
- | Type_Time_Stamp_Id =>
+ | Type_Time_Stamp_Id
+ | Type_File_Checksum_Id =>
-- Can this happen ?
raise Internal_Error;
when Type_String8_Id