20030125-1.c   [plain text]


/* Verify whether math functions are simplified.  */
double sin(double);
double floor(double);
float 
t(float a)
{
	return sin(a);
}
float 
q(float a)
{
	return floor(a);
}
double
q1(float a)
{
	return floor(a);
}
main()
{
#ifdef __OPTIMIZE__
	if (t(0)!=0)
		abort ();
	if (q(0)!=0)
		abort ();
	if (q1(0)!=0)
		abort ();
#endif
	return 0;
}
__attribute__ ((noinline))
double
floor(double a)
{
	abort ();
}
__attribute__ ((noinline))
float
floorf(float a)
{
	return a;
}
__attribute__ ((noinline))
double
sin(double a)
{
	abort ();
}
__attribute__ ((noinline))
float
sinf(float a)
{
	return a;
}