From 983a3d80db525e9d7fbba6f222d3030bfc0a68ac Mon Sep 17 00:00:00 2001 From: Robert Dewar Date: Thu, 11 Apr 2013 10:52:33 +0000 Subject: [PATCH] sem_res.adb: Minor code reorganization and comment fixes. 2013-04-11 Robert Dewar * sem_res.adb: Minor code reorganization and comment fixes. * sem_type.adb: Minor reformatting. From-SVN: r197768 --- gcc/ada/ChangeLog | 5 +++++ gcc/ada/gnat_rm.texi | 2 +- gcc/ada/sem_res.adb | 25 +++++++++++++++---------- gcc/ada/sem_type.adb | 8 ++++---- 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 6089371edd7..051a222b3f0 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2013-04-11 Robert Dewar + + * sem_res.adb: Minor code reorganization and comment fixes. + * sem_type.adb: Minor reformatting. + 2013-04-11 Hristian Kirtchev * exp_ch4.adb (Process_Transient_Object): Add new diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi index e1356e5de23..e320acd52fa 100644 --- a/gcc/ada/gnat_rm.texi +++ b/gcc/ada/gnat_rm.texi @@ -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 diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb index 338ff78185d..e60f91161dd 100644 --- a/gcc/ada/sem_res.adb +++ b/gcc/ada/sem_res.adb @@ -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", diff --git a/gcc/ada/sem_type.adb b/gcc/ada/sem_type.adb index 5f86561b148..fb897755e33 100644 --- a/gcc/ada/sem_type.adb +++ b/gcc/ada/sem_type.adb @@ -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; -- 2.30.2