[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Wed, 7 Jan 2015 10:15:18 +0000 (11:15 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 7 Jan 2015 10:15:18 +0000 (11:15 +0100)
2015-01-07  Vincent Celier  <celier@adacore.com>

* clean.adb: Minor error message change.

2015-01-07  Tristan Gingold  <gingold@adacore.com>

PR ada/64349
* env.c (__gnat_environ): Adjust for darwin9/darwin10.

2015-01-07  Javier Miranda  <miranda@adacore.com>

* sem_ch10.adb (Analyze_With_Clause): Compiling under -gnatq
protect the frontend against never ending recursion caused by
circularities in the sources.

From-SVN: r219290

gcc/ada/ChangeLog
gcc/ada/clean.adb
gcc/ada/env.c
gcc/ada/sem_ch10.adb

index ed5e35202ee13513c3ae2d96fa35ef24b2c1351f..47a8051b422016c2dce11a3a37304e97bccd650e 100644 (file)
@@ -1,3 +1,18 @@
+2015-01-07  Vincent Celier  <celier@adacore.com>
+
+       * clean.adb: Minor error message change.
+
+2015-01-07  Tristan Gingold  <gingold@adacore.com>
+
+       PR ada/64349  
+       * env.c (__gnat_environ): Adjust for darwin9/darwin10.
+
+2015-01-07  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch10.adb (Analyze_With_Clause): Compiling under -gnatq
+       protect the frontend against never ending recursion caused by
+       circularities in the sources.
+
 2015-01-07  Robert Dewar  <dewar@adacore.com>
 
        * a-reatim.adb, make.adb, exp_pakd.adb, i-cpoint.adb, sem_ch8.adb,
index 5d892e32d7341f38539bb1dea9738af41c15d0f4..a9dede587ba983160501c1b17de6942c979e0275 100644 (file)
@@ -1388,7 +1388,7 @@ package body Clean is
          if Project_File_Name /= null then
             Put_Line
               ("warning: gnatclean -P is obsolete and will not be available " &
-               "in the next release. Use gprclean instead.");
+               "in the next release; use gprclean instead.");
          end if;
 
          --  A project file was specified by a -P switch
index 95308130cbcbb118b071546943e08227cc03db08..f8608bcd38c985394465b9681224fe29712b0e19 100644 (file)
 #include <stdlib.h>
 #endif
 
+#if defined (__APPLE__) && !defined (__arm__)
+/* On Darwin, _NSGetEnviron must be used for shared libraries; but it is not
+   available on iOS.  */
+#include <crt_externs.h>
+#endif
+
 #if defined (__vxworks)
   #if defined (__RTP__)
     /* On VxWorks 6 Real-Time process mode, environ is defined in unistd.h.  */
@@ -212,6 +218,8 @@ __gnat_environ (void)
 #elif ! (defined (__vxworks))
   extern char **environ;
   return environ;
+#elif defined (__APPLE__) && !defined (__arm__)
+  return *_NSGetEnviron ();
 #else
   return environ;
 #endif
index 3f47deef43d317ce36ac166e1e7a1ce564e9cca0..5e66316cdf51ec66503e27d0e8d15b0b60cd196d 100644 (file)
@@ -2521,6 +2521,18 @@ package body Sem_Ch10 is
          return;
       end if;
 
+      --  If we are compiling under "don't quit" mode (-gnatq) and we have
+      --  already detected serious errors then we mark the with-clause nodes as
+      --  analyzed before the corresponding compilation unit is analyzed. This
+      --  is done here to protect the frontend against never ending recursion
+      --  caused by circularities in the sources (because the previous errors
+      --  may break the regular machine of the compiler implemented in
+      --  Load_Unit to detect circularities).
+
+      if Serious_Errors_Detected > 0 and then Try_Semantics then
+         Set_Analyzed (N);
+      end if;
+
       --  If the library unit is a predefined unit, and we are in high
       --  integrity mode, then temporarily reset Configurable_Run_Time_Mode
       --  for the analysis of the with'ed unit. This mode does not prevent