+2011-08-03 Javier Miranda <miranda@adacore.com>
+
+ * exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads:
+ Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util.
+
+2011-08-03 Bob Duff <duff@adacore.com>
+
+ * sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use on
+ the Base_Type.
+
+2011-08-03 Joel Brobecker <brobecker@adacore.com brobecker>
+
+ * g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads,
+ g-sehash.ads: Fix typo. Update header.
+
+2011-08-03 Thomas Quinot <quinot@adacore.com>
+
+ * exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-place
+ expansion.
+
+2011-08-03 Gary Dismukes <dismukes@adacore.com>
+
+ * sem_ch4.adb (Analyze_Overloaded_Selected_Component): Consider
+ prefixes of private types along with records, since the selector may be
+ a discriminant.
+ * sem_res.adb (Resolve_Selected_Component): Consider prefixes of
+ private types along with records, since the selector may be a
+ discriminant.
+
2011-08-03 Emmanuel Briot <briot@adacore.com>
* prj-pp.adb (Pretty_Print): remove trailing blank line in the file
-- functions that are treated as build-in-place to include other
-- composite result types.
- if Ada_Version >= Ada_2005
- and then Is_Build_In_Place_Function_Call (Actual)
- then
+ if Is_Build_In_Place_Function_Call (Actual) then
Make_Build_In_Place_Call_In_Anonymous_Context (Actual);
end if;
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2010, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2011, 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- --
end if;
end Is_Volatile_Reference;
+ --------------------------
+ -- Is_VM_By_Copy_Actual --
+ --------------------------
+
+ function Is_VM_By_Copy_Actual (N : Node_Id) return Boolean is
+ begin
+ return VM_Target /= No_VM
+ and then Nkind (N) = N_Identifier
+ and then Present (Renamed_Object (Entity (N)))
+ and then Nkind (Renamed_Object (Entity (N))) = N_Slice;
+ end Is_VM_By_Copy_Actual;
+
--------------------
-- Kill_Dead_Code --
--------------------
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2010, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2011, 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- --
-- or has Volatile_Components set. A slice of a volatile variable is
-- also volatile.
+ function Is_VM_By_Copy_Actual (N : Node_Id) return Boolean;
+ -- Returns True if we are compiling on VM targets and N is a node that
+ -- requires to be passed by copy in these targets.
+
procedure Kill_Dead_Code (N : Node_Id; Warn : Boolean := False);
-- N represents a node for a section of code that is known to be dead. Any
-- exception handler references and warning messages relating to this code
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2009, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2011, 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- --
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2010, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2011, 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- --
-- --
-- S p e c --
-- --
--- Copyright (C) 2009, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2011, 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- --
-- --
-- S p e c --
-- --
--- Copyright (C) 2009, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2011, 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- --
-- --
-- S p e c --
-- --
--- Copyright (C) 2009, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2011, 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- --
-- --
-- S p e c --
-- --
--- Copyright (C) 2009, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2011, 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- --
with Sinfo; use Sinfo;
with Snames; use Snames;
with Stand; use Stand;
-with Targparm; use Targparm;
package body Sem_Aux is
end if;
end Is_Limited_Type;
- --------------------------
- -- Is_VM_By_Copy_Actual --
- --------------------------
-
- function Is_VM_By_Copy_Actual (N : Node_Id) return Boolean is
- begin
- return VM_Target /= No_VM
- and then Nkind (N) = N_Identifier
- and then Present (Renamed_Object (Entity (N)))
- and then Nkind (Renamed_Object (Entity (N))) = N_Slice;
- end Is_VM_By_Copy_Actual;
-
----------------------
-- Nearest_Ancestor --
----------------------
-- composite containing a limited component, or a subtype of any of
-- these types).
- function Is_VM_By_Copy_Actual (N : Node_Id) return Boolean;
- -- Returns True if we are compiling on VM targets and N is a node that
- -- requires to be passed by copy in these targets.
-
function Nearest_Ancestor (Typ : Entity_Id) return Entity_Id;
-- Given a subtype Typ, this function finds out the nearest ancestor from
-- which constraints and predicates are inherited. There is no simple link
T := It.Typ;
end if;
- if Is_Record_Type (T) then
+ -- Locate the component. For a private prefix the selector can denote
+ -- a discriminant.
+
+ if Is_Record_Type (T) or else Is_Private_Type (T) then
-- If the prefix is a class-wide type, the visible components are
-- those of the base type.
(Op : Entity_Id;
F : Entity_Id) return Boolean
is
- T : constant Entity_Id := Etype (F);
+ T : constant Entity_Id := Base_Type (Etype (F));
begin
- return (In_Use (T)
- or else Present (Current_Use_Clause (Base_Type (T))))
- and then Scope (T) = Scope (Op);
+ return In_Use (T) and then Scope (T) = Scope (Op);
end Is_Primitive_Operator_In_Use;
-- Start of processing for End_Use_Package
T := It.Typ;
end if;
- if Is_Record_Type (T) then
+ -- Locate selected component. For a private prefix the selector
+ -- can denote a discriminant.
+
+ if Is_Record_Type (T) or else Is_Private_Type (T) then
-- The visible components of a class-wide type are those of
-- the root type.