diff --git a/gcc/testsuite/gcc.c-torture/execute/20000112-1.c b/gcc/testsuite/gcc.c-torture/execute/20000112-1.c
index 080b6627cbe..7668821f6d0 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000112-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000112-1.c
@@ -1,5 +1,8 @@
 #include <string.h>
 
+void abort (void);
+void exit (int);
+
 static int
 special_format (fmt)
      const char *fmt;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000113-1.c b/gcc/testsuite/gcc.c-torture/execute/20000113-1.c
index 8b61dbb2109..2b1d8683cc2 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000113-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000113-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct x { 
   unsigned x1:1;
   unsigned x2:2;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000205-1.c b/gcc/testsuite/gcc.c-torture/execute/20000205-1.c
index b605b84b6b1..9fd602c68e6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000205-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000205-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 static int f (int a)
 {
   if (a == 0)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000217-1.c b/gcc/testsuite/gcc.c-torture/execute/20000217-1.c
index 42716afbe0b..1953d1e7b64 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000217-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000217-1.c
@@ -1,3 +1,6 @@
+void abort(void);
+void exit(int);
+
 unsigned short int showbug(unsigned short int *a, unsigned short int *b)
 {
         *a += *b -8;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000223-1.c b/gcc/testsuite/gcc.c-torture/execute/20000223-1.c
index db6180b757a..59ab2292d06 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000223-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000223-1.c
@@ -5,6 +5,8 @@
    eg, sizeof(long double) might be 12, but that means it must be alignable
    on a 4 byte boundary. */
 
+void abort (void);
+
 void check (char const *type, int align)
 {
   if ((align & -align) != align)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000224-1.c b/gcc/testsuite/gcc.c-torture/execute/20000224-1.c
index 295cc473b3e..f57a9287607 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000224-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000224-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int loop_1 = 100;
 int loop_2 = 7;
 int flag = 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000225-1.c b/gcc/testsuite/gcc.c-torture/execute/20000225-1.c
index 6c409bcf776..9d66313f6b0 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000225-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000225-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int main ()
 {
     int nResult;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000227-1.c b/gcc/testsuite/gcc.c-torture/execute/20000227-1.c
index 395a02c50c6..4c885af819e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000227-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000227-1.c
@@ -1,3 +1,5 @@
+void abort(void);
+
 static const unsigned char f[] = "\0\377";
 static const unsigned char g[] = "\0";
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000313-1.c b/gcc/testsuite/gcc.c-torture/execute/20000313-1.c
index 5c9a5569bdc..90a096d28f2 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000313-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000313-1.c
@@ -1,3 +1,5 @@
+void abort (void);
+
 unsigned int buggy (unsigned int *param)
 {
   unsigned int accu, zero = 0, borrow;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000314-1.c b/gcc/testsuite/gcc.c-torture/execute/20000314-1.c
index 09de0949389..e43312969bd 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000314-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000314-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int main ()
 {
   long winds = 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000314-2.c b/gcc/testsuite/gcc.c-torture/execute/20000314-2.c
index c190d8f79b5..bd6c33ede88 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000314-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000314-2.c
@@ -1,3 +1,6 @@
+void abort(void);
+void exit(int);
+
 typedef unsigned long long uint64;
 const uint64 bigconst = 1ULL << 34;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000314-3.c b/gcc/testsuite/gcc.c-torture/execute/20000314-3.c
index a141bfa6a02..0ecc6052da7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000314-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000314-3.c
@@ -1,4 +1,5 @@
 extern void abort (void);
+extern void exit (int);
 
 static char arg0[] = "arg0";
 static char arg1[] = "arg1";
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000402-1.c b/gcc/testsuite/gcc.c-torture/execute/20000402-1.c
index 2c9e04fda42..13952e57334 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000402-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000402-1.c
@@ -1,3 +1,6 @@
+void abort(void);
+void exit(int);
+
 #include <limits.h>
 
 #if ULONG_LONG_MAX != 18446744073709551615ull && ULONG_MAX != 18446744073709551615ull
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000403-1.c b/gcc/testsuite/gcc.c-torture/execute/20000403-1.c
index 8bcd6f133ce..2c7e523299a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000403-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000403-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 extern unsigned long aa[], bb[];
 
 int seqgt (unsigned long a, unsigned short win, unsigned long b);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000412-1.c b/gcc/testsuite/gcc.c-torture/execute/20000412-1.c
index c9f71305df2..914d5096fd2 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000412-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000412-1.c
@@ -1,3 +1,6 @@
+void abort(void);
+void exit(int);
+
 short int i = -1;
 const char * const wordlist[207];
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000412-2.c b/gcc/testsuite/gcc.c-torture/execute/20000412-2.c
index de3ebf9e863..9c0c0fe091a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000412-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000412-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int f(int a,int *y)
 {
   int x = a;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000412-4.c b/gcc/testsuite/gcc.c-torture/execute/20000412-4.c
index f05b1510910..4e154db982b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000412-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000412-4.c
@@ -1,3 +1,6 @@
+  void abort (void);
+  void exit (int);
+
   void f(int i, int j, int radius, int width, int N)
   {
     const int diff   = i-radius;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000412-5.c b/gcc/testsuite/gcc.c-torture/execute/20000412-5.c
index c2efb15bc0f..bb984fe4a2b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000412-5.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000412-5.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int main( void ) {
     struct {
 	int node;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000412-6.c b/gcc/testsuite/gcc.c-torture/execute/20000412-6.c
index 98e00305197..fffdc998f0f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000412-6.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000412-6.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 unsigned bug (unsigned short value, unsigned short *buffer,
               unsigned short *bufend);
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000419-1.c b/gcc/testsuite/gcc.c-torture/execute/20000419-1.c
index 6127d8b13b0..93aa1246bf0 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000419-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000419-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct foo { int a, b, c; };
 
 void
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000422-1.c b/gcc/testsuite/gcc.c-torture/execute/20000422-1.c
index f94d4c5efc2..35ee1914aff 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000422-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000422-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int ops[13] =
 {
   11, 12, 46, 3, 2, 2, 3, 2, 1, 3, 2, 1, 2
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000503-1.c b/gcc/testsuite/gcc.c-torture/execute/20000503-1.c
index bbf32623f43..f3082e34aea 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000503-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000503-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 unsigned long
 sub (int a)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000511-1.c b/gcc/testsuite/gcc.c-torture/execute/20000511-1.c
index b8a41f5e85c..ba2a0b8c95b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000511-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000511-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void f (int value, int expect)
 {
   if (value != expect)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000519-1.c b/gcc/testsuite/gcc.c-torture/execute/20000519-1.c
index eec5bdd8fad..7eb44130880 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000519-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000519-1.c
@@ -1,3 +1,5 @@
+void abort (void);
+
 #include <stdarg.h>
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000519-2.c b/gcc/testsuite/gcc.c-torture/execute/20000519-2.c
index 9635e324240..278e4939447 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000519-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000519-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long x = -1L;
 
 int main()
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000523-1.c b/gcc/testsuite/gcc.c-torture/execute/20000523-1.c
index 6382ba4a1bf..7287bb6c5cd 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000523-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000523-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 main (void)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000528-1.c b/gcc/testsuite/gcc.c-torture/execute/20000528-1.c
index 20692bf8113..7e9c73d9cf1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000528-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000528-1.c
@@ -1,6 +1,9 @@
 /* Copyright (C) 2000  Free Software Foundation  */
 /* Contributed by Alexandre Oliva <aoliva@cygnus.com> */
 
+void abort (void);
+void exit (int);
+
 unsigned long l = (unsigned long)-2;
 unsigned short s;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000603-1.c b/gcc/testsuite/gcc.c-torture/execute/20000603-1.c
index e94a2c8e6da..97317b4fb05 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000603-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000603-1.c
@@ -2,6 +2,8 @@
    http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_236.htm.  However,
    there seems to be consensus that the presence of a union to aggregate
    struct s1 and struct s2 should make it conforming.  */
+void abort(void);
+
 struct s1 { double d; };
 struct s2 { double d; };
 union u { struct s1 x; struct s2 y; };
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000605-1.c b/gcc/testsuite/gcc.c-torture/execute/20000605-1.c
index b481ecb62b6..5798cf3fa76 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000605-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000605-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct _RenderInfo RenderInfo;
 struct _RenderInfo
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000605-2.c b/gcc/testsuite/gcc.c-torture/execute/20000605-2.c
index 8a49bc6daee..49288aab3a8 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000605-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000605-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct F { int i; };
 
 void f1(struct F *x, struct F *y)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000605-3.c b/gcc/testsuite/gcc.c-torture/execute/20000605-3.c
index 7ebb27fdb78..00c708323bc 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000605-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000605-3.c
@@ -1,3 +1,5 @@
+void abort (void);
+
 struct F { int x; int y; };
 
 int main()
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000622-1.c b/gcc/testsuite/gcc.c-torture/execute/20000622-1.c
index d853ea84086..3826f335f2d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000622-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000622-1.c
@@ -1,3 +1,6 @@
+void abort(void);
+void exit(int);
+
 long foo(long a, long b, long c)
 {
   if (a != 12 || b != 1 || c != 11)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000717-1.c b/gcc/testsuite/gcc.c-torture/execute/20000717-1.c
index 039ae5f342d..04ab823668c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000717-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000717-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct trio { int a, b, c; } trio;
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000717-2.c b/gcc/testsuite/gcc.c-torture/execute/20000717-2.c
index 4db9032ec6c..ad36a428742 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000717-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000717-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 static void
 compare (long long foo)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000717-5.c b/gcc/testsuite/gcc.c-torture/execute/20000717-5.c
index 49dcbbc66f1..2fd08e76960 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000717-5.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000717-5.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct trio { int a, b, c; } trio;
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000722-1.c b/gcc/testsuite/gcc.c-torture/execute/20000722-1.c
index 0ce31917957..b1b58fd7fc5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000722-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000722-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct s { char *p; int t; };
 
 extern void bar (void);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000726-1.c b/gcc/testsuite/gcc.c-torture/execute/20000726-1.c
index b0ecd29f3fe..ac107ad96a5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000726-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000726-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void adjust_xy (short *, short *);
 
 struct adjust_template
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000731-1.c b/gcc/testsuite/gcc.c-torture/execute/20000731-1.c
index 787c29a3b3b..d1ccb5aedca 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000731-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000731-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 double
 foo (void)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000731-2.c b/gcc/testsuite/gcc.c-torture/execute/20000731-2.c
index 112aa1c3a61..b5f645bcf5f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000731-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000731-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 main()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000801-3.c b/gcc/testsuite/gcc.c-torture/execute/20000801-3.c
index 8d47a8155fe..6982652c5d7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000801-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000801-3.c
@@ -2,6 +2,9 @@
    to a testcase by Joseph Myers <jsm28@cam.ac.uk>.
 */
 
+void abort (void);
+void exit (int);
+
 typedef struct { } empty;
 
 typedef struct {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000801-4.c b/gcc/testsuite/gcc.c-torture/execute/20000801-4.c
index d293f05c438..c26ba1441be 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000801-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000801-4.c
@@ -6,6 +6,7 @@
    standard, but was fixed in TC2 and C99; see DRs #060, #092.
 */
 extern void abort (void);
+extern void exit (int);
 
 int
 foo (void)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000808-1.c b/gcc/testsuite/gcc.c-torture/execute/20000808-1.c
index a905aad96db..8724d2d5c4f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000808-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000808-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct {
   long int p_x, p_y;
 } Point;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000815-1.c b/gcc/testsuite/gcc.c-torture/execute/20000815-1.c
index 22b537f993a..0512abef92b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000815-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000815-1.c
@@ -1,3 +1,5 @@
+void abort(void);
+
 struct table_elt
 {
   void *exp;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000818-1.c b/gcc/testsuite/gcc.c-torture/execute/20000818-1.c
index 0067644bddd..7650c53bf94 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000818-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000818-1.c
@@ -2,6 +2,9 @@
 
    by Manfred Hollstein <manfredh@redhat.com>  */
 
+void abort (void);
+void exit (int);
+
 void *temporary_obstack;
 
 static int input (void);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000819-1.c b/gcc/testsuite/gcc.c-torture/execute/20000819-1.c
index e1c2769c08d..f0dab68e235 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000819-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000819-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int a[2] = { 2, 0 };
 
 void foo(int *sp, int cnt)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000822-1.c b/gcc/testsuite/gcc.c-torture/execute/20000822-1.c
index e99bcc2fea3..66fa14f096d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000822-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000822-1.c
@@ -1,5 +1,7 @@
 /* { dg-require-effective-target trampolines } */
 
+void abort (void);
+
 int f0(int (*fn)(int *), int *p)
 {
   return (*fn) (p);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000914-1.c b/gcc/testsuite/gcc.c-torture/execute/20000914-1.c
index 1e8bb0ce73c..b8c58ec370c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000914-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000914-1.c
@@ -1,3 +1,5 @@
+extern void abort (void);
+extern void exit (int);
 extern void *malloc(__SIZE_TYPE__);
 
 enum tree_code {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000917-1.c b/gcc/testsuite/gcc.c-torture/execute/20000917-1.c
index 05b00ffe699..41615ccd83a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20000917-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20000917-1.c
@@ -1,6 +1,9 @@
 /* This bug exists in gcc-2.95, egcs-1.1.2, gcc-2.7.2 and probably
    every other version as well.  */
 
+void abort (void);
+void exit (int);
+
 typedef struct int3 { int a, b, c; } int3;
 
 int3
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001009-1.c b/gcc/testsuite/gcc.c-torture/execute/20001009-1.c
index aa691cab2fb..4a3cbeb9baa 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001009-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001009-1.c
@@ -1,3 +1,4 @@
+void abort(void);
 int a,b;
 main()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001009-2.c b/gcc/testsuite/gcc.c-torture/execute/20001009-2.c
index eedc299fbcb..62464b4cd0b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001009-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001009-2.c
@@ -1,3 +1,4 @@
+void abort(void);
 int b=1;
 int foo()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001013-1.c b/gcc/testsuite/gcc.c-torture/execute/20001013-1.c
index 0d139fc8039..a41a19e2461 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001013-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001013-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct x {
 	int a, b;
 } z = { -4028, 4096 };
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001017-1.c b/gcc/testsuite/gcc.c-torture/execute/20001017-1.c
index f55886f4acd..5ca98081cad 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001017-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001017-1.c
@@ -1,3 +1,4 @@
+void abort (void);
  
 void bug (double *Cref, char transb, int m, int n, int k,
 	  double a, double *A, int fdA, double *B, int fdB,
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001017-2.c b/gcc/testsuite/gcc.c-torture/execute/20001017-2.c
index 3263bb9b54e..5cd9178024c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001017-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001017-2.c
@@ -1,3 +1,5 @@
+void abort (void);
+
 void
 fn_4parms (unsigned char a, long *b, long *c, unsigned int *d)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001024-1.c b/gcc/testsuite/gcc.c-torture/execute/20001024-1.c
index 42be8abca6a..f8c113db7ce 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001024-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001024-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct a;
 
 extern int baz (struct a *__restrict x);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001027-1.c b/gcc/testsuite/gcc.c-torture/execute/20001027-1.c
index 89ac9a024dd..c2df3f4547c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001027-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001027-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int x,*p=&x;
 
 int main()
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001101.c b/gcc/testsuite/gcc.c-torture/execute/20001101.c
index 475211e25f9..40bf7b855c7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001101.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001101.c
@@ -1,5 +1,6 @@
 /* { dg-require-effective-target untyped_assembly } */
 extern void abort(void);
+extern void exit(int);
 			 
 typedef struct
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001108-1.c b/gcc/testsuite/gcc.c-torture/execute/20001108-1.c
index a2a32553401..020c541cb15 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001108-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001108-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long long
 signed_poly (long long sum, long x)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001112-1.c b/gcc/testsuite/gcc.c-torture/execute/20001112-1.c
index 6ce2f66516f..1a769d8fc5b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001112-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001112-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int main ()
 {
   long long i = 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001124-1.c b/gcc/testsuite/gcc.c-torture/execute/20001124-1.c
index c0ec8cf0446..1a8822c398a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001124-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001124-1.c
@@ -1,3 +1,5 @@
+void abort(void);
+void exit(int);
 
 struct inode {
 	long long		i_size;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001130-1.c b/gcc/testsuite/gcc.c-torture/execute/20001130-1.c
index 4a996ee6ad3..515d9d302ef 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001130-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001130-1.c
@@ -1,3 +1,4 @@
+void abort(void);
 static inline int bar(void) { return 1; }
 static int mem[3];
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001130-2.c b/gcc/testsuite/gcc.c-torture/execute/20001130-2.c
index c4ef6c7da06..91b1db154ce 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001130-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001130-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 static int which_alternative = 3;
 
 static const char *i960_output_ldconst (void);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001203-2.c b/gcc/testsuite/gcc.c-torture/execute/20001203-2.c
index 03aabed9351..20eed72abfa 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001203-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001203-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct obstack
 {
   long chunk_size;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001221-1.c b/gcc/testsuite/gcc.c-torture/execute/20001221-1.c
index 4b6cc2b450b..d356d160814 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001221-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001221-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int main ()
 {
   unsigned long long a;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001228-1.c b/gcc/testsuite/gcc.c-torture/execute/20001228-1.c
index 9c93e79f571..0b8d08f6185 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001228-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001228-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int foo1(void)
 {
   union {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20001229-1.c b/gcc/testsuite/gcc.c-torture/execute/20001229-1.c
index 69ce6dab86d..3bf333dd5a8 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20001229-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20001229-1.c
@@ -6,7 +6,10 @@
 
    So: If we know how, ask the kernel to deliver SIGBUS instead so
    that the test case visibly fails.  */
-   
+
+void abort (void);
+void exit (int);
+
 #if defined(__alpha__) && defined(__linux__)
 #include <asm/sysinfo.h>
 #include <asm/unistd.h>
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010106-1.c b/gcc/testsuite/gcc.c-torture/execute/20010106-1.c
index 9e149c31462..15ed1c13cb3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010106-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010106-1.c
@@ -1,6 +1,9 @@
 /* Copyright 2001 Free Software Foundation
    Contributed by Alexandre Oliva <aoliva@redhat.com> */
 
+void abort (void);
+void exit (int);
+
 int f(int i) {
   switch (i)
   {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010118-1.c b/gcc/testsuite/gcc.c-torture/execute/20010118-1.c
index ee5197c9d9f..b03defb649c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010118-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010118-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct {
   int a, b, c, d, e, f;
 } A;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010119-1.c b/gcc/testsuite/gcc.c-torture/execute/20010119-1.c
index c2a691a39e7..9813d08faa6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010119-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010119-1.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 #ifdef __OPTIMIZE__
 extern void undef (void);
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010206-1.c b/gcc/testsuite/gcc.c-torture/execute/20010206-1.c
index 3aa8cad8662..5b23b253131 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010206-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010206-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int foo (void)
 {
   int i;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010209-1.c b/gcc/testsuite/gcc.c-torture/execute/20010209-1.c
index 1df7332f209..58f07d847a1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010209-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010209-1.c
@@ -1,4 +1,7 @@
 /* { dg-require-effective-target alloca } */
+void abort (void);
+void exit (int);
+
 int b;
 int foo (void)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010221-1.c b/gcc/testsuite/gcc.c-torture/execute/20010221-1.c
index 3caff81931a..a2abfadba3a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010221-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010221-1.c
@@ -1,3 +1,5 @@
+void abort (void);
+void exit (int);
 
 int n = 2;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010222-1.c b/gcc/testsuite/gcc.c-torture/execute/20010222-1.c
index c3a2b18e5f0..a6c819c32a3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010222-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010222-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int a[2] = { 18, 6 };
 
 int main ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010329-1.c b/gcc/testsuite/gcc.c-torture/execute/20010329-1.c
index e28d6d7c72e..48ac490a56f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010329-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010329-1.c
@@ -1,5 +1,8 @@
 #include <limits.h>
 
+void abort (void);
+void exit (int);
+
 int main (void)
 {
   void *x = ((void *)((unsigned int)INT_MAX + 2));
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010403-1.c b/gcc/testsuite/gcc.c-torture/execute/20010403-1.c
index 6a8f2a4242c..e6ceda25674 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010403-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010403-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void b (int *);
 void c (int, int);
 void d (int);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010409-1.c b/gcc/testsuite/gcc.c-torture/execute/20010409-1.c
index 95a5dc34401..2f101f52099 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010409-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010409-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef __SIZE_TYPE__ size_t;
 extern size_t strlen (const char *s);
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010422-1.c b/gcc/testsuite/gcc.c-torture/execute/20010422-1.c
index 5c6bccc9ed1..304bc71db52 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010422-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010422-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 unsigned int foo(unsigned int x)
 {
   if (x < 5)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010518-1.c b/gcc/testsuite/gcc.c-torture/execute/20010518-1.c
index 94b2d8f6f25..84a44789bf2 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010518-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010518-1.c
@@ -1,5 +1,8 @@
 /* Leaf functions with many arguments.  */
 
+void abort (void);
+void exit (int);
+
 int
 add (int a,
     int b,
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010518-2.c b/gcc/testsuite/gcc.c-torture/execute/20010518-2.c
index 1990f8e63bc..66e29e2ca36 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010518-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010518-2.c
@@ -1,5 +1,8 @@
 /* Mis-aligned packed structures.  */
 
+void abort (void);
+void exit (int);
+
 typedef struct
 {
   char b0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010520-1.c b/gcc/testsuite/gcc.c-torture/execute/20010520-1.c
index fa94418ca96..255a46392b7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010520-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010520-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 static unsigned int expr_hash_table_size = 1;
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010604-1.c b/gcc/testsuite/gcc.c-torture/execute/20010604-1.c
index e0deaf524f0..0440ab3b767 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010604-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010604-1.c
@@ -1,5 +1,8 @@
 #include <stdbool.h>
 
+void abort (void);
+void exit (int);
+
 int f (int a, int b, int c, _Bool d, _Bool e, _Bool f, char g)
 {
   if (g != 1 || d != true || e != true || f != true) abort ();
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010711-1.c b/gcc/testsuite/gcc.c-torture/execute/20010711-1.c
index 12971a55a15..b4b16399249 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010711-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010711-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void foo (int *a) {}
 
 int main ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010723-1.c b/gcc/testsuite/gcc.c-torture/execute/20010723-1.c
index 9d4b29f6898..d29cb6bfb37 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010723-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010723-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 test ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010904-1.c b/gcc/testsuite/gcc.c-torture/execute/20010904-1.c
index cb4d759e6b8..ca842b75054 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010904-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010904-1.c
@@ -6,6 +6,9 @@
 #define alignment 32
 #endif
 
+void abort (void);
+void exit (int);
+
 typedef struct x { int a; int b; } __attribute__((aligned(alignment))) X;
 typedef struct y { X x[32]; int c; } Y;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010904-2.c b/gcc/testsuite/gcc.c-torture/execute/20010904-2.c
index a0f2626e766..60dc664b999 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010904-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010904-2.c
@@ -6,6 +6,9 @@
 #define alignment 32
 #endif
 
+void abort (void);
+void exit (int);
+
 typedef struct x { int a; int b; } __attribute__((aligned(alignment))) X;
 typedef struct y { X x; X y[31]; int c; } Y;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010915-1.c b/gcc/testsuite/gcc.c-torture/execute/20010915-1.c
index 5a04bf58f10..27c5fd39aa1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010915-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010915-1.c
@@ -1,6 +1,9 @@
 /* Bug in reorg.c, deleting the "++" in the last loop in main.
    Origin: <hp@axis.com>.  */
 
+void abort (void);
+void exit (int);
+
 extern void f (void);
 extern int x (int, char **);
 extern int r (const char *);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010924-1.c b/gcc/testsuite/gcc.c-torture/execute/20010924-1.c
index 247f51ce64c..854246847bf 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010924-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010924-1.c
@@ -1,6 +1,8 @@
 /* Verify that flexible arrays can be initialized from STRING_CST
    constructors. */
 
+void abort(void);
+
 /* Baselines.  */
 struct {
   char a1c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20011024-1.c b/gcc/testsuite/gcc.c-torture/execute/20011024-1.c
index 5b871bbb9ec..f76f77f5df7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20011024-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20011024-1.c
@@ -2,6 +2,7 @@
    any memory.  */
 
 typedef __SIZE_TYPE__ size_t;
+extern void abort (void);
 extern void *memcpy (void *dest, const void *src, size_t n);
 extern size_t strlen (const char *s);
 extern int strcmp (const char *s1, const char *s2) __attribute__((pure));
diff --git a/gcc/testsuite/gcc.c-torture/execute/20011109-1.c b/gcc/testsuite/gcc.c-torture/execute/20011109-1.c
index 0f013d3b565..6a35c20a34f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20011109-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20011109-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void fail1(void)
 {
   abort ();
diff --git a/gcc/testsuite/gcc.c-torture/execute/20011109-2.c b/gcc/testsuite/gcc.c-torture/execute/20011109-2.c
index 1abbbf2f6da..25f72358cd3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20011109-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20011109-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int main(void)
 {
   char *c1 = "foo";
diff --git a/gcc/testsuite/gcc.c-torture/execute/20011114-1.c b/gcc/testsuite/gcc.c-torture/execute/20011114-1.c
index 9746c1e1d6f..f47190c3192 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20011114-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20011114-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 char foo(char bar[])
 {
   return bar[1];
diff --git a/gcc/testsuite/gcc.c-torture/execute/20011121-1.c b/gcc/testsuite/gcc.c-torture/execute/20011121-1.c
index 3e3d03a32ec..6fc45be294e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20011121-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20011121-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct s
 {
   int i[18];
diff --git a/gcc/testsuite/gcc.c-torture/execute/20011126-1.c b/gcc/testsuite/gcc.c-torture/execute/20011126-1.c
index ede938b0042..134abbcb3ff 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20011126-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20011126-1.c
@@ -1,5 +1,7 @@
 /* Produced a overflow in ifcvt.c, causing S to contain 0xffffffff7fffffff.  */
 
+void abort (void);
+
 int a = 1;
 
 int main ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/20011128-1.c b/gcc/testsuite/gcc.c-torture/execute/20011128-1.c
index d1f777a3db7..24a2b4bdbcf 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20011128-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20011128-1.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 main()
 {
   char blah[33] = "01234567890123456789";
diff --git a/gcc/testsuite/gcc.c-torture/execute/20011217-1.c b/gcc/testsuite/gcc.c-torture/execute/20011217-1.c
index af9919f2dc1..b61bd8b64d4 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20011217-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20011217-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 main()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020213-1.c b/gcc/testsuite/gcc.c-torture/execute/20020213-1.c
index f9fefee26f7..5d012d33756 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020213-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020213-1.c
@@ -3,6 +3,7 @@
    incorrectly assumed it is safe to first write into a.a2 b-1
    and then read the original value from it.  */
 
+void abort (void);
 int bar (float);
 
 struct A {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020215-1.c b/gcc/testsuite/gcc.c-torture/execute/20020215-1.c
index f1f46d57d08..e1781fc4c52 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020215-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020215-1.c
@@ -11,6 +11,9 @@
    find_dummy_reload would return (reg:SI 1) for the subreg reload,
    despite that not being a valid register.  */
 
+void abort (void);
+void exit (int);
+
 struct s
 {
   short i1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020225-2.c b/gcc/testsuite/gcc.c-torture/execute/20020225-2.c
index 5c91596096b..64fba1b529c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020225-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020225-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 static int 
 test(int x)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020226-1.c b/gcc/testsuite/gcc.c-torture/execute/20020226-1.c
index 6372ffc27c4..2a6459f3090 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020226-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020226-1.c
@@ -2,6 +2,9 @@
 
 #include <limits.h>
 
+void abort (void);
+void exit (int);
+
 #ifndef CHAR_BIT
 #define CHAR_BIT 8
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020227-1.c b/gcc/testsuite/gcc.c-torture/execute/20020227-1.c
index 0f83088bff9..04931e6d061 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020227-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020227-1.c
@@ -2,6 +2,9 @@
    to an unaligned mem:SC, gcc tried doing it by parts from a (concat:SC
    (reg:SF 293) (reg:SF 294)).  */
 
+void abort (void);
+void exit (int);
+
 typedef __complex__ float cf;
 struct x { char c; cf f; } __attribute__ ((__packed__));
 extern void f2 (struct x*);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020307-1.c b/gcc/testsuite/gcc.c-torture/execute/20020307-1.c
index c6379de3e8b..08999eebedb 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020307-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020307-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 #define MASK(N) ((1UL << (N)) - 1)
 #define BITS(N) ((1UL << ((N) - 1)) + 2)
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020328-1.c b/gcc/testsuite/gcc.c-torture/execute/20020328-1.c
index 4b6f2bf4e21..f32fdbf19f9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020328-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020328-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int b = 0;
 
 func () { }
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020404-1.c b/gcc/testsuite/gcc.c-torture/execute/20020404-1.c
index 34173e520f1..53b34083400 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020404-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020404-1.c
@@ -2,6 +2,9 @@
 /* { dg-skip-if "pointers can be truncated" { m32c-*-* } } */
 /* Extracted from GDB sources. */
 
+void abort (void);
+void exit (int);
+
 typedef long long bfd_signed_vma;
 typedef bfd_signed_vma file_ptr;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020406-1.c b/gcc/testsuite/gcc.c-torture/execute/20020406-1.c
index 69a82f6589a..bb5d4980220 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020406-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020406-1.c
@@ -1,6 +1,7 @@
 // Origin: abbott@dima.unige.it
 // PR c/5120
 
+extern void abort (void);
 extern void * malloc (__SIZE_TYPE__);
 extern void * calloc (__SIZE_TYPE__, __SIZE_TYPE__);
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020413-1.c b/gcc/testsuite/gcc.c-torture/execute/20020413-1.c
index fdef9eed7d5..fcc4c889c03 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020413-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020413-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void test(long double val, int *eval)
 {
   long double tmp = 1.0l;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020418-1.c b/gcc/testsuite/gcc.c-torture/execute/20020418-1.c
index 4826ca88664..7edea90f167 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020418-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020418-1.c
@@ -1,6 +1,8 @@
 /* ifcvt accidentally deletes a referenced label while generating
    conditional traps on machines having such patterns */
 
+void exit (int);
+
 struct foo { int a; };
 
 void gcc_crash(struct foo *p)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020508-1.c b/gcc/testsuite/gcc.c-torture/execute/20020508-1.c
index 612be8dcc23..0de335546ee 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020508-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020508-1.c
@@ -2,6 +2,9 @@
 
 #include <limits.h>
 
+void abort (void);
+void exit (int);
+
 #ifndef CHAR_BIT
 #define CHAR_BIT 8
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020508-2.c b/gcc/testsuite/gcc.c-torture/execute/20020508-2.c
index 533805a969e..7e3c7525b34 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020508-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020508-2.c
@@ -1,5 +1,8 @@
 #include <limits.h>
 
+void abort (void);
+void exit (int);
+
 #ifndef CHAR_BIT
 #define CHAR_BIT 8
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020508-3.c b/gcc/testsuite/gcc.c-torture/execute/20020508-3.c
index b41adffda99..1583ece57c4 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020508-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020508-3.c
@@ -1,5 +1,8 @@
 #include <limits.h>
 
+void abort (void);
+void exit (int);
+
 #ifndef CHAR_BIT
 #define CHAR_BIT 8
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020529-1.c b/gcc/testsuite/gcc.c-torture/execute/20020529-1.c
index 160a716ba5b..d34fec160fa 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020529-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020529-1.c
@@ -16,6 +16,9 @@
    Reported to nvidia 2016-05-18.  */
 /* { dg-skip-if "PTX assembler bug" { nvptx-*-* } { "-O0" } { "" } } */
 
+void abort (void);
+void exit (int);
+
 struct xx
  {
    int a;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020611-1.c b/gcc/testsuite/gcc.c-torture/execute/20020611-1.c
index 87fb717cf23..92cf6fb8004 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020611-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020611-1.c
@@ -1,6 +1,9 @@
 /* PR target/6997.  Missing (set_attr "cc" "none") in sleu pattern in
    cris.md.  Testcase from hp@axis.com.  */
 
+void abort (void);
+void exit (int);
+
 int p;
 int k;
 unsigned int n;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020615-1.c b/gcc/testsuite/gcc.c-torture/execute/20020615-1.c
index 89bf7d046ab..52064bf9fa7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020615-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020615-1.c
@@ -4,6 +4,9 @@
    epilogue delay-slot set the return-value register with the testcase
    below.  Derived from ghostscript-6.52 (GPL) by hp@axis.com.  */
 
+void abort (void);
+void exit (int);
+
 typedef struct font_hints_s {
   int axes_swapped;
   int x_inverted, y_inverted;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020619-1.c b/gcc/testsuite/gcc.c-torture/execute/20020619-1.c
index 1a1503e8930..2715f3f397d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020619-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020619-1.c
@@ -1,3 +1,4 @@
+void abort (void);
 #if (__SIZEOF_INT__ == 4)
 typedef int int32;
 #elif (__SIZEOF_LONG__ == 4)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020904-1.c b/gcc/testsuite/gcc.c-torture/execute/20020904-1.c
index 24eeb0cb0a0..2526d391808 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020904-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020904-1.c
@@ -3,6 +3,8 @@
 /* Verify that GCC zero-extends integer constants
    in unsigned binary operations. */
 
+void abort (void);
+
 typedef unsigned char u8;
 
 u8 fun(u8 y)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020916-1.c b/gcc/testsuite/gcc.c-torture/execute/20020916-1.c
index 3f2db15d019..75e5f6d0f6b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020916-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020916-1.c
@@ -1,6 +1,8 @@
 /* Distilled from try_pre_increment in flow.c.  If-conversion inserted
    new instructions at the wrong place on ppc.  */
 
+void abort(void);
+
 int foo(int a)
 {
   int x;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20021010-1.c b/gcc/testsuite/gcc.c-torture/execute/20021010-1.c
index d742ce40b5f..5924d501465 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20021010-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20021010-1.c
@@ -1,5 +1,8 @@
 #include <limits.h>
 
+void abort (void);
+void exit (int);
+
 int
 sub ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20021113-1.c b/gcc/testsuite/gcc.c-torture/execute/20021113-1.c
index 8226d3a8566..d87235ffea1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20021113-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20021113-1.c
@@ -3,6 +3,9 @@
 /* This program tests a data flow bug that would cause constant propagation
    to propagate constants through function calls.  */
 
+void abort (void);
+void exit (int);
+
 foo (int *p)
 {
   *p = 10;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20021118-1.c b/gcc/testsuite/gcc.c-torture/execute/20021118-1.c
index 0c1f800de76..7b9202e8e8a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20021118-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20021118-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct s { int f[4]; };
 
 int foo (struct s s, int x1, int x2, int x3, int x4, int x5, int x6, int x7)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20021118-2.c b/gcc/testsuite/gcc.c-torture/execute/20021118-2.c
index 5c8c5484f81..e883ace6c75 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20021118-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20021118-2.c
@@ -1,6 +1,9 @@
 /* Originally added to test SH constant pool layout.  t1() failed for
    non-PIC and t2() failed for PIC.  */
 
+void abort (void);
+void exit (int);
+
 int t1 (float *f, int i,
 	void (*f1) (double),
 	void (*f2) (float, float))
diff --git a/gcc/testsuite/gcc.c-torture/execute/20021120-1.c b/gcc/testsuite/gcc.c-torture/execute/20021120-1.c
index 491d5d6a081..68043cc949c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20021120-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20021120-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 /* Macros to emit "L Nxx R" for each octal number xx between 000 and 037.  */
 #define OP1(L, N, R, I, J) L N##I##J R
 #define OP2(L, N, R, I) \
diff --git a/gcc/testsuite/gcc.c-torture/execute/20021120-2.c b/gcc/testsuite/gcc.c-torture/execute/20021120-2.c
index d8876c0ebfa..343f51e2df7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20021120-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20021120-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int g1, g2;
 
 void foo (int x)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20021120-3.c b/gcc/testsuite/gcc.c-torture/execute/20021120-3.c
index e875f1f45c4..c9320c57531 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20021120-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20021120-3.c
@@ -1,6 +1,10 @@
 /* Test whether a partly call-clobbered register will be moved over a call.
    Although the original test case didn't use any GNUisms, it proved
    difficult to reduce without the named register extension.  */
+
+void abort (void);
+void exit (int);
+
 #if __SH64__ == 32
 #define LOC asm ("r10")
 #else
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030105-1.c b/gcc/testsuite/gcc.c-torture/execute/20030105-1.c
index 19f3b2ddb12..c2a9a8da1de 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030105-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030105-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int __attribute__ ((noinline))
 foo ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030109-1.c b/gcc/testsuite/gcc.c-torture/execute/20030109-1.c
index 1bea931f64c..b54a15345fa 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030109-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030109-1.c
@@ -2,6 +2,8 @@
 /* Verify that an empty initializer inside a partial
    parent initializer doesn't confuse GCC.  */
 
+void abort (void);
+
 struct X
 {
   int a;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030117-1.c b/gcc/testsuite/gcc.c-torture/execute/20030117-1.c
index 656bd61ed0a..e7b62285484 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030117-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030117-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int foo (int, int, int);
 int bar (int, int, int);
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030120-1.c b/gcc/testsuite/gcc.c-torture/execute/20030120-1.c
index 0ac0ecf7025..ab088e4553c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030120-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030120-1.c
@@ -1,6 +1,9 @@
 /* On H8/300 port, NOTICE_UPDATE_CC had a bug that causes the final
    pass to remove test insns that should be kept.  */
 
+void abort (void);
+void exit (int);
+
 unsigned short
 test1 (unsigned short w)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030125-1.c b/gcc/testsuite/gcc.c-torture/execute/20030125-1.c
index 39578e51d15..2255d80d0d5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030125-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030125-1.c
@@ -1,6 +1,7 @@
 /* Verify whether math functions are simplified.  */
 /* { dg-require-effective-target c99_runtime } */
 /* { dg-require-weak "" } */
+void abort(void);
 double sin(double);
 double floor(double);
 float 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030128-1.c b/gcc/testsuite/gcc.c-torture/execute/20030128-1.c
index ceca322ccaf..fb15fe2b8fd 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030128-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030128-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 unsigned char x = 50;
 volatile short y = -5;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030209-1.c b/gcc/testsuite/gcc.c-torture/execute/20030209-1.c
index 52f71ec3543..38e3a17df52 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030209-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030209-1.c
@@ -1,5 +1,8 @@
 /* { dg-require-stack-size "8*100*100" } */
 
+void abort (void);
+void exit (int);
+
 double x[100][100];
 int main ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030222-1.c b/gcc/testsuite/gcc.c-torture/execute/20030222-1.c
index d395b8dbc9c..d619b8159b4 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030222-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030222-1.c
@@ -6,6 +6,9 @@
 /* { dg-skip-if "asm requires register allocation" { nvptx-*-* } } */
 #include <limits.h>
 
+void abort (void);
+void exit (int);
+
 void
 ll_to_int (long long x, volatile int *p)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030316-1.c b/gcc/testsuite/gcc.c-torture/execute/20030316-1.c
index bde2e136ad3..46e5bf48cfc 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030316-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030316-1.c
@@ -1,6 +1,8 @@
 /* PR target/9164 */
 /* The comparison operand was sign extended erraneously.  */
 
+void abort (void);
+
 int
 main (void)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030403-1.c b/gcc/testsuite/gcc.c-torture/execute/20030403-1.c
index cbf1351c4be..9e9df8bf9dd 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030403-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030403-1.c
@@ -3,6 +3,8 @@
 
 #include <limits.h>
 
+void abort (void);
+
 int
 main ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030404-1.c b/gcc/testsuite/gcc.c-torture/execute/20030404-1.c
index 1dd1ec09906..a1463c1070a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030404-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030404-1.c
@@ -2,6 +2,8 @@
    defined, CCP was not traversing the edges out of the if(), which caused
    the PHI node for 'k' at the top of the while to only be visited once.
    This ended up causing CCP to think that 'k' was the constant '1'.  */
+void abort (void);
+
 main()
 {
   int i, j, k;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030501-1.c b/gcc/testsuite/gcc.c-torture/execute/20030501-1.c
index f47dc291bd3..f54a51e1397 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030501-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030501-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 main (int argc, char **argv)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030606-1.c b/gcc/testsuite/gcc.c-torture/execute/20030606-1.c
index 51054d90a25..e1c12d18e49 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030606-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030606-1.c
@@ -1,3 +1,5 @@
+void abort (void);
+void exit (int);
 
 int * foo (int *x, int b)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030828-1.c b/gcc/testsuite/gcc.c-torture/execute/20030828-1.c
index e8c1f0195df..15408c30d24 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030828-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030828-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 const int *p;
 
 int bar (void)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030828-2.c b/gcc/testsuite/gcc.c-torture/execute/20030828-2.c
index 0c3a195e626..7828a7d31c3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030828-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030828-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct rtx_def
 {
   int code;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030903-1.c b/gcc/testsuite/gcc.c-torture/execute/20030903-1.c
index 95dad576f2d..2ae5e683332 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030903-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030903-1.c
@@ -2,6 +2,8 @@
    the entire set of possibilities.  Such an assumption is false for C,
    but true for other languages.  */
 
+void abort (void);
+
 enum X { X1 = 1, X2, X3, X4 };
 static volatile enum X test = 0;
 static void y(int);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030910-1.c b/gcc/testsuite/gcc.c-torture/execute/20030910-1.c
index 6c849134a9b..8710cf35d61 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030910-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030910-1.c
@@ -2,6 +2,9 @@
    nodes.  These need to be treated like a COMPONENT_REF so their address can
    be taken.  */
 
+void abort (void);
+void exit (int);
+
 int main()
 {
   __complex double dc;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030913-1.c b/gcc/testsuite/gcc.c-torture/execute/20030913-1.c
index ed8724bc244..ffd55a14983 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030913-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030913-1.c
@@ -1,6 +1,9 @@
 /* Assignments via pointers pointing to global variables were being killed
    by SSA-DCE.  Test contributed by Paul Brook <paul@nowt.org>  */
 
+void abort (void);
+void exit (int);
+
 int g;
  
 void 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030914-1.c b/gcc/testsuite/gcc.c-torture/execute/20030914-1.c
index ab1c1541df0..0b3ccfd73a1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030914-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030914-1.c
@@ -2,6 +2,9 @@
    stack, with an odd number of words in the register part.  Check that
    the long double stack argument (PC) is still accessed properly.  */
 
+void abort (void);
+void exit (int);
+
 struct s { int val[16]; };
 
 long double f (int pa, struct s pb, long double pc)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030914-2.c b/gcc/testsuite/gcc.c-torture/execute/20030914-2.c
index 38a81982ff2..a63d78c977d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030914-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030914-2.c
@@ -3,6 +3,9 @@
    one for the partial argument and one for the varargs save area.
    Make sure that these uses don't conflict.  */
 
+void abort (void);
+void exit (int);
+
 struct s { int i[18]; };
 
 int f (struct s pa, int pb, ...)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030916-1.c b/gcc/testsuite/gcc.c-torture/execute/20030916-1.c
index 8b460c6dd68..3fba6024c80 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030916-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030916-1.c
@@ -1,6 +1,9 @@
 /* "i" overflows in f().  Check that x[i] is not treated as a giv.  */
 #include <limits.h>
 
+void abort (void);
+void exit (int);
+
 #if CHAR_BIT == 8
 
 void f (unsigned int *x)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030928-1.c b/gcc/testsuite/gcc.c-torture/execute/20030928-1.c
index 77216c9fece..499de24f188 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030928-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030928-1.c
@@ -1,5 +1,8 @@
 #include <limits.h>
 
+void abort (void);
+void exit (int);
+
 #if INT_MAX <= 32767
 int main () { exit (0); }
 #else
diff --git a/gcc/testsuite/gcc.c-torture/execute/20031010-1.c b/gcc/testsuite/gcc.c-torture/execute/20031010-1.c
index 54457f964c3..dec1606ebd0 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20031010-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20031010-1.c
@@ -1,5 +1,7 @@
 /* A reminder to process ops in generate_expr_as_of_bb exactly once.  */
 
+void abort (void);
+
 long __attribute__((noinline))
 foo (long ct, long cf, _Bool p1, _Bool p2, _Bool p3)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20031201-1.c b/gcc/testsuite/gcc.c-torture/execute/20031201-1.c
index 7c8e0ea290f..580147b1930 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20031201-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20031201-1.c
@@ -3,6 +3,9 @@
    STRICT_LOW_PART was handled incorrectly in delay slots.
    Origin: Hans-Peter Nilsson.  */
 
+void abort (void);
+void exit (int);
+
 typedef struct { unsigned int e0 : 16; unsigned int e1 : 16; } s1;
 typedef struct { unsigned int e0 : 16; unsigned int e1 : 16; } s2;
 typedef struct { s1 i12; s2 i16; } io;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20031204-1.c b/gcc/testsuite/gcc.c-torture/execute/20031204-1.c
index a9c2f0195bd..493e3774d73 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20031204-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20031204-1.c
@@ -2,6 +2,8 @@
 
 #include <string.h>
 
+void abort(void);
+
 typedef unsigned long u32;
 
 u32 in_aton(const char* x)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20031211-1.c b/gcc/testsuite/gcc.c-torture/execute/20031211-1.c
index 2361509a096..3161fff8e73 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20031211-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20031211-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct a { unsigned int bitfield : 1; };
 
 unsigned int x;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040208-1.c b/gcc/testsuite/gcc.c-torture/execute/20040208-1.c
index 02357591072..457d5cbac86 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040208-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040208-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int main ()
 {
   long double x;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040218-1.c b/gcc/testsuite/gcc.c-torture/execute/20040218-1.c
index 4d1541af8bf..4e0e11cb397 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040218-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040218-1.c
@@ -2,6 +2,9 @@
    postincrement.
    Origin: <hp@axis.com>.  */
 
+void abort (void);
+void exit (int);
+
 long int xb (long int *y) __attribute__ ((__noinline__));
 long int xw (long int *y) __attribute__ ((__noinline__));
 short int yb (short int *y) __attribute__ ((__noinline__));
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040307-1.c b/gcc/testsuite/gcc.c-torture/execute/20040307-1.c
index 8ab8008bb99..8abc26f7f7e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040307-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040307-1.c
@@ -1,3 +1,5 @@
+void abort (void);
+
 int main()
 {
   int b = 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040319-1.c b/gcc/testsuite/gcc.c-torture/execute/20040319-1.c
index 357932d9b24..37eff8e5ca0 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040319-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040319-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 blah (int zzz)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040411-1.c b/gcc/testsuite/gcc.c-torture/execute/20040411-1.c
index 8db456229bd..19d7e41c8e5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040411-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040411-1.c
@@ -1,3 +1,5 @@
+void abort (void);
+
 int
 sub1 (int i, int j)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040423-1.c b/gcc/testsuite/gcc.c-torture/execute/20040423-1.c
index ace797e79d3..06e2c439eca 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040423-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040423-1.c
@@ -1,3 +1,5 @@
+void abort (void);
+
 int
 sub1 (int i, int j)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040625-1.c b/gcc/testsuite/gcc.c-torture/execute/20040625-1.c
index c426055db72..0cb66a84f5d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040625-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040625-1.c
@@ -1,4 +1,7 @@
 /* From PR target/16176 */
+void abort (void);
+void exit (int);
+
 struct __attribute__ ((packed)) s { struct s *next; };
 
 struct s * __attribute__ ((noinline))
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040703-1.c b/gcc/testsuite/gcc.c-torture/execute/20040703-1.c
index a1b75d90bbc..5a86154756a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040703-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040703-1.c
@@ -1,6 +1,9 @@
 /* PR 16341 */
 /* { dg-require-effective-target int32plus } */
 
+void abort (void);
+void exit (int);
+
 #define PART_PRECISION (sizeof (cpp_num_part) * 8)
 
 typedef unsigned int cpp_num_part;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040706-1.c b/gcc/testsuite/gcc.c-torture/execute/20040706-1.c
index 6b0ab36ac67..eb386c5ee2a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040706-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040706-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int main ()
 {
   int i;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040707-1.c b/gcc/testsuite/gcc.c-torture/execute/20040707-1.c
index 6fc15cc24a7..25279ae12f6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040707-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040707-1.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 struct s { char c1, c2; };
 void foo (struct s s)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040805-1.c b/gcc/testsuite/gcc.c-torture/execute/20040805-1.c
index f31109266b1..9b9bd47103b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040805-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040805-1.c
@@ -1,5 +1,8 @@
 /* { dg-require-stack-size "0x12000" } */
 
+void abort (void);
+void exit (int);
+
 #if __INT_MAX__ < 32768
 int main () { exit (0); }
 #else
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040917-1.c b/gcc/testsuite/gcc.c-torture/execute/20040917-1.c
index 73bc6c6479c..8a5d196bbd9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040917-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040917-1.c
@@ -1,5 +1,7 @@
 /* submitted by kenneth zadeck */
 
+void abort (void);
+
 static int test_var;
 
 /* the idea here is that not only is inlinable, inlinable but since it
diff --git a/gcc/testsuite/gcc.c-torture/execute/20041011-1.c b/gcc/testsuite/gcc.c-torture/execute/20041011-1.c
index 4524de9435f..b726641f7c8 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20041011-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20041011-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef unsigned long long ull;
 volatile int gvol[32];
 ull gull;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20041113-1.c b/gcc/testsuite/gcc.c-torture/execute/20041113-1.c
index 8c07950041a..4efd2f215cd 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20041113-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20041113-1.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 void test (int x, ...)
 {
     va_list ap;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20041124-1.c b/gcc/testsuite/gcc.c-torture/execute/20041124-1.c
index 51ce2536ea9..09b0714270a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20041124-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20041124-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct s { _Complex unsigned short x; };
 struct s gs = { 100 + 200i };
 struct s __attribute__((noinline)) foo (void) { return gs; }
diff --git a/gcc/testsuite/gcc.c-torture/execute/20041210-1.c b/gcc/testsuite/gcc.c-torture/execute/20041210-1.c
index ef266a0a2e8..0315b73b60b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20041210-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20041210-1.c
@@ -2,6 +2,9 @@
    wrongly claimed to set the C and V flags.  */
 #include <limits.h>
 
+void abort (void);
+void exit (int);
+
 int x[4] = { INT_MIN / 2, INT_MAX, 2, 4 };
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/20041212-1.c b/gcc/testsuite/gcc.c-torture/execute/20041212-1.c
index ea2d0fbd78e..709a592e387 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20041212-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20041212-1.c
@@ -1,5 +1,8 @@
 /* A function pointer compared with a void pointer should not be canonicalized.
    See PR middle-end/17564.  */
+void abort (void);
+void exit (int);
+
 void *f (void) __attribute__ ((__noinline__));
 void *
 f (void)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050410-1.c b/gcc/testsuite/gcc.c-torture/execute/20050410-1.c
index c4cd85279a9..3a1f45319a6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20050410-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20050410-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int s = 200;
 int __attribute__((noinline))
 foo (void)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20051113-1.c b/gcc/testsuite/gcc.c-torture/execute/20051113-1.c
index 6a289fdf219..8c9e7e8ed75 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20051113-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20051113-1.c
@@ -1,3 +1,4 @@
+extern void abort(void);
 extern void *malloc(__SIZE_TYPE__);
 extern void *memset(void *, int, __SIZE_TYPE__);
 typedef struct
diff --git a/gcc/testsuite/gcc.c-torture/execute/20070623-1.c b/gcc/testsuite/gcc.c-torture/execute/20070623-1.c
index e9c7d2a952d..9cbf75be192 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20070623-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20070623-1.c
@@ -1,5 +1,8 @@
 #include <limits.h>
 
+void abort (void);
+void exit (int);
+
 int __attribute__((noinline)) nge(int a, int b) {return -(a >= b);}
 int __attribute__((noinline)) ngt(int a, int b) {return -(a > b);}
 int __attribute__((noinline)) nle(int a, int b) {return -(a <= b);}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20091229-1.c b/gcc/testsuite/gcc.c-torture/execute/20091229-1.c
index 9b3a8c1498e..2ed23554c1d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20091229-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20091229-1.c
@@ -1,2 +1,5 @@
+void abort (void);
+void exit (int);
+
 long long foo(long long v) { return v / -0x080000000LL; }
 int main(int argc, char **argv) { if (foo(0x080000000LL) != -1) abort(); exit (0); }
diff --git a/gcc/testsuite/gcc.c-torture/execute/20101025-1.c b/gcc/testsuite/gcc.c-torture/execute/20101025-1.c
index 95361a92487..4987bcc00e0 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20101025-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20101025-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 static int g_7;
 static int *volatile g_6 = &g_7;
 int g_3;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20120817-1.c b/gcc/testsuite/gcc.c-torture/execute/20120817-1.c
index 8fb2820e896..d47e6e76384 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20120817-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20120817-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef unsigned long long u64;
 unsigned long foo = 0;
 u64 f() __attribute__((noinline));
diff --git a/gcc/testsuite/gcc.c-torture/execute/20170401-2.c b/gcc/testsuite/gcc.c-torture/execute/20170401-2.c
index bb4325867ec..16341ca19d9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20170401-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20170401-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void adjust_xy (short *, short *);
 
 struct adjust_template
diff --git a/gcc/testsuite/gcc.c-torture/execute/900409-1.c b/gcc/testsuite/gcc.c-torture/execute/900409-1.c
index 3112effaf2f..5b743c02abf 100644
--- a/gcc/testsuite/gcc.c-torture/execute/900409-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/900409-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long f1(long a){return a&0xff000000L;}
 long f2 (long a){return a&~0xff000000L;}
 long f3(long a){return a&0x000000ffL;}
diff --git a/gcc/testsuite/gcc.c-torture/execute/920202-1.c b/gcc/testsuite/gcc.c-torture/execute/920202-1.c
index e30ce2fd5c2..f97b67a7207 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920202-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920202-1.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 static int rule_text_needs_stack_pop = 0;
 static int input_stack_pos = 1;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/920302-1.c b/gcc/testsuite/gcc.c-torture/execute/920302-1.c
index 62e4fc205a9..c11f1285a26 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920302-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920302-1.c
@@ -1,5 +1,8 @@
 /* { dg-require-effective-target label_values } */
 
+void abort (void);
+void exit (int);
+
 short optab[5];
 char buf[10];
 execute (ip)
diff --git a/gcc/testsuite/gcc.c-torture/execute/920410-1.c b/gcc/testsuite/gcc.c-torture/execute/920410-1.c
index daeff5e3990..1b256bc44e6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920410-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920410-1.c
@@ -1,4 +1,6 @@
 /* { dg-require-stack-size "40000 * 4 + 256" } */
 
+void exit (int);
+
 main(){int d[40000];d[0]=0;exit(0);}
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/920501-2.c b/gcc/testsuite/gcc.c-torture/execute/920501-2.c
index d99eef289e5..bd501d43135 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920501-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920501-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 unsigned long
 gcd_ll (unsigned long long x, unsigned long long y)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/920501-3.c b/gcc/testsuite/gcc.c-torture/execute/920501-3.c
index 452d7c0debe..c81fd5cca39 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920501-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920501-3.c
@@ -1,5 +1,8 @@
 /* { dg-require-effective-target label_values } */
 
+void abort (void);
+void exit (int);
+
 int tab[9];
 execute(oip, ip)
      unsigned short *oip, *ip;
diff --git a/gcc/testsuite/gcc.c-torture/execute/920501-4.c b/gcc/testsuite/gcc.c-torture/execute/920501-4.c
index c99857079aa..1fa564c5bbb 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920501-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920501-4.c
@@ -1,5 +1,8 @@
 /* { dg-require-effective-target label_values } */
 
+void abort (void);
+void exit (int);
+
 int
 x (int i)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/920501-5.c b/gcc/testsuite/gcc.c-torture/execute/920501-5.c
index f0b90716653..b9882eaf5b1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920501-5.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920501-5.c
@@ -1,5 +1,8 @@
 /* { dg-require-effective-target label_values } */
 
+void abort (void);
+void exit (int);
+
 x (int i)
 {
   void *j[] = {&&x, &&y, &&z};
diff --git a/gcc/testsuite/gcc.c-torture/execute/920501-6.c b/gcc/testsuite/gcc.c-torture/execute/920501-6.c
index 833624ff3f7..82b6c64f830 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920501-6.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920501-6.c
@@ -1,5 +1,8 @@
 #include <stdio.h>
 
+void abort (void);
+void exit (int);
+
 /* Convert a decimal string to a long long unsigned.  No error check is
    performed.  */
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/920501-8.c b/gcc/testsuite/gcc.c-torture/execute/920501-8.c
index 7e4fa172ccd..9e484309d41 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920501-8.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920501-8.c
@@ -1,5 +1,8 @@
 /* { dg-additional-options "-Wl,-u,_printf_float" { target newlib_nano_io } } */
 
+void abort (void);
+void exit (int);
+
 #include <stdio.h>
 #include <stdarg.h>
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/920506-1.c b/gcc/testsuite/gcc.c-torture/execute/920506-1.c
index 9a646a30fc2..38af6ba2063 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920506-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920506-1.c
@@ -1,2 +1,4 @@
+void abort (void);
+void exit (int);
 int l[]={0,1};
 main(){int*p=l;switch(*p++){case 0:exit(0);case 1:break;case 2:break;case 3:case 4:break;}abort();}
diff --git a/gcc/testsuite/gcc.c-torture/execute/920604-1.c b/gcc/testsuite/gcc.c-torture/execute/920604-1.c
index d7d9be13fd8..5dd300f7c0a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920604-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920604-1.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 long long
 mod (a, b)
      long long a, b;
diff --git a/gcc/testsuite/gcc.c-torture/execute/920612-2.c b/gcc/testsuite/gcc.c-torture/execute/920612-2.c
index 23796fcdaa9..d3eb0ebba01 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920612-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920612-2.c
@@ -1,5 +1,8 @@
 /* { dg-require-effective-target trampolines } */
 
+void abort (void);
+void exit (int);
+
 main ()
 {
   int i = 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/920618-1.c b/gcc/testsuite/gcc.c-torture/execute/920618-1.c
index 224f7208953..5059482229e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920618-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920618-1.c
@@ -1 +1,3 @@
+void abort (void);
+void exit (int);
 main(){if(1.17549435e-38F<=1.1)exit(0);abort();}
diff --git a/gcc/testsuite/gcc.c-torture/execute/920625-1.c b/gcc/testsuite/gcc.c-torture/execute/920625-1.c
index ae2f415dec7..7aa2ed90dc6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920625-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920625-1.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 typedef struct{double x,y;}point;
 point pts[]={{1.0,2.0},{3.0,4.0},{5.0,6.0},{7.0,8.0}};
 static int va1(int nargs,...)
diff --git a/gcc/testsuite/gcc.c-torture/execute/920710-1.c b/gcc/testsuite/gcc.c-torture/execute/920710-1.c
index 7c6f871e2ac..dfef3ea2997 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920710-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920710-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main()
 {
   if ((double) 18446744073709551615ULL < 1.84467440737095e+19 ||
diff --git a/gcc/testsuite/gcc.c-torture/execute/920721-1.c b/gcc/testsuite/gcc.c-torture/execute/920721-1.c
index 086b5463f7f..a77b2dc1537 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920721-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920721-1.c
@@ -1,2 +1,4 @@
+void abort (void);
+void exit (int);
 long f(short a,short b){return (long)a/b;}
 main(){if(f(-32768,-1)!=32768L)abort();else exit(0);}
diff --git a/gcc/testsuite/gcc.c-torture/execute/920721-4.c b/gcc/testsuite/gcc.c-torture/execute/920721-4.c
index 805918b2aa3..6462ee31077 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920721-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920721-4.c
@@ -1,5 +1,8 @@
 /* { dg-require-effective-target label_values } */
 
+void abort (void);
+void exit (int);
+
 int try (int num) {
   __label__ lab1, lab2, lab3, lab4, lab5, lab6, default_lab;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/920726-1.c b/gcc/testsuite/gcc.c-torture/execute/920726-1.c
index d6042c9f5d1..5afaa2ed1ff 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920726-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920726-1.c
@@ -1,6 +1,9 @@
 #include <stdio.h>
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 struct spurious
 {
     int anumber;
diff --git a/gcc/testsuite/gcc.c-torture/execute/920829-1.c b/gcc/testsuite/gcc.c-torture/execute/920829-1.c
index ed2c2271caa..3f612d8eb78 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920829-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920829-1.c
@@ -1,2 +1,4 @@
+void abort (void);
+void exit (int);
 long long c=2863311530LL,c3=2863311530LL*3;
 main(){if(c*3!=c3)abort();exit(0);}
diff --git a/gcc/testsuite/gcc.c-torture/execute/920908-1.c b/gcc/testsuite/gcc.c-torture/execute/920908-1.c
index 98fbb5eaa6d..c56334eb5da 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920908-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920908-1.c
@@ -2,6 +2,9 @@
 
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 typedef struct{int A;}T;
 
 T f(int x,...)
diff --git a/gcc/testsuite/gcc.c-torture/execute/920922-1.c b/gcc/testsuite/gcc.c-torture/execute/920922-1.c
index 4fae192bb90..cb838c25d92 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920922-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920922-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 unsigned long*
 f(p)unsigned long*p;
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/920929-1.c b/gcc/testsuite/gcc.c-torture/execute/920929-1.c
index 061617df753..5ef83dc80e4 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920929-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920929-1.c
@@ -1,5 +1,6 @@
 /* { dg-skip-if "requires alloca" { ! alloca } { "-O0" } { "" } } */
 /* REPRODUCED:RUN:SIGNAL MACHINE:sparc OPTIONS: */
+void exit (int);
 f(int n)
 {
 int i;
diff --git a/gcc/testsuite/gcc.c-torture/execute/921006-1.c b/gcc/testsuite/gcc.c-torture/execute/921006-1.c
index 50fbdb71125..3e897412b5e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921006-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921006-1.c
@@ -1,4 +1,6 @@
 /* REPRODUCED:RUN:SIGNAL MACHINE:i386 OPTIONS:-O */
+void abort(void);
+void exit(int);
 main()
 {
 if(strcmp("X","")<0)abort();
diff --git a/gcc/testsuite/gcc.c-torture/execute/921007-1.c b/gcc/testsuite/gcc.c-torture/execute/921007-1.c
index 23ab52e7ae8..940ee2e175c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921007-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921007-1.c
@@ -1,3 +1,5 @@
+void abort(void);
+void exit(int);
 static int strcmp(){return-1;}
 #define strcmp __builtin_strcmp
 main()
diff --git a/gcc/testsuite/gcc.c-torture/execute/921016-1.c b/gcc/testsuite/gcc.c-torture/execute/921016-1.c
index 46f8a838765..4ae22c666a1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921016-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921016-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main()
 {
 int j=1081;
diff --git a/gcc/testsuite/gcc.c-torture/execute/921019-1.c b/gcc/testsuite/gcc.c-torture/execute/921019-1.c
index f48613a8ba9..e9b5e2a1c9c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921019-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921019-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void *foo[]={(void *)&("X"[0])};
 
 main ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/921019-2.c b/gcc/testsuite/gcc.c-torture/execute/921019-2.c
index 9003e7b64d5..f1dd3a584e6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921019-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921019-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main()
 {
   double x,y=0.5;
diff --git a/gcc/testsuite/gcc.c-torture/execute/921029-1.c b/gcc/testsuite/gcc.c-torture/execute/921029-1.c
index 76fc974c2f0..0f4c02eb2cb 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921029-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921029-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef unsigned long long ULL;
 ULL back;
 ULL hpart, lpart;
diff --git a/gcc/testsuite/gcc.c-torture/execute/921104-1.c b/gcc/testsuite/gcc.c-torture/execute/921104-1.c
index 4b6f4bcfb5b..8725c041da5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921104-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921104-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main ()
 {
   unsigned long val = 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/921112-1.c b/gcc/testsuite/gcc.c-torture/execute/921112-1.c
index 5946398e3c0..18a7ca1e65b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921112-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921112-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 union u {
   struct { int i1, i2; } t;
   double d;
diff --git a/gcc/testsuite/gcc.c-torture/execute/921113-1.c b/gcc/testsuite/gcc.c-torture/execute/921113-1.c
index 824e69f04c4..9bf8a13533d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921113-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921113-1.c
@@ -1,5 +1,8 @@
 /* { dg-require-stack-size "128 * 128 * 4 + 1024" } */
 
+void abort (void);
+void exit (int);
+
 typedef struct {
   float wsx;
 } struct_list;
diff --git a/gcc/testsuite/gcc.c-torture/execute/921117-1.c b/gcc/testsuite/gcc.c-torture/execute/921117-1.c
index 2ed30fbeeef..04da4226ca5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921117-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921117-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct s {
   char text[11];
   int flag;
diff --git a/gcc/testsuite/gcc.c-torture/execute/921123-2.c b/gcc/testsuite/gcc.c-torture/execute/921123-2.c
index 3028717cf5a..2ac7ca22276 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921123-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921123-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct
 {
   unsigned short b0, b1, b2, b3;
diff --git a/gcc/testsuite/gcc.c-torture/execute/921202-2.c b/gcc/testsuite/gcc.c-torture/execute/921202-2.c
index 48d4a412d1b..1115a4d3eda 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921202-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921202-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 f(long long x)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/921204-1.c b/gcc/testsuite/gcc.c-torture/execute/921204-1.c
index a7bba830a34..2f69f644dc0 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921204-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921204-1.c
@@ -1,5 +1,8 @@
 /* The bit-field below would have a problem if __INT_MAX__ is too
    small.  */
+void abort (void);
+void exit (int);
+
 #if __INT_MAX__ < 2147483647
 int
 main (void)
diff --git a/gcc/testsuite/gcc.c-torture/execute/921208-1.c b/gcc/testsuite/gcc.c-torture/execute/921208-1.c
index 143ef63b0c9..b950f413109 100644
--- a/gcc/testsuite/gcc.c-torture/execute/921208-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/921208-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 double
 f(double x)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/930123-1.c b/gcc/testsuite/gcc.c-torture/execute/930123-1.c
index 7365bae5200..f5812317eb7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930123-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930123-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 f(int *x)
 {
   *x = 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/930126-1.c b/gcc/testsuite/gcc.c-torture/execute/930126-1.c
index ff08e7d6131..2f514cc3194 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930126-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930126-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct s {
   unsigned long long a:8, b:32;
 };
diff --git a/gcc/testsuite/gcc.c-torture/execute/930406-1.c b/gcc/testsuite/gcc.c-torture/execute/930406-1.c
index f240d1b09ab..4dc59dcb07c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930406-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930406-1.c
@@ -1,5 +1,7 @@
 /* { dg-add-options stack_size } */
 
+void exit (int);
+
 f()
 {
   int x = 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/930408-1.c b/gcc/testsuite/gcc.c-torture/execute/930408-1.c
index 42ffc098f80..c756eecc4eb 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930408-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930408-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef enum foo E;
 enum foo { e0, e1 };
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/930429-1.c b/gcc/testsuite/gcc.c-torture/execute/930429-1.c
index 656d928ebd7..1c23dd38956 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930429-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930429-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 char *
 f (char *p)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/930603-2.c b/gcc/testsuite/gcc.c-torture/execute/930603-2.c
index 8cf06a21139..bfa4b2fafeb 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930603-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930603-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int w[2][2];
 
 f ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/930608-1.c b/gcc/testsuite/gcc.c-torture/execute/930608-1.c
index 004a4400709..d81a2544a41 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930608-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930608-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 double f (double a) {}
 double (* const a[]) (double) = {&f};
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/930614-1.c b/gcc/testsuite/gcc.c-torture/execute/930614-1.c
index 7b206344b3a..736371a6f0e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930614-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930614-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 f (double *ty)
 {
   *ty = -1.0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/930614-2.c b/gcc/testsuite/gcc.c-torture/execute/930614-2.c
index ab83a7e3bb9..76e4142e20f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930614-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930614-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main ()
 {
   int i, j, k, l;
diff --git a/gcc/testsuite/gcc.c-torture/execute/930622-2.c b/gcc/testsuite/gcc.c-torture/execute/930622-2.c
index d049b002a19..7b165b14ee8 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930622-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930622-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long double
 ll_to_ld (long long n)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/930628-1.c b/gcc/testsuite/gcc.c-torture/execute/930628-1.c
index 58c612d1a1c..b68ecefcd47 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930628-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930628-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 f (double x[2], double y[2])
 {
   if (x == y)
diff --git a/gcc/testsuite/gcc.c-torture/execute/930725-1.c b/gcc/testsuite/gcc.c-torture/execute/930725-1.c
index 3bd738ca08a..55bcdde19c9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930725-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930725-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int v;
 
 char *
diff --git a/gcc/testsuite/gcc.c-torture/execute/930930-2.c b/gcc/testsuite/gcc.c-torture/execute/930930-2.c
index eb34d11fe22..83c4f3deea4 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930930-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930930-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 test_endianness()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/931002-1.c b/gcc/testsuite/gcc.c-torture/execute/931002-1.c
index fc5222374d9..f2b335757c5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931002-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931002-1.c
@@ -1,5 +1,7 @@
 /* { dg-require-effective-target trampolines } */
 
+void exit (int);
+
 f (void (*func) ())
 {
   func ();
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-1.c b/gcc/testsuite/gcc.c-torture/execute/931004-1.c
index 9c89afdae35..54509b76629 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931004-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931004-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   int c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-10.c b/gcc/testsuite/gcc.c-torture/execute/931004-10.c
index cf0125dba62..d516d54df5d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931004-10.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931004-10.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   char c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-11.c b/gcc/testsuite/gcc.c-torture/execute/931004-11.c
index b6047025ce9..770ca79e308 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931004-11.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931004-11.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   char c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-12.c b/gcc/testsuite/gcc.c-torture/execute/931004-12.c
index d3fc71e0cb0..f41319baefc 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931004-12.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931004-12.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   char c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-13.c b/gcc/testsuite/gcc.c-torture/execute/931004-13.c
index 60422af8eb7..c2cfa142b0c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931004-13.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931004-13.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   char c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-14.c b/gcc/testsuite/gcc.c-torture/execute/931004-14.c
index 55c71bbc42a..ab4e2461a51 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931004-14.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931004-14.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   char c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-2.c b/gcc/testsuite/gcc.c-torture/execute/931004-2.c
index 83bdea67b0c..faf1dd52f4b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931004-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931004-2.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   int c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-3.c b/gcc/testsuite/gcc.c-torture/execute/931004-3.c
index 1e7a0fdcd53..0dc9977369f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931004-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931004-3.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   short c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-4.c b/gcc/testsuite/gcc.c-torture/execute/931004-4.c
index f0d2331e5cc..405dc52581c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931004-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931004-4.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   short c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-5.c b/gcc/testsuite/gcc.c-torture/execute/931004-5.c
index 9bef779e6ed..bbe19804163 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931004-5.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931004-5.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   short c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-6.c b/gcc/testsuite/gcc.c-torture/execute/931004-6.c
index 6dca48f38ef..7778d97d857 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931004-6.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931004-6.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   short c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-7.c b/gcc/testsuite/gcc.c-torture/execute/931004-7.c
index 8ab2fcb2ab2..4bcd971c53f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931004-7.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931004-7.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   char c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-8.c b/gcc/testsuite/gcc.c-torture/execute/931004-8.c
index 5fb97f64a6b..7ef91a00c6a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931004-8.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931004-8.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   char c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-9.c b/gcc/testsuite/gcc.c-torture/execute/931004-9.c
index 07247f7adfa..8d025356147 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931004-9.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931004-9.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   char c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931005-1.c b/gcc/testsuite/gcc.c-torture/execute/931005-1.c
index 5a7e031cbfe..3082890b132 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931005-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931005-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct
 {
   char x;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931110-1.c b/gcc/testsuite/gcc.c-torture/execute/931110-1.c
index 5b33b269a2d..6943583fee2 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931110-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931110-1.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 typedef struct
 {
   short f:3, g:3, h:10;
diff --git a/gcc/testsuite/gcc.c-torture/execute/931110-2.c b/gcc/testsuite/gcc.c-torture/execute/931110-2.c
index 586615b180c..4f6e166aac8 100644
--- a/gcc/testsuite/gcc.c-torture/execute/931110-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/931110-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main ()
 {
   static int a[] = {3, 4};
diff --git a/gcc/testsuite/gcc.c-torture/execute/941014-1.c b/gcc/testsuite/gcc.c-torture/execute/941014-1.c
index 98db917428f..002f1c69fc2 100644
--- a/gcc/testsuite/gcc.c-torture/execute/941014-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/941014-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int f (int a, int b) { }
 
 main ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/941015-1.c b/gcc/testsuite/gcc.c-torture/execute/941015-1.c
index 38d4796645f..3703bb57124 100644
--- a/gcc/testsuite/gcc.c-torture/execute/941015-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/941015-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 foo1 (value)
      long long value;
diff --git a/gcc/testsuite/gcc.c-torture/execute/941021-1.c b/gcc/testsuite/gcc.c-torture/execute/941021-1.c
index 9fc1cfadf97..a239fb38c4d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/941021-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/941021-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 double glob_dbl;
 
 f (pdbl, value)
diff --git a/gcc/testsuite/gcc.c-torture/execute/941025-1.c b/gcc/testsuite/gcc.c-torture/execute/941025-1.c
index 2daf0ad25cc..e2db7c22c31 100644
--- a/gcc/testsuite/gcc.c-torture/execute/941025-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/941025-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long f (x, y)
      long x,y;
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/941031-1.c b/gcc/testsuite/gcc.c-torture/execute/941031-1.c
index 134f966c6f3..96992970274 100644
--- a/gcc/testsuite/gcc.c-torture/execute/941031-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/941031-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef long mpt;
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/950221-1.c b/gcc/testsuite/gcc.c-torture/execute/950221-1.c
index 8ef83fd5c13..3c307026ac6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950221-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950221-1.c
@@ -1,5 +1,8 @@
 /* { dg-add-options stack_size } */
 
+void abort (void);
+void exit (int);
+
 struct parsefile
 {
   long fd;
diff --git a/gcc/testsuite/gcc.c-torture/execute/950426-2.c b/gcc/testsuite/gcc.c-torture/execute/950426-2.c
index a1a690469d1..9421fa7522a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950426-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950426-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main()
 {
   long int i = -2147483647L - 1L; /* 0x80000000 */
diff --git a/gcc/testsuite/gcc.c-torture/execute/950503-1.c b/gcc/testsuite/gcc.c-torture/execute/950503-1.c
index 1c95b369c50..2ecad296b55 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950503-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950503-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main ()
 {
   int tmp;
diff --git a/gcc/testsuite/gcc.c-torture/execute/950511-1.c b/gcc/testsuite/gcc.c-torture/execute/950511-1.c
index 6584b0c86b6..46d00210177 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950511-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950511-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main ()
 {
   unsigned long long xx;
diff --git a/gcc/testsuite/gcc.c-torture/execute/950607-1.c b/gcc/testsuite/gcc.c-torture/execute/950607-1.c
index 7b1503ad11d..23ff4c78b4d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950607-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950607-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main ()
 {
   struct { long status; } h;
diff --git a/gcc/testsuite/gcc.c-torture/execute/950607-2.c b/gcc/testsuite/gcc.c-torture/execute/950607-2.c
index da18f7373f4..ff111c13091 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950607-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950607-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct {
   long int p_x, p_y;
 } Point;
diff --git a/gcc/testsuite/gcc.c-torture/execute/950612-1.c b/gcc/testsuite/gcc.c-torture/execute/950612-1.c
index f9885279c33..696a7c116e5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950612-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950612-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 unsigned int
 f1 (int diff)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/950628-1.c b/gcc/testsuite/gcc.c-torture/execute/950628-1.c
index e330ff56971..50b58641bba 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950628-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950628-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct
 {
   char hours, day, month;
diff --git a/gcc/testsuite/gcc.c-torture/execute/950704-1.c b/gcc/testsuite/gcc.c-torture/execute/950704-1.c
index 67fe0885e5a..782b0448db2 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950704-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950704-1.c
@@ -1,4 +1,7 @@
 /* { dg-additional-options "-fwrapv" } */
+void abort (void);
+void exit (int);
+
 int errflag;
 
 long long
diff --git a/gcc/testsuite/gcc.c-torture/execute/950706-1.c b/gcc/testsuite/gcc.c-torture/execute/950706-1.c
index 2db1915411c..8acd7233879 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950706-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950706-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 f (int n)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/950710-1.c b/gcc/testsuite/gcc.c-torture/execute/950710-1.c
index 26ff9b2a8a0..209078d4ab3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950710-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950710-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct twelve
 {
   int a;
diff --git a/gcc/testsuite/gcc.c-torture/execute/950714-1.c b/gcc/testsuite/gcc.c-torture/execute/950714-1.c
index 5dc44a906e2..6d4dea420bd 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950714-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950714-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int array[10] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
 
 main ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/950809-1.c b/gcc/testsuite/gcc.c-torture/execute/950809-1.c
index a33d42bd7cd..fad9a658be5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950809-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950809-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct S
 {
   int *sp, fc, *sc, a[2];
diff --git a/gcc/testsuite/gcc.c-torture/execute/950906-1.c b/gcc/testsuite/gcc.c-torture/execute/950906-1.c
index 31997d5c257..fb1c5939429 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950906-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950906-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 g (int i)
 {
 }
diff --git a/gcc/testsuite/gcc.c-torture/execute/950915-1.c b/gcc/testsuite/gcc.c-torture/execute/950915-1.c
index cfa044757b8..997e7a9dfe5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950915-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950915-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long int a = 100000;
 long int b = 21475;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/950929-1.c b/gcc/testsuite/gcc.c-torture/execute/950929-1.c
index a35cd6a153e..74967ee6237 100644
--- a/gcc/testsuite/gcc.c-torture/execute/950929-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/950929-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int f (char *p) { }
 
 main ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/951003-1.c b/gcc/testsuite/gcc.c-torture/execute/951003-1.c
index 269bf135386..633ff8f5b8e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/951003-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/951003-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int f (i) { return 12; }
 int g () { return 0; }
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/951115-1.c b/gcc/testsuite/gcc.c-torture/execute/951115-1.c
index 03520c99ca2..98189ee5c80 100644
--- a/gcc/testsuite/gcc.c-torture/execute/951115-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/951115-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int var = 0;
 
 g ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/951204-1.c b/gcc/testsuite/gcc.c-torture/execute/951204-1.c
index c4d585b6b9e..f34ffa52e63 100644
--- a/gcc/testsuite/gcc.c-torture/execute/951204-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/951204-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 f (char *x)
 {
   *x = 'x';
diff --git a/gcc/testsuite/gcc.c-torture/execute/960116-1.c b/gcc/testsuite/gcc.c-torture/execute/960116-1.c
index 6d7624ca1a1..628fce10377 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960116-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960116-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 static inline
 p (int *p)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/960117-1.c b/gcc/testsuite/gcc.c-torture/execute/960117-1.c
index 741455b08b9..f8ca6aef479 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960117-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960117-1.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 static char id_space[2] [32 +1];
 typedef short COUNT;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/960209-1.c b/gcc/testsuite/gcc.c-torture/execute/960209-1.c
index decd2af2aab..ed550ad442a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960209-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960209-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct a_struct
 {
   unsigned char a_character;
diff --git a/gcc/testsuite/gcc.c-torture/execute/960215-1.c b/gcc/testsuite/gcc.c-torture/execute/960215-1.c
index 9502b4b2de4..41fa010df04 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960215-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960215-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long double C = 2;
 long double U = 1;
 long double Y2 = 3;
diff --git a/gcc/testsuite/gcc.c-torture/execute/960219-1.c b/gcc/testsuite/gcc.c-torture/execute/960219-1.c
index d21bcfcad24..a85f82a05cf 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960219-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960219-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 f (int i)
 {
   if (((1 << i) & 1) == 0)
diff --git a/gcc/testsuite/gcc.c-torture/execute/960301-1.c b/gcc/testsuite/gcc.c-torture/execute/960301-1.c
index d75efea9844..9031a90425e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960301-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960301-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct foo {
   unsigned : 12;
   unsigned field : 4;
diff --git a/gcc/testsuite/gcc.c-torture/execute/960302-1.c b/gcc/testsuite/gcc.c-torture/execute/960302-1.c
index 7a9426a4635..3689bdaf95a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960302-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960302-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long a = 1;
 
 foo ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/960311-1.c b/gcc/testsuite/gcc.c-torture/execute/960311-1.c
index 16579d0bbd1..f3f2edd8a2c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960311-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960311-1.c
@@ -1,5 +1,8 @@
 #include <stdio.h>
 
+void abort (void);
+void exit (int);
+
 #ifdef DEBUG
 #define abort() printf ("error, line %d\n", __LINE__)
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/960311-2.c b/gcc/testsuite/gcc.c-torture/execute/960311-2.c
index d5c2d07a336..5fad47c76f5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960311-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960311-2.c
@@ -1,5 +1,8 @@
 #include <stdio.h>
 
+void abort (void);
+void exit (int);
+
 #ifdef DEBUG
 #define abort() printf ("error, line %d\n", __LINE__)
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/960311-3.c b/gcc/testsuite/gcc.c-torture/execute/960311-3.c
index 755fc723f85..127af869e10 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960311-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960311-3.c
@@ -1,5 +1,8 @@
 #include <stdio.h>
 
+void abort (void);
+void exit (int);
+
 #ifdef DEBUG
 #define abort() printf ("error, line %d\n", __LINE__)
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/960312-1.c b/gcc/testsuite/gcc.c-torture/execute/960312-1.c
index 94e67df23bd..1b4f5077e46 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960312-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960312-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct S
 {
   int *sp, fc, *sc, a[2];
diff --git a/gcc/testsuite/gcc.c-torture/execute/960317-1.c b/gcc/testsuite/gcc.c-torture/execute/960317-1.c
index 8d7907d751c..1cfa840a0db 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960317-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960317-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 f (unsigned bitcount, int mant)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/960321-1.c b/gcc/testsuite/gcc.c-torture/execute/960321-1.c
index eafe48ff753..871cc423aaf 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960321-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960321-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 char a[10] = "deadbeef";
 
 char
diff --git a/gcc/testsuite/gcc.c-torture/execute/960326-1.c b/gcc/testsuite/gcc.c-torture/execute/960326-1.c
index f2013737022..8b36085f0a0 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960326-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960326-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct s
 {
   int a;
diff --git a/gcc/testsuite/gcc.c-torture/execute/960327-1.c b/gcc/testsuite/gcc.c-torture/execute/960327-1.c
index bc82cb5dacf..05893c3e459 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960327-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960327-1.c
@@ -1,4 +1,8 @@
 #include <stdio.h>
+
+void abort (void);
+void exit (int);
+
 g ()
 {
   return '\n';
diff --git a/gcc/testsuite/gcc.c-torture/execute/960405-1.c b/gcc/testsuite/gcc.c-torture/execute/960405-1.c
index d8480cc2c05..01513031d62 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960405-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960405-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 #define X  5.9486574767861588254287966331400356538172e4931L
 
 long double x = X + X;
diff --git a/gcc/testsuite/gcc.c-torture/execute/960416-1.c b/gcc/testsuite/gcc.c-torture/execute/960416-1.c
index f7cb056802c..dce5c1b1da5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960416-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960416-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef unsigned long int st;
 typedef unsigned long long dt;
 typedef union
diff --git a/gcc/testsuite/gcc.c-torture/execute/960419-1.c b/gcc/testsuite/gcc.c-torture/execute/960419-1.c
index 68bd2b97dd1..1f8737f3b1d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960419-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960419-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 static int i;
 
 void
diff --git a/gcc/testsuite/gcc.c-torture/execute/960419-2.c b/gcc/testsuite/gcc.c-torture/execute/960419-2.c
index c9526dcd779..71458121ff0 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960419-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960419-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 #define SIZE 8
 
 main()
diff --git a/gcc/testsuite/gcc.c-torture/execute/960512-1.c b/gcc/testsuite/gcc.c-torture/execute/960512-1.c
index a7c1d5fb47c..2f415790c8d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960512-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960512-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 __complex__
 double f ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/960513-1.c b/gcc/testsuite/gcc.c-torture/execute/960513-1.c
index acc263ca6c8..77132ec3733 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960513-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960513-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long double
 f (d, i)
      long double d;
diff --git a/gcc/testsuite/gcc.c-torture/execute/960608-1.c b/gcc/testsuite/gcc.c-torture/execute/960608-1.c
index 1f47d02d9d5..1970b42c677 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960608-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960608-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct
 {
   unsigned char a  : 2;
diff --git a/gcc/testsuite/gcc.c-torture/execute/960801-1.c b/gcc/testsuite/gcc.c-torture/execute/960801-1.c
index 1707269189a..2893365df02 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960801-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960801-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 unsigned
 f ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/960802-1.c b/gcc/testsuite/gcc.c-torture/execute/960802-1.c
index f9ee75260be..fa33a7e4410 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960802-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960802-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long val = 0x5e000000;
 
 long
diff --git a/gcc/testsuite/gcc.c-torture/execute/960909-1.c b/gcc/testsuite/gcc.c-torture/execute/960909-1.c
index de1ed933978..4d5d00a1124 100644
--- a/gcc/testsuite/gcc.c-torture/execute/960909-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/960909-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 ffs (x)
      int x;
diff --git a/gcc/testsuite/gcc.c-torture/execute/961004-1.c b/gcc/testsuite/gcc.c-torture/execute/961004-1.c
index 7ebba2d7b1e..50e2bdcbdef 100644
--- a/gcc/testsuite/gcc.c-torture/execute/961004-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/961004-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int k = 0;
 
 main()
diff --git a/gcc/testsuite/gcc.c-torture/execute/961017-1.c b/gcc/testsuite/gcc.c-torture/execute/961017-1.c
index 88c9d9505a1..c9f060fd703 100644
--- a/gcc/testsuite/gcc.c-torture/execute/961017-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/961017-1.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 main ()
 {
   unsigned char z = 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/961017-2.c b/gcc/testsuite/gcc.c-torture/execute/961017-2.c
index 768ddbc6e74..e56472a1033 100644
--- a/gcc/testsuite/gcc.c-torture/execute/961017-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/961017-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main ()
 {
   int i = 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/961026-1.c b/gcc/testsuite/gcc.c-torture/execute/961026-1.c
index 942a6eb131a..289b7ae2276 100644
--- a/gcc/testsuite/gcc.c-torture/execute/961026-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/961026-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 test (arg)
      int arg;
diff --git a/gcc/testsuite/gcc.c-torture/execute/961122-1.c b/gcc/testsuite/gcc.c-torture/execute/961122-1.c
index 1f0a63463e1..93c7ae4762e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/961122-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/961122-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long long acc;
 
 addhi (short a)
diff --git a/gcc/testsuite/gcc.c-torture/execute/961122-2.c b/gcc/testsuite/gcc.c-torture/execute/961122-2.c
index 81e404ec4f1..53cd42a17ac 100644
--- a/gcc/testsuite/gcc.c-torture/execute/961122-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/961122-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 f (int a)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/961125-1.c b/gcc/testsuite/gcc.c-torture/execute/961125-1.c
index 7fe3dd45422..7a8e18edfd7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/961125-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/961125-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 static char *
 begfield (int tab, char *ptr, char *lim, int sword, int schar)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/961206-1.c b/gcc/testsuite/gcc.c-torture/execute/961206-1.c
index 943ac66804d..e8e86be25cc 100644
--- a/gcc/testsuite/gcc.c-torture/execute/961206-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/961206-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 sub1 (unsigned long long i)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/961213-1.c b/gcc/testsuite/gcc.c-torture/execute/961213-1.c
index 12bb27f3145..b79d1998df5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/961213-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/961213-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 g (unsigned long long int *v, int n, unsigned int a[], int b)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/970214-1.c b/gcc/testsuite/gcc.c-torture/execute/970214-1.c
index 4a06dfebc8d..18a24988e67 100644
--- a/gcc/testsuite/gcc.c-torture/execute/970214-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/970214-1.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 #define L 1
 main ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/970214-2.c b/gcc/testsuite/gcc.c-torture/execute/970214-2.c
index cb9007625dd..a4d577d4c65 100644
--- a/gcc/testsuite/gcc.c-torture/execute/970214-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/970214-2.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 #define m(L) (L'1' + (L))
 main ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/970217-1.c b/gcc/testsuite/gcc.c-torture/execute/970217-1.c
index 09e716a330b..1d9939b38fb 100644
--- a/gcc/testsuite/gcc.c-torture/execute/970217-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/970217-1.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 sub (int i, int array[i++])
 {
   return i;
diff --git a/gcc/testsuite/gcc.c-torture/execute/970923-1.c b/gcc/testsuite/gcc.c-torture/execute/970923-1.c
index 1d78b47c724..a8fd901d343 100644
--- a/gcc/testsuite/gcc.c-torture/execute/970923-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/970923-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 ts(a)
      int a;
diff --git a/gcc/testsuite/gcc.c-torture/execute/980205.c b/gcc/testsuite/gcc.c-torture/execute/980205.c
index da15d3c4dd7..486a94b3a47 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980205.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980205.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 void fdouble (double one, ...)
 {
   double value;
diff --git a/gcc/testsuite/gcc.c-torture/execute/980223.c b/gcc/testsuite/gcc.c-torture/execute/980223.c
index 490873441bb..73f03e87fe0 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980223.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980223.c
@@ -1,3 +1,5 @@
+void abort(void);
+
 typedef struct { char *addr; long type; } object;
 
 object bar (object blah)
diff --git a/gcc/testsuite/gcc.c-torture/execute/980424-1.c b/gcc/testsuite/gcc.c-torture/execute/980424-1.c
index 514e91773a5..557967f3bfa 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980424-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980424-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int i, a[99];
 
 void f (int one)
diff --git a/gcc/testsuite/gcc.c-torture/execute/980505-1.c b/gcc/testsuite/gcc.c-torture/execute/980505-1.c
index 905241164dd..e452208eb52 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980505-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980505-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 static int f(int) __attribute__((const));
 int main()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/980505-2.c b/gcc/testsuite/gcc.c-torture/execute/980505-2.c
index d0d8aa8c6c0..afd772f82ef 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980505-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980505-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef unsigned short Uint16;
 typedef unsigned int Uint;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/980506-1.c b/gcc/testsuite/gcc.c-torture/execute/980506-1.c
index a48b3ad4cd7..aaeac6088dc 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980506-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980506-1.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 struct decision
 {
   char enforce_mode;             
diff --git a/gcc/testsuite/gcc.c-torture/execute/980506-2.c b/gcc/testsuite/gcc.c-torture/execute/980506-2.c
index 4dd9a2c4814..7d7ccddcbbf 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980506-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980506-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 static void *self(void *p){ return p; }
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/980506-3.c b/gcc/testsuite/gcc.c-torture/execute/980506-3.c
index a943e9ad62c..34df519fa08 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980506-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980506-3.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 unsigned char lookup_table [257];
 
 static int 
diff --git a/gcc/testsuite/gcc.c-torture/execute/980526-1.c b/gcc/testsuite/gcc.c-torture/execute/980526-1.c
index 15c580791ab..4f5ec551015 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980526-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980526-1.c
@@ -1,5 +1,8 @@
 /* { dg-require-effective-target label_values } */
 
+void abort (void);
+void exit (int);
+
 int expect_do1 = 1, expect_do2 = 2;
  
 static int doit(int x){
diff --git a/gcc/testsuite/gcc.c-torture/execute/980526-2.c b/gcc/testsuite/gcc.c-torture/execute/980526-2.c
index c17f4ea6df1..9f0ed69d214 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980526-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980526-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef unsigned int dev_t;
 typedef unsigned int kdev_t;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/980526-3.c b/gcc/testsuite/gcc.c-torture/execute/980526-3.c
index a564174e283..e5aeb6aed54 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980526-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980526-3.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int compare(x, y)
 unsigned int x;
 unsigned int y;
diff --git a/gcc/testsuite/gcc.c-torture/execute/980602-1.c b/gcc/testsuite/gcc.c-torture/execute/980602-1.c
index 2df7283740f..f029ffb8eb4 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980602-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980602-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main()
 {
   int i;
diff --git a/gcc/testsuite/gcc.c-torture/execute/980602-2.c b/gcc/testsuite/gcc.c-torture/execute/980602-2.c
index 972553ed584..5c8956ad473 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980602-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980602-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 /* The bit-field below would have a problem if __INT_MAX__ is too
    small.  */
 #if __INT_MAX__ < 2147483647
diff --git a/gcc/testsuite/gcc.c-torture/execute/980604-1.c b/gcc/testsuite/gcc.c-torture/execute/980604-1.c
index 8992a90c643..2346c941f9b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980604-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980604-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int a = 1;
 int b = -1;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/980605-1.c b/gcc/testsuite/gcc.c-torture/execute/980605-1.c
index 7179ba63881..36274e06fe8 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980605-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980605-1.c
@@ -2,6 +2,9 @@
 
 #include <stdio.h>
 
+void abort (void);
+void exit (int);
+
 #ifndef STACK_SIZE
 #define STACK_SIZE 200000
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/980612-1.c b/gcc/testsuite/gcc.c-torture/execute/980612-1.c
index db2438731a1..f04660e84fb 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980612-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980612-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct fd
 {
 	unsigned char a;
diff --git a/gcc/testsuite/gcc.c-torture/execute/980617-1.c b/gcc/testsuite/gcc.c-torture/execute/980617-1.c
index 5f7768aca7a..88e376dfa7e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980617-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980617-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void foo (unsigned int * p)
 {
   if ((signed char)(*p & 0xFF) == 17 || (signed char)(*p & 0xFF) == 18)
diff --git a/gcc/testsuite/gcc.c-torture/execute/980618-1.c b/gcc/testsuite/gcc.c-torture/execute/980618-1.c
index 59db7f28b9c..21b93adb148 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980618-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980618-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void func(int, int);
 
 int main()
diff --git a/gcc/testsuite/gcc.c-torture/execute/980701-1.c b/gcc/testsuite/gcc.c-torture/execute/980701-1.c
index 391cc0ee1c2..6b3761747f7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980701-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980701-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 ns_name_skip (unsigned char **x, unsigned char *y)
 {
   *x = 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/980709-1.c b/gcc/testsuite/gcc.c-torture/execute/980709-1.c
index 54b3bbc7cf9..9fda00ea103 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980709-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980709-1.c
@@ -1,6 +1,9 @@
 /* { dg-xfail-if "Can not call system libm.a with -msoft-float" { powerpc-*-aix* rs6000-*-aix* } { "-msoft-float" } { "" } } */
 #include <math.h>
 
+void abort (void);
+void exit (int);
+
 main()
 {
   volatile double a;
diff --git a/gcc/testsuite/gcc.c-torture/execute/980716-1.c b/gcc/testsuite/gcc.c-torture/execute/980716-1.c
index 14f46af4a54..3c501ad24c4 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980716-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980716-1.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 void
 stub(int num, ...)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/980929-1.c b/gcc/testsuite/gcc.c-torture/execute/980929-1.c
index 1d9246e01d7..39ebc728f9b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980929-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980929-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void f(int i)
 {
   if (i != 1000)
diff --git a/gcc/testsuite/gcc.c-torture/execute/981001-1.c b/gcc/testsuite/gcc.c-torture/execute/981001-1.c
index da63f4796b8..8b55cb447e9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/981001-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/981001-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 #define NG   0x100L
 
 unsigned long flg = 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/981019-1.c b/gcc/testsuite/gcc.c-torture/execute/981019-1.c
index 5d1f009009b..2c2d48c3c8e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/981019-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/981019-1.c
@@ -1,3 +1,4 @@
+extern void abort(void);
 extern int f2(void);
 extern int f3(void);
 extern void f1(void);
diff --git a/gcc/testsuite/gcc.c-torture/execute/981130-1.c b/gcc/testsuite/gcc.c-torture/execute/981130-1.c
index c4ca227d1e8..9135a9b7bf0 100644
--- a/gcc/testsuite/gcc.c-torture/execute/981130-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/981130-1.c
@@ -1,4 +1,6 @@
 /* { dg-xfail-if "alias analysis conflicts with instruction scheduling" { m32r-*-* } { "-O2" "-O1" "-O0" "-Os"} { "" } } */
+void abort (void);
+void exit (int);
 struct s { int a; int b;};
 struct s s1;
 struct s s2 = { 1, 2, };
diff --git a/gcc/testsuite/gcc.c-torture/execute/981206-1.c b/gcc/testsuite/gcc.c-torture/execute/981206-1.c
index 12ec0ab1897..39dce71f9c9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/981206-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/981206-1.c
@@ -1,5 +1,8 @@
 /* Verify unaligned address aliasing on Alpha EV[45].  */
 
+void abort (void);
+void exit (int);
+
 static unsigned short x, y;
 
 void foo()
diff --git a/gcc/testsuite/gcc.c-torture/execute/990106-2.c b/gcc/testsuite/gcc.c-torture/execute/990106-2.c
index c2791efaae6..e0b1f9b538e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990106-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990106-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 unsigned calc_mp(unsigned mod)
 {
       unsigned a,b,c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/990117-1.c b/gcc/testsuite/gcc.c-torture/execute/990117-1.c
index 9589ae746f8..29c0621b1d2 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990117-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990117-1.c
@@ -1,3 +1,5 @@
+void abort (void);
+
 int
 foo (int x, int y, int i, int j)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/990128-1.c b/gcc/testsuite/gcc.c-torture/execute/990128-1.c
index cfdab3e87e5..f44efe6e8e9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990128-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990128-1.c
@@ -1,3 +1,5 @@
+extern void abort (void);
+extern void exit (int);
 extern int printf (const char *,...);
 
 struct s { struct s *n; } *p;
diff --git a/gcc/testsuite/gcc.c-torture/execute/990130-1.c b/gcc/testsuite/gcc.c-torture/execute/990130-1.c
index c38ecddbe59..123b355c3ae 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990130-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990130-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int count = 0;
 int dummy;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/990208-1.c b/gcc/testsuite/gcc.c-torture/execute/990208-1.c
index 15dcdfbdf7a..49329b8c8d6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990208-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990208-1.c
@@ -4,6 +4,9 @@
    of function explicitly marked inline just because a label therein had
    its address taken.  */
 
+void abort (void);
+void exit (int);
+
 static void *ptr1, *ptr2;
 static int i = 1;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/990222-1.c b/gcc/testsuite/gcc.c-torture/execute/990222-1.c
index 98b94f39860..c34679f7528 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990222-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990222-1.c
@@ -1,3 +1,5 @@
+void abort(void);
+
 char line[4] = { '1', '9', '9', '\0' };
 
 int main()
diff --git a/gcc/testsuite/gcc.c-torture/execute/990324-1.c b/gcc/testsuite/gcc.c-torture/execute/990324-1.c
index d9baa0885f5..c52f74ac2b5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990324-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990324-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void f(long i)
 {
   if ((signed char)i < 0 || (signed char)i == 0) 
diff --git a/gcc/testsuite/gcc.c-torture/execute/990326-1.c b/gcc/testsuite/gcc.c-torture/execute/990326-1.c
index d7427cf8512..4c56a7c4da3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990326-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990326-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct a {
 	char a, b;
 	short c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/990404-1.c b/gcc/testsuite/gcc.c-torture/execute/990404-1.c
index be917d6d292..f776d44c1ca 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990404-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990404-1.c
@@ -1,3 +1,5 @@
+void abort (void);
+void exit (int);
 
 int x[10] = { 0,1,2,3,4,5,6,7,8,9};
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/990513-1.c b/gcc/testsuite/gcc.c-torture/execute/990513-1.c
index 6ad228fb006..741c11fe53b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990513-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990513-1.c
@@ -1,5 +1,7 @@
 #include <string.h>
 
+void abort (void);
+
 void foo (int *BM_tab, int j)
 {
   int *BM_tab_base;
diff --git a/gcc/testsuite/gcc.c-torture/execute/990524-1.c b/gcc/testsuite/gcc.c-torture/execute/990524-1.c
index 6cfb34995f4..8a2cc12fa7e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990524-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990524-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 char a[] = "12345";
 char b[] = "12345";
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/990525-1.c b/gcc/testsuite/gcc.c-torture/execute/990525-1.c
index 39b65d101d6..cb672fb9a5c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990525-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990525-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct blah {
     int m1, m2;
 };
diff --git a/gcc/testsuite/gcc.c-torture/execute/990525-2.c b/gcc/testsuite/gcc.c-torture/execute/990525-2.c
index 749785262ef..79fe39b63fa 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990525-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990525-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct {
     int v[4];
 } Test1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/990527-1.c b/gcc/testsuite/gcc.c-torture/execute/990527-1.c
index a865cbbc69a..6c80213cfdd 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990527-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990527-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int sum;
 
 void
diff --git a/gcc/testsuite/gcc.c-torture/execute/990531-1.c b/gcc/testsuite/gcc.c-torture/execute/990531-1.c
index d5501d3a7d7..cedafbbdf76 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990531-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990531-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
    unsigned long bad(int reg, unsigned long inWord)
    {
        union {
diff --git a/gcc/testsuite/gcc.c-torture/execute/990604-1.c b/gcc/testsuite/gcc.c-torture/execute/990604-1.c
index 4e23a8ea880..b8f81df01cc 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990604-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990604-1.c
@@ -1,3 +1,5 @@
+void abort (void);
+
 int b;
 void f ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/990804-1.c b/gcc/testsuite/gcc.c-torture/execute/990804-1.c
index 130c0fb5e51..d7f65c02b98 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990804-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990804-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int gfbyte ( void ) 
 {
  return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/990811-1.c b/gcc/testsuite/gcc.c-torture/execute/990811-1.c
index 95e1da9cdfa..c069a12f5b8 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990811-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990811-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct s {long a; int b;};
 
 int foo(int x, void *y)
diff --git a/gcc/testsuite/gcc.c-torture/execute/990826-0.c b/gcc/testsuite/gcc.c-torture/execute/990826-0.c
index c630da7d2bf..9447057ba7b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990826-0.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990826-0.c
@@ -11,6 +11,8 @@ X-UIDL: 9c1e40c572e3b306464f703461764cd5
 #include <stdio.h>
 #include <math.h>
 
+void abort (void);
+
 int
 main()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/990827-1.c b/gcc/testsuite/gcc.c-torture/execute/990827-1.c
index 6116e788627..bd93843a6e1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990827-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990827-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 unsigned test(unsigned one , unsigned  bit)
 {
     unsigned val=  bit & 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/990829-1.c b/gcc/testsuite/gcc.c-torture/execute/990829-1.c
index 82f81864594..8c8802192b4 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990829-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990829-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 double test (const double le, const double ri)
 {
 	double val = ( ri - le ) / ( ri * ( le + 1.0 ) );
diff --git a/gcc/testsuite/gcc.c-torture/execute/990923-1.c b/gcc/testsuite/gcc.c-torture/execute/990923-1.c
index 4f4e87abcf4..1494e96ad9f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990923-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990923-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 #define mask  0xffff0000L
 #define value 0xabcd0000L
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/991014-1.c b/gcc/testsuite/gcc.c-torture/execute/991014-1.c
index e0bcd6d8bef..ab0c17038ea 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991014-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991014-1.c
@@ -1,5 +1,5 @@
-
 typedef __SIZE_TYPE__ Size_t;
+void abort(void);
 
 #if __SIZEOF_LONG__ < __SIZEOF_POINTER__
 #define bufsize ((1LL << (8 * sizeof(Size_t) - 2))-256)
diff --git a/gcc/testsuite/gcc.c-torture/execute/991016-1.c b/gcc/testsuite/gcc.c-torture/execute/991016-1.c
index c3122342db7..76d2ef34579 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991016-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991016-1.c
@@ -2,6 +2,9 @@
    mode but have different alias sets.  DOIT tries to get gcse to
    invalidly hoist one of the values out of the loop.  */
 
+void abort (void);
+void exit (int);
+
 typedef int T0;
 typedef long T1;
 typedef long long T2;
diff --git a/gcc/testsuite/gcc.c-torture/execute/991019-1.c b/gcc/testsuite/gcc.c-torture/execute/991019-1.c
index 39726cd0ba4..f23b3d122fa 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991019-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991019-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct {
      double epsilon;
 } material_type;
diff --git a/gcc/testsuite/gcc.c-torture/execute/991023-1.c b/gcc/testsuite/gcc.c-torture/execute/991023-1.c
index 697eb931fae..7f348e11b9c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991023-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991023-1.c
@@ -1,4 +1,5 @@
-
+void abort (void);
+void exit (int);
 
 int blah;
 foo()
diff --git a/gcc/testsuite/gcc.c-torture/execute/991030-1.c b/gcc/testsuite/gcc.c-torture/execute/991030-1.c
index dff11d0a6d9..f6118e92c10 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991030-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991030-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 double x = 0x1.fp1;
 int main()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/991112-1.c b/gcc/testsuite/gcc.c-torture/execute/991112-1.c
index e43c7beeb87..0882fd69a7f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991112-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991112-1.c
@@ -1,6 +1,8 @@
 /* This code was miscompiled at -O3 on x86.
    Reported by Jim Meyering; distilled from bash.  */
 
+void abort(void);
+
 int rl_show_char (int c) { return 0; }
 
 int rl_character_len (int c, int pos)
diff --git a/gcc/testsuite/gcc.c-torture/execute/991118-1.c b/gcc/testsuite/gcc.c-torture/execute/991118-1.c
index 77ba888a2a0..0645e0dfb90 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991118-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991118-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct tmp
 {
   long long int pad : 12;
diff --git a/gcc/testsuite/gcc.c-torture/execute/991201-1.c b/gcc/testsuite/gcc.c-torture/execute/991201-1.c
index 16595a45d14..c7c0fbcca25 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991201-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991201-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct vc_data {
 	unsigned long	space;
 	unsigned char   vc_palette[16*3];        
diff --git a/gcc/testsuite/gcc.c-torture/execute/991202-1.c b/gcc/testsuite/gcc.c-torture/execute/991202-1.c
index 502acc74965..9cbd31f5d4f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991202-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991202-1.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 int x, y;
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/991202-2.c b/gcc/testsuite/gcc.c-torture/execute/991202-2.c
index fa97e2d431e..38b1f1bfa76 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991202-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991202-2.c
@@ -1,3 +1,5 @@
+void abort (void);
+void exit (int);
 
 int
 f1 ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/991202-3.c b/gcc/testsuite/gcc.c-torture/execute/991202-3.c
index f5718b22031..aa9982fa874 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991202-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991202-3.c
@@ -1,3 +1,5 @@
+void abort (void);
+void exit (int);
 
 unsigned int f (unsigned int a)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/991216-1.c b/gcc/testsuite/gcc.c-torture/execute/991216-1.c
index bfedefb1ec3..b6d4858ce02 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991216-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991216-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 #define VALUE 0x123456789abcdefLL
 #define AFTER 0x55
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/991216-2.c b/gcc/testsuite/gcc.c-torture/execute/991216-2.c
index 0956135f592..4b487cb15d7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991216-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991216-2.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 #define VALUE 0x123456789abcdefLL
 #define AFTER 0x55
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/991216-4.c b/gcc/testsuite/gcc.c-torture/execute/991216-4.c
index 4cc4c8c13e3..faba02e3558 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991216-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991216-4.c
@@ -1,4 +1,7 @@
 /* Test against a problem with loop reversal.  */
+void abort (void);
+void exit (int);
+
 static void bug(int size, int tries)
 {
     int i;
diff --git a/gcc/testsuite/gcc.c-torture/execute/991221-1.c b/gcc/testsuite/gcc.c-torture/execute/991221-1.c
index 7106fee606d..0879c09db27 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991221-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991221-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int main( void )
 {
    unsigned long totalsize = 80;
diff --git a/gcc/testsuite/gcc.c-torture/execute/991227-1.c b/gcc/testsuite/gcc.c-torture/execute/991227-1.c
index 46b0951e9e3..286b9d5a149 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991227-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991227-1.c
@@ -1,3 +1,5 @@
+void abort (void);
+void exit (int);
 char* doit(int flag)
 {
   return 1 + (flag ? "\0wrong\n" : "\0right\n");
diff --git a/gcc/testsuite/gcc.c-torture/execute/991228-1.c b/gcc/testsuite/gcc.c-torture/execute/991228-1.c
index c6fe78e7dad..d84c1cfc16d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/991228-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/991228-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 __extension__ union { double d; int i[2]; } u = { d: -0.25 };
 
 /* This assumes the endianness of words in a long long is the same as
diff --git a/gcc/testsuite/gcc.c-torture/execute/align-1.c b/gcc/testsuite/gcc.c-torture/execute/align-1.c
index 2dc1aad2abc..75b3cf1c2e6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/align-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/align-1.c
@@ -1,3 +1,5 @@
+void abort (void);
+
 typedef int new_int __attribute__ ((aligned(16)));
 struct S { int x; };
  
diff --git a/gcc/testsuite/gcc.c-torture/execute/align-2.c b/gcc/testsuite/gcc.c-torture/execute/align-2.c
index b886da7507d..f85f2dd6813 100644
--- a/gcc/testsuite/gcc.c-torture/execute/align-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/align-2.c
@@ -1,6 +1,8 @@
 /* Simple alignment checks;
    looking for compiler/assembler alignment disagreements,
    agreement between struct initialization and access.  */
+void abort (void);
+
 struct a_short { char c; short s; } s_c_s = { 'a', 13 };
 struct a_int { char c ; int i; } s_c_i = { 'b', 14 };
 struct b_int { short s; int i; } s_s_i  = { 15, 16 };
diff --git a/gcc/testsuite/gcc.c-torture/execute/align-3.c b/gcc/testsuite/gcc.c-torture/execute/align-3.c
index 7478c9e4a19..217991870f1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/align-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/align-3.c
@@ -1,5 +1,7 @@
 /* { dg-skip-if "small alignment" { pdp11-*-* } } */
 
+void abort (void);
+
 void func(void) __attribute__((aligned(256)));
 
 void func(void) 
diff --git a/gcc/testsuite/gcc.c-torture/execute/alloca-1.c b/gcc/testsuite/gcc.c-torture/execute/alloca-1.c
index 6a65ddfe914..037c932c62b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/alloca-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/alloca-1.c
@@ -4,6 +4,7 @@
    can only happen on !STRICT_ALIGNMENT targets.  */
 
 typedef __SIZE_TYPE__ size_t;
+void abort (void);
 
 struct dummy { int x __attribute__((aligned)); };
 #define BIGGEST_ALIGNMENT __alignof__(struct dummy)
diff --git a/gcc/testsuite/gcc.c-torture/execute/anon-1.c b/gcc/testsuite/gcc.c-torture/execute/anon-1.c
index 98a9ed71d46..a054e08f976 100644
--- a/gcc/testsuite/gcc.c-torture/execute/anon-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/anon-1.c
@@ -3,6 +3,8 @@
 /* Source: Neil Booth, 4 Nov 2001, derived from PR 2820 - field lookup in
    nested anonymous entities was broken.  */
 
+void abort (void);
+
 struct
 {
   int x;
diff --git a/gcc/testsuite/gcc.c-torture/execute/arith-1.c b/gcc/testsuite/gcc.c-torture/execute/arith-1.c
index 6168d77af67..e991d8e6640 100644
--- a/gcc/testsuite/gcc.c-torture/execute/arith-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/arith-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 unsigned
 sat_add (unsigned i)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/arith-rand-ll.c b/gcc/testsuite/gcc.c-torture/execute/arith-rand-ll.c
index 6c3cf1885ba..c3fdedf9fa6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/arith-rand-ll.c
+++ b/gcc/testsuite/gcc.c-torture/execute/arith-rand-ll.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long long
 simple_rand ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/arith-rand.c b/gcc/testsuite/gcc.c-torture/execute/arith-rand.c
index 4af146a1a56..a6b53ebb131 100644
--- a/gcc/testsuite/gcc.c-torture/execute/arith-rand.c
+++ b/gcc/testsuite/gcc.c-torture/execute/arith-rand.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long
 simple_rand ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/bf-layout-1.c b/gcc/testsuite/gcc.c-torture/execute/bf-layout-1.c
index a82429ba208..c359a7dd077 100644
--- a/gcc/testsuite/gcc.c-torture/execute/bf-layout-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/bf-layout-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct { long f8:8; long f24:24; } a;
 struct { long f32:32; } b;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/bf-pack-1.c b/gcc/testsuite/gcc.c-torture/execute/bf-pack-1.c
index ca3b1db763b..9c4e17e03f6 100644
--- a/gcc/testsuite/gcc.c-torture/execute/bf-pack-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/bf-pack-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct foo
 {
   unsigned half:16;
diff --git a/gcc/testsuite/gcc.c-torture/execute/bf-sign-1.c b/gcc/testsuite/gcc.c-torture/execute/bf-sign-1.c
index 3cc3eac15fd..81c7fd975bc 100644
--- a/gcc/testsuite/gcc.c-torture/execute/bf-sign-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/bf-sign-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main ()
 {
   struct  {
diff --git a/gcc/testsuite/gcc.c-torture/execute/bf-sign-2.c b/gcc/testsuite/gcc.c-torture/execute/bf-sign-2.c
index e8e17176ac0..31581ef7aac 100644
--- a/gcc/testsuite/gcc.c-torture/execute/bf-sign-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/bf-sign-2.c
@@ -13,6 +13,9 @@
  implementing signed and unsigned arithmetic.
  */
 
+void abort (void);
+void exit (int);
+
 struct X {
   unsigned int	     u3:3;
     signed long int  s31:31;
diff --git a/gcc/testsuite/gcc.c-torture/execute/bf64-1.c b/gcc/testsuite/gcc.c-torture/execute/bf64-1.c
index c9241e281c5..a4396910816 100644
--- a/gcc/testsuite/gcc.c-torture/execute/bf64-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/bf64-1.c
@@ -1,4 +1,8 @@
 /* { dg-xfail-if "ABI specifies bitfields cannot exceed 32 bits" { mcore-*-* } } */
+
+void abort (void);
+void exit (int);
+
 struct tmp
 {
   long long int pad : 12;
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtin-constant.c b/gcc/testsuite/gcc.c-torture/execute/builtin-constant.c
index 9e5bfb8bfe8..db0a3415afe 100644
--- a/gcc/testsuite/gcc.c-torture/execute/builtin-constant.c
+++ b/gcc/testsuite/gcc.c-torture/execute/builtin-constant.c
@@ -1,5 +1,8 @@
 /* PR optimization/8423.  */
 
+void abort (void);
+void exit (int);
+
 #define btest(x) __builtin_constant_p(x) ? "1" : "0"
 
 #ifdef __OPTIMIZE__
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-1.c b/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-1.c
index 4ee05a94d9f..46e16b8ec7f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-1.c
@@ -3,6 +3,8 @@
    Prefetch using all valid combinations of rw and locality values.
    These must be compile-time constants.  */
 
+void exit (int);
+
 #define NO_TEMPORAL_LOCALITY 0
 #define LOW_TEMPORAL_LOCALITY 1
 #define MODERATE_TEMPORAL_LOCALITY 1
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-2.c b/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-2.c
index 530a1b0ef0d..19f9eaa0c4b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-2.c
@@ -3,6 +3,8 @@
    Prefetch data using a variety of storage classes and address
    expressions.  */
 
+void exit (int);
+
 int glob_int_arr[100];
 int *glob_ptr_int = glob_int_arr;
 int glob_int = 4;
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-3.c b/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-3.c
index 2e2e808c172..bd186f5bd0d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-3.c
@@ -3,6 +3,8 @@
    Prefetch data using a variety of storage classes and address
    expressions with volatile variables and pointers.  */
 
+void exit (int);
+
 int glob_int_arr[100];
 int glob_int = 4;
 volatile int glob_vol_int_arr[100];
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-4.c b/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-4.c
index ade892b21a7..054220774f4 100644
--- a/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-4.c
@@ -5,6 +5,9 @@
    data prefetch.  Check changes to pointers and to array indices that are
    either global variables or arguments.  */
 
+void abort (void);
+void exit (int);
+
 #define ARRSIZE 100
 
 int arr[ARRSIZE];
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-5.c b/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-5.c
index f42a2c0ca87..cf4c0c6033b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-5.c
+++ b/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-5.c
@@ -5,6 +5,8 @@
    compiler takes care of that.  This fails if it aborts, anything else
    is OK.  */
 
+void exit (int);
+
 struct S {
   short a;
   short b;
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-6.c b/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-6.c
index f643c5c7286..02c729037e2 100644
--- a/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-6.c
+++ b/gcc/testsuite/gcc.c-torture/execute/builtin-prefetch-6.c
@@ -4,6 +4,8 @@
 
 #include <limits.h>
 
+void exit (int);
+
 #define ARRSIZE 65
 int *bad_addr[ARRSIZE];
 int arr_used;
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtin-types-compatible-p.c b/gcc/testsuite/gcc.c-torture/execute/builtin-types-compatible-p.c
index a998ef776f7..7d12de647ce 100644
--- a/gcc/testsuite/gcc.c-torture/execute/builtin-types-compatible-p.c
+++ b/gcc/testsuite/gcc.c-torture/execute/builtin-types-compatible-p.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int i;
 double d;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/cbrt.c b/gcc/testsuite/gcc.c-torture/execute/cbrt.c
index 8659cc7a723..552814f7933 100644
--- a/gcc/testsuite/gcc.c-torture/execute/cbrt.c
+++ b/gcc/testsuite/gcc.c-torture/execute/cbrt.c
@@ -9,6 +9,9 @@
  * ====================================================
 */
 
+void abort (void);
+void exit (int);
+
 #ifndef __vax__
 static const unsigned long
 	B1 = 715094163, /* B1 = (682-0.03306235651)*2**20 */
diff --git a/gcc/testsuite/gcc.c-torture/execute/complex-1.c b/gcc/testsuite/gcc.c-torture/execute/complex-1.c
index 59101796475..0721583742a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/complex-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/complex-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 double
 g0 (double x)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/complex-2.c b/gcc/testsuite/gcc.c-torture/execute/complex-2.c
index 9634c7943f3..68ce8616bf3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/complex-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/complex-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 __complex__ double
 f (__complex__ double x, __complex__ double y)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/complex-3.c b/gcc/testsuite/gcc.c-torture/execute/complex-3.c
index 4297cf11ebd..1e4cd58e2fb 100644
--- a/gcc/testsuite/gcc.c-torture/execute/complex-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/complex-3.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct complex
 {
   float r;
diff --git a/gcc/testsuite/gcc.c-torture/execute/complex-4.c b/gcc/testsuite/gcc.c-torture/execute/complex-4.c
index 1c458d21fba..22b4ca3aba3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/complex-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/complex-4.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main ()
 {
   if ((__complex__ double) 0.0 != (__complex__ double) (-0.0))
diff --git a/gcc/testsuite/gcc.c-torture/execute/complex-5.c b/gcc/testsuite/gcc.c-torture/execute/complex-5.c
index a3338082c46..48a38a16178 100644
--- a/gcc/testsuite/gcc.c-torture/execute/complex-5.c
+++ b/gcc/testsuite/gcc.c-torture/execute/complex-5.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 float __complex__
 p (float __complex__  a, float __complex__  b)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/compndlit-1.c b/gcc/testsuite/gcc.c-torture/execute/compndlit-1.c
index 76328c21c2e..9d3043be24a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/compndlit-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/compndlit-1.c
@@ -1,5 +1,8 @@
 /* The bit-field below would have a problem if __INT_MAX__ is too
    small.  */
+void abort (void);
+void exit (int);
+
 #if __INT_MAX__ < 2147483647
 int
 main (void)
diff --git a/gcc/testsuite/gcc.c-torture/execute/conversion.c b/gcc/testsuite/gcc.c-torture/execute/conversion.c
index 9e62acfd2ad..31dcafc4842 100644
--- a/gcc/testsuite/gcc.c-torture/execute/conversion.c
+++ b/gcc/testsuite/gcc.c-torture/execute/conversion.c
@@ -8,6 +8,9 @@
    Note that this code is NOT intended for testing of accuracy of fp
    conversions.  */
 
+void abort (void);
+void exit (int);
+
 float
 u2f(u)
      unsigned int u;
diff --git a/gcc/testsuite/gcc.c-torture/execute/cvt-1.c b/gcc/testsuite/gcc.c-torture/execute/cvt-1.c
index 6bb19341190..647f51738a3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/cvt-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/cvt-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 static inline long
 g1 (double x)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/divconst-1.c b/gcc/testsuite/gcc.c-torture/execute/divconst-1.c
index ce9dd60a8e8..d7992f69928 100644
--- a/gcc/testsuite/gcc.c-torture/execute/divconst-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/divconst-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct
 {
   unsigned a, b, c, d;
diff --git a/gcc/testsuite/gcc.c-torture/execute/divconst-2.c b/gcc/testsuite/gcc.c-torture/execute/divconst-2.c
index b58f1bfddc4..17590568445 100644
--- a/gcc/testsuite/gcc.c-torture/execute/divconst-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/divconst-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long
 f (long x)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/divconst-3.c b/gcc/testsuite/gcc.c-torture/execute/divconst-3.c
index ddd687cbcfd..8febc7f449b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/divconst-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/divconst-3.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long long
 f (long long x)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/enum-1.c b/gcc/testsuite/gcc.c-torture/execute/enum-1.c
index 381e354918c..3d513cc36bc 100644
--- a/gcc/testsuite/gcc.c-torture/execute/enum-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/enum-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef enum
 {
   END = -1,
diff --git a/gcc/testsuite/gcc.c-torture/execute/enum-2.c b/gcc/testsuite/gcc.c-torture/execute/enum-2.c
index dd6f640861a..7d1db9a2f96 100644
--- a/gcc/testsuite/gcc.c-torture/execute/enum-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/enum-2.c
@@ -1,6 +1,9 @@
 /* Copyright (C) 2000 Free Software Foundation */
 /* by Alexandre Oliva  <aoliva@redhat.com> */
 
+void abort (void);
+void exit (int);
+
 enum foo { FOO, BAR };
 
 /* Even though the underlying type of an enum is unspecified, the type
diff --git a/gcc/testsuite/gcc.c-torture/execute/extzvsi.c b/gcc/testsuite/gcc.c-torture/execute/extzvsi.c
index 81f16185d21..ed25d917dae 100644
--- a/gcc/testsuite/gcc.c-torture/execute/extzvsi.c
+++ b/gcc/testsuite/gcc.c-torture/execute/extzvsi.c
@@ -1,5 +1,8 @@
 /* The bit-field below would have a problem if __INT_MAX__ is too
    small.  */
+void abort (void);
+void exit (int);
+
 #if __INT_MAX__ < 2147483647
 int
 main (void)
diff --git a/gcc/testsuite/gcc.c-torture/execute/frame-address.c b/gcc/testsuite/gcc.c-torture/execute/frame-address.c
index e453f884359..5afa691e409 100644
--- a/gcc/testsuite/gcc.c-torture/execute/frame-address.c
+++ b/gcc/testsuite/gcc.c-torture/execute/frame-address.c
@@ -1,4 +1,6 @@
 /* { dg-require-effective-target return_address } */
+void abort (void);
+
 int check_fa_work (const char *, const char *) __attribute__((noinline));
 int check_fa_mid (const char *) __attribute__((noinline));
 int check_fa (char *) __attribute__((noinline));
diff --git a/gcc/testsuite/gcc.c-torture/execute/func-ptr-1.c b/gcc/testsuite/gcc.c-torture/execute/func-ptr-1.c
index 55f0e10660f..a4f2f7d4f34 100644
--- a/gcc/testsuite/gcc.c-torture/execute/func-ptr-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/func-ptr-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 static double f (float a);
 static double (*fp) (float a);
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/gofast.c b/gcc/testsuite/gcc.c-torture/execute/gofast.c
index 72774f16e74..4d0326b224a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/gofast.c
+++ b/gcc/testsuite/gcc.c-torture/execute/gofast.c
@@ -8,6 +8,9 @@
 
 #include <stdio.h>
 
+void abort (void);
+void exit (int);
+
 float fp_add (float a, float b) { return a + b; }
 float fp_sub (float a, float b) { return a - b; }
 float fp_mul (float a, float b) { return a * b; }
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c
index 790cadc3199..600352ef770 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 #if __INT_MAX__ != 2147483647 || (__LONG_LONG_MAX__ != 9223372036854775807ll && __LONG_MAX__ != 9223372036854775807ll)
 int main(void) { exit (0); }
 #else
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/20001122-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/20001122-1.c
index fd7e70262aa..422d2b39250 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/20001122-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/20001122-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 volatile double a, *p;
 
 int main ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/20010226-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/20010226-1.c
index ec292aca3d4..6a862209759 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/20010226-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/20010226-1.c
@@ -1,5 +1,7 @@
 #include <float.h>
 
+void abort (void);
+
 long double dfrom = 1.1L;
 long double m1;
 long double m2;
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/20011123-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/20011123-1.c
index e497251fe5c..8a6bff39b79 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/20011123-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/20011123-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main()
 {
   double db1 = 1.7976931348623157e+308;
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/920518-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/920518-1.c
index 7f072b2981a..ba380b3a8c7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/920518-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/920518-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 unsigned u=2147483839;float f0=2147483648e0,f1=2147483904e0;
 main()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.c
index 62d22940adc..e980c6df35d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.c
@@ -1,3 +1,5 @@
 #include <stdio.h>
+void abort (void);
+void exit (int);
 double normalize(x)double x;{if(x==0)x=0;return x;}
 main(){char b[9];sprintf(b,"%g",normalize(-0.0));if(strcmp(b,"0"))abort();exit(0);}
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/930529-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/930529-1.c
index b96a3c06423..92407762a24 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/930529-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/930529-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main ()
 {
   union {
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/980619-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/980619-1.c
index 0465ed51c8b..53065475bda 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/980619-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/980619-1.c
@@ -1,3 +1,6 @@
+	void abort (void);
+	void exit (int);
+
 	int main(void)
 	{
 		float reale = 1.0f;
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/acc1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/acc1.c
index e0d969b9ddc..99e78ee79bf 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/acc1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/acc1.c
@@ -1,5 +1,8 @@
 /* Tail call optimizations would reverse the order of additions in func().  */
 
+void abort (void);
+void exit (int);
+
 double func (const double *array)
 {
   double d = *array;
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/acc2.c b/gcc/testsuite/gcc.c-torture/execute/ieee/acc2.c
index 2a44c8a01a8..128f11e9000 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/acc2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/acc2.c
@@ -1,6 +1,9 @@
 /* Tail call optimizations would reverse the order of multiplications
    in func().  */
 
+void abort (void);
+void exit (int);
+
 double func (const double *array)
 {
   double d = *array;
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-1.c
index 0655c73a1f8..e1329c84b0d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-1.c
@@ -2,6 +2,9 @@
 #include <signal.h>
 #endif
 
+void abort (void);
+void exit (int);
+
 double dnan = 1.0/0.0 - 1.0/0.0;
 double x = 1.0;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.c b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.c
index 0f4c6f145f1..b19fa3760e1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.c
@@ -2,6 +2,9 @@
 #include <signal.h>
 #endif
 
+void abort (void);
+void exit (int);
+
 float fnan = 1.0f/0.0f - 1.0f/0.0f;
 float x = 1.0f;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-3.c b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-3.c
index 710b85ccb2a..4caa08a0530 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-3.c
@@ -2,6 +2,9 @@
 #include <signal.h>
 #endif
 
+void abort (void);
+void exit (int);
+
 long double dnan = 1.0l/0.0l - 1.0l/0.0l;
 long double x = 1.0l;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4.c b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4.c
index d4bb9c6c6b5..fd002735400 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 #ifndef FLOAT
 #define FLOAT double
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-5.c b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-5.c
index 9c70072f4e0..129abf90000 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-5.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-5.c
@@ -1,5 +1,8 @@
 /* Like fp-cmp-4.c, but test that the setcc patterns are correct.  */
 
+void abort (void);
+void exit (int);
+
 static int
 test_isunordered(double x, double y)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.c b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.c
index 782455831b0..c2a51c3b84b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-6.c
@@ -4,6 +4,7 @@ double x = 1.0;
 
 extern void link_error (void);
 extern void abort (void);
+extern void exit (int);
 
 main ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8.c b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8.c
index 7e24c66d98d..f351415dce3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 #ifndef FLOAT
 #define FLOAT double
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-9.c b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-9.c
index 71726346848..7269b81d7ca 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-9.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-9.c
@@ -4,6 +4,7 @@ double x = 1.0;
 
 extern void link_error (void);
 extern void abort (void);
+extern void exit (int);
 
 main ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/hugeval.c b/gcc/testsuite/gcc.c-torture/execute/ieee/hugeval.c
index 15f7088e19d..8e1eafec7c9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/hugeval.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/hugeval.c
@@ -1,5 +1,8 @@
 #include <math.h>
 
+void abort (void);
+void exit (int);
+
 static const double zero =  0.0;
 static const double pone =  1.0;
 static const double none = -1.0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/minuszero.c b/gcc/testsuite/gcc.c-torture/execute/ieee/minuszero.c
index 85715261d61..83472f1a9ff 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/minuszero.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/minuszero.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main ()
 {
   union
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.c
index f4212146cd1..31b3cbbf599 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.c
@@ -4,6 +4,9 @@
 /* This test requires that float and unsigned int are the same size and
    that the sign-bit of the float is at MSB of the unsigned int.  */
 
+void abort (void);
+void exit (int);
+
 #if __INT_MAX__ != 2147483647L
 int main () { exit (0); }
 #else
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/mzero2.c b/gcc/testsuite/gcc.c-torture/execute/ieee/mzero2.c
index 00c8efe9136..a252dd30a2d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/mzero2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/mzero2.c
@@ -1,5 +1,8 @@
 /* Test IEEE +0/-0 rules */
 
+void abort (void);
+void exit (int);
+
 static double pzero = +0.0;
 static double nzero = -0.0;
 static double pinf  = +1.0 / 0.0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/mzero3.c b/gcc/testsuite/gcc.c-torture/execute/ieee/mzero3.c
index fdfb8a11813..3ae0af666e5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/mzero3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/mzero3.c
@@ -3,6 +3,9 @@
 
    In the MMIX port, negdf2 was bogusly expanding -x into 0 - x.  */
 
+void abort (void);
+void exit (int);
+
 double nzerod = -0.0;
 float nzerof = -0.0;
 double zerod = 0.0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/mzero5.c b/gcc/testsuite/gcc.c-torture/execute/ieee/mzero5.c
index 3804c08a80a..cdf605e96bf 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/mzero5.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/mzero5.c
@@ -1,4 +1,5 @@
 /* Test gcse handling of IEEE 0/-0 rules.  */
+void abort (void);
 static double zero = 0.0;
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/mzero6.c b/gcc/testsuite/gcc.c-torture/execute/ieee/mzero6.c
index 59ba6fee15a..7a2616a2017 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/mzero6.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/mzero6.c
@@ -8,6 +8,9 @@
    which mishandles the case where 'd' is -0.  They also initialised 'acc'
    to a zero int rather than a zero double.  */
 
+void abort (void);
+void exit (int);
+
 double func (double d, int n)
 {
   if (n == 0)
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/pr28634.c b/gcc/testsuite/gcc.c-torture/execute/ieee/pr28634.c
index a0c525497d7..eaf13b0f860 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/pr28634.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/pr28634.c
@@ -2,6 +2,8 @@
    dbr_schedule could do the next iteration's addition in the
    branch delay slot, then subtract the value again if the branch
    wasn't taken.  This can lead to rounding errors.  */
+void abort (void);
+void exit (int);
 double x = -0x1.0p53;
 double y = 1;
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c b/gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c
index ce13d7e9eed..8447590be7d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c
@@ -2,6 +2,9 @@
 #include <ieeefp.h>
 #endif
 
+void abort (void);
+void exit (int);
+
 double d (unsigned long long k)
 {
   double x;
diff --git a/gcc/testsuite/gcc.c-torture/execute/index-1.c b/gcc/testsuite/gcc.c-torture/execute/index-1.c
index d96be4c77b8..9f2d3b8ddea 100644
--- a/gcc/testsuite/gcc.c-torture/execute/index-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/index-1.c
@@ -1,5 +1,8 @@
 /* { dg-skip-if "strict reloc overflow checking" { msp430-*-* } { "*" } { "-mcpu=msp430" "-mlarge"} } */
 
+void abort (void);
+void exit (int);
+
 int a[] =
 {
   0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
diff --git a/gcc/testsuite/gcc.c-torture/execute/longlong.c b/gcc/testsuite/gcc.c-torture/execute/longlong.c
index 56f1d8eab10..8905aeee973 100644
--- a/gcc/testsuite/gcc.c-torture/execute/longlong.c
+++ b/gcc/testsuite/gcc.c-torture/execute/longlong.c
@@ -1,5 +1,8 @@
 /* Source: PR 321 modified for test suite by Neil Booth 14 Jan 2001.  */
 
+void abort (void);
+void exit (int);
+
 typedef unsigned long long uint64;
 unsigned long pars;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-1.c b/gcc/testsuite/gcc.c-torture/execute/loop-1.c
index 81aeeb6b392..6cf6298f713 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main ()
 {
   int i, j, k[3];
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-10.c b/gcc/testsuite/gcc.c-torture/execute/loop-10.c
index 1a6afba6b95..563e99e7ac5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-10.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-10.c
@@ -1,5 +1,7 @@
 /* Reduced from PR optimization/5076, PR optimization/2847 */
 
+void abort (void);
+
 static int count = 0;
 
 static void
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-11.c b/gcc/testsuite/gcc.c-torture/execute/loop-11.c
index ab240cef345..52fb573ba22 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-11.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-11.c
@@ -1,3 +1,5 @@
+void abort (void);
+
 static int a[199];
 
 static void
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-13.c b/gcc/testsuite/gcc.c-torture/execute/loop-13.c
index d56c8293d73..232621efab1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-13.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-13.c
@@ -1,4 +1,5 @@
 /* PR opt/7130 */
+void abort (void);
 #define TYPE long
 
 void
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-14.c b/gcc/testsuite/gcc.c-torture/execute/loop-14.c
index 8c9929276bc..c4015b7abce 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-14.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-14.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int a3[3];
 
 void f(int *a)
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-15.c b/gcc/testsuite/gcc.c-torture/execute/loop-15.c
index 8cb5125a29e..40f4915ba68 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-15.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-15.c
@@ -1,5 +1,7 @@
 /* Bombed with a segfault on powerpc-linux.  doloop.c generated wrong
    loop count.  */
+void abort (void);
+
 void
 foo (unsigned long *start, unsigned long *end)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-2b.c b/gcc/testsuite/gcc.c-torture/execute/loop-2b.c
index 7f67bcd639d..6bdb86c254b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-2b.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-2b.c
@@ -1,5 +1,8 @@
 #include <limits.h>
 
+void abort (void);
+void exit (int);
+
 int a[2];
 
 f (int i)
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-2e.c b/gcc/testsuite/gcc.c-torture/execute/loop-2e.c
index 71c7a4d1d87..d064e4e4d10 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-2e.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-2e.c
@@ -1,3 +1,5 @@
+void abort (void);
+
 void f (int *p, int **q)
 {
   int i;
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-4.c b/gcc/testsuite/gcc.c-torture/execute/loop-4.c
index b308aa27689..a24ced3011f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-4.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 f()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-4b.c b/gcc/testsuite/gcc.c-torture/execute/loop-4b.c
index eaf7f30c4c5..a6287e77fdf 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-4b.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-4b.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int
 f()
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-5.c b/gcc/testsuite/gcc.c-torture/execute/loop-5.c
index 44ece275be1..8f5dc680461 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-5.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-5.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 static int ap(int i);
 static void testit(void){
   int ir[4] = {0,1,2,3};
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-6.c b/gcc/testsuite/gcc.c-torture/execute/loop-6.c
index 42eb9e7d5e8..2b624202fc8 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-6.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-6.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 main()
 {
   char c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-7.c b/gcc/testsuite/gcc.c-torture/execute/loop-7.c
index 48a2599b281..64c704bbfca 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-7.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-7.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void foo (unsigned int n)
 {
   int i, j = -1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-8.c b/gcc/testsuite/gcc.c-torture/execute/loop-8.c
index e8d8cb5f045..5e7ac188276 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-8.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-8.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 double a[3] = { 0.0, 1.0, 2.0 };
 
 void bar (int x, double *y)
diff --git a/gcc/testsuite/gcc.c-torture/execute/memcpy-1.c b/gcc/testsuite/gcc.c-torture/execute/memcpy-1.c
index 558c9370abb..43fbb60cc63 100644
--- a/gcc/testsuite/gcc.c-torture/execute/memcpy-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/memcpy-1.c
@@ -2,6 +2,9 @@
 
 #include <string.h>
 
+void abort (void);
+void exit (int);
+
 #if defined (STACK_SIZE)
 #define MEMCPY_SIZE (STACK_SIZE / 3)
 #else
diff --git a/gcc/testsuite/gcc.c-torture/execute/memcpy-2.c b/gcc/testsuite/gcc.c-torture/execute/memcpy-2.c
index f328b64778d..e330ef1662f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/memcpy-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/memcpy-2.c
@@ -7,6 +7,9 @@
 
 #include <string.h>
 
+void abort (void);
+void exit (int);
+
 #ifndef MAX_OFFSET
 #define MAX_OFFSET (sizeof (long long))
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/memcpy-bi.c b/gcc/testsuite/gcc.c-torture/execute/memcpy-bi.c
index 40b1030802e..ee7f6020021 100644
--- a/gcc/testsuite/gcc.c-torture/execute/memcpy-bi.c
+++ b/gcc/testsuite/gcc.c-torture/execute/memcpy-bi.c
@@ -1,6 +1,8 @@
 /* Test builtin-memcpy (which may emit different code for different N).  */
 #include <string.h>
 
+void abort (void);
+
 #define TESTSIZE 80
 
 char src[TESTSIZE] __attribute__ ((aligned));
diff --git a/gcc/testsuite/gcc.c-torture/execute/memset-1.c b/gcc/testsuite/gcc.c-torture/execute/memset-1.c
index b0b70f3e67d..0da5c9576ef 100644
--- a/gcc/testsuite/gcc.c-torture/execute/memset-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/memset-1.c
@@ -7,6 +7,9 @@
 
 #include <string.h>
 
+void abort (void);
+void exit (int);
+
 #ifndef MAX_OFFSET
 #define MAX_OFFSET (sizeof (long long))
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/memset-2.c b/gcc/testsuite/gcc.c-torture/execute/memset-2.c
index 07c3db378af..befad1e162b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/memset-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/memset-2.c
@@ -5,6 +5,9 @@
 
    Written by Roger Sayle, April 22, 2002.  */
 
+void abort (void);
+void exit (int);
+
 #ifndef MAX_OFFSET
 #define MAX_OFFSET (sizeof (long long))
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/memset-3.c b/gcc/testsuite/gcc.c-torture/execute/memset-3.c
index 64032a77540..f1fa932ce92 100644
--- a/gcc/testsuite/gcc.c-torture/execute/memset-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/memset-3.c
@@ -5,6 +5,9 @@
 
    Written by Roger Sayle, July 22, 2002.  */
 
+void abort (void);
+void exit (int);
+
 #ifndef MAX_OFFSET
 #define MAX_OFFSET (sizeof (long long))
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/multdi-1.c b/gcc/testsuite/gcc.c-torture/execute/multdi-1.c
index 1ffcc578e51..05d092f474d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/multdi-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/multdi-1.c
@@ -1,5 +1,7 @@
 /* PR target/9348 */
 
+void abort (void);
+
 #define u_l_l unsigned long long
 #define l_l long long
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/multi-ix.c b/gcc/testsuite/gcc.c-torture/execute/multi-ix.c
index 39567f1f0a7..f1eeab6e3f8 100644
--- a/gcc/testsuite/gcc.c-torture/execute/multi-ix.c
+++ b/gcc/testsuite/gcc.c-torture/execute/multi-ix.c
@@ -13,6 +13,9 @@
 
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 #ifdef STACK_SIZE
 /* We need to be careful that we don't blow our stack.  Function f, in the
    worst case, needs to fit on the stack:
diff --git a/gcc/testsuite/gcc.c-torture/execute/nest-stdar-1.c b/gcc/testsuite/gcc.c-torture/execute/nest-stdar-1.c
index 492670b5a1e..762d838d0a5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/nest-stdar-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/nest-stdar-1.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 main ()
 {
   double f (int x, ...)
diff --git a/gcc/testsuite/gcc.c-torture/execute/nestfunc-1.c b/gcc/testsuite/gcc.c-torture/execute/nestfunc-1.c
index 29ccfc399bd..f8a75e8cfa2 100644
--- a/gcc/testsuite/gcc.c-torture/execute/nestfunc-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/nestfunc-1.c
@@ -1,5 +1,8 @@
 /* { dg-require-effective-target trampolines } */
 
+void abort (void);
+void exit (int);
+
 int
 g (int a, int b, int (*gi) (int, int))
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/nestfunc-2.c b/gcc/testsuite/gcc.c-torture/execute/nestfunc-2.c
index 1a25a17449e..d5c5280a27e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/nestfunc-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/nestfunc-2.c
@@ -1,5 +1,8 @@
 /* { dg-require-effective-target trampolines } */
 
+void abort (void);
+void exit (int);
+
 extern int foo (int, int, int (*) (int, int, int, int, int, int, int));
 
 int z;
diff --git a/gcc/testsuite/gcc.c-torture/execute/nestfunc-3.c b/gcc/testsuite/gcc.c-torture/execute/nestfunc-3.c
index 2bdfece9c5b..5f37376485f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/nestfunc-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/nestfunc-3.c
@@ -1,5 +1,8 @@
 /* { dg-require-effective-target trampolines } */
 
+void abort (void);
+void exit (int);
+
 extern long foo (long, long, long (*) (long, long));
 extern long use (long (*) (long, long), long, long);
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/nestfunc-4.c b/gcc/testsuite/gcc.c-torture/execute/nestfunc-4.c
index c7225700709..743ca5cea38 100644
--- a/gcc/testsuite/gcc.c-torture/execute/nestfunc-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/nestfunc-4.c
@@ -5,6 +5,9 @@
    functions without parameters that each need at least one "long"
    preserved.  Exposed problems related to the MMIX port.  */
 
+void abort (void);
+void exit (int);
+
 long level = 0;
 extern long foo (void);
 extern long bar (void);
diff --git a/gcc/testsuite/gcc.c-torture/execute/packed-1.c b/gcc/testsuite/gcc.c-torture/execute/packed-1.c
index 9b226aeab9b..689592a2ea8 100644
--- a/gcc/testsuite/gcc.c-torture/execute/packed-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/packed-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 short x1 = 17;
 
 struct
diff --git a/gcc/testsuite/gcc.c-torture/execute/pending-4.c b/gcc/testsuite/gcc.c-torture/execute/pending-4.c
index 8000621e6b6..7eea10bb071 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pending-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pending-4.c
@@ -1,3 +1,5 @@
+void abort (void);
+void exit (int);
 
 void dummy (x, y)
      int *x;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr15262-1.c b/gcc/testsuite/gcc.c-torture/execute/pr15262-1.c
index f6a6fe40b73..4ff613555e3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr15262-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr15262-1.c
@@ -6,6 +6,9 @@
    
    However, if there are no common symbols between P and Q, TBAA will
    currently miss their alias relationship altogether.  */
+
+void abort (void);
+
 struct A
 {
   int t;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr15262-2.c b/gcc/testsuite/gcc.c-torture/execute/pr15262-2.c
index 82e8aabd1ab..3701a657483 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr15262-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr15262-2.c
@@ -2,6 +2,9 @@
    being taken in function foo().  Without IPA, by only looking inside
    foo() we cannot tell for certain whether 'q' and 'b' alias each
    other.  */
+
+void abort (void);
+
 struct A
 {
   int t;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr15262.c b/gcc/testsuite/gcc.c-torture/execute/pr15262.c
index 2110f33a04a..ee743faebaf 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr15262.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr15262.c
@@ -1,5 +1,8 @@
 /* We used to mis-compile this testcase as we did not know that
    &a+offsetof(b,a) was the same as &a.b */
+
+void abort (void);
+
 struct A
 {
   int t;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr15296.c b/gcc/testsuite/gcc.c-torture/execute/pr15296.c
index a3b53cb976e..c87a9136bb9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr15296.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr15296.c
@@ -3,6 +3,9 @@
    fall-through code, while that register held a pointer used in code at
    the branch target.  */
 
+void abort (void);
+void exit (int);
+
 typedef __INTPTR_TYPE__ intptr_t;
 typedef intptr_t W;
 union u0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr17252.c b/gcc/testsuite/gcc.c-torture/execute/pr17252.c
index bd1b6b99e98..ad45916655e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr17252.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr17252.c
@@ -1,6 +1,8 @@
 /* PR 17252.  When a char * pointer P takes its own address, storing
    into *P changes P itself.  */
 
+void abort (void);
+
 char *a;
 
 main ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr17377.c b/gcc/testsuite/gcc.c-torture/execute/pr17377.c
index 11094d1bea5..9b2ce078e01 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr17377.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr17377.c
@@ -2,6 +2,9 @@
    Bug in code emitted by "return" pattern on CRIS: missing pop of
    forced return address on stack.  */
 /* { dg-require-effective-target return_address } */
+void abort (void);
+void exit (int);
+
 int calls = 0;
 
 void *f (int) __attribute__ ((__noinline__));
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr19606.c b/gcc/testsuite/gcc.c-torture/execute/pr19606.c
index d1e836fa028..b857ddeaa73 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr19606.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr19606.c
@@ -3,6 +3,9 @@
    that does not preserve the semantics of the original computation.
    Make sure that won't happen.  */
 
+void abort (void);
+void exit (int);
+
 signed char a = -4;
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr21964-1.c b/gcc/testsuite/gcc.c-torture/execute/pr21964-1.c
index b7e1e0dbaea..efd427be629 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr21964-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr21964-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void
 foo (int n, int m)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr22061-2.c b/gcc/testsuite/gcc.c-torture/execute/pr22061-2.c
index 4e1be8f0e1d..f4b5e1a5b21 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr22061-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr22061-2.c
@@ -1,3 +1,4 @@
+void exit (int);
 int *x;
 static void bar (char a[2][(*x)++]) {}
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr22061-3.c b/gcc/testsuite/gcc.c-torture/execute/pr22061-3.c
index a805948182f..2a2d7ff1bb9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr22061-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr22061-3.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void
 bar (int N)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr22061-4.c b/gcc/testsuite/gcc.c-torture/execute/pr22061-4.c
index f7c89e631be..14b11cead97 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr22061-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr22061-4.c
@@ -1,4 +1,7 @@
 /* { dg-skip-if "requires alloca" { ! alloca } { "-O0" } { "" } } */
+void abort (void);
+void exit (int);
+
 void
 bar (int N)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr23467.c b/gcc/testsuite/gcc.c-torture/execute/pr23467.c
index 97a5af7780f..60743f11fc9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr23467.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr23467.c
@@ -1,5 +1,8 @@
 /* { dg-skip-if "small alignment" { pdp11-*-* } } */
 
+void abort (void);
+void exit (int);
+
 struct s1
 {
   int __attribute__ ((aligned (8))) a;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr27073.c b/gcc/testsuite/gcc.c-torture/execute/pr27073.c
index a58e9acae60..fe669ea6463 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr27073.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr27073.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void __attribute__((noinline))
 foo (int *p, int d1, int d2, int d3,
      short count, int s1, int s2, int s3, int s4, int s5)
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr27364.c b/gcc/testsuite/gcc.c-torture/execute/pr27364.c
index aa608b2a2fe..7b4bffbe59b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr27364.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr27364.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 int f(unsigned number_of_digits_to_use)
 {
   if (number_of_digits_to_use >1294)
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr28403.c b/gcc/testsuite/gcc.c-torture/execute/pr28403.c
index 8f85ea08505..551dd857ce8 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr28403.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr28403.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef unsigned long long ull;
 int global;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr31605.c b/gcc/testsuite/gcc.c-torture/execute/pr31605.c
index 12a57ac1ea6..903e20b43d1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr31605.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr31605.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 void put_field (unsigned int start, unsigned int len)
 {
   int cur_bitshift = ((start + len) % 8) - 8;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr38969.c b/gcc/testsuite/gcc.c-torture/execute/pr38969.c
index 328bdf4474b..aa2d12ec73f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr38969.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr38969.c
@@ -1,3 +1,5 @@
+void abort (void);
+
 __complex__ float
 __attribute__ ((noinline)) foo (__complex__ float x)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr40657.c b/gcc/testsuite/gcc.c-torture/execute/pr40657.c
index e6d8dda9f99..78b4a73b81e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr40657.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr40657.c
@@ -1,6 +1,9 @@
 /* Verify that that Thumb-1 epilogue size optimization does not clobber the
    return value.  */
 
+void abort (void);
+void exit (int);
+
 long long v = 0x123456789abc;
 
 __attribute__((noinline)) void bar (int *x)
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr44575.c b/gcc/testsuite/gcc.c-torture/execute/pr44575.c
index 62a7d7800b0..24e6593210c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr44575.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr44575.c
@@ -2,6 +2,8 @@
 
 #include <stdarg.h>
 
+void abort (void);
+
 int fails = 0;
 struct S { float a[3]; };
 struct S a[5];
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr56799.c b/gcc/testsuite/gcc.c-torture/execute/pr56799.c
index a8558ea3243..1e63bfe361d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr56799.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr56799.c
@@ -1,6 +1,10 @@
 /* { dg-require-effective-target int32plus } */
 
 #include <stdio.h>
+
+void abort (void);
+void exit (int);
+
 typedef struct { int x; int y;} S;
 extern int foo(S*);
 int hi = 0, lo = 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr58640.c b/gcc/testsuite/gcc.c-torture/execute/pr58640.c
index 7786b8d0c9f..c75ea1a748d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr58640.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr58640.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 int a, b, c, d = 1, e;
 
 static signed char
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr71335.c b/gcc/testsuite/gcc.c-torture/execute/pr71335.c
index cbfd99083d0..3e336a9d2aa 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr71335.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr71335.c
@@ -1,3 +1,5 @@
+void exit (int);
+
 int a;
 int
 main ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/ptr-arith-1.c b/gcc/testsuite/gcc.c-torture/execute/ptr-arith-1.c
index 46162b8964d..e5ac0190635 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ptr-arith-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ptr-arith-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 char *
 f (char *s, unsigned int i)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/regstack-1.c b/gcc/testsuite/gcc.c-torture/execute/regstack-1.c
index 51fb858cf92..7e73106d5e1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/regstack-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/regstack-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 long double C = 5;
 long double U = 1;
 long double Y2 = 11;
diff --git a/gcc/testsuite/gcc.c-torture/execute/scope-1.c b/gcc/testsuite/gcc.c-torture/execute/scope-1.c
index cedd0b48ccb..131803b0d28 100644
--- a/gcc/testsuite/gcc.c-torture/execute/scope-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/scope-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 int v = 3;
 
 f ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/simd-1.c b/gcc/testsuite/gcc.c-torture/execute/simd-1.c
index 97d82069764..fbd3f5ce769 100644
--- a/gcc/testsuite/gcc.c-torture/execute/simd-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/simd-1.c
@@ -4,6 +4,9 @@
    regardless of if the target has SIMD instructions.
 */
 
+void abort (void);
+void exit (int);
+
 typedef int __attribute__((mode(SI))) __attribute__((vector_size (16))) vecint;
 typedef int __attribute__((mode(SI))) siint;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/simd-2.c b/gcc/testsuite/gcc.c-torture/execute/simd-2.c
index d4f506a7641..985f529b78b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/simd-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/simd-2.c
@@ -3,6 +3,9 @@
    regardless of if the target has SIMD instructions.
 */
 
+void abort (void);
+void exit (int);
+
 typedef short __attribute__((vector_size (16))) vecint;
 
 vecint i = { 150, 100, 150, 200, 0, 0, 0, 0 };
diff --git a/gcc/testsuite/gcc.c-torture/execute/simd-4.c b/gcc/testsuite/gcc.c-torture/execute/simd-4.c
index 8a92cfe9073..ba0b0d33eec 100644
--- a/gcc/testsuite/gcc.c-torture/execute/simd-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/simd-4.c
@@ -1,5 +1,8 @@
 /* { dg-require-effective-target stdint_types } */
 #include <stdint.h>
+
+void abort (void);
+
 typedef int32_t __attribute__((vector_size(8))) v2si;
 int64_t s64;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/simd-5.c b/gcc/testsuite/gcc.c-torture/execute/simd-5.c
index f0584328716..4be89d0346a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/simd-5.c
+++ b/gcc/testsuite/gcc.c-torture/execute/simd-5.c
@@ -1,5 +1,7 @@
 /* Test saving and restoring of SIMD registers.  */
 
+void abort (void);
+
 typedef short Q __attribute__((vector_size(8)));
 
 Q q1 = {1, 2}, q2 = {3, 4}, q3 = {5, 6}, q4 = {7, 8};
diff --git a/gcc/testsuite/gcc.c-torture/execute/strcmp-1.c b/gcc/testsuite/gcc.c-torture/execute/strcmp-1.c
index 79999af3cbe..5f3f3d11ed9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/strcmp-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/strcmp-1.c
@@ -8,6 +8,9 @@
 #include <string.h>
 #include <stddef.h>
 
+void abort (void);
+void exit (int);
+
 #ifndef MAX_OFFSET
 #define MAX_OFFSET (sizeof (long long))
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/strcpy-1.c b/gcc/testsuite/gcc.c-torture/execute/strcpy-1.c
index 9484e95d922..1ce809a55a1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/strcpy-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/strcpy-1.c
@@ -5,6 +5,9 @@
 
 #include <string.h>
 
+void abort (void);
+void exit (int);
+
 #ifndef MAX_OFFSET
 #define MAX_OFFSET (sizeof (long long))
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/strct-pack-1.c b/gcc/testsuite/gcc.c-torture/execute/strct-pack-1.c
index 7b702f2cd68..e1370a01a90 100644
--- a/gcc/testsuite/gcc.c-torture/execute/strct-pack-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/strct-pack-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct
 {
   short s __attribute__ ((aligned(2), packed));
diff --git a/gcc/testsuite/gcc.c-torture/execute/strct-pack-2.c b/gcc/testsuite/gcc.c-torture/execute/strct-pack-2.c
index be76c764521..e50bb00a8b7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/strct-pack-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/strct-pack-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct
 {
   short a __attribute__ ((aligned (2),packed));
diff --git a/gcc/testsuite/gcc.c-torture/execute/strct-pack-4.c b/gcc/testsuite/gcc.c-torture/execute/strct-pack-4.c
index 56d315f47ff..66d09c82fe3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/strct-pack-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/strct-pack-4.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct
 {
   unsigned char a __attribute__((packed));
diff --git a/gcc/testsuite/gcc.c-torture/execute/strct-stdarg-1.c b/gcc/testsuite/gcc.c-torture/execute/strct-stdarg-1.c
index 508c954705a..92f182f7d82 100644
--- a/gcc/testsuite/gcc.c-torture/execute/strct-stdarg-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/strct-stdarg-1.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 struct tiny
 {
   char c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/strct-varg-1.c b/gcc/testsuite/gcc.c-torture/execute/strct-varg-1.c
index ddd6f05d5ac..6724885d628 100644
--- a/gcc/testsuite/gcc.c-torture/execute/strct-varg-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/strct-varg-1.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 struct s { int x, y; };
 
 f (int attr, ...)
diff --git a/gcc/testsuite/gcc.c-torture/execute/strlen-1.c b/gcc/testsuite/gcc.c-torture/execute/strlen-1.c
index c29592b8b88..bbfe9f3773c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/strlen-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/strlen-1.c
@@ -8,6 +8,9 @@
 #include <string.h>
 #include <stddef.h>
 
+void abort (void);
+void exit (int);
+
 #ifndef MAX_OFFSET
 #define MAX_OFFSET (sizeof (long long))
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/strncmp-1.c b/gcc/testsuite/gcc.c-torture/execute/strncmp-1.c
index c2448591d96..aa662d1bf8d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/strncmp-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/strncmp-1.c
@@ -9,6 +9,9 @@
 #include <string.h>
 #include <stddef.h>
 
+void abort (void);
+void exit (int);
+
 #ifndef MAX_OFFSET
 #define MAX_OFFSET (sizeof (long long))
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/struct-ini-1.c b/gcc/testsuite/gcc.c-torture/execute/struct-ini-1.c
index ab2d178a751..a7dd0129f59 100644
--- a/gcc/testsuite/gcc.c-torture/execute/struct-ini-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/struct-ini-1.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct S
 {
   char f1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/struct-ini-2.c b/gcc/testsuite/gcc.c-torture/execute/struct-ini-2.c
index c785257ccba..ebab3731155 100644
--- a/gcc/testsuite/gcc.c-torture/execute/struct-ini-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/struct-ini-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct {
   int a:4;
   int :4;
diff --git a/gcc/testsuite/gcc.c-torture/execute/struct-ini-3.c b/gcc/testsuite/gcc.c-torture/execute/struct-ini-3.c
index 7d282ecb8af..37ceb6c176c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/struct-ini-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/struct-ini-3.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct
 {
   unsigned int f1:1, f2:1, f3:3, f4:3, f5:2, f6:1, f7:1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/struct-ini-4.c b/gcc/testsuite/gcc.c-torture/execute/struct-ini-4.c
index 3342439e54d..3499bd30670 100644
--- a/gcc/testsuite/gcc.c-torture/execute/struct-ini-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/struct-ini-4.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 struct s {
   int a[3];
   int c[3];
diff --git a/gcc/testsuite/gcc.c-torture/execute/struct-ret-1.c b/gcc/testsuite/gcc.c-torture/execute/struct-ret-1.c
index e5274ec4c15..0e5ad2ce458 100644
--- a/gcc/testsuite/gcc.c-torture/execute/struct-ret-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/struct-ret-1.c
@@ -1,6 +1,9 @@
 #include <stdio.h>
 #include <string.h>
 
+void abort (void);
+void exit (int);
+
 char out[100];
 
 typedef struct { double d; int i[3]; } B;
diff --git a/gcc/testsuite/gcc.c-torture/execute/struct-ret-2.c b/gcc/testsuite/gcc.c-torture/execute/struct-ret-2.c
index 06a40a72099..57cf79f6e43 100644
--- a/gcc/testsuite/gcc.c-torture/execute/struct-ret-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/struct-ret-2.c
@@ -1,3 +1,6 @@
+void abort (void);
+void exit (int);
+
 typedef struct
 {
   unsigned char a __attribute__ ((packed));
diff --git a/gcc/testsuite/gcc.c-torture/execute/usmul.c b/gcc/testsuite/gcc.c-torture/execute/usmul.c
index 42b447a27fc..11d485109de 100644
--- a/gcc/testsuite/gcc.c-torture/execute/usmul.c
+++ b/gcc/testsuite/gcc.c-torture/execute/usmul.c
@@ -1,4 +1,7 @@
 /* { dg-require-effective-target int32plus } */
+void abort (void);
+void exit (int);
+
 int __attribute__ ((noinline)) foo (short x, unsigned short y)
 {
   return x * y;
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-1.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-1.c
index 3f3b141a931..d21007d6c70 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-1.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 typedef unsigned long L;
 f (L p0, L p1, L p2, L p3, L p4, L p5, L p6, L p7, L p8, ...)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-10.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-10.c
index 5ce3453acb6..c52d0b03adc 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-10.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-10.c
@@ -2,6 +2,9 @@
 
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 #ifndef va_copy
 #define va_copy __va_copy
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-11.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-11.c
index b178b880d45..5b4a1425d66 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-11.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-11.c
@@ -2,6 +2,9 @@
    side effect is used.  */
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 static int
 foo (int a, ...)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-12.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-12.c
index f2971d91e0b..658a4a7eb3e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-12.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-12.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 /*typedef unsigned long L;*/
 typedef double L;
 void f (L p0, L p1, L p2, L p3, L p4, L p5, L p6, L p7, L p8, ...)
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-13.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-13.c
index 65caf2b9af1..5b96e5c6a5a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-13.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-13.c
@@ -2,6 +2,9 @@
 
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 typedef struct {
   void *stream;
   va_list ap;
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-14.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-14.c
index d8b517a423b..c7c72ccb614 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-14.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-14.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 va_list global;
 
 void vat(va_list param, ...)
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-15.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-15.c
index 24411f8c404..49039d91944 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-15.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-15.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 void vafunction (char *dummy, ...)
 {
   double darg;
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-16.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-16.c
index 1115ef0855d..e77ddc945b4 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-16.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-16.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 typedef double TYPE;
 
 void vafunction (TYPE dummy1, TYPE dummy2, ...)
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-17.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-17.c
index 17850db1443..01254dfa614 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-17.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-17.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 typedef double TYPE;
 
 void vafunction (char *dummy, ...)
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-18.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-18.c
index 00dd54f4fd0..56b5652a6a7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-18.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-18.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 typedef double L;
 void f (L p0, L p1, L p2, L p3, L p4, L p5, L p6, L p7, L p8, ...)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-19.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-19.c
index 9fdf49d89dd..45eee67f9d3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-19.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-19.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 typedef int TYPE;
 
 void vafunction (char *dummy, ...)
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-2.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-2.c
index 7675b3f7603..965c94db9b3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-2.c
@@ -5,6 +5,8 @@
 
 #include <stdarg.h>
 
+extern void abort (void);
+extern void exit (int);
 extern __SIZE_TYPE__ strlen ();
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-20.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-20.c
index 2e8e5640d8c..8ad98f2cfbe 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-20.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-20.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 void foo(va_list v)
 {
     unsigned long long x = va_arg (v, unsigned long long);
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-23.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-23.c
index 89a11cf9f73..b9cd0e3a4a2 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-23.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-23.c
@@ -5,6 +5,8 @@
 
 #include <stdarg.h>
 
+void abort(void);
+
 struct two { long x, y; };
 
 void foo(int a, int b, int c, int d, int e, struct two f, int g, ...)
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-26.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-26.c
index 8221e9c42a5..18343059fe0 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-26.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-26.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 double f (float f1, float f2, float f3, float f4,
 	  float f5, float f6, ...)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-4.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-4.c
index a824f64ffa1..75295d81f9b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-4.c
@@ -3,6 +3,9 @@
 
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 typedef struct {
   char a[32];
 } big;
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-5.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-5.c
index 3d8b1a79ad1..eaa2010fc5c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-5.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-5.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 va_double (int n, ...)
 {
   va_list args;
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-6.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-6.c
index e8d495d66e7..3a3bb4f312d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-6.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-6.c
@@ -1,5 +1,8 @@
 #include <stdarg.h>
 
+void abort (void);
+void exit (int);
+
 f (int n, ...)
 {
   va_list args;
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-9.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-9.c
index f0a92dcdd72..28d43e6d3cb 100644
--- a/gcc/testsuite/gcc.c-torture/execute/va-arg-9.c
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-9.c
@@ -3,6 +3,8 @@
 
 #include <stdarg.h>
 
+extern void abort (void);
+extern void exit (int);
 extern __SIZE_TYPE__ strlen (const char *);
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/widechar-1.c b/gcc/testsuite/gcc.c-torture/execute/widechar-1.c
index 45b9d89b4b4..44a3e5151f9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/widechar-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/widechar-1.c
@@ -1,3 +1,6 @@
+void abort(void);
+void exit(int);
+
 #define C L'\400'
 
 #if C
diff --git a/gcc/testsuite/gcc.c-torture/execute/widechar-2.c b/gcc/testsuite/gcc.c-torture/execute/widechar-2.c
index 9e6a73bcd29..5ae23fce94e 100644
--- a/gcc/testsuite/gcc.c-torture/execute/widechar-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/widechar-2.c
@@ -1,5 +1,8 @@
 #include <stddef.h>
 
+void abort(void);
+void exit(int);
+
 const wchar_t ws[] = L"foo";
 
 int
