diff --git a/examples/hello_world/HelloWorld.cxx b/examples/hello_world/HelloWorld.cxx index 8601046d4..c3987168f 100755 --- a/examples/hello_world/HelloWorld.cxx +++ b/examples/hello_world/HelloWorld.cxx @@ -34,7 +34,7 @@ #include //Suppress warnings about glut being deprecated on OSX -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif @@ -224,6 +224,6 @@ int main(int argc, char** argv) glutMainLoop(); } -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic pop #endif diff --git a/examples/isosurface/IsosurfaceUniformGrid.cxx b/examples/isosurface/IsosurfaceUniformGrid.cxx index 43395fcfe..e07674f67 100644 --- a/examples/isosurface/IsosurfaceUniformGrid.cxx +++ b/examples/isosurface/IsosurfaceUniformGrid.cxx @@ -33,7 +33,7 @@ #include //Suppress warnings about glut being deprecated on OSX -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif @@ -281,6 +281,6 @@ int main(int argc, char* argv[]) return 0; } -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic pop #endif diff --git a/examples/streamline/StreamLineUniformGrid.cxx b/examples/streamline/StreamLineUniformGrid.cxx index acbf25a39..f84d1ac76 100644 --- a/examples/streamline/StreamLineUniformGrid.cxx +++ b/examples/streamline/StreamLineUniformGrid.cxx @@ -35,7 +35,7 @@ #include //Suppress warnings about glut being deprecated on OSX -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif @@ -299,6 +299,6 @@ int main(int argc, char* argv[]) return 0; } -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic pop #endif diff --git a/examples/tetrahedra/TetrahedralizeExplicitGrid.cxx b/examples/tetrahedra/TetrahedralizeExplicitGrid.cxx index 60e30511d..73ee4da6d 100644 --- a/examples/tetrahedra/TetrahedralizeExplicitGrid.cxx +++ b/examples/tetrahedra/TetrahedralizeExplicitGrid.cxx @@ -30,7 +30,7 @@ #include //Suppress warnings about glut being deprecated on OSX -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif @@ -357,6 +357,6 @@ int main(int argc, char* argv[]) return 0; } -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic pop #endif diff --git a/examples/tetrahedra/TetrahedralizeUniformGrid.cxx b/examples/tetrahedra/TetrahedralizeUniformGrid.cxx index 41786493f..edad118d5 100644 --- a/examples/tetrahedra/TetrahedralizeUniformGrid.cxx +++ b/examples/tetrahedra/TetrahedralizeUniformGrid.cxx @@ -30,7 +30,7 @@ #include //Suppress warnings about glut being deprecated on OSX -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif @@ -322,6 +322,6 @@ int main(int argc, char* argv[]) return 0; } -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic pop #endif diff --git a/examples/tetrahedra/TriangulateExplicitGrid.cxx b/examples/tetrahedra/TriangulateExplicitGrid.cxx index d9e11f69f..f64b2fa64 100644 --- a/examples/tetrahedra/TriangulateExplicitGrid.cxx +++ b/examples/tetrahedra/TriangulateExplicitGrid.cxx @@ -29,7 +29,7 @@ #include //Suppress warnings about glut being deprecated on OSX -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif @@ -278,6 +278,6 @@ int main(int argc, char* argv[]) return 0; } -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic pop #endif diff --git a/examples/tetrahedra/TriangulateUniformGrid.cxx b/examples/tetrahedra/TriangulateUniformGrid.cxx index 3507b61f6..fcad73171 100644 --- a/examples/tetrahedra/TriangulateUniformGrid.cxx +++ b/examples/tetrahedra/TriangulateUniformGrid.cxx @@ -30,7 +30,7 @@ #include //Suppress warnings about glut being deprecated on OSX -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif @@ -227,6 +227,6 @@ int main(int argc, char* argv[]) return 0; } -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic pop #endif diff --git a/vtkm/BinaryOperators.h b/vtkm/BinaryOperators.h index a1fafc25d..b2404f57a 100644 --- a/vtkm/BinaryOperators.h +++ b/vtkm/BinaryOperators.h @@ -30,7 +30,7 @@ namespace vtkm { // operation, and than casted back down to char's when return. // This causes a false positive warning, even when the values is within // the value types range -#if defined(VTKM_GCC) || defined(VTKM_CLANG) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif // gcc || clang @@ -59,7 +59,7 @@ struct Product } }; -#if defined(VTKM_GCC) || defined(VTKM_CLANG) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) #pragma GCC diagnostic pop #endif // gcc || clang diff --git a/vtkm/Types.h b/vtkm/Types.h index fbc795850..708becf6d 100644 --- a/vtkm/Types.h +++ b/vtkm/Types.h @@ -682,7 +682,7 @@ struct BindRightBinaryOp // operation, and than casted back down to char's when return. // This causes a false positive warning, even when the values is within // the value types range -#if defined(VTKM_GCC) || defined(VTKM_CLANG) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif // gcc || clang @@ -731,7 +731,7 @@ struct Negate } }; -#if defined(VTKM_GCC) || defined(VTKM_CLANG) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) #pragma GCC diagnostic pop #endif // gcc || clang diff --git a/vtkm/internal/Configure.h.in b/vtkm/internal/Configure.h.in index bc67e9a9a..966ba2525 100644 --- a/vtkm/internal/Configure.h.in +++ b/vtkm/internal/Configure.h.in @@ -28,26 +28,29 @@ #define VTKM_OPENMP #endif -#ifdef _MSC_VER +#if defined(_MSC_VER) +//MSVC 2015+ can use a clang frontend, so we want to label it only as MSVC +//and not MSVC and clang #define VTKM_MSVC -#endif -#if defined(__clang__) && !defined(__INTEL_COMPILER) -//On OSX the intel compiler uses clang as the front end -#define VTKM_CLANG -#endif - -#ifdef __INTEL_COMPILER +#elif defined(__INTEL_COMPILER) +//Intel 14+ on OSX uses a clang frontend, so again we want to label them as +//intel only, and not intel and clang #define VTKM_ICC -#endif -#ifdef __PGI +#elif defined(__PGI) +// PGI reports as GNUC as it generates the same ABI, so we need to check for +// it before gcc. #define VTKM_PGI -#endif +#elif defined(__clang__) +//Check for clang before GCC, as clang says it is GNUC since it has ABI +//compliance +#define VTKM_CLANG + +#elif defined(__GNUC__) // Several compilers pretend to be GCC but have minor differences. Try to -// compensate for that. -#if defined(__GNUC__) && !defined(VTKM_CLANG) && !defined(VTKM_ICC) +// compensate for that, by checking for those compilers first #define VTKM_GCC #endif @@ -119,7 +122,7 @@ // that should be wrapped around any #include for a boost or thrust header file. Mostly // this is used to set pragmas that dissable warnings that VTK-m checks for // but boost and thrust does not. -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) #define VTK_M_THIRDPARTY_GCC_WARNING_PRAGMAS \ _Pragma("GCC diagnostic ignored \"-Wconversion\"") \ diff --git a/vtkm/opengl/testing/WindowBase.h b/vtkm/opengl/testing/WindowBase.h index f0799a748..67dc864a4 100644 --- a/vtkm/opengl/testing/WindowBase.h +++ b/vtkm/opengl/testing/WindowBase.h @@ -25,7 +25,7 @@ #include #include -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif @@ -164,7 +164,7 @@ public: } } -#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) && !defined(VTKM_PGI) +#if (defined(VTKM_GCC) || defined(VTKM_CLANG)) # pragma GCC diagnostic pop #endif