From 53914c09e1f532e0c6fa509634303b3a017dbb97 Mon Sep 17 00:00:00 2001 From: Tristan Gingold <tgingold@free.fr> Date: Wed, 13 May 2020 08:26:01 +0200 Subject: vhdl-configuration: handle overrides of slv. Fix #1298 --- src/vhdl/vhdl-configuration.adb | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/vhdl/vhdl-configuration.adb b/src/vhdl/vhdl-configuration.adb index 5f50a16aa..ad3fdc6a1 100644 --- a/src/vhdl/vhdl-configuration.adb +++ b/src/vhdl/vhdl-configuration.adb @@ -1158,7 +1158,20 @@ package body Vhdl.Configuration is end loop; end; else - Append_String8_String (Value.all); + declare + Eid : Name_Id; + Elit : Iir; + begin + for I in Value'Range loop + Eid := Get_Identifier (Value (I)); + Elit := Find_Name_In_Flist (Elist, Eid); + if Elit = Null_Iir then + Error_Msg_Elab ("incorrect character %i in string", +Eid); + Elit := Get_Nth_Element (Elist, 0); + end if; + Append_String8 (Nat8 (Get_Enum_Pos (Elit))); + end loop; + end; Len := Value'Length; end if; Res := Create_Iir (Iir_Kind_String_Literal8); @@ -1201,6 +1214,7 @@ package body Vhdl.Configuration is end case; if Res = Null_Iir then Error_Msg_Elab ("unhandled override for %n", +Gen); + return; end if; if Get_Is_Ref (Gen) then -- cgit v1.2.3