sem_res.adb: Minor code reorganization and comment fixes.
authorRobert Dewar <dewar@adacore.com>
Thu, 11 Apr 2013 10:52:33 +0000 (10:52 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 11 Apr 2013 10:52:33 +0000 (12:52 +0200)
2013-04-11  Robert Dewar  <dewar@adacore.com>

* sem_res.adb: Minor code reorganization and comment fixes.
* sem_type.adb: Minor reformatting.

From-SVN: r197768

gcc/ada/ChangeLog
gcc/ada/gnat_rm.texi
gcc/ada/sem_res.adb
gcc/ada/sem_type.adb

index 6089371..051a222 100644 (file)
@@ -1,3 +1,8 @@
+2013-04-11  Robert Dewar  <dewar@adacore.com>
+
+       * sem_res.adb: Minor code reorganization and comment fixes.
+       * sem_type.adb: Minor reformatting.
+
 2013-04-11  Hristian Kirtchev  <kirtchev@adacore.com>
 
        * exp_ch4.adb (Process_Transient_Object): Add new
index e1356e5..e320acd 100644 (file)
@@ -4032,7 +4032,7 @@ earlier versions of the package body.
 Syntax:
 
 @smallexample @c ada
-pragma No_Inline (NAME {, NAME});
+pragma No_Inline (NAME @{, NAME@});
 @end smallexample
 
 @noindent
index 338ff78..e60f911 100644 (file)
@@ -2060,16 +2060,17 @@ package body Sem_Res is
          Analyze_Dimension (N);
          return;
 
-      --  A Raise_Expression takes its type from context. The expression
-      --  itself does not specify any possible interpretation.
-
-      --  Seems confusing to set the Etype to Typ here, only to be overwritten
-      --  and set to Ctx_Type in the big case statement???
+      --  A Raise_Expression takes its type from context. The Etype was set
+      --  to Any_Type, reflecting the fact that the expression itself does
+      --  not specify any possible interpretation. So we set the type to the
+      --  resolution type here and now. We need to do this before Resolve sees
+      --  the Any_Type value.
 
       elsif Nkind (N) = N_Raise_Expression then
          Set_Etype (N, Typ);
 
-      --  Return if type = Any_Type (previous error encountered).
+      --  Any other case of Any_Type as the Etype value means that we had
+      --  a previous error.
 
       elsif Etype (N) = Any_Type then
          Debug_A_Exit ("resolving  ", N, "  (done, Etype = Any_Type)");
@@ -2815,10 +2816,14 @@ package body Sem_Res is
 
             --  Why is the following null, needs a comment ???
 
-            when N_Quantified_Expression => null;
+            when N_Quantified_Expression
+                             => null;
+
+            --  Nothing to do for Raise_Expression, since we took care of
+            --  setting the Etype earlier, and no other processing is needed.
 
             when N_Raise_Expression
-                             => Set_Etype (N, Ctx_Type);
+                             => null;
 
             when N_Raise_xxx_Error
                              => Set_Etype (N, Ctx_Type);
@@ -4480,7 +4485,7 @@ package body Sem_Res is
                if In_Instance_Body then
                   Error_Msg_N
                     ("??type in allocator has deeper level than "
-                     & " designated class-wide type", E);
+                     & "designated class-wide type", E);
                   Error_Msg_N
                     ("\??Program_Error will be raised at run time", E);
                   Rewrite (N,
@@ -10662,7 +10667,7 @@ package body Sem_Res is
                then
                   if In_Instance_Body then
                      Conversion_Error_N
-                       ("??source array type has deeper accesibility "
+                       ("??source array type has deeper accessibility "
                         & "level than target", Operand);
                      Conversion_Error_N
                        ("\??Program_Error will be raised at run time",
index 5f86561..fb89775 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2012, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2013, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -780,7 +780,7 @@ package body Sem_Type is
          RA  : Entity_Id;
 
       begin
-         --  Retrieve parent subtype from subtype declaration for actual.
+         --  Retrieve parent subtype from subtype declaration for actual
 
          if Nkind (Par) = N_Subtype_Declaration
            and then not Comes_From_Source (Par)
@@ -793,7 +793,7 @@ package body Sem_Type is
             end if;
          end if;
 
-         --  Otherwise actual is not the actual of an enclosing instance.
+         --  Otherwise actual is not the actual of an enclosing instance
 
          return T;
       end Real_Actual;
@@ -1313,7 +1313,7 @@ package body Sem_Type is
       --  Determine whether a subprogram is an actual in an enclosing instance.
       --  An overloading between such a subprogram and one declared outside the
       --  instance is resolved in favor of the first, because it resolved in
-      --  the generic. Within the instance the eactual is represented by a
+      --  the generic. Within the instance the actual is represented by a
       --  constructed subprogram renaming.
 
       function Matches (Actual, Formal : Node_Id) return Boolean;