aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2021-11-21 17:34:49 +0100
committerTristan Gingold <tgingold@free.fr>2021-11-21 17:34:49 +0100
commitdb8354e41521bc803bf1c832f679780a1bf2fbb2 (patch)
tree800f4ce4a76625645c320236eb8362c3e5bc7b1b
parenta76a041d967d05a3b59da7c454a8cbbe2c802989 (diff)
downloadghdl-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.adb10
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;