Fix warnings with clang and GCC
authorRicardo Garcia <rgarcia@igalia.com>
Mon, 4 Apr 2022 08:14:57 +0000 (10:14 +0200)
committerziga-lunarg <ziga@lunarg.com>
Mon, 25 Jul 2022 12:05:01 +0000 (14:05 +0200)
Affected tests:
No test result should be affected by these changes.

Components: OpenGL, Vulkan
VK-GL-CTS issue: 3602

Change-Id: If2eb0736d296add732aaff53c80a705cc306d7a3

external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.cpp
external/openglcts/modules/glesext/tessellation_shader/esextcTessellationShaderVertexSpacing.hpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageAlignedMipSize.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageBlockShapes.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageMemoryAliasing.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageSparseBinding.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesImageSparseResidency.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesMipmapSparseResidency.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesShaderIntrinsics.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesTestsUtil.hpp

index 99a38e2..c2e8d46 100644 (file)
@@ -12382,32 +12382,45 @@ template <int Size>
 static tcu::Matrix<glw::GLdouble, Size - 1, Size - 1> eliminate(const tcu::Matrix<glw::GLdouble, Size, Size>& matrix,
                                                                                                                                glw::GLuint column, glw::GLuint row)
 {
+       // GCC sometimes diagnoses an incorrect out of bounds write here. The code has been verified to be correct.
+#if (DE_COMPILER == DE_COMPILER_GCC)
+#      pragma GCC diagnostic push
+#      pragma GCC diagnostic ignored "-Warray-bounds"
+#endif
+
+       const glw::GLint eCol = static_cast<glw::GLint>(column);
+       const glw::GLint eRow = static_cast<glw::GLint>(row);
+
        tcu::Matrix<glw::GLdouble, Size - 1, Size - 1> result;
 
-       for (glw::GLuint c = 0; c < Size; ++c)
+       for (glw::GLint c = 0; c < Size; ++c)
        {
                /* Skip eliminated column */
-               if (column == c)
+               if (eCol == c)
                {
                        continue;
                }
 
-               for (glw::GLuint r = 0; r < Size; ++r)
+               for (glw::GLint r = 0; r < Size; ++r)
                {
                        /* Skip eliminated row */
-                       if (row == r)
+                       if (eRow == r)
                        {
                                continue;
                        }
 
-                       const glw::GLint r_offset = (r > row) ? -1 : 0;
-                       const glw::GLint c_offset = (c > column) ? -1 : 0;
+                       const glw::GLint r_offset = (r > eRow) ? -1 : 0;
+                       const glw::GLint c_offset = (c > eCol) ? -1 : 0;
 
                        result(r + r_offset, c + c_offset) = matrix(r, c);
                }
        }
 
        return result;
+
+#if (DE_COMPILER == DE_COMPILER_GCC)
+#      pragma GCC diagnostic pop
+#endif
 }
 
 template <int Size>
index 22eece2..1ea6fc8 100644 (file)
@@ -279,7 +279,7 @@ private:
        /** Comparator that is used to compare two tessellation coordinates using FP value
         *  equal operator.
         */
-       struct _comparator_exact_tess_coordinate_match : public std::unary_function<float, bool>
+       struct _comparator_exact_tess_coordinate_match
        {
                /* Constructor.
                 *
index d1ae4a9..f868d4d 100644 (file)
@@ -253,7 +253,7 @@ tcu::TestCaseGroup* createImageAlignedMipSizeTests (tcu::TestContext& testCtx)
 {
        de::MovePtr<tcu::TestCaseGroup> testGroup(new tcu::TestCaseGroup(testCtx, "aligned_mip_size", "Aligned mip size"));
 
-       const std::vector<TestImageParameters> imageParameters =
+       const std::vector<TestImageParameters> imageParameters
        {
                { IMAGE_TYPE_2D,                 { tcu::UVec3(512u, 256u, 1u) },        getTestFormats(IMAGE_TYPE_2D) },
                { IMAGE_TYPE_2D_ARRAY,   { tcu::UVec3(512u, 256u, 6u) },        getTestFormats(IMAGE_TYPE_2D_ARRAY) },
index 79feb21..1913e12 100644 (file)
@@ -439,7 +439,7 @@ tcu::TestCaseGroup* createImageBlockShapesTests (tcu::TestContext& testCtx)
 {
        de::MovePtr<tcu::TestCaseGroup> testGroup(new tcu::TestCaseGroup(testCtx, "image_block_shapes", "Standard block shape"));
 
-       const std::vector<TestImageParameters> imageParameters =
+       const std::vector<TestImageParameters> imageParameters
        {
                { IMAGE_TYPE_2D,                        { tcu::UVec3(512u, 256u, 1u) },         getTestFormats(IMAGE_TYPE_2D) },
                { IMAGE_TYPE_2D_ARRAY,          { tcu::UVec3(512u, 256u, 6u) },         getTestFormats(IMAGE_TYPE_2D_ARRAY) },
index 858eb58..cb5fb59 100755 (executable)
@@ -879,7 +879,7 @@ TestInstance* ImageSparseMemoryAliasingCase::createInstance (Context& context) c
 tcu::TestCaseGroup* createImageSparseMemoryAliasingTestsCommon(tcu::TestContext& testCtx, de::MovePtr<tcu::TestCaseGroup> testGroup, const bool useDeviceGroup = false)
 {
 
-       const std::vector<TestImageParameters> imageParameters =
+       const std::vector<TestImageParameters> imageParameters
        {
                { IMAGE_TYPE_2D,                { tcu::UVec3(512u, 256u, 1u),   tcu::UVec3(128u, 128u, 1u),     tcu::UVec3(503u, 137u, 1u),     tcu::UVec3(11u, 37u, 1u) },     getTestFormats(IMAGE_TYPE_2D) },
                { IMAGE_TYPE_2D_ARRAY,  { tcu::UVec3(512u, 256u, 6u),   tcu::UVec3(128u, 128u, 8u),     tcu::UVec3(503u, 137u, 3u),     tcu::UVec3(11u, 37u, 3u) },     getTestFormats(IMAGE_TYPE_2D_ARRAY) },
index dca01da..c7989dc 100755 (executable)
@@ -436,7 +436,7 @@ TestInstance* ImageSparseBindingCase::createInstance (Context& context) const
 
 tcu::TestCaseGroup* createImageSparseBindingTestsCommon(tcu::TestContext& testCtx, de::MovePtr<tcu::TestCaseGroup> testGroup, const bool useDeviceGroup = false)
 {
-       const std::vector<TestImageParameters> imageParameters =
+       const std::vector<TestImageParameters> imageParameters
        {
                { IMAGE_TYPE_1D,                        { tcu::UVec3(512u, 1u,   1u ),  tcu::UVec3(1024u, 1u,   1u),    tcu::UVec3(11u,  1u,   1u) },   getTestFormats(IMAGE_TYPE_1D) },
                { IMAGE_TYPE_1D_ARRAY,          { tcu::UVec3(512u, 1u,   64u),  tcu::UVec3(1024u, 1u,   8u),    tcu::UVec3(11u,  1u,   3u) },   getTestFormats(IMAGE_TYPE_1D_ARRAY) },
index cafb299..4cfd504 100755 (executable)
@@ -997,7 +997,7 @@ TestInstance* ImageSparseResidencyCase::createInstance (Context& context) const
 
 tcu::TestCaseGroup* createImageSparseResidencyTestsCommon (tcu::TestContext& testCtx, de::MovePtr<tcu::TestCaseGroup> testGroup, const bool useDeviceGroup = false)
 {
-       const std::vector<TestImageParameters> imageParameters =
+       const std::vector<TestImageParameters> imageParameters
        {
                { IMAGE_TYPE_2D,                        { tcu::UVec3(512u, 256u,  1u),  tcu::UVec3(1024u, 128u, 1u),    tcu::UVec3(11u,  137u, 1u) },   getTestFormats(IMAGE_TYPE_2D) },
                { IMAGE_TYPE_2D_ARRAY,          { tcu::UVec3(512u, 256u,  6u),  tcu::UVec3(1024u, 128u, 8u),    tcu::UVec3(11u,  137u, 3u) },   getTestFormats(IMAGE_TYPE_2D_ARRAY) },
index 49b819b..3d01089 100755 (executable)
@@ -560,7 +560,7 @@ TestInstance* MipmapSparseResidencyCase::createInstance (Context& context) const
 
 tcu::TestCaseGroup* createMipmapSparseResidencyTestsCommon (tcu::TestContext& testCtx, de::MovePtr<tcu::TestCaseGroup> testGroup, const bool useDeviceGroup = false)
 {
-       const std::vector<TestImageParameters> imageParameters =
+       const std::vector<TestImageParameters> imageParameters
        {
                { IMAGE_TYPE_2D,                        { tcu::UVec3(512u, 256u, 1u),   tcu::UVec3(1024u, 128u, 1u),    tcu::UVec3(11u,  137u, 1u) },   getTestFormats(IMAGE_TYPE_2D) },
                { IMAGE_TYPE_2D_ARRAY,          { tcu::UVec3(512u, 256u, 6u),   tcu::UVec3(1024u, 128u, 8u),    tcu::UVec3(11u,  137u, 3u) },   getTestFormats(IMAGE_TYPE_2D_ARRAY) },
index 079464e..79f3e94 100644 (file)
@@ -35,7 +35,7 @@ tcu::TestCaseGroup* createSparseResourcesShaderIntrinsicsTests (tcu::TestContext
 {
        de::MovePtr<tcu::TestCaseGroup> testGroup(new tcu::TestCaseGroup(testCtx, "shader_intrinsics", "Sparse Resources Shader Intrinsics"));
 
-       const std::vector<TestImageParameters> imageParameters =
+       const std::vector<TestImageParameters> imageParameters
        {
                { IMAGE_TYPE_2D,                        { tcu::UVec3(512u, 256u, 1u),   tcu::UVec3(128u, 128u, 1u), tcu::UVec3(503u, 137u, 1u), tcu::UVec3(11u, 37u, 1u) },     getTestFormats(IMAGE_TYPE_2D) },
                { IMAGE_TYPE_2D_ARRAY,          { tcu::UVec3(512u, 256u, 6u),   tcu::UVec3(128u, 128u, 8u),     tcu::UVec3(503u, 137u, 3u),     tcu::UVec3(11u, 37u, 3u) },     getTestFormats(IMAGE_TYPE_2D_ARRAY) },
index 0cf8572..917a763 100644 (file)
@@ -80,6 +80,12 @@ struct TestImageParameters
        ImageType                               imageType;
        std::vector<tcu::UVec3> imageSizes;
        std::vector<TestFormat> formats;
+
+       TestImageParameters (ImageType imageType_, const std::vector<tcu::UVec3>& imageSizes_, const std::vector<TestFormat>& formats_)
+               : imageType             (imageType_)
+               , imageSizes    (imageSizes_)
+               , formats               (formats_)
+               {}
 };
 
 std::vector<TestFormat>                        getTestFormats                                          (const ImageType& imageType);