GCC 11 build fixes
authorMika Väinölä <mika.vainola@siru.fi>
Wed, 10 Mar 2021 11:16:38 +0000 (13:16 +0200)
committerziga-lunarg <ziga@lunarg.com>
Mon, 25 Jul 2022 12:04:50 +0000 (14:04 +0200)
Some files used std::numeric_limits without including <limits> and
failed to compile.

Some dynamic casts and calls to AndroidHardwareBufferExternalApi::
getInstance() produced nonnull warnings. Suppress these by
wrapping them in if statements.

Update Amber to suppress some new uninitialized variable warnings.

This commit also removes implicit-fallthrough from the list of ignored
GCC warnings in check_build_sanity.py. All such warnings in the CTS
should be fixed by now and recent versions of Clang also support
this warning.

Affects: All Amber tests

VK-GL-CTS issue: 2842

Change-Id: Id0d4e583b5c3bfab7b4c91c1c04372bcd55bac37

external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp
external/vulkancts/modules/vulkan/synchronization/vktSynchronizationUtil.cpp
external/vulkancts/modules/vulkan/util/vktExternalMemoryUtil.cpp
external/vulkancts/modules/vulkan/ycbcr/vktYCbCrUtil.cpp
framework/opengl/simplereference/sglrReferenceContext.cpp
modules/glshared/glsBuiltinPrecisionTests.cpp
scripts/check_build_sanity.py

index 9559729..63336e9 100644 (file)
@@ -118,7 +118,11 @@ NativeHandle::NativeHandle (const NativeHandle& other)
                DE_ASSERT(other.m_fd == -1);
                DE_ASSERT(!other.m_win32Handle.internal);
                m_androidHardwareBuffer = other.m_androidHardwareBuffer;
-               AndroidHardwareBufferExternalApi::getInstance()->acquire(m_androidHardwareBuffer);
+
+               if (AndroidHardwareBufferExternalApi* ahbApi = AndroidHardwareBufferExternalApi::getInstance())
+                       ahbApi->acquire(m_androidHardwareBuffer);
+               else
+                       DE_FATAL("Platform doesn't support Android Hardware Buffer handles");
        }
        else
                DE_FATAL("Native handle can't be duplicated");
@@ -194,7 +198,11 @@ void NativeHandle::reset (void)
        {
                DE_ASSERT(m_fd == -1);
                DE_ASSERT(!m_win32Handle.internal);
-               AndroidHardwareBufferExternalApi::getInstance()->release(m_androidHardwareBuffer);
+
+               if (AndroidHardwareBufferExternalApi* ahbApi = AndroidHardwareBufferExternalApi::getInstance())
+                       ahbApi->release(m_androidHardwareBuffer);
+               else
+                       DE_FATAL("Platform doesn't support Android Hardware Buffer handles");
        }
        m_fd                                    = -1;
        m_win32Handle                   = vk::pt::Win32Handle(DE_NULL);
index 0da5f69..2e5a19c 100644 (file)
@@ -38,6 +38,8 @@
 #include "deSTLUtil.hpp"
 #include "deUniquePtr.hpp"
 
+#include <limits>
+
 namespace vkt
 {
 namespace ycbcr
index d781b81..99b3ab8 100644 (file)
@@ -2341,9 +2341,19 @@ tcu::PixelBufferAccess ReferenceContext::getFboAttachment (const rc::Framebuffer
                        TCU_CHECK(texture);
 
                        if (texture->getType() == Texture::TYPE_2D)
-                               return dynamic_cast<Texture2D*>(texture)->getLevel(attachment.level);
+                       {
+                               if (Texture2D* texture2D = dynamic_cast<Texture2D*>(texture))
+                                       return texture2D->getLevel(attachment.level);
+                               else
+                                       return nullAccess();
+                       }
                        else if (texture->getType() == Texture::TYPE_CUBE_MAP)
-                               return dynamic_cast<TextureCube*>(texture)->getFace(attachment.level, texTargetToFace(attachment.texTarget));
+                       {
+                               if (TextureCube* cubeMap = dynamic_cast<TextureCube*>(texture))
+                                       return cubeMap->getFace(attachment.level, texTargetToFace(attachment.texTarget));
+                               else
+                                       return nullAccess();
+                       }
                        else if (texture->getType() == Texture::TYPE_2D_ARRAY   ||
                                         texture->getType() == Texture::TYPE_3D                 ||
                                         texture->getType() == Texture::TYPE_CUBE_MAP_ARRAY)
@@ -2351,11 +2361,20 @@ tcu::PixelBufferAccess ReferenceContext::getFboAttachment (const rc::Framebuffer
                                tcu::PixelBufferAccess level;
 
                                if (texture->getType() == Texture::TYPE_2D_ARRAY)
-                                       level = dynamic_cast<Texture2DArray*>(texture)->getLevel(attachment.level);
+                               {
+                                       if (Texture2DArray* texture2DArray = dynamic_cast<Texture2DArray*>(texture))
+                                               level = texture2DArray->getLevel(attachment.level);
+                               }
                                else if (texture->getType() == Texture::TYPE_3D)
-                                       level = dynamic_cast<Texture3D*>(texture)->getLevel(attachment.level);
+                               {
+                                       if (Texture3D* texture3D = dynamic_cast<Texture3D*>(texture))
+                                               level = texture3D->getLevel(attachment.level);
+                               }
                                else if (texture->getType() == Texture::TYPE_CUBE_MAP_ARRAY)
-                                       level = dynamic_cast<TextureCubeArray*>(texture)->getLevel(attachment.level);
+                               {
+                                       if (TextureCubeArray* cubeArray = dynamic_cast<TextureCubeArray*>(texture))
+                                               level = cubeArray->getLevel(attachment.level);
+                               }
 
                                void* layerData = static_cast<deUint8*>(level.getDataPtr()) + level.getSlicePitch() * attachment.layer;
 
index a46fc04..2af7126 100644 (file)
@@ -56,6 +56,7 @@
 #include <iostream>
 #include <map>
 #include <utility>
+#include <limits>
 
 // Uncomment this to get evaluation trace dumps to std::cerr
 // #define GLS_ENABLE_TRACE
index 67101cd..aa8d22a 100644 (file)
@@ -139,7 +139,7 @@ def runSteps (steps):
                        print("Skip: %s" % step.getName())
 
 COMMON_CFLAGS          = ["-Werror", "-Wno-error=unused-function"]
-COMMON_GCC_CFLAGS      = COMMON_CFLAGS + ["-Wno-implicit-fallthrough", "-Wno-error=array-bounds"]
+COMMON_GCC_CFLAGS      = COMMON_CFLAGS + ["-Wno-error=array-bounds"]
 COMMON_CLANG_CFLAGS    = COMMON_CFLAGS + ["-Wno-error=unused-command-line-argument"]
 GCC_32BIT_CFLAGS       = COMMON_GCC_CFLAGS + ["-m32"]
 CLANG_32BIT_CFLAGS     = COMMON_CLANG_CFLAGS + ["-m32"]