summaryrefslogtreecommitdiff
path: root/src/vhdl/ieee-vital_timing.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/ieee-vital_timing.adb')
-rw-r--r--src/vhdl/ieee-vital_timing.adb21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/vhdl/ieee-vital_timing.adb b/src/vhdl/ieee-vital_timing.adb
index d6429e2..d7166da 100644
--- a/src/vhdl/ieee-vital_timing.adb
+++ b/src/vhdl/ieee-vital_timing.adb
@@ -23,6 +23,7 @@ with Tokens; use Tokens;
with Name_Table;
with Ieee.Std_Logic_1164; use Ieee.Std_Logic_1164;
with Sem_Scopes;
+with Sem_Specs;
with Evaluation;
with Sem;
with Iirs_Utils;
@@ -1313,18 +1314,14 @@ package body Ieee.Vital_Timing is
Value : Iir_Attribute_Value;
Spec : Iir_Attribute_Specification;
begin
- Value := Get_Attribute_Value_Chain (Unit);
- while Value /= Null_Iir loop
- Spec := Get_Attribute_Specification (Value);
- if Get_Named_Entity (Get_Attribute_Designator (Spec))
- = Vital_Level0_Attribute
- then
- return True;
- end if;
- Value := Get_Chain (Value);
- end loop;
-
- return False;
+ Value := Sem_Specs.Find_Attribute_Value
+ (Unit, Std_Names.Name_VITAL_Level0);
+ if Value = Null_Iir then
+ return False;
+ end if;
+ Spec := Get_Attribute_Specification (Value);
+ return Get_Named_Entity (Get_Attribute_Designator (Spec))
+ = Vital_Level0_Attribute;
end Is_Vital_Level0;
procedure Check_Vital_Level0_Architecture (Arch : Iir_Architecture_Body)