diff options
author | Tristan Gingold <tgingold@free.fr> | 2021-11-21 17:34:49 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2021-11-21 17:34:49 +0100 |
commit | db8354e41521bc803bf1c832f679780a1bf2fbb2 (patch) | |
tree | 800f4ce4a76625645c320236eb8362c3e5bc7b1b | |
parent | a76a041d967d05a3b59da7c454a8cbbe2c802989 (diff) | |
download | ghdl-db8354e41521bc803bf1c832f679780a1bf2fbb2.tar.gz ghdl-db8354e41521bc803bf1c832f679780a1bf2fbb2.tar.bz2 ghdl-db8354e41521bc803bf1c832f679780a1bf2fbb2.zip |
vhdl-sem_decls: avoid a crash on invalid alias name. Fix #1919
-rw-r--r-- | src/vhdl/vhdl-sem_decls.adb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/vhdl/vhdl-sem_decls.adb b/src/vhdl/vhdl-sem_decls.adb index 19c5ec4d7..9d7f3b20d 100644 --- a/src/vhdl/vhdl-sem_decls.adb +++ b/src/vhdl/vhdl-sem_decls.adb @@ -1839,6 +1839,16 @@ package body Vhdl.Sem_Decls is Name := Get_Signature_Prefix (Sig); Sem_Name (Name); Set_Signature_Prefix (Sig, Name); + when Iir_Kind_String_Literal8 => + -- Try to have a good error message. + if Get_Subtype_Indication (Alias) = Null_Iir then + Error_Msg_Sem (+Name, "signature required for operature name"); + else + Error_Msg_Sem (+Name, "object name required"); + end if; + Name := Create_Error_Name (Name); + Set_Name (Alias, Name); + return Alias; when Iir_Kind_Error => pragma Assert (Flags.Flag_Force_Analysis); return Alias; |