[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Wed, 3 Aug 2011 10:10:40 +0000 (12:10 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 3 Aug 2011 10:10:40 +0000 (12:10 +0200)
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.

From-SVN: r177259

15 files changed:
gcc/ada/ChangeLog
gcc/ada/exp_ch6.adb
gcc/ada/exp_util.adb
gcc/ada/exp_util.ads
gcc/ada/g-sehash.ads
gcc/ada/g-sha1.ads
gcc/ada/g-sha224.ads
gcc/ada/g-sha256.ads
gcc/ada/g-sha384.ads
gcc/ada/g-sha512.ads
gcc/ada/sem_aux.adb
gcc/ada/sem_aux.ads
gcc/ada/sem_ch4.adb
gcc/ada/sem_ch8.adb
gcc/ada/sem_res.adb

index 475fc118e30be7fec9ed482820b04f9a3fe71c46..a28897f750d8ba13d3923eba5f57dfe4ad676ab0 100644 (file)
@@ -1,3 +1,32 @@
+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
index bf7b44ec68d9abdf0ba79d4d47577618deac35c3..d09261eae8590a50f77fe8991d7bc4526329289a 100644 (file)
@@ -1472,9 +1472,7 @@ package body Exp_Ch6 is
             --  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;
 
index 9a5eef05b6e92a61618ab4cd9b95a00160f72fb4..9220837ed9b8463a0463839ca59b832fb92e62be 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 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- --
@@ -3561,6 +3561,18 @@ package body Exp_Util is
       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 --
    --------------------
index 5ef792b85aa48a6398087284d6531f6c2aa6cee8..4f13fa96f8870204f248b2612e984a7652753f44 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 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- --
@@ -537,6 +537,10 @@ package Exp_Util is
    --  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
index 898f2adfa5bae77f9e1a50a07e4bd52a183467c3..c3bbce1edb4de24d3cb3c04f2db535f4c01ab4e5 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 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- --
index c02589e235492c822f9db5acf2f492837da92cbc..2a1c0e1dc605bd78c29aa9dd386e3193b3cb6af5 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 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- --
index 4b81112bbdb4cf89421bded8602714f4d4221304..0520a5efe31daf392b44ac7ba445245810bd5b64 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 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- --
index a638ff974efa1a8be452ea3a9d5ebc76eb9d9bce..91088433c0081dd57eadd398b76c25e9944ea952 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 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- --
index 7a63d7e6ef21ceb0058c70cbad510f70ba9ac3fa..0047da06ca3fa2512a6b2176d0d2c831a1019bed 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 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- --
index 331db7d34692870437bbc3d6bd436a42b30effd4..e75d9493d4564b6f9740f42f161ae7fcb9e57341 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 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- --
index fd78fbf2cd8a3319f563e5ab5719cb1bd66d3805..0e5c3db3cf0028e359db523438766a6c5636940a 100755 (executable)
@@ -36,7 +36,6 @@ with Namet;  use Namet;
 with Sinfo;  use Sinfo;
 with Snames; use Snames;
 with Stand;  use Stand;
-with Targparm; use Targparm;
 
 package body Sem_Aux is
 
@@ -785,18 +784,6 @@ 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 --
    ----------------------
index acf37e6450b97eb0bd3d2b93b38bd1d236a11c51..cf9af2e717851f1ff69916cbb260fa07dcecb63a 100755 (executable)
@@ -186,10 +186,6 @@ package Sem_Aux is
    --  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
index 912e09b643dd716a3491de6153cc339ab7ec7aa5..664a080ee3be32f5e82246b77950b93485324656 100644 (file)
@@ -3127,7 +3127,10 @@ package body Sem_Ch4 is
             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.
index e0e1e06ef1caba95fe4887666ad84814dbc1e786..d02e9118a97327c7f3b21765296b551691082e58 100644 (file)
@@ -3639,11 +3639,9 @@ package body Sem_Ch8 is
         (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
index a5e229195f8c9d485e03cc38542b375cfc07c915..e88e551cb2ec418a3e350dbc7184c903e0fe362a 100644 (file)
@@ -8378,7 +8378,10 @@ package body Sem_Res is
                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.