[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Mon, 20 Oct 2014 14:11:43 +0000 (16:11 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 20 Oct 2014 14:11:43 +0000 (16:11 +0200)
2014-10-20  Arnaud Charlet  <charlet@adacore.com>

* set_targ.adb (Write_Target_Dependent_Values, Write_Line):
Fix calling C APIs with no trailing NUL char by calling better
wrappers instead.

2014-10-20  Tristan Gingold  <gingold@adacore.com>

* gnat_ugn.texi: Document that gdb users must be in group
_developer on mac os.

2014-10-20  Arnaud Charlet  <charlet@adacore.com>

* a-tgdico.ads: Fix typo.

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

* exp_aggr.adb (Convert_To_Assignments): Do not create a
transient scope for a component whose type requires it, if the
context is an initialization procedure, because the target of
the assignment must be visible outside of the block.

2014-10-20  Tristan Gingold  <gingold@adacore.com>

* tracebak.c: Define PC_ADJUST for arm-darwin.
* env.c: Remove darwin specific code.
* raise-gcc.c (__gnat_Unwind_ForcedUnwind): Error on arm-darwin.

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

* sem_ch3.adb (Analyze_Full_Type_Declaration): If previous view
is incomplete rather than private, and full type declaration
has aspects, analyze aspects on the full view rather than
the incomplete view, to prevent freezing anomalies with the
class-wide type.

From-SVN: r216470

gcc/ada/ChangeLog
gcc/ada/a-tgdico.ads
gcc/ada/env.c
gcc/ada/exp_aggr.adb
gcc/ada/gnat_ugn.texi
gcc/ada/raise-gcc.c
gcc/ada/sem_ch3.adb
gcc/ada/set_targ.adb
gcc/ada/tracebak.c

index 70bad2fd58a917306e1ef688298cb29efea6b939..a304daaeb5ba40584ece6e0c9094253ca5726a77 100644 (file)
@@ -1,3 +1,39 @@
+2014-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * set_targ.adb (Write_Target_Dependent_Values, Write_Line):
+       Fix calling C APIs with no trailing NUL char by calling better
+       wrappers instead.
+
+2014-10-20  Tristan Gingold  <gingold@adacore.com>
+
+       * gnat_ugn.texi: Document that gdb users must be in group
+       _developer on mac os.
+
+2014-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * a-tgdico.ads: Fix typo.
+
+2014-10-20  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_aggr.adb (Convert_To_Assignments): Do not create a
+       transient scope for a component whose type requires it, if the
+       context is an initialization procedure, because the target of
+       the assignment must be visible outside of the block.
+
+2014-10-20  Tristan Gingold  <gingold@adacore.com>
+
+       * tracebak.c: Define PC_ADJUST for arm-darwin.
+       * env.c: Remove darwin specific code.
+       * raise-gcc.c (__gnat_Unwind_ForcedUnwind): Error on arm-darwin.
+
+2014-10-20  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Analyze_Full_Type_Declaration): If previous view
+       is incomplete rather than private, and full type declaration
+       has aspects, analyze aspects on the full view rather than
+       the incomplete view, to prevent freezing anomalies with the
+       class-wide type.
+
 2014-10-17  Robert Dewar  <dewar@adacore.com>
 
        * exp_ch9.adb (Expand_N_Task_Body): Add defense against
index 6da900183dca761ff367c34a7ccfc6a3c5bd29e8..3aae768805cc24f91ae41fecc31892ed3cf17e43 100644 (file)
@@ -14,7 +14,7 @@
 ------------------------------------------------------------------------------
 
 pragma Warnings (Off);
---  Turn of categorization warnings
+--  Turn off categorization warnings
 
 generic
    type T (<>) is abstract tagged limited private;
index de5e08a65c3ee4946a6409edbbbf1979cf750bc7..95308130cbcbb118b071546943e08227cc03db08 100644 (file)
 extern "C" {
 #endif
 
-#if defined (__APPLE__)
-#include <crt_externs.h>
-#endif
-
 #ifdef VMS
 #include <vms/descrip.h>
 #endif
@@ -208,9 +204,6 @@ __gnat_environ (void)
 #if defined (VMS) || defined (RTX)
   /* Not implemented */
   return NULL;
-#elif defined (__APPLE__)
-  char ***result = _NSGetEnviron ();
-  return *result;
 #elif defined (__MINGW32__)
   return _environ;
 #elif defined (sun)
index a3049ddffed54f4be11d4bc6cf9de1a7ebda1fec..ac67a5724e2c9054eb13f5a0a240e9615d15cc0a 100644 (file)
@@ -3396,7 +3396,7 @@ package body Exp_Aggr is
          --  that any finalization chain will be associated with that scope.
          --  For extended returns, we delay expansion to avoid the creation
          --  of an unwanted transient scope that could result in premature
-         --  finalization of the return object (which is built in in place
+         --  finalization of the return object (which is built in place
          --  within the caller's scope).
 
          or else
@@ -3409,7 +3409,14 @@ package body Exp_Aggr is
          return;
       end if;
 
-      if Requires_Transient_Scope (Typ) then
+      --  Otherwise, if a transient scope is required, create it now. If we
+      --  are within an initialization procedure do not create such, because
+      --  the target of the assignment must not be declared within a local
+      --  block, and because cleanup will take place on return from the
+      --  initialization procedure.
+      --  Should the condition be more restrictive ???
+
+      if Requires_Transient_Scope (Typ) and then not Inside_Init_Proc then
          Establish_Transient_Scope (N, Sec_Stack => Needs_Finalization (Typ));
       end if;
 
index 846fa03a622e76d48443bb7df7478d76bc2d65ba..f586f87b17b269d3d51158952d5de366b5defed3 100644 (file)
@@ -29282,7 +29282,8 @@ codesign -f -s  "gdb-cert"  <gnat_install_prefix>/bin/gdb
 
 ... where "gdb-cert" should be replaced by the actual certificate
 name chosen above, and <gnat_install_prefix> should be replaced by
-the location where you installed GNAT.
+the location where you installed GNAT.  Also, be sure that users are
+in the Unix group @samp{_developer}.
 
 @c **********************************
 @c * GNU Free Documentation License *
index 747a9de167f8b5095475f20f6c2008748fc2770c..507412b0c362fffede7de6e39349ba66bdde98e9 100644 (file)
@@ -1384,7 +1384,14 @@ __gnat_Unwind_ForcedUnwind (_Unwind_Exception *e,
                            void *argument)
 {
 #ifdef __USING_SJLJ_EXCEPTIONS__
+
+# if defined (__APPLE__) && defined (__arm__)
+  /* There is not ForcedUnwind routine in ios system library.  */
+  return _URC_FATAL_PHASE1_ERROR;
+# else
   return _Unwind_SjLj_ForcedUnwind (e, handler, argument);
+# endif
+
 #else
   return _Unwind_ForcedUnwind (e, handler, argument);
 #endif
index 473bff83716c4dbf355ba46fd18c261c5a78f23d..608307e44705d37174face5d170992e5fa09e008 100644 (file)
@@ -2777,9 +2777,18 @@ package body Sem_Ch3 is
       --  them to the entity for the type which is currently the partial
       --  view, but which is the one that will be frozen.
 
+      --  In most cases the partial view is a private type, and both views
+      --  appear in different declarative parts. In the unusual case where the
+      --  partial view is incomplete, perform the analysis on the full view,
+      --  to prevent freezing anomalies with the corresponding class-wide type,
+      --  which otherwise might be frozen before the dispatch table is built.
+
       if Has_Aspects (N) then
-         if Prev /= Def_Id then
+         if Prev /= Def_Id
+           and then Ekind (Prev) /= E_Incomplete_Type
+         then
             Analyze_Aspect_Specifications (N, Prev);
+
          else
             Analyze_Aspect_Specifications (N, Def_Id);
          end if;
index 46f40cc047dfd3580e1e2b8d92a8f1baf686cc78..8c201ea39928d7bb57d6b8d7a12a33fe95606cae 100755 (executable)
@@ -370,7 +370,7 @@ package body Set_Targ is
          AddC (ASCII.LF);
 
          if Buflen /= Write (Fdesc, Buffer'Address, Buflen) then
-            Delete_File (Target_Dependent_Info_Write_Name'Address, OK);
+            Delete_File (Target_Dependent_Info_Write_Name.all, OK);
             Fail ("disk full writing file "
                   & Target_Dependent_Info_Write_Name.all);
          end if;
@@ -382,7 +382,7 @@ package body Set_Targ is
 
    begin
       Fdesc :=
-        Create_File (Target_Dependent_Info_Write_Name.all'Address, Text);
+        Create_File (Target_Dependent_Info_Write_Name.all, Text);
 
       if Fdesc = Invalid_FD then
          Fail ("cannot create file " & Target_Dependent_Info_Write_Name.all);
index 54ec90f674b96d7561f3b16d7f10770554807751..d5f9b9c6ba8d0adfb118a83ba347664a2451c2d3 100644 (file)
@@ -272,6 +272,8 @@ __gnat_backtrace (void **array,
 #define PC_ADJUST -2
 #elif defined (__ppc__) || defined (__ppc64__)
 #define PC_ADJUST -4
+#elif defined (__arm__)
+#define PC_ADJUST -2
 #else
 #error Unhandled darwin architecture.
 #endif