diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/sem_ch10.adb | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/gcc/ada/sem_ch10.adb b/gcc/ada/sem_ch10.adb index 14739b9..29d10de 100644 --- a/gcc/ada/sem_ch10.adb +++ b/gcc/ada/sem_ch10.adb @@ -1892,15 +1892,20 @@ package body Sem_Ch10 is -- Protect frontend against previous errors in context clauses if Nkind (Name (Item)) /= N_Selected_Component then - Unit_Name := Entity (Name (Item)); - while Is_Child_Unit (Unit_Name) loop - Set_Is_Visible_Child_Unit (Unit_Name); - Unit_Name := Scope (Unit_Name); - end loop; + if Error_Posted (Item) then + null; + + else + Unit_Name := Entity (Name (Item)); + while Is_Child_Unit (Unit_Name) loop + Set_Is_Visible_Child_Unit (Unit_Name); + Unit_Name := Scope (Unit_Name); + end loop; - if not Is_Immediately_Visible (Unit_Name) then - Set_Is_Immediately_Visible (Unit_Name); - Set_Context_Installed (Item); + if not Is_Immediately_Visible (Unit_Name) then + Set_Is_Immediately_Visible (Unit_Name); + Set_Context_Installed (Item); + end if; end if; end if; @@ -1932,6 +1937,7 @@ package body Sem_Ch10 is -- Protect frontend against previous errors in context clauses and then Nkind (Name (Item)) /= N_Selected_Component + and then not Error_Posted (Item) then Unit_Name := Entity (Name (Item)); while Is_Child_Unit (Unit_Name) loop |