GCC 11 build fixes

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: I5bd290f9c312a30c2fcb223307c7b5c785a0fa92
This commit is contained in:
Mika Väinölä 2021-03-10 13:16:38 +02:00 committed by Alexander Galazin
parent 9a714a7ca7
commit 2a0dad2819
18 changed files with 60 additions and 10 deletions

View file

@ -333,7 +333,7 @@ PACKAGES = [
GitRepo(
"https://github.com/google/amber.git",
None,
"dabae26164714abf951c6815a2b4513260f7c6a4",
"aa69a0ac23ea7f68dd32bbef210546a5d84c1734",
"amber"),
]

View file

@ -33,6 +33,7 @@
#include <vector>
#include <string>
#include <thread>
#include <limits>
namespace vk
{

View file

@ -34,6 +34,7 @@
#include "tcuVectorType.hpp"
#include <vector>
#include <limits>
namespace vk
{

View file

@ -35,6 +35,7 @@
#include "tcuPlatform.hpp"
#include <algorithm>
#include <limits>
namespace vkt
{

View file

@ -39,6 +39,7 @@
#include "tcuTextureUtil.hpp"
#include <cmath>
#include <limits>
namespace vkt
{

View file

@ -42,6 +42,7 @@
#include <set>
#include <vector>
#include <limits>
namespace vkt
{

View file

@ -25,6 +25,7 @@
#include <array>
#include <set>
#include <limits>
#include "vkDefs.hpp"
#include "deClock.h"

View file

@ -45,6 +45,7 @@
#include "tcuFloat.hpp"
#include <set>
#include <limits>
namespace vkt
{

View file

@ -38,6 +38,8 @@
#include "deClock.h"
#include <limits>
namespace vkt
{
namespace RayTracing

View file

@ -28,6 +28,8 @@
#include "vktSpvAsmComputeShaderCase.hpp"
#include "vktSpvAsmGraphicsShaderTestUtil.hpp"
#include <limits>
namespace vkt
{
namespace SpirVAssembly

View file

@ -27,6 +27,7 @@
#include "vkBarrierUtil.hpp"
#include "deStringUtil.hpp"
#include <set>
#include <limits>
namespace vkt
{

View 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);

View file

@ -39,6 +39,8 @@
#include "tcuPlatform.hpp"
#include "tcuCommandLine.hpp"
#include <limits>
#if ( DE_OS == DE_OS_WIN32 )
#define NOMINMAX
#define WIN32_LEAN_AND_MEAN

View file

@ -38,6 +38,8 @@
#include "deSTLUtil.hpp"
#include "deUniquePtr.hpp"
#include <limits>
namespace vkt
{
namespace ycbcr

View file

@ -2357,9 +2357,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)
@ -2367,11 +2377,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;

View file

@ -1712,7 +1712,13 @@ void MultiContextRenderTests::init (void)
spec.name = std::string("gles2_") + createAction.label + "_" + renderAction.label;
const GLenum createFormat = dynamic_cast<const GLES2ImageApi::Create*>(createAction.action.get())->getEffectiveFormat();
const GLES2ImageApi::Create* gles2Create = dynamic_cast<const GLES2ImageApi::Create*>(createAction.action.get());
if (!gles2Create)
DE_FATAL("Dynamic casting to GLES2ImageApi::Create* failed");
const GLenum createFormat = gles2Create->getEffectiveFormat();
if (isDepthFormat(createFormat) && isStencilFormat(createFormat))
{
// Combined depth and stencil format. Add the clear action label to avoid test

View 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

View 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"]