Commit ee712eab by Joseph Myers Committed by Joseph Myers

20001023-1.c, [...]: Declare built-in functions used.

	* gcc.dg/20001023-1.c, gcc.dg/20001108-1.c, gcc.dg/20001117-1.c,
	gcc.dg/20010202-1.c, gcc.dg/20011008-2.c, gcc.dg/20011214-1.c,
	gcc.dg/20020201-1.c, gcc.dg/20020312-2.c, gcc.dg/20020426-2.c,
	gcc.dg/20030331-2.c, gcc.dg/20030612-1.c, gcc.dg/20030926-1.c,
	gcc.dg/20031216-1.c, gcc.dg/20031218-3.c, gcc.dg/20040305-2.c,
	gcc.dg/980226-1.c, gcc.dg/Wreturn-type2.c,
	gcc.dg/Wunreachable-6.c, gcc.dg/Wunreachable-7.c,
	gcc.dg/align-1.c, gcc.dg/builtin-prefetch-1.c,
	gcc.dg/builtins-17.c, gcc.dg/builtins-19.c, gcc.dg/builtins-2.c,
	gcc.dg/builtins-20.c, gcc.dg/builtins-21.c, gcc.dg/builtins-7.c,
	gcc.dg/builtins-8.c, gcc.dg/cpp/19930510-1.c,
	gcc.dg/cpp/charconst-3.c, gcc.dg/cpp/charconst-4.c,
	gcc.dg/cpp/mi6.c, gcc.dg/cpp/tr-paste.c, gcc.dg/cpp/trad/mi6.c,
	gcc.dg/cpp/trad/paste.c, gcc.dg/cpp/trad/strify.c,
	gcc.dg/fastmath-1.c, gcc.dg/fshort-wchar.c, gcc.dg/i386-387-7.c,
	gcc.dg/i386-387-8.c, gcc.dg/i386-asm-1.c, gcc.dg/i386-cadd.c,
	gcc.dg/i386-fpcvt-3.c, gcc.dg/i386-loop-3.c,
	gcc.dg/i386-memset-1.c, gcc.dg/loop-2.c, gcc.dg/nest.c,
	gcc.dg/noncompile/971104-1.c, gcc.dg/noncompile/990416-1.c,
	gcc.dg/noncompile/scope.c, gcc.dg/pack-test-4.c,
	gcc.dg/pack-test-5.c, gcc.dg/pch/inline-4.c, gcc.dg/postincr-1.c,
	gcc.dg/pr10392-1.c, gcc.dg/pragma-align.c,
	gcc.dg/profile-generate-1.c, gcc.dg/sibcall-1.c,
	gcc.dg/sibcall-2.c, gcc.dg/sibcall-3.c, gcc.dg/sibcall-4.c,
	gcc.dg/sibcall-5.c, gcc.dg/sibcall-6.c, gcc.dg/switch-warn-1.c,
	gcc.dg/switch-warn-2.c, gcc.dg/torture/builtin-attr-1.c,
	gcc.dg/torture/builtin-math-1.c, gcc.dg/torture/builtin-noret-2.c,
	gcc.dg/trampoline-1.c, gcc.dg/tree-ssa/20030703-1.c,
	gcc.dg/tree-ssa/20030703-2.c, gcc.dg/tree-ssa/20030708-1.c,
	gcc.dg/tree-ssa/20030709-3.c, gcc.dg/tree-ssa/20030710-1.c,
	gcc.dg/tree-ssa/20030711-1.c, gcc.dg/tree-ssa/20030729-1.c,
	gcc.dg/tree-ssa/20030730-1.c, gcc.dg/tree-ssa/20030730-2.c,
	gcc.dg/tree-ssa/20030731-1.c, gcc.dg/tree-ssa/20030807-11.c,
	gcc.dg/tree-ssa/20030807-2.c, gcc.dg/tree-ssa/20030807-5.c,
	gcc.dg/tree-ssa/20030807-7.c, gcc.dg/tree-ssa/20030808-1.c,
	gcc.dg/tree-ssa/20030814-1.c, gcc.dg/tree-ssa/20030814-2.c,
	gcc.dg/tree-ssa/20030814-3.c, gcc.dg/tree-ssa/20030814-4.c,
	gcc.dg/tree-ssa/20030814-5.c, gcc.dg/tree-ssa/20030814-6.c,
	gcc.dg/tree-ssa/20030814-7.c, gcc.dg/tree-ssa/20030815-1.c,
	gcc.dg/tree-ssa/20030907-1.c, gcc.dg/tree-ssa/20030917-3.c,
	gcc.dg/tree-ssa/20030922-1.c, gcc.dg/tree-ssa/20031113-1.c,
	gcc.dg/tree-ssa/20040121-1.c, gcc.dg/tree-ssa/20040319-1.c,
	gcc.dg/tree-ssa/20040324-1.c, gcc.dg/tree-ssa/20040326-1.c,
	gcc.dg/tree-ssa/20040326-2.c, gcc.dg/tree-ssa/20040517-1.c,
	gcc.dg/tree-ssa/ssa-ccp-10.c, gcc.dg/tree-ssa/ssa-pre-1.c,
	gcc.dg/tree-ssa/tailcall-1.c, gcc.dg/tree-ssa/tailrecursion-5.c,
	gcc.dg/ultrasp3.c, gcc.dg/winline-7.c, gcc.misc-tests/bprob-1.c,
	gcc.misc-tests/bprob-2.c, gcc.misc-tests/gcov-3.c,
	gcc.misc-tests/gcov-4.c, gcc.misc-tests/gcov-4b.c,
	gcc.misc-tests/gcov-6.c, gcc.misc-tests/gcov-7.c,
	gcc.misc-tests/i386-pf-3dnow-1.c,
	gcc.misc-tests/i386-pf-athlon-1.c,
	gcc.misc-tests/i386-pf-none-1.c, gcc.misc-tests/i386-pf-sse-1.c,
	objc.dg/nested-func-1.m, objc.dg/special/unclaimed-category-1.m:
	Declare built-in functions used.
	* gcc.dg/torture/builtin-attr-1.c (nexttoward): Use FPTEST2ARG2.

From-SVN: r85465
parent 610b0ddd
2004-08-03 Joseph S. Myers <jsm@polyomino.org.uk>
* gcc.dg/20001023-1.c, gcc.dg/20001108-1.c, gcc.dg/20001117-1.c,
gcc.dg/20010202-1.c, gcc.dg/20011008-2.c, gcc.dg/20011214-1.c,
gcc.dg/20020201-1.c, gcc.dg/20020312-2.c, gcc.dg/20020426-2.c,
gcc.dg/20030331-2.c, gcc.dg/20030612-1.c, gcc.dg/20030926-1.c,
gcc.dg/20031216-1.c, gcc.dg/20031218-3.c, gcc.dg/20040305-2.c,
gcc.dg/980226-1.c, gcc.dg/Wreturn-type2.c,
gcc.dg/Wunreachable-6.c, gcc.dg/Wunreachable-7.c,
gcc.dg/align-1.c, gcc.dg/builtin-prefetch-1.c,
gcc.dg/builtins-17.c, gcc.dg/builtins-19.c, gcc.dg/builtins-2.c,
gcc.dg/builtins-20.c, gcc.dg/builtins-21.c, gcc.dg/builtins-7.c,
gcc.dg/builtins-8.c, gcc.dg/cpp/19930510-1.c,
gcc.dg/cpp/charconst-3.c, gcc.dg/cpp/charconst-4.c,
gcc.dg/cpp/mi6.c, gcc.dg/cpp/tr-paste.c, gcc.dg/cpp/trad/mi6.c,
gcc.dg/cpp/trad/paste.c, gcc.dg/cpp/trad/strify.c,
gcc.dg/fastmath-1.c, gcc.dg/fshort-wchar.c, gcc.dg/i386-387-7.c,
gcc.dg/i386-387-8.c, gcc.dg/i386-asm-1.c, gcc.dg/i386-cadd.c,
gcc.dg/i386-fpcvt-3.c, gcc.dg/i386-loop-3.c,
gcc.dg/i386-memset-1.c, gcc.dg/loop-2.c, gcc.dg/nest.c,
gcc.dg/noncompile/971104-1.c, gcc.dg/noncompile/990416-1.c,
gcc.dg/noncompile/scope.c, gcc.dg/pack-test-4.c,
gcc.dg/pack-test-5.c, gcc.dg/pch/inline-4.c, gcc.dg/postincr-1.c,
gcc.dg/pr10392-1.c, gcc.dg/pragma-align.c,
gcc.dg/profile-generate-1.c, gcc.dg/sibcall-1.c,
gcc.dg/sibcall-2.c, gcc.dg/sibcall-3.c, gcc.dg/sibcall-4.c,
gcc.dg/sibcall-5.c, gcc.dg/sibcall-6.c, gcc.dg/switch-warn-1.c,
gcc.dg/switch-warn-2.c, gcc.dg/torture/builtin-attr-1.c,
gcc.dg/torture/builtin-math-1.c, gcc.dg/torture/builtin-noret-2.c,
gcc.dg/trampoline-1.c, gcc.dg/tree-ssa/20030703-1.c,
gcc.dg/tree-ssa/20030703-2.c, gcc.dg/tree-ssa/20030708-1.c,
gcc.dg/tree-ssa/20030709-3.c, gcc.dg/tree-ssa/20030710-1.c,
gcc.dg/tree-ssa/20030711-1.c, gcc.dg/tree-ssa/20030729-1.c,
gcc.dg/tree-ssa/20030730-1.c, gcc.dg/tree-ssa/20030730-2.c,
gcc.dg/tree-ssa/20030731-1.c, gcc.dg/tree-ssa/20030807-11.c,
gcc.dg/tree-ssa/20030807-2.c, gcc.dg/tree-ssa/20030807-5.c,
gcc.dg/tree-ssa/20030807-7.c, gcc.dg/tree-ssa/20030808-1.c,
gcc.dg/tree-ssa/20030814-1.c, gcc.dg/tree-ssa/20030814-2.c,
gcc.dg/tree-ssa/20030814-3.c, gcc.dg/tree-ssa/20030814-4.c,
gcc.dg/tree-ssa/20030814-5.c, gcc.dg/tree-ssa/20030814-6.c,
gcc.dg/tree-ssa/20030814-7.c, gcc.dg/tree-ssa/20030815-1.c,
gcc.dg/tree-ssa/20030907-1.c, gcc.dg/tree-ssa/20030917-3.c,
gcc.dg/tree-ssa/20030922-1.c, gcc.dg/tree-ssa/20031113-1.c,
gcc.dg/tree-ssa/20040121-1.c, gcc.dg/tree-ssa/20040319-1.c,
gcc.dg/tree-ssa/20040324-1.c, gcc.dg/tree-ssa/20040326-1.c,
gcc.dg/tree-ssa/20040326-2.c, gcc.dg/tree-ssa/20040517-1.c,
gcc.dg/tree-ssa/ssa-ccp-10.c, gcc.dg/tree-ssa/ssa-pre-1.c,
gcc.dg/tree-ssa/tailcall-1.c, gcc.dg/tree-ssa/tailrecursion-5.c,
gcc.dg/ultrasp3.c, gcc.dg/winline-7.c, gcc.misc-tests/bprob-1.c,
gcc.misc-tests/bprob-2.c, gcc.misc-tests/gcov-3.c,
gcc.misc-tests/gcov-4.c, gcc.misc-tests/gcov-4b.c,
gcc.misc-tests/gcov-6.c, gcc.misc-tests/gcov-7.c,
gcc.misc-tests/i386-pf-3dnow-1.c,
gcc.misc-tests/i386-pf-athlon-1.c,
gcc.misc-tests/i386-pf-none-1.c, gcc.misc-tests/i386-pf-sse-1.c,
objc.dg/nested-func-1.m, objc.dg/special/unclaimed-category-1.m:
Declare built-in functions used.
* gcc.dg/torture/builtin-attr-1.c (nexttoward): Use FPTEST2ARG2.
2004-08-02 Mark Mitchell <mark@codesourcery.com> 2004-08-02 Mark Mitchell <mark@codesourcery.com>
PR c++/16707 PR c++/16707
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -fomit-frame-pointer" } */ /* { dg-options "-O2 -fomit-frame-pointer" } */
extern void abort (void);
extern void exit (int);
unsigned char a[256], b[256], c[256], d[256]; unsigned char a[256], b[256], c[256], d[256];
void foo(unsigned char *x, int y, unsigned char *z) void foo(unsigned char *x, int y, unsigned char *z)
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -fomit-frame-pointer" } */ /* { dg-options "-O2 -fomit-frame-pointer" } */
extern void abort (void);
extern void exit (int);
void die (long) __attribute__ ((noreturn)); void die (long) __attribute__ ((noreturn));
void die (long e) void die (long e)
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -finstrument-functions" } */ /* { dg-options "-O2 -finstrument-functions" } */
extern void abort (void);
extern void exit (int);
double double
foo (double a, double b) foo (double a, double b)
{ {
......
/* { dg-do compile { target i?86-*-* sparc*-*-* } } */ /* { dg-do compile { target i?86-*-* sparc*-*-* } } */
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
extern void abort (void);
extern void exit (int);
typedef enum { false, true } __attribute__ ((packed)) boolean; typedef enum { false, true } __attribute__ ((packed)) boolean;
typedef struct { typedef struct {
enum { enum {
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O0" } */ /* { dg-options "-O0" } */
extern void abort (void);
extern void exit (int);
struct { union {int x; int y;}; int q; } b; struct { union {int x; int y;}; int q; } b;
union { struct {int x;}; int q; } e; union { struct {int x;}; int q; } e;
......
/* { dg-do run } */ /* { dg-do run } */
extern void abort (void);
extern void exit (int);
#define small __attribute__((mode(QI))) int #define small __attribute__((mode(QI))) int
int main() int main()
{ {
......
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
/* { dg-options "-fprofile-arcs" } */ /* { dg-options "-fprofile-arcs" } */
/* { dg-do run { target native } } */ /* { dg-do run { target native } } */
extern void abort (void);
extern void exit (int);
int rand (void); int rand (void);
void srand (unsigned int seed); void srand (unsigned int seed);
......
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O -fno-pic" } */ /* { dg-options "-O -fno-pic" } */
extern void abort (void);
#if defined(__alpha__) #if defined(__alpha__)
/* PIC register is $29, but is used even without -fpic. */ /* PIC register is $29, but is used even without -fpic. */
#elif defined(__arc__) #elif defined(__arc__)
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
/* { dg-options "-O2 -frename-registers -fomit-frame-pointer -fPIC -mtune=i686" { target i?86-*-* } } */ /* { dg-options "-O2 -frename-registers -fomit-frame-pointer -fPIC -mtune=i686" { target i?86-*-* } } */
extern void exit (int);
typedef struct typedef struct
{ {
union union
......
// { dg-options "" } // { dg-options "" }
extern int printf (const char *, ...);
int foo() { int foo() {
int yd; int yd;
float in[1][yd]; float in[1][yd];
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
extern void abort (void);
int A, B; int A, B;
void foo() void foo()
......
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
/* { dg-options "-O2 -minline-all-stringops" } */ /* { dg-options "-O2 -minline-all-stringops" } */
/* { dg-options "-O2 -minline-all-stringops -march=pentium4" { target i?86-*-* } } */ /* { dg-options "-O2 -minline-all-stringops -march=pentium4" { target i?86-*-* } } */
extern void *memcpy (void *, const void *, __SIZE_TYPE__);
extern __SIZE_TYPE__ strlen (const char *);
void void
foo (char *p) foo (char *p)
{ {
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
/* { dg-options "-O2 -fPIC" { target s390*-*-* } } */ /* { dg-options "-O2 -fPIC" { target s390*-*-* } } */
extern void abort (void);
int count = 0; int count = 0;
char *str; char *str;
......
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -g" } */ /* { dg-options "-O2 -g" } */
extern __SIZE_TYPE__ strlen (const char *);
int x (char *s) int x (char *s)
{ {
int y () { return (strlen (s)); } int y () { return (strlen (s)); }
......
/* PR target/14262 */ /* PR target/14262 */
/* { dg-do run } */ /* { dg-do run } */
extern void abort (void);
typedef char ACS; typedef char ACS;
typedef char LSM; typedef char LSM;
typedef char PANEL; typedef char PANEL;
......
/* { dg-do compile { target i?86-*-* } } */ /* { dg-do compile { target i?86-*-* } } */
/* { dg-options -O2 } */ /* { dg-options -O2 } */
extern int printf (const char *, ...);
extern double bar (double); extern double bar (double);
int int
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
missing return. */ missing return. */
/* { dg-do compile } */ /* { dg-do compile } */
extern void abort (void);
f() {} /* { dg-bogus "" "no return warning" } */ f() {} /* { dg-bogus "" "no return warning" } */
int g() { abort (); } /* { dg-bogus "" "no return warning" } */ int g() { abort (); } /* { dg-bogus "" "no return warning" } */
int main() {} /* { dg-bogus "" "no return warning" } */ int main() {} /* { dg-bogus "" "no return warning" } */
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-Wunreachable-code" } */ /* { dg-options "-Wunreachable-code" } */
extern int printf (const char *, ...);
extern void exit (int);
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
if (argc != 1) if (argc != 1)
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -Wunreachable-code" } */ /* { dg-options "-O2 -Wunreachable-code" } */
extern int printf (const char *, ...);
extern void exit (int);
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
if (argc != 1) if (argc != 1)
......
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
{ dg-options "" } { dg-options "" }
*/ */
extern void abort (void);
struct A struct A
{ {
char c; char c;
......
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
/* { dg-do run } */ /* { dg-do run } */
extern void exit (int);
enum locality { none, low, moderate, high, bogus }; enum locality { none, low, moderate, high, bogus };
enum rw { read, write }; enum rw { read, write };
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
extern void link_error(void); extern void link_error(void);
extern double exp(double); extern double exp(double);
extern double atan(double);
int main() int main()
{ {
......
...@@ -10,6 +10,9 @@ ...@@ -10,6 +10,9 @@
double cabs (__complex__ double); double cabs (__complex__ double);
float cabsf (__complex__ float); float cabsf (__complex__ float);
long double cabsl (__complex__ long double); long double cabsl (__complex__ long double);
double fabs (double);
float fabsf (float);
long double fabsl (long double);
void link_error (void); void link_error (void);
......
...@@ -8,6 +8,28 @@ ...@@ -8,6 +8,28 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -ffast-math" } */ /* { dg-options "-O2 -ffast-math" } */
extern double atan (double);
extern float atanf (float);
extern long double atanl (long double);
extern double exp (double);
extern float expf (float);
extern long double expl (long double);
extern double fabs (double);
extern float fabsf (float);
extern long double fabsl (long double);
extern double log (double);
extern float logf (float);
extern long double logl (long double);
extern double pow (double, double);
extern float powf (float, float);
extern long double powl (long double, long double);
extern double sqrt (double);
extern float sqrtf (float);
extern long double sqrtl (long double);
extern double tan (double);
extern float tanf (float);
extern long double tanl (long double);
double test1(double x) double test1(double x)
{ {
return log(exp(x)); return log(exp(x));
......
...@@ -10,6 +10,16 @@ ...@@ -10,6 +10,16 @@
#include "builtins-config.h" #include "builtins-config.h"
extern double cos (double);
extern double sin (double);
extern double tan (double);
extern float cosf (float);
extern float sinf (float);
extern float tanf (float);
extern long double cosl (long double);
extern long double sinl (long double);
extern long double tanl (long double);
extern void link_error(void); extern void link_error(void);
void test1(double x) void test1(double x)
......
...@@ -8,6 +8,16 @@ ...@@ -8,6 +8,16 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -ffast-math" } */ /* { dg-options "-O2 -ffast-math" } */
extern double fabs (double);
extern float fabsf (float);
extern long double fabsl (long double);
extern double sqrt (double);
extern float sqrtf (float);
extern long double sqrtl (long double);
extern double exp (double);
extern float expf (float);
extern long double expl (long double);
double test1(double x) double test1(double x)
{ {
return fabs(x*x); return fabs(x*x);
......
...@@ -8,6 +8,16 @@ ...@@ -8,6 +8,16 @@
/* { dg-do link } */ /* { dg-do link } */
/* { dg-options "-O2 -ffast-math" } */ /* { dg-options "-O2 -ffast-math" } */
extern double pow (double, double);
extern float powf (float, float);
extern long double powl (long double, long double);
extern double tan (double);
extern float tanf (float);
extern long double tanl (long double);
extern double atan (double);
extern float atanf (float);
extern long double atanl (long double);
extern void link_error(void); extern void link_error(void);
void test(double x) void test(double x)
......
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
/* { dg-options "-O2 -ffast-math" } */ /* { dg-options "-O2 -ffast-math" } */
extern void abort(void); extern void abort(void);
extern double pow(double, double);
extern double sqrt(double);
void test(double x) void test(double x)
{ {
......
/* { dg-do compile } */ /* { dg-do compile } */
extern void exit (int);
#define ugly 3 #define ugly 3
#ugly "foobar" 3 /* { dg-error "invalid" "invalid directive" } */ #ugly "foobar" 3 /* { dg-error "invalid" "invalid directive" } */
int main() { exit (0); } int main() { exit (0); }
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
#include <limits.h> #include <limits.h>
extern void abort (void);
int main () int main ()
{ {
/* These tests require at least 2-byte ints. 8-) */ /* These tests require at least 2-byte ints. 8-) */
......
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
#include <limits.h> #include <limits.h>
extern void abort (void);
#if INT_MAX == 32767 #if INT_MAX == 32767
# define LONG_CHARCONST '!\234a' # define LONG_CHARCONST '!\234a'
# define SHORT_CHARCONST '\234a' # define SHORT_CHARCONST '\234a'
......
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "" } */ /* { dg-options "" } */
extern void abort (void);
/* Each include file should not be subject to MI optimisation, since /* Each include file should not be subject to MI optimisation, since
macro definitions can change. Each header increments the variable macro definitions can change. Each header increments the variable
VAR if it is defined. VAR if it is defined.
......
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-traditional-cpp" } */ /* { dg-options "-traditional-cpp" } */
extern int printf (const char *, ...);
#define A(name) X/**/name #define A(name) X/**/name
#define B(name) \ #define B(name) \
......
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "" } */ /* { dg-options "" } */
extern void abort (void);
/* Each include file should not be subject to MI optimisation, since /* Each include file should not be subject to MI optimisation, since
macro definitions can change. Each header increments the variable macro definitions can change. Each header increments the variable
VAR if it is defined. VAR if it is defined.
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
/* { dg-do compile } */ /* { dg-do compile } */
extern int printf (const char *, ...);
#define A(name) X/**/name #define A(name) X/**/name
#define B(name) \ #define B(name) \
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#define foo(a, b) c="a"; d="b"; #define foo(a, b) c="a"; d="b";
extern void abort (); extern void abort ();
extern void exit (int);
int main () int main ()
{ {
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -ffast-math" } */ /* { dg-options "-O2 -ffast-math" } */
extern void abort (void);
int foo ( float* dists, int k) int foo ( float* dists, int k)
{ {
if ( ( dists [ 0 ] > 0 ) == ( dists [ 1 ] > 0 ) ) if ( ( dists [ 0 ] > 0 ) == ( dists [ 1 ] > 0 ) )
......
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
Test that __WCHAR_MAX__ is correct with -fshort-wchar. */ Test that __WCHAR_MAX__ is correct with -fshort-wchar. */
extern void abort (void);
int main () int main ()
{ {
__WCHAR_TYPE__ w = ~(__WCHAR_TYPE__) 0; __WCHAR_TYPE__ w = ~(__WCHAR_TYPE__) 0;
......
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
/* { dg-options "-O -ffast-math -march=i686" } */ /* { dg-options "-O -ffast-math -march=i686" } */
/* { dg-final { scan-assembler "fsincos" } } */ /* { dg-final { scan-assembler "fsincos" } } */
extern double sin (double);
extern double cos (double);
double f1(double x) double f1(double x)
{ {
return sin(x) + cos (x); return sin(x) + cos (x);
......
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
/* { dg-final { scan-assembler "fptan" } } */ /* { dg-final { scan-assembler "fptan" } } */
/* { dg-final { scan-assembler-not "fld1" } } */ /* { dg-final { scan-assembler-not "fld1" } } */
extern double tan (double);
double f1(double x) double f1(double x)
{ {
return 1.0 / tan(x); return 1.0 / tan(x);
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
/* { dg-do run { target i?86-*-* } } */ /* { dg-do run { target i?86-*-* } } */
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
extern void abort (void);
static int bar(int x) __asm__("bar") __attribute__((regparm(1))); static int bar(int x) __asm__("bar") __attribute__((regparm(1)));
static int __attribute__((regparm(1), noinline, used)) static int __attribute__((regparm(1), noinline, used))
bar(int x) bar(int x)
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
/* { dg-options "-O2 -march=k8" } */ /* { dg-options "-O2 -march=k8" } */
/* { dg-final { scan-assembler "sbb" } } */ /* { dg-final { scan-assembler "sbb" } } */
extern void abort (void);
/* Conditional increment is best done using sbb $-1, val. */ /* Conditional increment is best done using sbb $-1, val. */
int t[]={0,0,0,0,1,1,1,1,1,1}; int t[]={0,0,0,0,1,1,1,1,1,1};
q() q()
......
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
/* { dg-options "-O2 -msse2 -march=k8" } */ /* { dg-options "-O2 -msse2 -march=k8" } */
/* { dg-final { scan-assembler-not "cvtss2sd" } } */ /* { dg-final { scan-assembler-not "cvtss2sd" } } */
extern double fabs (double);
float a,b; float a,b;
main() main()
{ {
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
/* { dg-do run { target i?86-*-* } } */ /* { dg-do run { target i?86-*-* } } */
/* { dg-options "-mtune=k6 -O3 -ffast-math -funroll-loops" } */ /* { dg-options "-mtune=k6 -O3 -ffast-math -funroll-loops" } */
extern void *memset (void *, int, __SIZE_TYPE__);
extern void abort (void);
typedef struct typedef struct
{ {
unsigned char colormod; unsigned char colormod;
......
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
/* { dg-do run { target "i?86-*-*" } } */ /* { dg-do run { target "i?86-*-*" } } */
/* { dg-options "-O2 -minline-all-stringops" } */ /* { dg-options "-O2 -minline-all-stringops" } */
extern void *memset (void *, int, __SIZE_TYPE__);
extern void abort (void);
extern void exit (int);
#ifndef MAX_OFFSET #ifndef MAX_OFFSET
#define MAX_OFFSET (sizeof (long long)) #define MAX_OFFSET (sizeof (long long))
#endif #endif
......
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
0 iterations of the loop rather than the correct 1. */ 0 iterations of the loop rather than the correct 1. */
/* { dg-do run } */ /* { dg-do run } */
extern void abort (void);
extern void exit (int);
__inline__ int tag() { return 0; } __inline__ int tag() { return 0; }
void f (); void f ();
......
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
/* { dg-error "profiler" "No profiler support" { target xstormy16-*-* } 0 } */ /* { dg-error "profiler" "No profiler support" { target xstormy16-*-* } 0 } */
/* { dg-error "-pg not supported" "Profiler support missing" { target *-*-sco3.2v5* } 0 } */ /* { dg-error "-pg not supported" "Profiler support missing" { target *-*-sco3.2v5* } 0 } */
extern void abort (void);
long foo (long x) long foo (long x)
{ {
long i, sum = 0; long i, sum = 0;
......
extern int printf(const char *, ...);
typedef unsigned short ushort; typedef unsigned short ushort;
struct sembuf { struct sembuf {
ushort sem_num; ushort sem_num;
......
extern void *memcpy (void *, const void *, __SIZE_TYPE__);
typedef int word_type; typedef int word_type;
static void static void
......
extern void abort (void);
extern void exit (int);
static int v = 3; static int v = 3;
f () f ()
......
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
{ dg-options "" } { dg-options "" }
{ dg-do run } */ { dg-do run } */
extern void abort (void);
typedef unsigned char uint8_t; typedef unsigned char uint8_t;
typedef struct { typedef struct {
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
of a field. */ of a field. */
/* { dg-do run } */ /* { dg-do run } */
extern void abort (void);
struct A { struct A {
double d; double d;
} __attribute__ ((aligned)); } __attribute__ ((aligned));
......
#include "inline-4.h" #include "inline-4.h"
extern int printf (const char *, ...);
int main(void) { int main(void) {
printf (getstring()); printf (getstring());
return 0; return 0;
......
/* Simple test for proper postincrement semantics. */ /* Simple test for proper postincrement semantics. */
/* { dg-do run } */ /* { dg-do run } */
extern void abort (void);
int i; int i;
int c; int c;
int *f () int *f ()
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
/* { dg-options "-O2 -m4" { target sh4-*-* } } */ /* { dg-options "-O2 -m4" { target sh4-*-* } } */
extern void abort (void);
const char *dont_optimize_function_away; const char *dont_optimize_function_away;
const char *use(const char *str) const char *use(const char *str)
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
/* { dg-do run { target i?86-*-linux* i?86-*-*bsd* i?86-*-sco3.2v5* *-*-solaris2.* } } */ /* { dg-do run { target i?86-*-linux* i?86-*-*bsd* i?86-*-sco3.2v5* *-*-solaris2.* } } */
extern void abort (void);
struct { struct {
char one; char one;
long two; long two;
......
/* Bug 16325. */ /* Bug 16325. */
/* { dg-options "-O -fprofile-generate" } */ /* { dg-options "-O -fprofile-generate" } */
extern void abort (void);
int *p1; int *p1;
int *p2; int *p2;
int *p3; int *p3;
......
...@@ -11,6 +11,9 @@ ...@@ -11,6 +11,9 @@
marker. Self-recursion tail calls are optimized for all targets, marker. Self-recursion tail calls are optimized for all targets,
regardless of presence of sibcall patterns. */ regardless of presence of sibcall patterns. */
extern void abort (void);
extern void exit (int);
extern void recurser_void (int); extern void recurser_void (int);
extern void track (int); extern void track (int);
......
...@@ -11,6 +11,9 @@ ...@@ -11,6 +11,9 @@
marker. Self-recursion tail calls are optimized for all targets, marker. Self-recursion tail calls are optimized for all targets,
regardless of presence of sibcall patterns. */ regardless of presence of sibcall patterns. */
extern void abort (void);
extern void exit (int);
extern void recurser_void (void); extern void recurser_void (void);
extern void track (void); extern void track (void);
......
...@@ -13,6 +13,9 @@ ...@@ -13,6 +13,9 @@
(except targets where the test does not work due to the return address (except targets where the test does not work due to the return address
not saved on the regular stack). */ not saved on the regular stack). */
extern void abort (void);
extern void exit (int);
static void recurser_void1 (int); static void recurser_void1 (int);
static void recurser_void2 (int); static void recurser_void2 (int);
extern void track (int); extern void track (int);
......
...@@ -13,6 +13,9 @@ ...@@ -13,6 +13,9 @@
(except targets where the test does not work due to the return address (except targets where the test does not work due to the return address
not saved on the regular stack). */ not saved on the regular stack). */
extern void abort (void);
extern void exit (int);
static void recurser_void1 (void); static void recurser_void1 (void);
static void recurser_void2 (void); static void recurser_void2 (void);
extern void track (void); extern void track (void);
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
/* { dg-do run { target i?86-*-* } } */ /* { dg-do run { target i?86-*-* } } */
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
extern void abort (void);
int (*f)(int, int) __attribute__((regparm(2))); int (*f)(int, int) __attribute__((regparm(2)));
int (*g)(int, int, int) __attribute__((regparm(3))); int (*g)(int, int, int) __attribute__((regparm(3)));
......
...@@ -9,6 +9,9 @@ ...@@ -9,6 +9,9 @@
/* { dg-do run { target i?86-*-* s390*-*-* x86_64-*-*} } */ /* { dg-do run { target i?86-*-* s390*-*-* x86_64-*-*} } */
/* { dg-options "-O2 -foptimize-sibling-calls" } */ /* { dg-options "-O2 -foptimize-sibling-calls" } */
extern void abort (void);
extern void exit (int);
int foo (int); int foo (int);
int bar (int); int bar (int);
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O0" } */ /* { dg-options "-O0" } */
extern void abort (void);
extern void exit (int);
/* Check that out-of-bounds case warnings work in the case that the /* Check that out-of-bounds case warnings work in the case that the
testing expression is promoted. */ testing expression is promoted. */
int int
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O0" } */ /* { dg-options "-O0" } */
extern void abort (void);
extern void exit (int);
int int
foo (unsigned int i) foo (unsigned int i)
{ {
......
...@@ -26,9 +26,10 @@ void test_builtin_##FN(TYPE x, TYPE y) \ ...@@ -26,9 +26,10 @@ void test_builtin_##FN(TYPE x, TYPE y) \
{ if (__builtin_##FN(x,y) != __builtin_##FN(x,y)) link_failure_builtin_##FN(); } { if (__builtin_##FN(x,y) != __builtin_##FN(x,y)) link_failure_builtin_##FN(); }
/* Also test the regular (non-__builtin_) function. */ /* Also test the regular (non-__builtin_) function. */
#define TEST1(FN, TYPE) \ #define TEST1(FN, TYPE, RTYPE) \
BUILTIN_TEST1(FN, TYPE) \ BUILTIN_TEST1(FN, TYPE) \
extern void link_failure_##FN(void); \ extern void link_failure_##FN(void); \
extern RTYPE FN(TYPE); \
void test_##FN(TYPE x) { if (FN(x) != FN(x)) link_failure_##FN(); } void test_##FN(TYPE x) { if (FN(x) != FN(x)) link_failure_##FN(); }
/* Test the __builtin_ functions taking void arguments (with the "f" /* Test the __builtin_ functions taking void arguments (with the "f"
...@@ -153,12 +154,32 @@ void test_builtin_##FN##l(_Complex long double ld1, _Complex long double ld2) \ ...@@ -153,12 +154,32 @@ void test_builtin_##FN##l(_Complex long double ld1, _Complex long double ld2) \
/* These macros additionally test the non-__builtin_ functions. */ /* These macros additionally test the non-__builtin_ functions. */
/* Test the functions taking one FP argument (with the "f" and "l" /* Test the functions taking one FP argument (with the "f" and "l"
variants). */ variants) and returning that type. */
#define FPTEST1(FN) \ #define FPTEST1(FN) \
BUILTIN_FPTEST1(FN) \ BUILTIN_FPTEST1(FN) \
extern void link_failure_##FN(void); \ extern void link_failure_##FN(void); \
extern void link_failure_##FN##f(void); \ extern void link_failure_##FN##f(void); \
extern void link_failure_##FN##l(void); \ extern void link_failure_##FN##l(void); \
extern double FN(double); \
extern float FN##f(float); \
extern long double FN##l(long double); \
void test_##FN(double d) \
{ if (FN(d) != FN(d)) link_failure_##FN(); } \
void test_##FN##f(float f) \
{ if (FN##f(f) != FN##f(f)) link_failure_##FN##f(); } \
void test_##FN##l(long double ld) \
{ if (FN##l(ld) != FN##l(ld)) link_failure_##FN##l(); }
/* Test the functions taking one FP argument (with the "f" and "l"
variants) and returning TYPE. */
#define FPTEST1T(FN, TYPE) \
BUILTIN_FPTEST1(FN) \
extern void link_failure_##FN(void); \
extern void link_failure_##FN##f(void); \
extern void link_failure_##FN##l(void); \
extern TYPE FN(double); \
extern TYPE FN##f(float); \
extern TYPE FN##l(long double); \
void test_##FN(double d) \ void test_##FN(double d) \
{ if (FN(d) != FN(d)) link_failure_##FN(); } \ { if (FN(d) != FN(d)) link_failure_##FN(); } \
void test_##FN##f(float f) \ void test_##FN##f(float f) \
...@@ -173,6 +194,9 @@ BUILTIN_FPTEST2(FN) \ ...@@ -173,6 +194,9 @@ BUILTIN_FPTEST2(FN) \
extern void link_failure_##FN(void); \ extern void link_failure_##FN(void); \
extern void link_failure_##FN##f(void); \ extern void link_failure_##FN##f(void); \
extern void link_failure_##FN##l(void); \ extern void link_failure_##FN##l(void); \
extern double FN(double, double); \
extern float FN##f(float, float); \
extern long double FN##l(long double, long double); \
void test_##FN(double d1, double d2) \ void test_##FN(double d1, double d2) \
{ if (FN(d1,d2) != FN(d1,d2)) link_failure_##FN(); } \ { if (FN(d1,d2) != FN(d1,d2)) link_failure_##FN(); } \
void test_##FN##f(float f1, float f2) \ void test_##FN##f(float f1, float f2) \
...@@ -188,6 +212,9 @@ BUILTIN_FPTEST2ARG1(FN, TYPE) \ ...@@ -188,6 +212,9 @@ BUILTIN_FPTEST2ARG1(FN, TYPE) \
extern void link_failure_##FN(void); \ extern void link_failure_##FN(void); \
extern void link_failure_##FN##f(void); \ extern void link_failure_##FN##f(void); \
extern void link_failure_##FN##l(void); \ extern void link_failure_##FN##l(void); \
extern double FN(TYPE, double); \
extern float FN##f(TYPE, float); \
extern long double FN##l(TYPE, long double); \
void test_##FN(TYPE x, double d) \ void test_##FN(TYPE x, double d) \
{ if (FN(x,d) != FN(x,d)) link_failure_##FN(); } \ { if (FN(x,d) != FN(x,d)) link_failure_##FN(); } \
void test_##FN##f(TYPE x, float f) \ void test_##FN##f(TYPE x, float f) \
...@@ -203,6 +230,9 @@ BUILTIN_FPTEST2ARG2(FN, TYPE) \ ...@@ -203,6 +230,9 @@ BUILTIN_FPTEST2ARG2(FN, TYPE) \
extern void link_failure_##FN(void); \ extern void link_failure_##FN(void); \
extern void link_failure_##FN##f(void); \ extern void link_failure_##FN##f(void); \
extern void link_failure_##FN##l(void); \ extern void link_failure_##FN##l(void); \
extern double FN(double, TYPE); \
extern float FN##f(float, TYPE); \
extern long double FN##l(long double, TYPE); \
void test_##FN(double d, TYPE x) \ void test_##FN(double d, TYPE x) \
{ if (FN(d,x) != FN(d,x)) link_failure_##FN(); } \ { if (FN(d,x) != FN(d,x)) link_failure_##FN(); } \
void test_##FN##f(float f, TYPE x) \ void test_##FN##f(float f, TYPE x) \
...@@ -217,6 +247,9 @@ BUILTIN_FPTEST3(FN) \ ...@@ -217,6 +247,9 @@ BUILTIN_FPTEST3(FN) \
extern void link_failure_##FN(void); \ extern void link_failure_##FN(void); \
extern void link_failure_##FN##f(void); \ extern void link_failure_##FN##f(void); \
extern void link_failure_##FN##l(void); \ extern void link_failure_##FN##l(void); \
extern double FN(double, double, double); \
extern float FN##f(float, float, float); \
extern long double FN##l(long double, long double, long double); \
void test_##FN(double d1, double d2, double d3) \ void test_##FN(double d1, double d2, double d3) \
{ if (FN(d1,d2,d3) != FN(d1,d2,d3)) link_failure_##FN(); } \ { if (FN(d1,d2,d3) != FN(d1,d2,d3)) link_failure_##FN(); } \
void test_##FN##f(float f1, float f2, float f3) \ void test_##FN##f(float f1, float f2, float f3) \
...@@ -225,12 +258,32 @@ void test_##FN##l(long double ld1, long double ld2, long double ld3) \ ...@@ -225,12 +258,32 @@ void test_##FN##l(long double ld1, long double ld2, long double ld3) \
{ if (FN##l(ld1,ld2,ld3) != FN##l(ld1,ld2,ld3)) link_failure_##FN##l(); } { if (FN##l(ld1,ld2,ld3) != FN##l(ld1,ld2,ld3)) link_failure_##FN##l(); }
/* Test the functions taking one complex argument (with the "f" and /* Test the functions taking one complex argument (with the "f" and
"l" variants). */ "l" variants) and returning that type. */
#define CPTEST1(FN) \ #define CPTEST1(FN) \
BUILTIN_CPTEST1(FN) \ BUILTIN_CPTEST1(FN) \
extern void link_failure_##FN(void); \ extern void link_failure_##FN(void); \
extern void link_failure_##FN##f(void); \ extern void link_failure_##FN##f(void); \
extern void link_failure_##FN##l(void); \ extern void link_failure_##FN##l(void); \
extern _Complex double FN(_Complex double); \
extern _Complex float FN##f(_Complex float); \
extern _Complex long double FN##l(_Complex long double); \
void test_##FN(_Complex double d) \
{ if (FN(d) != FN(d)) link_failure_##FN(); } \
void test_##FN##f(_Complex float f) \
{ if (FN##f(f) != FN##f(f)) link_failure_##FN##f(); } \
void test_##FN##l(_Complex long double ld) \
{ if (FN##l(ld) != FN##l(ld)) link_failure_##FN##l(); }
/* Test the functions taking one complex argument (with the "f" and
"l" variants) and returning the real type. */
#define CPTEST1R(FN) \
BUILTIN_CPTEST1(FN) \
extern void link_failure_##FN(void); \
extern void link_failure_##FN##f(void); \
extern void link_failure_##FN##l(void); \
extern double FN(_Complex double); \
extern float FN##f(_Complex float); \
extern long double FN##l(_Complex long double); \
void test_##FN(_Complex double d) \ void test_##FN(_Complex double d) \
{ if (FN(d) != FN(d)) link_failure_##FN(); } \ { if (FN(d) != FN(d)) link_failure_##FN(); } \
void test_##FN##f(_Complex float f) \ void test_##FN##f(_Complex float f) \
...@@ -245,6 +298,9 @@ BUILTIN_CPTEST2(FN) \ ...@@ -245,6 +298,9 @@ BUILTIN_CPTEST2(FN) \
extern void link_failure_##FN(void); \ extern void link_failure_##FN(void); \
extern void link_failure_##FN##f(void); \ extern void link_failure_##FN##f(void); \
extern void link_failure_##FN##l(void); \ extern void link_failure_##FN##l(void); \
extern _Complex double FN(_Complex double, _Complex double); \
extern _Complex float FN##f(_Complex float, _Complex float); \
extern _Complex long double FN##l(_Complex long double, _Complex long double); \
void test_##FN(_Complex double d1, _Complex double d2) \ void test_##FN(_Complex double d1, _Complex double d2) \
{ if (FN(d1,d2) != FN(d1,d2)) link_failure_##FN(); } \ { if (FN(d1,d2) != FN(d1,d2)) link_failure_##FN(); } \
void test_##FN##f(_Complex float f1, _Complex float f2) \ void test_##FN##f(_Complex float f1, _Complex float f2) \
...@@ -283,27 +339,27 @@ FPTEST2 (fmod) ...@@ -283,27 +339,27 @@ FPTEST2 (fmod)
FPTEST1 (gamma) FPTEST1 (gamma)
BUILTIN_FPTEST0 (huge_val) BUILTIN_FPTEST0 (huge_val)
FPTEST2 (hypot) FPTEST2 (hypot)
FPTEST1 (ilogb) FPTEST1T (ilogb, int)
BUILTIN_FPTEST0 (inf) BUILTIN_FPTEST0 (inf)
FPTEST1 (j0) FPTEST1 (j0)
FPTEST1 (j1) FPTEST1 (j1)
FPTEST2ARG1 (jn, int) FPTEST2ARG1 (jn, int)
FPTEST2ARG2 (ldexp, int) FPTEST2ARG2 (ldexp, int)
FPTEST1 (lgamma) FPTEST1 (lgamma)
FPTEST1 (llrint) FPTEST1T (llrint, long long)
FPTEST1 (llround) FPTEST1T (llround, long long)
FPTEST1 (log) FPTEST1 (log)
FPTEST1 (log10) FPTEST1 (log10)
FPTEST1 (log1p) FPTEST1 (log1p)
FPTEST1 (log2) FPTEST1 (log2)
FPTEST1 (logb) FPTEST1 (logb)
FPTEST1 (lrint) FPTEST1T (lrint, long)
FPTEST1 (lround) FPTEST1T (lround, long)
BUILTIN_FPTEST1ARG (nan, char *) BUILTIN_FPTEST1ARG (nan, char *)
BUILTIN_FPTEST1ARG (nans, char *) BUILTIN_FPTEST1ARG (nans, char *)
FPTEST1 (nearbyint) FPTEST1 (nearbyint)
FPTEST2 (nextafter) FPTEST2 (nextafter)
FPTEST2 (nexttoward) FPTEST2ARG2 (nexttoward, long double)
FPTEST2 (pow) FPTEST2 (pow)
FPTEST1 (pow10) FPTEST1 (pow10)
FPTEST2 (remainder) FPTEST2 (remainder)
...@@ -328,7 +384,7 @@ FPTEST2ARG1 (yn, int) ...@@ -328,7 +384,7 @@ FPTEST2ARG1 (yn, int)
/*CPTEST1 (cabs) See http://gcc.gnu.org/ml/gcc-patches/2003-09/msg00040.html */ /*CPTEST1 (cabs) See http://gcc.gnu.org/ml/gcc-patches/2003-09/msg00040.html */
CPTEST1 (cacos) CPTEST1 (cacos)
CPTEST1 (cacosh) CPTEST1 (cacosh)
CPTEST1 (carg) CPTEST1R (carg)
CPTEST1 (casin) CPTEST1 (casin)
CPTEST1 (casinh) CPTEST1 (casinh)
CPTEST1 (catan) CPTEST1 (catan)
...@@ -336,32 +392,43 @@ CPTEST1 (catanh) ...@@ -336,32 +392,43 @@ CPTEST1 (catanh)
CPTEST1 (ccos) CPTEST1 (ccos)
CPTEST1 (ccosh) CPTEST1 (ccosh)
CPTEST1 (cexp) CPTEST1 (cexp)
CPTEST1 (cimag) CPTEST1R (cimag)
/*CPTEST1 (clog)*/ /*CPTEST1 (clog)*/
CPTEST1 (conj) CPTEST1 (conj)
CPTEST2 (cpow) CPTEST2 (cpow)
CPTEST1 (cproj) CPTEST1 (cproj)
CPTEST1 (creal) CPTEST1R (creal)
CPTEST1 (csin) CPTEST1 (csin)
CPTEST1 (csinh) CPTEST1 (csinh)
CPTEST1 (csqrt) CPTEST1 (csqrt)
CPTEST1 (ctan) CPTEST1 (ctan)
CPTEST1 (ctanh) CPTEST1 (ctanh)
/* These next definitions are kludges. When GCC has a <stdint.h> it
should be used.
*/
#if __INT_MAX__ == __LONG_LONG_MAX__
typedef int intmax_t;
#elif __LONG_MAX__ == __LONG_LONG_MAX__
typedef long intmax_t;
#else
typedef long long intmax_t;
#endif
/* Various other const builtins. */ /* Various other const builtins. */
TEST1 (abs, int) TEST1 (abs, int, int)
BUILTIN_TEST1 (clz, int) BUILTIN_TEST1 (clz, int)
BUILTIN_TEST1 (clzl, long) BUILTIN_TEST1 (clzl, long)
BUILTIN_TEST1 (clzll, long long) BUILTIN_TEST1 (clzll, long long)
BUILTIN_TEST1 (ctz, int) BUILTIN_TEST1 (ctz, int)
BUILTIN_TEST1 (ctzl, long) BUILTIN_TEST1 (ctzl, long)
BUILTIN_TEST1 (ctzll, long long) BUILTIN_TEST1 (ctzll, long long)
TEST1 (ffs, int) TEST1 (ffs, int, int)
TEST1 (ffsl, long) TEST1 (ffsl, long, int)
TEST1 (ffsll, long long) TEST1 (ffsll, long long, int)
TEST1 (imaxabs, int) TEST1 (imaxabs, intmax_t, intmax_t)
TEST1 (labs, long) TEST1 (labs, long, long)
TEST1 (llabs, long long) TEST1 (llabs, long long, long long)
BUILTIN_TEST1 (parity, int) BUILTIN_TEST1 (parity, int)
BUILTIN_TEST1 (parityl, long) BUILTIN_TEST1 (parityl, long)
BUILTIN_TEST1 (parityll, long long) BUILTIN_TEST1 (parityll, long long)
......
...@@ -7,6 +7,34 @@ ...@@ -7,6 +7,34 @@
/* { dg-do link } */ /* { dg-do link } */
extern double atan (double);
extern float atanf (float);
extern long double atanl (long double);
extern double cbrt (double);
extern float cbrtf (float);
extern long double cbrtl (long double);
extern double cos (double);
extern float cosf (float);
extern long double cosl (long double);
extern double exp (double);
extern float expf (float);
extern long double expl (long double);
extern double log (double);
extern float logf (float);
extern long double logl (long double);
extern double pow (double, double);
extern float powf (float, float);
extern long double powl (long double, long double);
extern double sin (double);
extern float sinf (float);
extern long double sinl (long double);
extern double sqrt (double);
extern float sqrtf (float);
extern long double sqrtl (long double);
extern double tan (double);
extern float tanf (float);
extern long double tanl (long double);
/* All references to link_error should go away at compile-time. */ /* All references to link_error should go away at compile-time. */
extern void link_error(void); extern void link_error(void);
......
...@@ -15,6 +15,7 @@ int ...@@ -15,6 +15,7 @@ int
main (void) main (void)
{ {
volatile int i = 0; volatile int i = 0;
extern void exit (int);
if (i) if (i)
tabort (); tabort ();
if (i) if (i)
...@@ -60,6 +61,7 @@ t_exit (void) ...@@ -60,6 +61,7 @@ t_exit (void)
void void
_exit (int i) _exit (int i)
{ {
extern void abort (void);
abort (); abort ();
} }
...@@ -81,5 +83,6 @@ t_Exit (void) ...@@ -81,5 +83,6 @@ t_Exit (void)
void void
_Exit (int i) _Exit (int i)
{ {
extern void abort (void);
abort (); abort ();
} }
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
trampoline couldn't be made executable. */ trampoline couldn't be made executable. */
extern void abort(void); extern void abort(void);
extern double fabs(double);
void foo (void) void foo (void)
{ {
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
extern int blah[]; extern int blah[];
foo(int index) foo(int index)
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
union tree_node; union tree_node;
typedef union tree_node *tree; typedef union tree_node *tree;
extern const char tree_code_type[]; extern const char tree_code_type[];
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
struct rtx_def; struct rtx_def;
typedef struct rtx_def *rtx; typedef struct rtx_def *rtx;
enum rtx_code enum rtx_code
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
union tree_node; union tree_node;
typedef union tree_node *tree; typedef union tree_node *tree;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
union tree_node; union tree_node;
typedef union tree_node *tree; typedef union tree_node *tree;
struct tree_vec struct tree_vec
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
union tree_node; union tree_node;
typedef union tree_node *tree; typedef union tree_node *tree;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
union tree_node; union tree_node;
typedef union tree_node *tree; typedef union tree_node *tree;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-dom3" } */ /* { dg-options "-O2 -fdump-tree-dom3" } */
extern void exit (int);
extern void *ggc_alloc (__SIZE_TYPE__); extern void *ggc_alloc (__SIZE_TYPE__);
typedef struct dw_attr_struct *dw_attr_ref; typedef struct dw_attr_struct *dw_attr_ref;
typedef struct dw_attr_struct typedef struct dw_attr_struct
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-dom3" } */ /* { dg-options "-O2 -fdump-tree-dom3" } */
extern void exit (int);
extern void *ggc_alloc (__SIZE_TYPE__); extern void *ggc_alloc (__SIZE_TYPE__);
typedef struct dw_attr_struct *dw_attr_ref; typedef struct dw_attr_struct *dw_attr_ref;
typedef struct dw_attr_struct typedef struct dw_attr_struct
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
struct rtx_def; struct rtx_def;
typedef struct rtx_def *rtx; typedef struct rtx_def *rtx;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
struct rtx_def; struct rtx_def;
typedef struct rtx_def *rtx; typedef struct rtx_def *rtx;
struct rtx_def struct rtx_def
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
oof () oof ()
{ {
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
struct rtx_def; struct rtx_def;
typedef struct rtx_def *rtx; typedef struct rtx_def *rtx;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-dom3" } */ /* { dg-options "-O2 -fdump-tree-dom3" } */
extern void abort (void);
union tree_node; union tree_node;
typedef union tree_node *tree; typedef union tree_node *tree;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-cddce" } */ /* { dg-options "-O1 -fdump-tree-cddce" } */
extern void abort (void);
struct rtx_def; struct rtx_def;
typedef struct rtx_def *rtx; typedef struct rtx_def *rtx;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
com(int *blah) com(int *blah)
{ {
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
void void
foo (int value) foo (int value)
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
void void
foo (int value) foo (int value)
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3 -fdump-tree-optimized" } */ /* { dg-options "-O1 -fdump-tree-dom3 -fdump-tree-optimized" } */
extern void abort (void);
union tree_node; union tree_node;
typedef union tree_node *tree; typedef union tree_node *tree;
extern const char tree_code_type[]; extern const char tree_code_type[];
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3 -fdump-tree-optimized" } */ /* { dg-options "-O1 -fdump-tree-dom3 -fdump-tree-optimized" } */
extern void abort (void);
union tree_node; union tree_node;
typedef union tree_node *tree; typedef union tree_node *tree;
extern const char tree_code_type[]; extern const char tree_code_type[];
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
union tree_node; union tree_node;
typedef union tree_node *tree; typedef union tree_node *tree;
enum tree_code enum tree_code
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
struct rtx_def; struct rtx_def;
typedef struct rtx_def *rtx; typedef struct rtx_def *rtx;
struct rtvec_def; struct rtvec_def;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
typedef unsigned int size_t; typedef unsigned int size_t;
struct rtx_def; struct rtx_def;
typedef struct rtx_def *rtx; typedef struct rtx_def *rtx;
......
...@@ -6,6 +6,9 @@ ...@@ -6,6 +6,9 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O -fdump-tree-optimized" } */ /* { dg-options "-O -fdump-tree-optimized" } */
extern void abort (void);
extern void exit (int);
int main() int main()
{ {
int i; int i;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fno-tree-dominator-opts -fdump-tree-ccp" } */ /* { dg-options "-O1 -fno-tree-dominator-opts -fdump-tree-ccp" } */
extern int printf (const char *, ...);
main () main ()
{ {
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-dom3" } */ /* { dg-options "-O1 -fdump-tree-dom3" } */
extern void abort (void);
union tree_node; union tree_node;
typedef union tree_node *tree; typedef union tree_node *tree;
......
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1" } */ /* { dg-options "-O1" } */
extern __SIZE_TYPE__ strlen (const char *);
int i; int i;
static void static void
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
not boolean */ not boolean */
/* { dg-options "-O3" } */ /* { dg-options "-O3" } */
/* { dg-do run } */ /* { dg-do run } */
extern void abort (void);
char *foo(char *p, char *q) { char *foo(char *p, char *q) {
int x = (p !=0) + (q != 0); int x = (p !=0) + (q != 0);
if (x==2) return "a"; else return 0; if (x==2) return "a"; else return 0;
......
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
were not being processed by the type based alias analyzer, were not being processed by the type based alias analyzer,
resulting in optimizations removing a non-redundant load. */ resulting in optimizations removing a non-redundant load. */
extern void abort (void);
struct bar { int count; int *arr;}; struct bar { int count; int *arr;};
void foo (struct bar *b) void foo (struct bar *b)
......
...@@ -10,6 +10,9 @@ ...@@ -10,6 +10,9 @@
Therefore, DOM did not see that i was modified between the two ifs Therefore, DOM did not see that i was modified between the two ifs
and optimized away the second if. */ and optimized away the second if. */
extern void abort (void);
extern void exit (int);
struct x struct x
{ {
unsigned b:1; unsigned b:1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment