aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--stdlib/tst-setcontext.c18
2 files changed, 21 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b500e57..49f0179 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2007-12-03 Ulrich Drepper <drepper@redhat.com>
+ * stdlib/tst-setcontext.c: Catch the case where the links gets
+ messed up and we do not reach main again.
+
* po/ca.po: Update from translation team.
2007-11-26 Ulrich Drepper <drepper@redhat.com>
diff --git a/stdlib/tst-setcontext.c b/stdlib/tst-setcontext.c
index e8b1e22..28bf230 100644
--- a/stdlib/tst-setcontext.c
+++ b/stdlib/tst-setcontext.c
@@ -123,9 +123,26 @@ test_stack(volatile int a, volatile int b,
volatile int global;
+
+static int back_in_main;
+
+
+static void
+check_called (void)
+{
+ if (back_in_main == 0)
+ {
+ puts ("program did no reach main again");
+ _exit (1);
+ }
+}
+
+
int
main (void)
{
+ atexit (check_called);
+
char st1[32768];
puts ("making contexts");
@@ -185,6 +202,7 @@ main (void)
exit (1);
}
puts ("back at main program");
+ back_in_main = 1;
if (was_in_f1 == 0)
{