Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
srz-zumix committed Oct 10, 2020
1 parent d9728b9 commit 10c6024
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 13 deletions.
40 changes: 30 additions & 10 deletions include/internal/iutest_pragma.hpp
Expand Up @@ -207,6 +207,22 @@
# endif
#endif

#if !defined(IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION)
# if defined(__clang__)
# if __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 8)
# define IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wdouble-promotion")
# endif
# elif defined(__GNUC__)
# define IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wdouble-promotion")
# elif defined(_MSC_VER)
# define IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION() // IUTEST_PRAGMA_MSC_WARN_DISABLE(?)
# endif
#endif

#if !defined(IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION)
# define IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION()
#endif

#if !defined(IUTEST_PRAGMA_WARN_DISABLE_FLOAT_CONVERSION)
# if defined(__clang__)
# define IUTEST_PRAGMA_WARN_DISABLE_FLOAT_CONVERSION() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wfloat-conversion")
Expand Down Expand Up @@ -273,16 +289,20 @@

#if !defined(IUTEST_PRAGMA_WARN_DISABLE_NARROWING)
# if defined(__clang__)
# define IUTEST_PRAGMA_WARN_DISABLE_NARROWING() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wc++11-narrowing")
# define IUTEST_PRAGMA_WARN_DISABLE_NARROWING() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wc++11-narrowing")
# elif defined(__GNUC__)
# define IUTEST_PRAGMA_WARN_DISABLE_NARROWING() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wnarrowing")
# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
# define IUTEST_PRAGMA_WARN_DISABLE_NARROWING() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wnarrowing")
# endif
# elif defined(_MSC_VER)
# define IUTEST_PRAGMA_WARN_DISABLE_NARROWING() IUTEST_PRAGMA_MSC_WARN_DISABLE(4838)
# else
# define IUTEST_PRAGMA_WARN_DISABLE_NARROWING()
# define IUTEST_PRAGMA_WARN_DISABLE_NARROWING() IUTEST_PRAGMA_MSC_WARN_DISABLE(4838)
# endif
#endif

#if !defined(IUTEST_PRAGMA_WARN_DISABLE_NARROWING)
# define IUTEST_PRAGMA_WARN_DISABLE_NARROWING()
#endif

#if !defined(IUTEST_PRAGMA_WARN_DISABLE_FORMAT_NONLITERAL)
# if defined(__clang__)
# define IUTEST_PRAGMA_WARN_DISABLE_FORMAT_NONLITERAL() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wformat-nonliteral")
Expand Down Expand Up @@ -348,23 +368,23 @@
#endif

#if defined(__clang__)
# if __clang_major__ > 10
# if !defined(__APPLE_CC__) && __clang_major__ > 10
# define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_11() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wsuggest-destructor-override")
# else
# define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_11()
# endif
# if __clang_major__ > 3
# define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_4() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wzero-as-null-pointer-constant")
# if __clang_major__ > 4
# define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_5() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wzero-as-null-pointer-constant")
# else
# define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_4()
# define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_5()
# endif

# define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_BEGIN() IUTEST_PRAGMA_CLANG_WARN_PUSH() \
IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wused-but-marked-unused") \
IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wexit-time-destructors") \
IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wold-style-cast") \
IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_11() \
IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_4()
IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_5()

# define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_END() IUTEST_PRAGMA_CLANG_WARN_POP()
#elif defined(__GNUC__)
Expand Down
2 changes: 1 addition & 1 deletion include/internal/iutest_string_stream.hpp
Expand Up @@ -308,7 +308,7 @@ class iu_basic_ostream
{
_Elem a[64];
IUTEST_PRAGMA_WARN_PUSH()
IUTEST_PRAGMA_WARN_DISABLE("-Wdouble-promotion")
IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION()
impl::tostring(a, 64, IIUT_PP_XCS("%f"), v);
IUTEST_PRAGMA_WARN_POP()
s += a;
Expand Down
2 changes: 1 addition & 1 deletion test/floatingpoint_tests.cpp
Expand Up @@ -52,7 +52,7 @@ IUTEST_TYPED_TEST(FloatingpointTest, PINF)
}

IUTEST_PRAGMA_WARN_PUSH()
IUTEST_PRAGMA_WARN_DISABLE("-Wdouble-promotion")
IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION()

IUTEST_TYPED_TEST(FloatingpointTest, NINF)
{
Expand Down
5 changes: 5 additions & 0 deletions utils/clangversion.mk
Expand Up @@ -156,6 +156,11 @@ ifeq (1,$(shell expr \( $(CLANGMAJOR) \>= 3 \)))
IUTEST_CXX_STRICT_FLAGS+=-Wshadow-all -Wshadow-uncaptured-local
endif

# 3.8 later
ifeq (1,$(shell expr \( $(CLANGMAJOR) \> 3 \) \| \( $(CLANGMAJOR) \>= 3 \& $(CLANGMINOR) \>= 8 \)))
IUTEST_CXX_STRICT_FLAGS+=-Wdouble-promotion
endif

# 3.0 later
ifeq (1,$(shell expr \( $(CLANGMAJOR) \>= 3 \)))
IUTEST_CXX_STRICT_FLAGS+=-Wunreachable-code
Expand Down
2 changes: 2 additions & 0 deletions utils/gccversion.mk
Expand Up @@ -164,4 +164,6 @@ endif

endif

IUTEST_CXX_STRICT_FLAGS+=-Wdouble-promotion

endif
2 changes: 1 addition & 1 deletion utils/warning.mk
@@ -1,4 +1,4 @@
IUTEST_CXX_STRICT_FLAGS+= \
-Wformat=2 -Wcast-qual -Wcast-align -Wdouble-promotion \
-Wformat=2 -Wcast-qual -Wcast-align \
-Wwrite-strings -Wpointer-arith -Wundef -Wunused-macros \
-Wmissing-noreturn -Wswitch-enum

0 comments on commit 10c6024

Please sign in to comment.