aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/sem_decls.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/sem_decls.adb')
-rw-r--r--src/vhdl/sem_decls.adb22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/vhdl/sem_decls.adb b/src/vhdl/sem_decls.adb
index 2d7f6086b..6363acc98 100644
--- a/src/vhdl/sem_decls.adb
+++ b/src/vhdl/sem_decls.adb
@@ -1684,15 +1684,19 @@ package body Sem_Decls is
Xref_Decl (Alias);
Name := Get_Name (Alias);
- if Get_Kind (Name) = Iir_Kind_Signature then
- Sig := Name;
- Name := Get_Signature_Prefix (Sig);
- Sem_Name (Name);
- Set_Signature_Prefix (Sig, Name);
- else
- Sem_Name (Name);
- Sig := Null_Iir;
- end if;
+ case Get_Kind (Name) is
+ when Iir_Kind_Signature =>
+ Sig := Name;
+ Name := Get_Signature_Prefix (Sig);
+ Sem_Name (Name);
+ Set_Signature_Prefix (Sig, Name);
+ when Iir_Kind_Error =>
+ pragma Assert (Flags.Flag_Force_Analysis);
+ return Alias;
+ when others =>
+ Sem_Name (Name);
+ Sig := Null_Iir;
+ end case;
N_Entity := Get_Named_Entity (Name);
if N_Entity = Error_Mark then