aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sysdep.c
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-18 09:53:00 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-18 09:53:00 +0000
commite78237927a54a7b59b24fa22dfcf6e612894d3ee (patch)
tree3d9032a0797e7fdf2282a10a3eb70fe86bfbd5d6 /gcc/ada/sysdep.c
parentc2ed75072b4b590c081d066529157392bc9f3248 (diff)
2010-10-18 Arnaud Charlet <charlet@adacore.com>
* g-comlin.adb (Get_Switches): Prevent dereferencing null Config. 2010-10-18 Robert Dewar <dewar@adacore.com> * aspects.ads, aspects.adb: Add entries for aspects Read/Write/Input/Output. * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for handling aspects Read/Write/Input/Output. 2010-10-18 Robert Dewar <dewar@adacore.com> * sem_util.adb (Note_Possible_Modification): Do not give warning for use of pragma Unmodified unless we are sure this is a modification. 2010-10-18 Tristan Gingold <gingold@adacore.com> * sysdep.c: Add __gnat_get_stack_bounds. * s-taprop-mingw.adb Call __gnat_get_stack_bounds to set Pri_Stack_Info. 2010-10-18 Robert Dewar <dewar@adacore.com> * a-assert.ads: Fix bad name in header. * sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch10.adb: Minor reformatting. * exp_aggr.adb: Fix typo in comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165615 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sysdep.c')
-rw-r--r--gcc/ada/sysdep.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/gcc/ada/sysdep.c b/gcc/ada/sysdep.c
index 49d2f8376af..19612884fa8 100644
--- a/gcc/ada/sysdep.c
+++ b/gcc/ada/sysdep.c
@@ -235,7 +235,7 @@ winflush_nt (void)
/* Does nothing as there is no problem under NT. */
}
-#else
+#else /* !RTX */
static void winflush_init (void);
@@ -301,9 +301,27 @@ __gnat_is_windows_xp (void)
return is_win_xp;
}
-#endif
+#endif /* !RTX */
-#endif
+/* Get the bounds of the stack. The stack pointer is supposed to be
+ initialized to BASE when a thread is created and the stack can be extended
+ to LIMIT before reaching a guard page.
+ Note: for the main thread, the system automatically extend the stack, so
+ LIMIT is only the current limit. */
+
+void
+__gnat_get_stack_bounds (void **base, void **limit)
+{
+ NT_TIB *tib;
+
+ /* We know that the first field of the TEB is the TIB. */
+ tib = (NT_TIB *)NtCurrentTeb ();
+
+ *base = tib->StackBase;
+ *limit = tib->StackLimit;
+}
+
+#endif /* !__MINGW32__ */
#else