[Ada] Reuse Is_Rewrite_Substitution where possible
authorPiotr Trojanek <trojanek@adacore.com>
Wed, 30 May 2018 08:57:33 +0000 (08:57 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Wed, 30 May 2018 08:57:33 +0000 (08:57 +0000)
Use a high-level Is_Rewrite_Substitution instead of a low-level inequality,
with the intention to improve the code easier to read. Semantics unaffected,
so no test provided.

2018-05-30  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

* errout.adb, exp_aggr.adb, exp_ch7.adb, exp_util.adb, lib.adb,
sem_ch13.adb, sem_ch4.adb, sem_res.adb, sem_util.adb
(Has_Original_Node): Refactor to use Is_Rewrite_Substitution.

From-SVN: r260935

gcc/ada/ChangeLog
gcc/ada/errout.adb
gcc/ada/exp_aggr.adb
gcc/ada/exp_ch7.adb
gcc/ada/exp_util.adb
gcc/ada/lib.adb
gcc/ada/sem_ch13.adb
gcc/ada/sem_ch4.adb
gcc/ada/sem_res.adb
gcc/ada/sem_util.adb

index c6bd08bc50b1eed3fd76398fb7ac0a1191110c0c..8a5b510269d022e03928546283a1e80af54a3ed2 100644 (file)
@@ -1,3 +1,9 @@
+2018-05-30  Piotr Trojanek  <trojanek@adacore.com>
+
+       * errout.adb, exp_aggr.adb, exp_ch7.adb, exp_util.adb, lib.adb,
+       sem_ch13.adb, sem_ch4.adb, sem_res.adb, sem_util.adb
+       (Has_Original_Node): Refactor to use Is_Rewrite_Substitution.
+
 2018-05-30  Piotr Trojanek  <trojanek@adacore.com>
 
        * sem_prag.adb (Analyze_Pragma): Remove conjuncts that are always true.
index 0c661b6ed517259f4c0692e39c54da6d424e9c90..587dcfe4399955df0f23b8bb6db934b05611489f 100644 (file)
@@ -2387,7 +2387,7 @@ package body Errout is
          end loop;
 
          if Nkind (N) = N_Raise_Constraint_Error
-           and then Original_Node (N) /= N
+           and then Is_Rewrite_Substitution (N)
            and then No (Condition (N))
          then
             --  Warnings may have been posted on subexpressions of the original
index 691ba4bf16420ba8cdca3f51f61d1f7ec8b02dd0..e01d374a075951e53b9d38194cd842097e93dc45 100644 (file)
@@ -6089,7 +6089,7 @@ package body Exp_Aggr is
       --  that Convert_To_Positional succeeded and reanalyzed the rewritten
       --  aggregate.
 
-      elsif Analyzed (N) and then N /= Original_Node (N) then
+      elsif Analyzed (N) and then Is_Rewrite_Substitution (N) then
          return;
       end if;
 
index 59682defa17d246586c42b625cee25d7d408cf23..37d12906bed50bdb4482cfaf00d2d02c08f079a8 100644 (file)
@@ -5255,7 +5255,7 @@ package body Exp_Ch7 is
             --  node. Inspect the original node to detect the initial placement
             --  of the call.
 
-            elsif Original_Node (N) /= N then
+            elsif Is_Rewrite_Substitution (N) then
                Detect_Subprogram_Call (Original_Node (N));
 
                if Must_Hook then
index 0c1d4b834cad53a33c51f4db71c1a8f1840b9c03..0130307ae033b25ad9b72404f177030fc3df14c4 100644 (file)
@@ -4826,7 +4826,7 @@ package body Exp_Util is
                while Present (E) loop
                   Force_Evaluation (E);
 
-                  if Original_Node (E) /= E then
+                  if Is_Rewrite_Substitution (E) then
                      Set_Do_Range_Check
                        (E, Do_Range_Check (Original_Node (E)));
                   end if;
index 3e84f59e92f0861a5114b343c836b7c19a3d7730..a052b345c9e0aeb08f433444519363aed336c6c7 100644 (file)
@@ -1326,7 +1326,7 @@ package body Lib is
       Write_Str ("=");
       Write_Str (Node_Kind'Image (Nkind (Item)));
 
-      if Item /= Original_Node (Item) then
+      if Is_Rewrite_Substitution (Item) then
          Write_Str (", orig = ");
          Write_Int (Int (Original_Node (Item)));
          Write_Str ("=");
index bdd9f4ed6a941abf099dcf718e44698d61987f51..d9a0344f4069bf948d6bf18276a52a8ed8397adb 100644 (file)
@@ -9643,7 +9643,7 @@ package body Sem_Ch13 is
                --  from the node, since we may have rewritten things and
                --  substituted an identifier representing the rewrite.
 
-               if Original_Node (Nod) /= Nod then
+               if Is_Rewrite_Substitution (Nod) then
                   Check_Expr_Constants (Original_Node (Nod));
 
                   --  If the node is an object declaration without initial
index f17741758dd0a5e00e867dbb638d35511aa41c22..1b8d8cb19688ce6a2e60a6343c35577c420de910 100644 (file)
@@ -1345,7 +1345,7 @@ package body Sem_Ch4 is
             --  parameter has been analyzed, but may need a subsequent
             --  dereference, so skip its analysis now.
 
-            if N /= Original_Node (N)
+            if Is_Rewrite_Substitution (N)
               and then Nkind (Original_Node (N)) = Nkind (N)
               and then Nkind (Name (N)) /= Nkind (Name (Original_Node (N)))
               and then Present (Parameter_Associations (N))
index ca54ffc5744692b4388e5bc41f327dd3858a5337..a2788d99922c6c02ae5c374f0b557df25aff1cd1 100644 (file)
@@ -12691,7 +12691,7 @@ package body Sem_Res is
 
             if Ada_Version >= Ada_2012
               and then not Comes_From_Source (N)
-              and then N /= Original_Node (N)
+              and then Is_Rewrite_Substitution (N)
               and then Ekind (Target_Type) = E_General_Access_Type
               and then Ekind (Opnd_Type) = E_Anonymous_Access_Type
             then
index 7aafa8d5df05c889fbd8a88814f45e6d1bbfaf9f..5004e3220f0f5ec4493d2b88d3cbe32e7ffd1c22 100644 (file)
@@ -15855,7 +15855,7 @@ package body Sem_Util is
       --  original node is a conversion, then Is_Variable will not be true
       --  but we still want to allow the conversion if it converts a variable).
 
-      elsif Original_Node (AV) /= AV then
+      elsif Is_Rewrite_Substitution (AV) then
 
          --  In Ada 2012, the explicit dereference may be a rewritten call to a
          --  Reference function.