diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-10-18 09:53:00 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-10-18 09:53:00 +0000 |
commit | e78237927a54a7b59b24fa22dfcf6e612894d3ee (patch) | |
tree | 3d9032a0797e7fdf2282a10a3eb70fe86bfbd5d6 /gcc/ada/sysdep.c | |
parent | c2ed75072b4b590c081d066529157392bc9f3248 (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.c | 24 |
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 |