[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Mon, 26 Oct 2015 12:03:29 +0000 (13:03 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 26 Oct 2015 12:03:29 +0000 (13:03 +0100)
2015-10-26  Javier Miranda  <miranda@adacore.com>

* exp_ch6.adb (Expand_N_Subprogram_Declaration): Skip the frontend
transformation of functions that return a constrained array into
a procedure when they are unchecked_conversion instances.

2015-10-26  Gary Dismukes  <dismukes@adacore.com>

* s-os_lib.ads: Minor reformatting/rewording.

From-SVN: r229350

gcc/ada/ChangeLog
gcc/ada/exp_ch6.adb
gcc/ada/s-os_lib.ads

index b19076c7361b03b8ca0d677a138dd8bf473fcad0..1da9491fcb445f93621abae3df5917a629727199 100644 (file)
@@ -1,3 +1,13 @@
+2015-10-26  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch6.adb (Expand_N_Subprogram_Declaration): Skip the frontend
+       transformation of functions that return a constrained array into
+       a procedure when they are unchecked_conversion instances.
+
+2015-10-26  Gary Dismukes  <dismukes@adacore.com>
+
+       * s-os_lib.ads: Minor reformatting/rewording.
+
 2015-10-26  Arnaud Charlet  <charlet@adacore.com>
 
        * debug.adb: Introduce debug flag -gnatd.5.
index a666ab22b8593ce31dc690e8c7f6700f28eda0c6..b8488584290666cbad848c89659380b887908881 100644 (file)
@@ -5666,10 +5666,15 @@ package body Exp_Ch6 is
       --  constrained array type into a procedure with an out parameter
       --  that carries the return value.
 
+      --  We skip this transformation for unchecked conversions, since they
+      --  are not needed by the C generator (and this also produces cleaner
+      --  output).
+
       if Modify_Tree_For_C
         and then Nkind (Specification (N)) = N_Function_Specification
         and then Is_Array_Type (Etype (Subp))
         and then Is_Constrained (Etype (Subp))
+        and then not Is_Unchecked_Conversion_Instance (Subp)
       then
          Build_Procedure_Form;
       end if;
index e9bb9bf65b9d394dca16dc16a1e88ceb57158783..4c03c700f5af038cc83975e7f1dbac8dbdd45496 100644 (file)
@@ -877,14 +877,12 @@ package System.OS_Lib is
    --  there is no notion of executables under this OS.
 
    procedure Kill (Pid : Process_Id; Hard_Kill : Boolean := True);
-   --  Kill process known as Pid by the OS. Does nothing if Pid is
-   --  Invalid_Pid or on platforms where it is not supported like
-   --  VxWorks.
-   --  Hard_Kill is True by default and in this case the process
-   --  is terminated immediately. If Hard_Kill is False a signal
-   --  SIGINT is sent to the process on POSIX OS or a CTRL-C event
-   --  on Windows, this let the process a chance to quit properly
-   --  using a corresponding handler.
+   --  Kill the process designated by Pid. Does nothing if Pid is Invalid_Pid
+   --  or on platforms where it is not supported, such as VxWorks. Hard_Kill
+   --  is True by default, and when True the process is terminated immediately.
+   --  If Hard_Kill is False, then a signal SIGINT is sent to the process on
+   --  POSIX OS or a ctrl-C event on Windows, allowing the process a chance to
+   --  terminate properly using a corresponding handler.
 
    function Argument_String_To_List
      (Arg_String : String) return Argument_List_Access;