@@ -11,6 +11,11 @@ all: test-double test-float # test-double-system test-float-system
bench: bench-syslibm bench-openlibm
+ifeq ($(USECLANG),1)
+CPPFLAGS += -DUSECLANG=1
+endif
+
test-double: test-double.c libm-test.c libm-test-ulps.h
$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_add_TARGET_$(ARCH)) $(LDFLAGS) $@.c -D__BSD_VISIBLE -I ../include -I../src $(OPENLIBM_LIB) -o $@
@@ -408,6 +408,9 @@ test_single_exception (const char *test_name,
int fe_flag,
const char *flag_name)
{
+/* Don't perform these checks if we're compiling with clang, because clang
+ doesn't bother to set floating-point exceptions properly */
+#ifndef USECLANG
#ifndef TEST_INLINE
int ok = 1;
if (exception & exc_flag)
@@ -445,6 +448,7 @@ test_single_exception (const char *test_name,
++noErrors;
#endif
+#endif // USECLANG
}