Commit 6a989c79 by Arnaud Charlet

[multiple changes]

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
parent 1c85591c
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> 2015-01-07 Robert Dewar <dewar@adacore.com>
* a-reatim.adb, make.adb, exp_pakd.adb, i-cpoint.adb, sem_ch8.adb, * a-reatim.adb, make.adb, exp_pakd.adb, i-cpoint.adb, sem_ch8.adb,
......
...@@ -1388,7 +1388,7 @@ package body Clean is ...@@ -1388,7 +1388,7 @@ package body Clean is
if Project_File_Name /= null then if Project_File_Name /= null then
Put_Line Put_Line
("warning: gnatclean -P is obsolete and will not be available " & ("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; end if;
-- A project file was specified by a -P switch -- A project file was specified by a -P switch
......
...@@ -44,6 +44,12 @@ ...@@ -44,6 +44,12 @@
#include <stdlib.h> #include <stdlib.h>
#endif #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 (__vxworks)
#if defined (__RTP__) #if defined (__RTP__)
/* On VxWorks 6 Real-Time process mode, environ is defined in unistd.h. */ /* On VxWorks 6 Real-Time process mode, environ is defined in unistd.h. */
...@@ -212,6 +218,8 @@ __gnat_environ (void) ...@@ -212,6 +218,8 @@ __gnat_environ (void)
#elif ! (defined (__vxworks)) #elif ! (defined (__vxworks))
extern char **environ; extern char **environ;
return environ; return environ;
#elif defined (__APPLE__) && !defined (__arm__)
return *_NSGetEnviron ();
#else #else
return environ; return environ;
#endif #endif
......
...@@ -2521,6 +2521,18 @@ package body Sem_Ch10 is ...@@ -2521,6 +2521,18 @@ package body Sem_Ch10 is
return; return;
end if; 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 -- If the library unit is a predefined unit, and we are in high
-- integrity mode, then temporarily reset Configurable_Run_Time_Mode -- integrity mode, then temporarily reset Configurable_Run_Time_Mode
-- for the analysis of the with'ed unit. This mode does not prevent -- for the analysis of the with'ed unit. This mode does not prevent
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment