[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Fri, 17 Oct 2014 08:29:23 +0000 (10:29 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 17 Oct 2014 08:29:23 +0000 (10:29 +0200)
2014-10-17  Robert Dewar  <dewar@adacore.com>

* lib-writ.ads, s-valdec.ads: Minor reformatting.

2014-10-17  Ed Schonberg  <schonberg@adacore.com>

* sem_ch12.adb: Additional work on function wrappers.

2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>

* exp_util.adb (Possible_Bit_Aligned_Component): Also recurse
on the renamed object of renamings.

2014-10-17  Vincent Celier  <celier@adacore.com>

* prj-conf.adb (Parse_Project_And_Apply_Config): In CodePeer
mode, always use the native target.

From-SVN: r216368

gcc/ada/ChangeLog
gcc/ada/exp_util.adb
gcc/ada/lib-writ.ads
gcc/ada/prj-conf.adb
gcc/ada/s-valdec.ads
gcc/ada/sem_ch12.adb

index fb647138c73dd7dd8c47ec8940215dd6ae3fdffa..60705ed9115725efbdede5f80937c4b62b322427 100644 (file)
@@ -1,3 +1,21 @@
+2014-10-17  Robert Dewar  <dewar@adacore.com>
+
+       * lib-writ.ads, s-valdec.ads: Minor reformatting.
+
+2014-10-17  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch12.adb: Additional work on function wrappers.
+
+2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_util.adb (Possible_Bit_Aligned_Component): Also recurse
+       on the renamed object of renamings.
+
+2014-10-17  Vincent Celier  <celier@adacore.com>
+
+       * prj-conf.adb (Parse_Project_And_Apply_Config): In CodePeer
+       mode, always use the native target.
+
 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
 
        * gcc-interface/misc.c: Adjust include files.
index d7f200f3b07538d19f24478e56019f5da721b9de..562a54de95c27ed10538d0b5d8baeffbc8b51f20 100644 (file)
@@ -6884,10 +6884,18 @@ package body Exp_Util is
 
          --  If we have none of the above, it means that we have fallen off the
          --  top testing prefixes recursively, and we now have a stand alone
-         --  object, where we don't have a problem.
+         --  object, where we don't have a problem, unless this is a renaming,
+         --  in which case we need to look into the renamed object.
 
          when others =>
-            return False;
+            if Is_Entity_Name (N)
+              and then Present (Renamed_Object (Entity (N)))
+            then
+               return
+                 Possible_Bit_Aligned_Component (Renamed_Object (Entity (N)));
+            else
+               return False;
+            end if;
 
       end case;
    end Possible_Bit_Aligned_Component;
index 91c16c0f081fdab1d1ff8ae027c533a4b19630ee..f67e33778c681929a814e049cdf1034fd79b1fc7 100644 (file)
@@ -375,10 +375,10 @@ package Lib.Writ is
 
    --  RN
 
-   --  In named notation, the restrictions are given as a series of lines, one
-   --  per retrictions that is specified or violated (no information is present
-   --  for restrictions that are not specified or violated). In the following
-   --  name is the name of the restriction in all upper case.
+   --  In named notation, the restrictions are given as a series of lines,
+   --  one per restrictions that is specified or violated (no information is
+   --  present for restrictions that are not specified or violated). In the
+   --  following name is the name of the restriction in all upper case.
 
    --  For boolean restrictions, we have only two possibilities. A restrictions
    --  pragma is present, or a violation is detected:
index fe1be8fcff89f385b09bf24382d6380cce6c8817..dff06426ef5cee2224ab81ea8c7e939c0d5a00a6 100644 (file)
@@ -1592,6 +1592,16 @@ package body Prj.Conf is
       Main_Project := No_Project;
       Automatically_Generated := False;
 
+      --  Need a comment here saying why CodePeer mode is different ???
+
+      if CodePeer_Mode or else Target_Name = "" then
+         Opt.Target_Value  := new String'(Normalized_Hostname);
+         Opt.Target_Origin := Default;
+      else
+         Opt.Target_Value  := new String'(Target_Name);
+         Opt.Target_Origin := Specified;
+      end if;
+
       Prj.Part.Parse
         (In_Tree           => Project_Node_Tree,
          Project           => User_Project_Node,
index cb7a73110038b97ab3ff61b5b6988875a4d03f0f..71c98129cdd77a4e44ca12c733b82a5aa85d6d2b 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---            Copyright (C) 1992-2009, Free Software Foundation, Inc.       --
+--            Copyright (C) 1992-2014, 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- --
@@ -69,11 +69,12 @@ package System.Val_Dec is
    --  is greater than Max as required in this case.
 
    function Value_Decimal (Str : String; Scale : Integer) return Integer;
-   --  Used in computing X'Value (Str) where X is a decimal types whose size
-   --  does not exceed Standard.Integer'Size. Str is the string argument of
-   --  the attribute. Constraint_Error is raised if the string is malformed
-   --  or if the value is out of range, otherwise the value returned is the
-   --  value Integer'Integer_Value (decimal-literal-value), using the given
-   --  Scale to determine this value.
+   --  Used in computing X'Value (Str) where X is a decimal fixed-point type
+   --  whose size does not exceed Standard.Integer'Size. Str is the string
+   --  argument of the attribute. Constraint_Error is raised if the string
+   --  is malformed or if the value is out of range of Integer (not the
+   --  range of the fixed-point type, that check must be done by the caller.
+   --  Otherwise the value returned is the value Integer'Integer_Value
+   --  (decimal-literal-value), using Scale to determine this value.
 
 end System.Val_Dec;
index d88dcc29afdf442f3b8077cef92e649026f13acb..9f516fe8036dee9dbc36809f8b099d4b1f2f22bc 100644 (file)
@@ -1033,7 +1033,8 @@ package body Sem_Ch12 is
          Func_Name : Node_Id;
          Func      : Entity_Id;
          N_Parms   : Natural;
-         Profile   : List_Id;
+         Parm_Type : Node_Id;
+         Profile   : List_Id := New_List;
          Spec      : Node_Id;
          F         : Entity_Id;
          New_F     : Entity_Id;
@@ -1055,7 +1056,7 @@ package body Sem_Ch12 is
          Actuals := New_List;
          Profile := New_List;
 
-         F := First_Formal (Formal);
+         F := First_Formal (Entity (Actual));
          N_Parms := 0;
          while Present (F) loop
 
@@ -1064,11 +1065,25 @@ package body Sem_Ch12 is
 
             New_F := Make_Temporary
                        (Loc, Character'Val (Character'Pos ('A') + N_Parms));
+
+            --  If a formal has a class-wide type, rewrite as the corresponding
+            --  attribute, because the class-wide type is not retrievable by
+            --  visbility.
+
+            if Is_Class_Wide_Type (Etype (F)) then
+               Parm_Type :=
+                 Make_Attribute_Reference (Loc,
+                   Attribute_Name => Name_Class,
+                   Prefix         =>
+                     Make_Identifier (Loc, Chars (Etype (Etype (F)))));
+            else
+               Parm_Type := Make_Identifier (Loc, Chars (Etype (F)));
+            end if;
+
             Append_To (Profile,
               Make_Parameter_Specification (Loc,
               Defining_Identifier => New_F,
-              Parameter_Type      =>
-                Make_Identifier (Loc, Chars => Chars (Etype (F)))));
+              Parameter_Type      => Parm_Type));
 
             Append_To (Actuals, New_Occurrence_Of (New_F, Loc));
             Next_Formal (F);