builtin-convert-3.c [plain text]
#include "../builtins-config.h"
#define PROTOTYPE1_RET(FN, RET) \
extern RET FN(double); \
extern RET FN##f(float); \
extern RET FN##l(long double);
#define INNER_CAST1(MATHFN, RET) \
PROTOTYPE1_RET (MATHFN, RET); \
extern void link_failure_inner_##MATHFN##l_##MATHFN(void); \
extern void link_failure_inner_##MATHFN##l_##MATHFN##f(void); \
extern void link_failure_inner_##MATHFN##_##MATHFN##f(void); \
if (sizeof (long double) > sizeof (double) \
&& MATHFN##l(d1) != MATHFN(d1)) \
link_failure_inner_##MATHFN##l_##MATHFN(); \
if (sizeof (long double) > sizeof (float) \
&& MATHFN##l(f1) != MATHFN##f(f1)) \
link_failure_inner_##MATHFN##l_##MATHFN##f(); \
if (sizeof (long double) > sizeof (float) \
&& MATHFN##l((double)f1) != MATHFN##f(f1)) \
link_failure_inner_##MATHFN##l_##MATHFN##f(); \
if (sizeof (double) > sizeof (float) \
&& MATHFN(f1) != MATHFN##f(f1)) \
link_failure_inner_##MATHFN##_##MATHFN##f()
void __attribute__ ((__noinline__)) test (double d1, float f1)
{
#ifdef __OPTIMIZE__
#ifdef HAVE_C99_RUNTIME
INNER_CAST1 (__builtin_lceil, long);
INNER_CAST1 (__builtin_llceil, long long);
INNER_CAST1 (__builtin_lfloor, long);
INNER_CAST1 (__builtin_llfloor, long long);
INNER_CAST1 (lround, long);
INNER_CAST1 (llround, long long);
INNER_CAST1 (lrint, long);
INNER_CAST1 (llrint, long long);
#endif
#endif
}
int main (void)
{
test (1, 2);
return 0;
}