aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/errorout.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/errorout.ads')
-rw-r--r--src/vhdl/errorout.ads23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/vhdl/errorout.ads b/src/vhdl/errorout.ads
index 417ea9077..09260a876 100644
--- a/src/vhdl/errorout.ads
+++ b/src/vhdl/errorout.ads
@@ -125,6 +125,15 @@ package Errorout is
-- Get enable status of a warning.
function Is_Warning_Enabled (Id : Msgid_Warnings) return Boolean;
+ -- State of warnings.
+ type Warnings_Setting is private;
+
+ -- Global control of warnings.
+ -- Used to disable warnings while a referenced unit is analyzed.
+ procedure Save_Warnings_Setting (Res : out Warnings_Setting);
+ procedure Disable_All_Warnings;
+ procedure Restore_Warnings_Setting (Res : Warnings_Setting);
+
type Earg_Type is private;
type Earg_Arr is array (Natural range <>) of Earg_Type;
@@ -310,4 +319,18 @@ private
end record;
No_Eargs : constant Earg_Arr := (1 .. 0 => (Kind => Earg_None));
+
+ type Warning_Control_Type is record
+ Enabled : Boolean;
+ Error : Boolean;
+ end record;
+
+ type Warnings_Setting is array (Msgid_Warnings) of Warning_Control_Type;
+
+ Default_Warnings : constant Warnings_Setting :=
+ (Warnid_Binding
+ | Warnid_Library => (Enabled => True, Error => False),
+ Warnid_Shared
+ | Warnid_Pure => (Enabled => True, Error => False),
+ others => (Enabled => False, Error => False));
end Errorout;