Merge branch 'old-gcc-pragmas' into 'master'

Fixes for older compilers

This branch fixes some issues that have occurred on older compilers
(specifically on GCC 4.4).


See merge request !290
This commit is contained in:
Kenneth Moreland 2015-12-16 10:31:37 -05:00
commit c382847a91
2 changed files with 13 additions and 3 deletions

@ -49,7 +49,7 @@ struct ListTagCheck
///
#define VTKM_IS_LIST_TAG(tag) \
VTKM_STATIC_ASSERT_MSG( \
::vtkm::internal::ListTagCheck<tag>::Valid, \
(::vtkm::internal::ListTagCheck<tag>::Valid), \
"Provided type is not a valid VTK-m list tag.")
namespace detail {

@ -137,12 +137,22 @@
#define VTK_M_THIRDPARTY_CLANG_WARNING_PRAGMAS
#endif
// Older versions of GCC don't support the push/pop pragmas. Right now we are
// not checking for GCC 3 or earlier. I'm not sure we have a use case for that.
#if defined(VTKM_GCC) && (__GNUC__ == 4 && __GNUC_MINOR__ < 6)
#define VTK_M_THIRDPARTY_WARNINGS_PUSH
#define VTK_M_THRIDPARTY_WARNINGS_POP
#else
#define VTK_M_THIRDPARTY_WARNINGS_PUSH _Pragma("GCC diagnostic push")
#define VTK_M_THRIDPARTY_WARNINGS_POP _Pragma("GCC diagnostic pop")
#endif
#define VTKM_THIRDPARTY_PRE_INCLUDE \
_Pragma("GCC diagnostic push") \
VTK_M_THIRDPARTY_WARNINGS_PUSH \
VTK_M_THIRDPARTY_GCC_WARNING_PRAGMAS \
VTK_M_THIRDPARTY_CLANG_WARNING_PRAGMAS
#define VTKM_THIRDPARTY_POST_INCLUDE \
_Pragma("GCC diagnostic pop")
VTK_M_THRIDPARTY_WARNINGS_POP
#else
#define VTKM_THIRDPARTY_PRE_INCLUDE