From: Piotr Trojanek <troja...@adacore.com>

Code cleanup; behavior is unaffected.

gcc/ada/

        * freeze.adb (Check_Current_Instance): This routine is only called
        with parameter E being a type entity, so there is no need to check
        for types just before the equality with E.
        * sem_ch13.adb (Analyze_Aspect_Specifications): Regroup condition
        to avoid unnecessary evaluation.
        (Check_Aspect_At_End_Of_Declarations): If In_Instance is true,
        then the routine exits early.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/freeze.adb   |  1 -
 gcc/ada/sem_ch13.adb | 14 +++++++-------
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb
index 2fcc2ce02e7..2a0a59f5b03 100644
--- a/gcc/ada/freeze.adb
+++ b/gcc/ada/freeze.adb
@@ -3086,7 +3086,6 @@ package body Freeze is
                when N_Attribute_Reference =>
                   if Attribute_Name (N) in Name_Access | Name_Unchecked_Access
                     and then Is_Entity_Name (Prefix (N))
-                    and then Is_Type (Entity (Prefix (N)))
                     and then Entity (Prefix (N)) = E
                   then
                      if Ada_Version < Ada_2012 then
diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb
index f65217b0b90..d81b7412313 100644
--- a/gcc/ada/sem_ch13.adb
+++ b/gcc/ada/sem_ch13.adb
@@ -4086,12 +4086,12 @@ package body Sem_Ch13 is
                      Error_Msg_N ("aspect% cannot apply to subtype", Id);
                      goto Continue;
 
-                  elsif A_Id = Aspect_Default_Value
-                    and then not Is_Scalar_Type (E)
-                  then
-                     Error_Msg_N
-                       ("aspect% can only be applied to scalar type", Id);
-                     goto Continue;
+                  elsif A_Id = Aspect_Default_Value then
+                     if not Is_Scalar_Type (E) then
+                        Error_Msg_N
+                          ("aspect% can only be applied to scalar type", Id);
+                        goto Continue;
+                     end if;
 
                   elsif A_Id = Aspect_Default_Component_Value then
                      if not Is_Array_Type (E) then
@@ -11118,7 +11118,7 @@ package body Sem_Ch13 is
          --  If the end of declarations comes before any other freeze point,
          --  the Freeze_Expr is not analyzed: no check needed.
 
-         if Analyzed (Freeze_Expr) and then not In_Instance then
+         if Analyzed (Freeze_Expr) then
             Check_Overloaded_Name;
          else
             Err := False;
-- 
2.45.1

Reply via email to