From 9f8627a01e41eb50e7e547f1d0da2ecc662da292 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Sat, 22 Dec 2018 08:03:52 +0100 Subject: analysis: tolerate more parse errors (empty enumeration type). --- src/vhdl/iirs_utils.adb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/vhdl/iirs_utils.adb') diff --git a/src/vhdl/iirs_utils.adb b/src/vhdl/iirs_utils.adb index bc4b7b7e7..6a888911d 100644 --- a/src/vhdl/iirs_utils.adb +++ b/src/vhdl/iirs_utils.adb @@ -774,18 +774,19 @@ package body Iirs_Utils is is Range_Expr : Iir_Range_Expression; Literal_List : constant Iir_Flist := Get_Enumeration_Literal_List (Def); + List_Len : constant Natural := Get_Nbr_Elements (Literal_List); begin -- Create a constraint. Range_Expr := Create_Iir (Iir_Kind_Range_Expression); Location_Copy (Range_Expr, Def); Set_Type (Range_Expr, Def); Set_Direction (Range_Expr, Iir_To); - Set_Left_Limit - (Range_Expr, - Get_Nth_Element (Literal_List, 0)); - Set_Right_Limit - (Range_Expr, - Get_Nth_Element (Literal_List, Get_Nbr_Elements (Literal_List) - 1)); + if List_Len >= 1 then + Set_Left_Limit + (Range_Expr, Get_Nth_Element (Literal_List, 0)); + Set_Right_Limit + (Range_Expr, Get_Nth_Element (Literal_List, List_Len - 1)); + end if; Set_Expr_Staticness (Range_Expr, Locally); Set_Range_Constraint (Def, Range_Expr); end Create_Range_Constraint_For_Enumeration_Type; -- cgit v1.2.3