Index: gdb/testsuite/gdb.arch/amd64-tailcall-noret.c |
diff --git a/gdb/testsuite/gdb.reverse/singlejmp-reverse.c b/gdb/testsuite/gdb.arch/amd64-tailcall-noret.c |
similarity index 75% |
copy from gdb/testsuite/gdb.reverse/singlejmp-reverse.c |
copy to gdb/testsuite/gdb.arch/amd64-tailcall-noret.c |
index c9ebf37451ebcb8ee7e7894526c4c153dbc04ba8..6a84c76a616aeb646d7b1d64a4ff069a23abc2c6 100644 |
--- a/gdb/testsuite/gdb.reverse/singlejmp-reverse.c |
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-noret.c |
@@ -1,6 +1,6 @@ |
/* This testcase is part of GDB, the GNU debugger. |
- Copyright 2012 Free Software Foundation, Inc. |
+ Copyright 2013 Free Software Foundation, Inc. |
This program is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
@@ -15,28 +15,32 @@ |
You should have received a copy of the GNU General Public License |
along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
-volatile int v; |
+#include <stdlib.h> |
-static __attribute__ ((noinline, noclone)) void |
-g (void) |
+volatile int v = 1; |
+ |
+static __attribute__ ((noinline, noclone, noreturn)) void |
+noret (int x, ...) |
{ |
- v = 2; |
+ abort (); |
} |
static __attribute__ ((noinline, noclone)) void |
-f (void) |
+mayret (int x) |
{ |
- g (); |
+ if (v) |
+ noret (x); |
} |
-extern void nodebug (void); |
+static __attribute__ ((noinline, noclone)) void |
+tailcall (int x) |
+{ |
+ mayret (x); |
+} |
int |
main (void) |
{ |
- v = 1; |
- f (); |
- nodebug (); |
- v = 3; |
+ tailcall (1); |
return 0; |
} |