/* Verify whether math functions are simplified.  */
/* { dg-require-effective-target c99_runtime } */
/* { dg-require-weak } */
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__ ((weak))
double
floor(double a)
{
	abort ();
}
__attribute__ ((weak))
float
floorf(float a)
{
	return a;
}
__attribute__ ((weak))
double
sin(double a)
{
	return a;
}
__attribute__ ((weak))
float
sinf(float a)
{
	abort ();
}
