From 097a610b153d32ea42c7ba2fc293a2f14989d4a3 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 9 May 2017 21:15:08 +0200 Subject: Improve cascaded errors on instantiation. --- src/vhdl/sem.adb | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/vhdl/sem.adb b/src/vhdl/sem.adb index 24c991a45..5ee8e8da1 100644 --- a/src/vhdl/sem.adb +++ b/src/vhdl/sem.adb @@ -2814,16 +2814,14 @@ package body Sem is Name := Sem_Denoting_Name (Get_Uninstantiated_Package_Name (Decl)); Set_Uninstantiated_Package_Name (Decl, Name); Pkg := Get_Named_Entity (Name); - if Get_Kind (Pkg) /= Iir_Kind_Package_Declaration then + if Is_Error (Pkg) then + null; + elsif Get_Kind (Pkg) /= Iir_Kind_Package_Declaration then Error_Class_Match (Name, "package"); - - -- What could be done ? - return Null_Iir; + Pkg := Create_Error (Pkg); elsif not Is_Uninstantiated_Package (Pkg) then Error_Msg_Sem (+Name, "%n is not an uninstantiated package", +Pkg); - - -- What could be done ? - return Null_Iir; + Pkg := Create_Error (Pkg); end if; Set_Uninstantiated_Package_Decl (Decl, Pkg); @@ -2846,7 +2844,7 @@ package body Sem is -- The uninstantiated package name shall denote an uninstantiated -- package declared in a package declaration. Pkg := Sem_Uninstantiated_Package_Name (Decl); - if Pkg = Null_Iir then + if Pkg = Null_Iir or Is_Error (Pkg) then -- What could be done ? return; end if; -- cgit v1.2.3