? ID ? sys/dev/i2c/dbcool.c.uglydiff Index: external/gpl3/gcc/dist/gcc/config/arm/elf.h =================================================================== RCS file: /cvsroot/src/external/gpl3/gcc/dist/gcc/config/arm/elf.h,v retrieving revision 1.1.1.1 diff -p -r1.1.1.1 elf.h *** external/gpl3/gcc/dist/gcc/config/arm/elf.h 21 Jun 2011 01:22:19 -0000 1.1.1.1 --- external/gpl3/gcc/dist/gcc/config/arm/elf.h 3 Jul 2011 15:32:01 -0000 *************** *** 161,166 **** #undef L_floatdidf #undef L_floatdisf #undef L_floatundidf #undef L_floatundisf #endif - --- 161,168 ---- #undef L_floatdidf #undef L_floatdisf #undef L_floatundidf + /* XXXMRG: don't take this out, we need it! */ + # ifndef __NetBSD__ #undef L_floatundisf + # endif #endif Index: external/gpl3/gcc/dist/gcc/config/sh/t-netbsd =================================================================== RCS file: /cvsroot/src/external/gpl3/gcc/dist/gcc/config/sh/t-netbsd,v retrieving revision 1.2 diff -p -r1.2 t-netbsd *** external/gpl3/gcc/dist/gcc/config/sh/t-netbsd 21 Jun 2011 02:41:37 -0000 1.2 --- external/gpl3/gcc/dist/gcc/config/sh/t-netbsd 3 Jul 2011 15:32:02 -0000 *************** LIB1ASMFUNCS_CACHE = _ic_invalidate *** 21,27 **** # Use sh specific libgcc-std.ver to avoid exporting some # lib1func routines which shoud not be called via PLT. ! SHLIB_MAPFILES = $(srcdir)/config/sh/libgcc-std.ver LIB2FUNCS_EXTRA= --- 21,27 ---- # Use sh specific libgcc-std.ver to avoid exporting some # lib1func routines which shoud not be called via PLT. ! #SHLIB_MAPFILES = $(srcdir)/config/sh/libgcc-std.ver LIB2FUNCS_EXTRA= *************** EXTRA_MULTILIB_PARTS= *** 33,35 **** --- 33,38 ---- # in libgcc. FPBIT = DPBIT = + + # Need these now + LIB2FUNCS_EXTRA = $(srcdir)/config/floatunsidf.c $(srcdir)/config/floatunsisf.c Index: external/lgpl3/gmp/lib/libgmp/arch/m68k/config.h =================================================================== RCS file: /cvsroot/src/external/lgpl3/gmp/lib/libgmp/arch/m68k/config.h,v retrieving revision 1.1 diff -p -r1.1 config.h *** external/lgpl3/gmp/lib/libgmp/arch/m68k/config.h 2 Jul 2011 13:43:05 -0000 1.1 --- external/lgpl3/gmp/lib/libgmp/arch/m68k/config.h 3 Jul 2011 15:32:05 -0000 *************** along with the GNU MP Library. If not, *** 144,150 **** /* #undef HAVE_HOST_CPU_alphaev67 */ /* #undef HAVE_HOST_CPU_alphaev68 */ /* #undef HAVE_HOST_CPU_alphaev7 */ ! /* #undef HAVE_HOST_CPU_m68020 */ /* #undef HAVE_HOST_CPU_m68030 */ /* #undef HAVE_HOST_CPU_m68040 */ /* #undef HAVE_HOST_CPU_m68060 */ --- 144,150 ---- /* #undef HAVE_HOST_CPU_alphaev67 */ /* #undef HAVE_HOST_CPU_alphaev68 */ /* #undef HAVE_HOST_CPU_alphaev7 */ ! #define HAVE_HOST_CPU_m68020 1 /* #undef HAVE_HOST_CPU_m68030 */ /* #undef HAVE_HOST_CPU_m68040 */ /* #undef HAVE_HOST_CPU_m68060 */ Index: external/lgpl3/mpfr/dist/set_ld.c =================================================================== RCS file: /cvsroot/src/external/lgpl3/mpfr/dist/set_ld.c,v retrieving revision 1.1.1.1 diff -p -r1.1.1.1 set_ld.c *** external/lgpl3/mpfr/dist/set_ld.c 20 Jun 2011 05:53:02 -0000 1.1.1.1 --- external/lgpl3/mpfr/dist/set_ld.c 3 Jul 2011 15:32:05 -0000 *************** mpfr_set_ld (mpfr_ptr r, long double d, *** 60,73 **** LONGDOUBLE_NAN_ACTION (d, goto nan); /* Check for INF */ ! if (d > MPFR_LDBL_MAX) { ! mpfr_set_inf (r, 1); ! return 0; ! } ! else if (d < -MPFR_LDBL_MAX) ! { ! mpfr_set_inf (r, -1); return 0; } /* Check for ZERO */ --- 60,71 ---- LONGDOUBLE_NAN_ACTION (d, goto nan); /* Check for INF */ ! if (isinfl(d)) { ! if (d > 0) ! mpfr_set_inf (r, 1); ! else ! mpfr_set_inf (r, -1); return 0; } /* Check for ZERO */ Index: external/lgpl3/mpfr/lib/libmpfr/Makefile =================================================================== RCS file: /cvsroot/src/external/lgpl3/mpfr/lib/libmpfr/Makefile,v retrieving revision 1.4 diff -p -r1.4 Makefile *** external/lgpl3/mpfr/lib/libmpfr/Makefile 2 Jul 2011 14:08:45 -0000 1.4 --- external/lgpl3/mpfr/lib/libmpfr/Makefile 3 Jul 2011 15:32:05 -0000 *************** CPPFLAGS+= -I. \ *** 470,481 **** -DHAVE_CEIL=1 \ -DHAVE_ATTRIBUTE_MODE=1 # XXX XXX do something more, more ports!! ! .if ${MACHINE_ARCH} == "x86_64" || ${MACHINE_ARCH} == "i386" CPPFLAGS+= -DHAVE_LDOUBLE_IEEE_EXT_LITTLE=1 .endif ! .if ${MACHINE_ARCH} == "sparc64" CPPFLAGS+= -DHAVE_LDOUBLE_IEEE_QUAD_BIG=1 .endif --- 470,492 ---- -DHAVE_CEIL=1 \ -DHAVE_ATTRIBUTE_MODE=1 + # XXX XXX check mips* # XXX XXX do something more, more ports!! ! .if ${MACHINE_ARCH} == "x86_64" || \ ! ${MACHINE_ARCH} == "i386" CPPFLAGS+= -DHAVE_LDOUBLE_IEEE_EXT_LITTLE=1 .endif ! .if ${MACHINE_ARCH} == "mips64el" || \ ! ${MACHINE_ARCH} == "mipsel" ! CPPFLAGS+= -DHAVE_LDOUBLE_IEEE_QUAD_LITTLE=1 ! .endif ! ! .if ${MACHINE_ARCH} == "sparc64" || \ ! ${MACHINE_ARCH} == "powerpc" || \ ! ${MACHINE_ARCH} == "powerpc64" || \ ! ${MACHINE_ARCH} == "mips64eb" || \ ! ${MACHINE_ARCH} == "mipseb" CPPFLAGS+= -DHAVE_LDOUBLE_IEEE_QUAD_BIG=1 .endif Index: lib/libc/gdtoa/hdtoa.c =================================================================== RCS file: /cvsroot/src/lib/libc/gdtoa/hdtoa.c,v retrieving revision 1.8 diff -p -r1.8 hdtoa.c *** lib/libc/gdtoa/hdtoa.c 21 Mar 2011 23:37:42 -0000 1.8 --- lib/libc/gdtoa/hdtoa.c 3 Jul 2011 15:32:08 -0000 *************** hldtoa(long double e, const char *xdigs, *** 261,266 **** --- 261,267 ---- char *s, *s0; size_t bufsize; + memset(&u, 0, sizeof u); u.extu_ld = e; *sign = u.extu_ext.ext_sign; Index: lib/libm/src/s_fmaxl.c =================================================================== RCS file: /cvsroot/src/lib/libm/src/s_fmaxl.c,v retrieving revision 1.2 diff -p -r1.2 s_fmaxl.c *** lib/libm/src/s_fmaxl.c 8 Mar 2010 01:05:20 -0000 1.2 --- lib/libm/src/s_fmaxl.c 3 Jul 2011 15:32:08 -0000 *************** __RCSID("$NetBSD: s_fmaxl.c,v 1.2 2010/0 *** 30,35 **** --- 30,36 ---- __FBSDID("$FreeBSD: src/lib/msun/src/s_fmaxl.c,v 1.1 2004/06/30 07:04:01 das Exp $"); #endif + #include #include #include *************** fmaxl(long double x, long double y) *** 39,44 **** --- 40,46 ---- { union ieee_ext_u u[2]; + memset(&u, 0, sizeof u); u[0].extu_ld = x; u[0].extu_ext.ext_frach &= ~0x80000000; u[1].extu_ld = y; Index: lib/libm/src/s_fminl.c =================================================================== RCS file: /cvsroot/src/lib/libm/src/s_fminl.c,v retrieving revision 1.2 diff -p -r1.2 s_fminl.c *** lib/libm/src/s_fminl.c 8 Mar 2010 01:05:20 -0000 1.2 --- lib/libm/src/s_fminl.c 3 Jul 2011 15:32:08 -0000 *************** __FBSDID("$FreeBSD: src/lib/msun/src/s_f *** 31,36 **** --- 31,37 ---- #endif #include + #include #include #ifdef EXT_EXP_INFNAN *************** fminl(long double x, long double y) *** 39,44 **** --- 40,46 ---- { union ieee_ext_u u[2]; + memset(&u, 0, sizeof u); u[0].extu_ld = x; u[0].extu_ext.ext_frach &= ~0x80000000; u[1].extu_ld = y; Index: share/mk/bsd.own.mk =================================================================== RCS file: /cvsroot/src/share/mk/bsd.own.mk,v retrieving revision 1.673 diff -p -r1.673 bsd.own.mk *** share/mk/bsd.own.mk 2 Jul 2011 20:21:16 -0000 1.673 --- share/mk/bsd.own.mk 3 Jul 2011 15:32:09 -0000 *************** NEED_OWN_INSTALL_TARGET?= yes *** 46,51 **** --- 46,63 ---- # TOOLCHAIN_MISSING?= no + # XXXMRG don't commit + .if ${MACHINE_ARCH} == "x86_64" || \ + ${MACHINE_ARCH} == "i386" || \ + ${MACHINE_ARCH} == "arm" || \ + ${MACHINE_ARCH} == "armeb" || \ + ${MACHINE_ARCH} == "sparc" || \ + ${MACHINE_ARCH} == "sparc64" || \ + ${MACHINE_ARCH} == "powerpc" || \ + ${MACHINE_ARCH} == "vax" + HAVE_GCC?= 45 + .endif + # default to GCC4.1 .if !defined(HAVE_GCC) && !defined(HAVE_PCC) HAVE_GCC= 4 Index: sys/conf/Makefile.kern.inc =================================================================== RCS file: /cvsroot/src/sys/conf/Makefile.kern.inc,v retrieving revision 1.140 diff -p -r1.140 Makefile.kern.inc *** sys/conf/Makefile.kern.inc 20 Jun 2011 06:52:38 -0000 1.140 --- sys/conf/Makefile.kern.inc 3 Jul 2011 15:32:10 -0000 *************** VARSTACK=kern/uipc_socket.c miscfs/genfs *** 510,521 **** uvm/uvm_pager.c dev/ic/aic7xxx.c dev/ic/aic79xx.c arch/xen/i386/gdt.c \ dev/ofw/ofw_subr.c ! . if defined(HAVE_GCC) || defined(HAVE_PCC) .for __varstack in ${VARSTACK} COPTS.${__varstack:T} += -Wno-stack-protector .endfor .endif AFLAGS+= ${AOPTS.${.IMPSRC:T}} CFLAGS+= ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} CPPFLAGS+= ${CPPFLAGS.${.IMPSRC:T}} --- 510,527 ---- uvm/uvm_pager.c dev/ic/aic7xxx.c dev/ic/aic79xx.c arch/xen/i386/gdt.c \ dev/ofw/ofw_subr.c ! .if defined(HAVE_GCC) || defined(HAVE_PCC) .for __varstack in ${VARSTACK} COPTS.${__varstack:T} += -Wno-stack-protector .endfor .endif + .if defined(HAVE_GCC) && ${HAVE_GCC} == 45 + CWARNFLAGS.tulip.c+= -Wno-array-bounds + CWARNFLAGS.radeonfb.c+= -Wno-cast-qual + CWARNFLAGS.dbcool.c+= -Wno-cast-qual + .endif + AFLAGS+= ${AOPTS.${.IMPSRC:T}} CFLAGS+= ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} CPPFLAGS+= ${CPPFLAGS.${.IMPSRC:T}} Index: sys/rump/librump/rumpvfs/Makefile.rumpvfs =================================================================== RCS file: /cvsroot/src/sys/rump/librump/rumpvfs/Makefile.rumpvfs,v retrieving revision 1.31 diff -p -r1.31 Makefile.rumpvfs *** sys/rump/librump/rumpvfs/Makefile.rumpvfs 2 Apr 2011 04:28:58 -0000 1.31 --- sys/rump/librump/rumpvfs/Makefile.rumpvfs 3 Jul 2011 15:32:10 -0000 *************** SHLIB_MINOR= 0 *** 69,73 **** --- 69,78 ---- CPPFLAGS+= -I${RUMPTOP}/librump/rumpkern + # XXX mips + .if defined(HAVE_GCC) && ${MACHINE_CPU} == "mips" + COPTS+= -fno-common + .endif + .include .include Index: sys/sys/cdefs.h =================================================================== RCS file: /cvsroot/src/sys/sys/cdefs.h,v retrieving revision 1.86 diff -p -r1.86 cdefs.h *** sys/sys/cdefs.h 23 Jun 2011 12:16:03 -0000 1.86 --- sys/sys/cdefs.h 3 Jul 2011 15:32:10 -0000 *************** *** 135,140 **** --- 135,146 ---- /* * Compile Time Assertion. */ + #if __GNUC_PREREQ__(4, 5) + /* XXX */ + #define __CTASSERT(x) + #define __CTASSERT0(x, y, z) + #define __CTASSERT1(x, y, z) + #else #ifdef __COUNTER__ #define __CTASSERT(x) __CTASSERT0(x, __ctassert, __COUNTER__) #else *************** *** 142,147 **** --- 148,154 ---- #endif #define __CTASSERT0(x, y, z) __CTASSERT1(x, y, z) #define __CTASSERT1(x, y, z) typedef char y ## z[(x) ? 1 : -1]; + #endif /* * The following macro is used to remove const cast-away warnings Index: sys/sys/mbuf.h =================================================================== RCS file: /cvsroot/src/sys/sys/mbuf.h,v retrieving revision 1.144 diff -p -r1.144 mbuf.h *** sys/sys/mbuf.h 24 Oct 2008 22:31:40 -0000 1.144 --- sys/sys/mbuf.h 3 Jul 2011 15:32:10 -0000 *************** struct _m_ext { *** 274,293 **** * Definition of "struct mbuf". * Don't change this without understanding how MHLEN/MLEN are defined. */ ! #define MBUF_DEFINE(name, mhlen, mlen) \ ! struct name { \ ! struct m_hdr m_hdr; \ ! union { \ ! struct { \ ! struct pkthdr MH_pkthdr; \ ! union { \ ! struct _m_ext MH_ext; \ ! char MH_databuf[(mhlen)]; \ ! } MH_dat; \ ! } MH; \ ! char M_databuf[(mlen)]; \ ! } M_dat; \ ! } #define m_next m_hdr.mh_next #define m_len m_hdr.mh_len #define m_data m_hdr.mh_data --- 274,304 ---- * Definition of "struct mbuf". * Don't change this without understanding how MHLEN/MLEN are defined. */ ! ! /* normal data len */ ! #define MLEN (MSIZE - sizeof(struct m_hdr)) ! /* data len w/pkthdr */ ! #define MHLEN (MLEN - sizeof(struct pkthdr)) ! ! __CTASSERT(sizeof(struct _m_ext) <= MHLEN); ! ! struct mbuf { ! struct m_hdr m_hdr; ! union { ! struct _mhdat { ! struct pkthdr MH_pkthdr; ! union { ! struct _m_ext MH_ext; ! char MH_databuf[MHLEN]; ! } MH_dat; ! } MH; ! char M_databuf[MLEN]; ! } M_dat; ! }; ! ! __CTASSERT(sizeof(struct mbuf) == MSIZE); ! __CTASSERT(sizeof(struct _mhdat) == MLEN); ! #define m_next m_hdr.mh_next #define m_len m_hdr.mh_len #define m_data m_hdr.mh_data *************** struct _m_ext { *** 303,327 **** #define m_pktdat M_dat.MH.MH_dat.MH_databuf #define m_dat M_dat.M_databuf - /* - * Dummy mbuf structure to calculate the right values for MLEN/MHLEN, taking - * into account inter-structure padding. - */ - MBUF_DEFINE(_mbuf_dummy, 1, 1); - - /* normal data len */ - #define MLEN (MSIZE - offsetof(struct _mbuf_dummy, m_dat)) - /* data len w/pkthdr */ - #define MHLEN (MSIZE - offsetof(struct _mbuf_dummy, m_pktdat)) - #define MINCLSIZE (MHLEN+MLEN+1) /* smallest amount to put in cluster */ #define M_MAXCOMPRESS (MHLEN / 2) /* max amount to copy for compression */ - /* - * The *real* struct mbuf - */ - MBUF_DEFINE(mbuf, MHLEN, MLEN); - /* mbuf flags */ #define M_EXT 0x00001 /* has associated external storage */ #define M_PKTHDR 0x00002 /* start of record */ --- 314,322 ---- Index: tests/include/sys/t_bitops.c =================================================================== RCS file: /cvsroot/src/tests/include/sys/t_bitops.c,v retrieving revision 1.7 diff -p -r1.7 t_bitops.c *** tests/include/sys/t_bitops.c 30 Mar 2011 08:34:20 -0000 1.7 --- tests/include/sys/t_bitops.c 3 Jul 2011 15:32:10 -0000 *************** ATF_TC_HEAD(ilog2_2, tc) *** 163,168 **** --- 163,169 ---- ATF_TC_BODY(ilog2_2, tc) { + #ifndef __vax__ double x, y; uint64_t i; *************** ATF_TC_BODY(ilog2_2, tc) *** 180,185 **** --- 181,187 ---- ATF_REQUIRE(ceil(x) >= y); ATF_REQUIRE(fabs(floor(x) - y) < 1.0e-40); } + #endif } ATF_TP_ADD_TCS(tp) Index: tests/lib/libc/stdlib/t_strtod.c =================================================================== RCS file: /cvsroot/src/tests/lib/libc/stdlib/t_strtod.c,v retrieving revision 1.21 diff -p -r1.21 t_strtod.c *** tests/lib/libc/stdlib/t_strtod.c 14 Jun 2011 02:37:31 -0000 1.21 --- tests/lib/libc/stdlib/t_strtod.c 3 Jul 2011 15:32:10 -0000 *************** ATF_TC_HEAD(strtod_hex, tc) *** 82,87 **** --- 82,93 ---- atf_tc_set_md_var(tc, "descr", "A strtod(3) with hexadecimals"); } + #ifdef __vax__ + #define SMALL_NUM 1.0e-38 + #else + #define SMALL_NUM 1.0e-40 + #endif + ATF_TC_BODY(strtod_hex, tc) { const char *str; *************** ATF_TC_BODY(strtod_hex, tc) *** 93,106 **** ATF_REQUIRE(end == str + 4); ATF_REQUIRE(signbit(d) != 0); ! ATF_REQUIRE(fabs(d) < 1.0e-40); str = "-0x"; d = strtod(str, &end); /* -0.0 */ ATF_REQUIRE(end == str + 2); ATF_REQUIRE(signbit(d) != 0); ! ATF_REQUIRE(fabs(d) < 1.0e-40); } ATF_TC(strtod_inf); --- 99,112 ---- ATF_REQUIRE(end == str + 4); ATF_REQUIRE(signbit(d) != 0); ! ATF_REQUIRE(fabs(d) < SMALL_NUM); str = "-0x"; d = strtod(str, &end); /* -0.0 */ ATF_REQUIRE(end == str + 2); ATF_REQUIRE(signbit(d) != 0); ! ATF_REQUIRE(fabs(d) < SMALL_NUM); } ATF_TC(strtod_inf); Index: tests/lib/libm/t_ceil.c =================================================================== RCS file: /cvsroot/src/tests/lib/libm/t_ceil.c,v retrieving revision 1.3 diff -p -r1.3 t_ceil.c *** tests/lib/libm/t_ceil.c 25 Mar 2011 10:42:38 -0000 1.3 --- tests/lib/libm/t_ceil.c 3 Jul 2011 15:32:10 -0000 *************** ATF_TC_HEAD(ceil, tc) *** 42,47 **** --- 42,53 ---- atf_tc_set_md_var(tc, "descr", "A basic test of ceil(3)"); } + #ifdef __vax__ + #define SMALL_NUM 1.0e-38 + #else + #define SMALL_NUM 1.0e-40 + #endif + ATF_TC_BODY(ceil, tc) { const int n = 10240; *************** ATF_TC_BODY(ceil, tc) *** 53,60 **** x = i + 0.999999999; y = i + 0.000000001; ! ATF_REQUIRE(fabs(ceil(x) - (double)(i + 1)) < 1.0e-40); ! ATF_REQUIRE(fabs(ceil(x) - (double)(i + 1)) < 1.0e-40); } } --- 59,66 ---- x = i + 0.999999999; y = i + 0.000000001; ! ATF_REQUIRE(fabs(ceil(x) - (double)(i + 1)) < SMALL_NUM); ! ATF_REQUIRE(fabs(ceil(x) - (double)(i + 1)) < SMALL_NUM); } } Index: tests/lib/libm/t_floor.c =================================================================== RCS file: /cvsroot/src/tests/lib/libm/t_floor.c,v retrieving revision 1.4 diff -p -r1.4 t_floor.c *** tests/lib/libm/t_floor.c 25 Mar 2011 10:42:38 -0000 1.4 --- tests/lib/libm/t_floor.c 3 Jul 2011 15:32:10 -0000 *************** ATF_TC_HEAD(floor, tc) *** 43,48 **** --- 43,54 ---- atf_tc_set_md_var(tc, "descr", "A basic test of floor(3)"); } + #ifdef __vax__ + #define SMALL_NUM 1.0e-38 + #else + #define SMALL_NUM 1.0e-40 + #endif + ATF_TC_BODY(floor, tc) { const int n = 10240; *************** ATF_TC_BODY(floor, tc) *** 60,67 **** x = i + 0.999999999; y = i + 0.000000001; ! ATF_REQUIRE(fabs(floor(x) - (double)i) < 1.0e-40); ! ATF_REQUIRE(fabs(floor(y) - (double)i) < 1.0e-40); } } --- 66,73 ---- x = i + 0.999999999; y = i + 0.000000001; ! ATF_REQUIRE(fabs(floor(x) - (double)i) < SMALL_NUM); ! ATF_REQUIRE(fabs(floor(y) - (double)i) < SMALL_NUM); } } Index: tests/lib/libm/t_round.c =================================================================== RCS file: /cvsroot/src/tests/lib/libm/t_round.c,v retrieving revision 1.1 diff -p -r1.1 t_round.c *** tests/lib/libm/t_round.c 8 Apr 2011 06:49:21 -0000 1.1 --- tests/lib/libm/t_round.c 3 Jul 2011 15:32:10 -0000 *************** *** 13,18 **** --- 13,24 ---- #define VAL 0x0.7ffffffffffffcp0 #define VALF 0x0.7fffff8p0 + #ifdef __vax__ + #define SMALL_NUM 1.0e-38 + #else + #define SMALL_NUM 1.0e-40 + #endif + ATF_TC(round_dir); ATF_TC_HEAD(round_dir, tc) { *************** ATF_TC_BODY(round_dir, tc) *** 27,40 **** b = round(a); bf = roundf(af); ! ATF_REQUIRE(fabs(b) < 1.0e-40); ! ATF_REQUIRE(fabsf(bf) < 1.0e-40); c = round(-a); cf = roundf(-af); ! ATF_REQUIRE(fabs(c) < 1.0e-40); ! ATF_REQUIRE(fabsf(cf) < 1.0e-40); } ATF_TP_ADD_TCS(tp) --- 33,46 ---- b = round(a); bf = roundf(af); ! ATF_REQUIRE(fabs(b) < SMALL_NUM); ! ATF_REQUIRE(fabsf(bf) < SMALL_NUM); c = round(-a); cf = roundf(-af); ! ATF_REQUIRE(fabs(c) < SMALL_NUM); ! ATF_REQUIRE(fabsf(cf) < SMALL_NUM); } ATF_TP_ADD_TCS(tp)