tweaks to clang so blender can build with -Werror
authorCampbell Barton <ideasman42@gmail.com>
Thu, 14 Mar 2013 07:25:54 +0000 (07:25 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 14 Mar 2013 07:25:54 +0000 (07:25 +0000)
CMakeLists.txt
build_files/cmake/macros.cmake
intern/opencolorio/ocio_impl.h
source/blender/blenlib/intern/math_geom.c

index 10ae610b63d0de6c6448b75f16959182d4d75b9d..b2f6d92eddd009992254283a97690db27be4c419 100644 (file)
@@ -1992,6 +1992,10 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
        # ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_MACROS      -Wunused-macros)
        # ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_MACROS          -Wunused-macros)
 
+       # flags to undo strict flags
+       ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
+       ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_MACROS    -Wno-unused-macros)
+
 elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
 
        ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall)
index f3e00be4c53b3ab4fb4a8fb8e36a591118bbca44..0b95237271970ab1de2017c2ab84a957faa8ee1b 100644 (file)
@@ -504,6 +504,9 @@ macro(remove_strict_flags)
                remove_cc_flag("-Wunused-variable")
                remove_cc_flag("-Werror=[^ ]+")
                remove_cc_flag("-Werror")
+
+               # negate flags implied by '-Wall'
+               add_cc_flag("${CC_REMOVE_STRICT_FLAGS}")
        endif()
 
        if(MSVC)
index 64cf5ec332234861c2a8c53ea370eca16d2583f5..b6bbc912e5bd74747691367e8c75b6a35c80f4b0 100644 (file)
@@ -30,7 +30,7 @@
 
 class IOCIOImpl {
 public:
-       virtual ~IOCIOImpl() {};
+       virtual ~IOCIOImpl() {}
 
        virtual OCIO_ConstConfigRcPtr *getCurrentConfig(void) = 0;
        virtual void setCurrentConfig(const OCIO_ConstConfigRcPtr *config) = 0;
@@ -99,7 +99,7 @@ public:
 
 class FallbackImpl : public IOCIOImpl {
 public:
-       FallbackImpl() {};
+       FallbackImpl() {}
 
        OCIO_ConstConfigRcPtr *getCurrentConfig(void);
        void setCurrentConfig(const OCIO_ConstConfigRcPtr *config);
index 49be60dda36177bdaf68ea60cd9a3c8711da4f15..41913574c4dd049178bae7de4b98c62d62ae4aea 100644 (file)
@@ -2218,6 +2218,13 @@ void barycentric_weights_v2_quad(const float v1[2], const float v2[2], const flo
            len_v2(dirs[3]),
        };
 
+       /* variable 'area' is just for storage,
+        * the order its initialized doesn't matter */
+#ifdef __clang__
+#  pragma clang diagnostic push
+#  pragma clang diagnostic ignored "-Wunsequenced"
+#endif
+
        /* inline mean_value_half_tan four times here */
        float t[4] = {
            MEAN_VALUE_HALF_TAN_V2(area, 0, 1),
@@ -2226,6 +2233,10 @@ void barycentric_weights_v2_quad(const float v1[2], const float v2[2], const flo
            MEAN_VALUE_HALF_TAN_V2(area, 3, 0),
        };
 
+#ifdef __clang__
+#  pragma clang diagnostic pop
+#endif
+
 #undef MEAN_VALUE_HALF_TAN_V2
 
        w[0] = (t[3] + t[0]) / lens[0];