Enable -Wextra-semi and -Wextra-semi-stmt.
This will prevent users from accidentally making semicolon errors in
the future.
Bug: chromium:926235
Change-Id: I79a6fa376fb1ad8f0fcf1b65b1f572a035d1f4e9
Reviewed-on: https://chromium-review.googlesource.com/c/1446493
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
diff --git a/src/common/debug.h b/src/common/debug.h
index 322b7fe..f4ad029 100644
--- a/src/common/debug.h
+++ b/src/common/debug.h
@@ -231,11 +231,11 @@
# if defined(_MSC_VER)
# define EVENT(message, ...) \
gl::ScopedPerfEventHelper scopedPerfEventHelper##__LINE__("%s" message "\n", \
- __FUNCTION__, __VA_ARGS__);
+ __FUNCTION__, __VA_ARGS__)
# else
# define EVENT(message, ...) \
gl::ScopedPerfEventHelper scopedPerfEventHelper("%s" message "\n", __FUNCTION__, \
- ##__VA_ARGS__);
+ ##__VA_ARGS__)
# endif // _MSC_VER
#else
# define EVENT(message, ...) (void(0))
@@ -346,4 +346,13 @@
# define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS
#endif
+#if defined(__clang__)
+# define ANGLE_DISABLE_EXTRA_SEMI_WARNING \
+ _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wextra-semi\"")
+# define ANGLE_REENABLE_EXTRA_SEMI_WARNING _Pragma("clang diagnostic pop")
+#else
+# define ANGLE_DISABLE_EXTRA_SEMI_WARNING
+# define ANGLE_REENABLE_EXTRA_SEMI_WARNING
+#endif
+
#endif // COMMON_DEBUG_H_
diff --git a/src/compiler/preprocessor/Tokenizer.cpp b/src/compiler/preprocessor/Tokenizer.cpp
index 429026e..2ce67b7 100644
--- a/src/compiler/preprocessor/Tokenizer.cpp
+++ b/src/compiler/preprocessor/Tokenizer.cpp
@@ -700,6 +700,8 @@
#if defined(__clang__)
// Flex uses `/*FALLTHROUGH*/` instead of dedicated statements.
# pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+// Flex isn't semi-colon clean.
+# pragma clang diagnostic ignored "-Wextra-semi-stmt"
#endif
// Workaround for flex using the register keyword, deprecated in C++11.
diff --git a/src/compiler/preprocessor/Tokenizer.l b/src/compiler/preprocessor/Tokenizer.l
index 3df7367..94db185 100644
--- a/src/compiler/preprocessor/Tokenizer.l
+++ b/src/compiler/preprocessor/Tokenizer.l
@@ -41,6 +41,8 @@
#if defined(__clang__)
// Flex uses `/*FALLTHROUGH*/` instead of dedicated statements.
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+// Flex isn't semi-colon clean.
+#pragma clang diagnostic ignored "-Wextra-semi-stmt"
#endif
// Workaround for flex using the register keyword, deprecated in C++11.
diff --git a/src/compiler/translator/Common.h b/src/compiler/translator/Common.h
index 925bcfe..d0b8347 100644
--- a/src/compiler/translator/Common.h
+++ b/src/compiler/translator/Common.h
@@ -34,7 +34,7 @@
//
// Put POOL_ALLOCATOR_NEW_DELETE in base classes to make them use this scheme.
//
-#define POOL_ALLOCATOR_NEW_DELETE() \
+#define POOL_ALLOCATOR_NEW_DELETE \
void *operator new(size_t s) { return GetGlobalPoolAllocator()->allocate(s); } \
void *operator new(size_t, void *_Where) { return (_Where); } \
void operator delete(void *) {} \
@@ -65,7 +65,7 @@
class TVector : public std::vector<T, pool_allocator<T>>
{
public:
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
typedef typename std::vector<T, pool_allocator<T>>::size_type size_type;
TVector() : std::vector<T, pool_allocator<T>>() {}
@@ -77,7 +77,7 @@
class TUnorderedMap : public std::unordered_map<K, D, H, CMP, pool_allocator<std::pair<const K, D>>>
{
public:
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
typedef pool_allocator<std::pair<const K, D>> tAllocator;
TUnorderedMap() : std::unordered_map<K, D, H, CMP, tAllocator>() {}
@@ -93,7 +93,7 @@
class TMap : public std::map<K, D, CMP, pool_allocator<std::pair<const K, D>>>
{
public:
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
typedef pool_allocator<std::pair<const K, D>> tAllocator;
TMap() : std::map<K, D, CMP, tAllocator>() {}
diff --git a/src/compiler/translator/Compiler.h b/src/compiler/translator/Compiler.h
index 86590b3..2227819 100644
--- a/src/compiler/translator/Compiler.h
+++ b/src/compiler/translator/Compiler.h
@@ -146,7 +146,8 @@
protected:
// Add emulated functions to the built-in function emulator.
virtual void initBuiltInFunctionEmulator(BuiltInFunctionEmulator *emu,
- ShCompileOptions compileOptions){};
+ ShCompileOptions compileOptions)
+ {}
// Translate to object code. May generate performance warnings through the diagnostics.
virtual void translate(TIntermBlock *root,
ShCompileOptions compileOptions,
diff --git a/src/compiler/translator/ConstantUnion.h b/src/compiler/translator/ConstantUnion.h
index 6dab5be..155fcd4 100644
--- a/src/compiler/translator/ConstantUnion.h
+++ b/src/compiler/translator/ConstantUnion.h
@@ -20,7 +20,7 @@
class TConstantUnion
{
public:
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
TConstantUnion();
bool cast(TBasicType newType, const TConstantUnion &constant);
diff --git a/src/compiler/translator/Declarator.h b/src/compiler/translator/Declarator.h
index 7801b65..5b5d26b 100644
--- a/src/compiler/translator/Declarator.h
+++ b/src/compiler/translator/Declarator.h
@@ -19,7 +19,7 @@
class TDeclarator : angle::NonCopyable
{
public:
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
TDeclarator(const ImmutableString &name, const TSourceLoc &line);
TDeclarator(const ImmutableString &name,
diff --git a/src/compiler/translator/FunctionLookup.h b/src/compiler/translator/FunctionLookup.h
index bebe09a..62b07f2 100644
--- a/src/compiler/translator/FunctionLookup.h
+++ b/src/compiler/translator/FunctionLookup.h
@@ -19,7 +19,7 @@
class TFunctionLookup : angle::NonCopyable
{
public:
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
static TFunctionLookup *CreateConstructor(const TType *type);
static TFunctionLookup *CreateFunctionCall(const ImmutableString &name, const TSymbol *symbol);
diff --git a/src/compiler/translator/IntermNode.cpp b/src/compiler/translator/IntermNode.cpp
index 1ebe6aa..f460174 100644
--- a/src/compiler/translator/IntermNode.cpp
+++ b/src/compiler/translator/IntermNode.cpp
@@ -194,11 +194,14 @@
}
#define REPLACE_IF_IS(node, type, original, replacement) \
- if (node == original) \
+ do \
{ \
- node = static_cast<type *>(replacement); \
- return true; \
- }
+ if (node == original) \
+ { \
+ node = static_cast<type *>(replacement); \
+ return true; \
+ } \
+ } while (0)
size_t TIntermSymbol::getChildCount() const
{
diff --git a/src/compiler/translator/IntermNode.h b/src/compiler/translator/IntermNode.h
index 66d434e..2380599 100644
--- a/src/compiler/translator/IntermNode.h
+++ b/src/compiler/translator/IntermNode.h
@@ -68,7 +68,7 @@
class TIntermNode : angle::NonCopyable
{
public:
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
TIntermNode()
{
// TODO: Move this to TSourceLoc constructor
diff --git a/src/compiler/translator/ParseContext_autogen.h b/src/compiler/translator/ParseContext_autogen.h
index add5aee..f5eafd8 100644
--- a/src/compiler/translator/ParseContext_autogen.h
+++ b/src/compiler/translator/ParseContext_autogen.h
@@ -2,7 +2,7 @@
// Generated by gen_builtin_symbols.py using data from builtin_variables.json and
// builtin_function_declarations.txt.
//
-// Copyright 2018 The ANGLE Project Authors. All rights reserved.
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
diff --git a/src/compiler/translator/QualifierTypes.h b/src/compiler/translator/QualifierTypes.h
index 071093a..950ba5f 100644
--- a/src/compiler/translator/QualifierTypes.h
+++ b/src/compiler/translator/QualifierTypes.h
@@ -34,9 +34,9 @@
class TQualifierWrapperBase : angle::NonCopyable
{
public:
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
TQualifierWrapperBase(const TSourceLoc &line) : mLine(line) {}
- virtual ~TQualifierWrapperBase(){};
+ virtual ~TQualifierWrapperBase() {}
virtual TQualifierType getType() const = 0;
virtual ImmutableString getQualifierString() const = 0;
virtual unsigned int getRank() const = 0;
@@ -176,7 +176,7 @@
using QualifierSequence = TVector<const TQualifierWrapperBase *>;
public:
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
TTypeQualifierBuilder(const TStorageQualifierWrapper *scope, int shaderVersion);
// Adds the passed qualifier to the end of the sequence.
void appendQualifier(const TQualifierWrapperBase *qualifier);
diff --git a/src/compiler/translator/ShaderStorageBlockFunctionHLSL.cpp b/src/compiler/translator/ShaderStorageBlockFunctionHLSL.cpp
index 60535fe..01b246d 100644
--- a/src/compiler/translator/ShaderStorageBlockFunctionHLSL.cpp
+++ b/src/compiler/translator/ShaderStorageBlockFunctionHLSL.cpp
@@ -409,7 +409,6 @@
out << ssboFunction.typeString << " " << ssboFunction.functionName
<< "(RWByteAddressBuffer buffer, uint loc, " << ssboFunction.typeString
<< " value)\n";
- ;
out << "{\n";
OutputSSBOAtomicMemoryFunctionBody(out, ssboFunction);
@@ -420,7 +419,6 @@
out << ssboFunction.typeString << " " << ssboFunction.functionName
<< "(RWByteAddressBuffer buffer, uint loc, " << ssboFunction.typeString
<< " compare_value, " << ssboFunction.typeString << " value)\n";
- ;
out << "{\n";
OutputSSBOAtomicMemoryFunctionBody(out, ssboFunction);
break;
diff --git a/src/compiler/translator/ShaderStorageBlockOutputHLSL.h b/src/compiler/translator/ShaderStorageBlockOutputHLSL.h
index caceca3..2ef2364 100644
--- a/src/compiler/translator/ShaderStorageBlockOutputHLSL.h
+++ b/src/compiler/translator/ShaderStorageBlockOutputHLSL.h
@@ -22,7 +22,7 @@
struct TReferencedBlock : angle::NonCopyable
{
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
TReferencedBlock(const TInterfaceBlock *block, const TVariable *instanceVariable);
const TInterfaceBlock *block;
const TVariable *instanceVariable; // May be nullptr if the block is not instanced.
diff --git a/src/compiler/translator/StructureHLSL.h b/src/compiler/translator/StructureHLSL.h
index 4d490eb..ba4a8d1 100644
--- a/src/compiler/translator/StructureHLSL.h
+++ b/src/compiler/translator/StructureHLSL.h
@@ -67,7 +67,7 @@
struct TStructProperties : public angle::NonCopyable
{
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
TStructProperties() {}
diff --git a/src/compiler/translator/Symbol.h b/src/compiler/translator/Symbol.h
index ab8a2af..3b74a0b 100644
--- a/src/compiler/translator/Symbol.h
+++ b/src/compiler/translator/Symbol.h
@@ -24,7 +24,7 @@
class TSymbol : angle::NonCopyable
{
public:
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
TSymbol(TSymbolTable *symbolTable,
const ImmutableString &name,
SymbolType symbolType,
diff --git a/src/compiler/translator/SymbolTable_autogen.cpp b/src/compiler/translator/SymbolTable_autogen.cpp
index 47d1545..1ab25b2 100644
--- a/src/compiler/translator/SymbolTable_autogen.cpp
+++ b/src/compiler/translator/SymbolTable_autogen.cpp
@@ -2,7 +2,7 @@
// Generated by gen_builtin_symbols.py using data from builtin_variables.json and
// builtin_function_declarations.txt.
//
-// Copyright 2018 The ANGLE Project Authors. All rights reserved.
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
@@ -2194,7 +2194,7 @@
return &kVar_gl_WorkGroupSize;
}
-}; // namespace BuiltInVariable
+} // namespace BuiltInVariable
namespace BuiltInParameters
{
@@ -7347,7 +7347,7 @@
BuiltInId::texture_USamplerCube1_Float3,
BuiltInName::texture,
TExtension::UNDEFINED,
- BuiltInParameters::p0Y2B2B2B,
+ BuiltInParameters::p0Y2B0B,
2,
StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
EOpCallBuiltInFunction,
@@ -9624,7 +9624,7 @@
BuiltInId::textureGather_USamplerCube1_Float3,
BuiltInName::textureGather,
TExtension::UNDEFINED,
- BuiltInParameters::p0Y2B2B2B,
+ BuiltInParameters::p0Y2B0B,
2,
StaticType::Get<EbtUInt, EbpUndefined, EvqGlobal, 4, 1>(),
EOpCallBuiltInFunction,
diff --git a/src/compiler/translator/SymbolTable_autogen.h b/src/compiler/translator/SymbolTable_autogen.h
index bb8a415..2168743 100644
--- a/src/compiler/translator/SymbolTable_autogen.h
+++ b/src/compiler/translator/SymbolTable_autogen.h
@@ -2,7 +2,7 @@
// Generated by gen_builtin_symbols.py using data from builtin_variables.json and
// builtin_function_declarations.txt.
//
-// Copyright 2018 The ANGLE Project Authors. All rights reserved.
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
diff --git a/src/compiler/translator/SymbolUniqueId.h b/src/compiler/translator/SymbolUniqueId.h
index c9b7648..7d0979e 100644
--- a/src/compiler/translator/SymbolUniqueId.h
+++ b/src/compiler/translator/SymbolUniqueId.h
@@ -19,7 +19,7 @@
class TSymbolUniqueId
{
public:
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
explicit TSymbolUniqueId(const TSymbol &symbol);
constexpr TSymbolUniqueId(const TSymbolUniqueId &) = default;
TSymbolUniqueId &operator =(const TSymbolUniqueId &);
diff --git a/src/compiler/translator/Types.h b/src/compiler/translator/Types.h
index 7491edf..e6bfd1c 100644
--- a/src/compiler/translator/Types.h
+++ b/src/compiler/translator/Types.h
@@ -30,7 +30,7 @@
class TField : angle::NonCopyable
{
public:
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
TField(TType *type, const ImmutableString &name, const TSourceLoc &line, SymbolType symbolType)
: mType(type), mName(name), mLine(line), mSymbolType(symbolType)
{
@@ -91,7 +91,7 @@
class TType
{
public:
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
TType();
explicit TType(TBasicType t, unsigned char ps = 1, unsigned char ss = 1);
TType(TBasicType t,
diff --git a/src/compiler/translator/builtin_symbols_hash_autogen.txt b/src/compiler/translator/builtin_symbols_hash_autogen.txt
index b79f34f..50754b5 100644
--- a/src/compiler/translator/builtin_symbols_hash_autogen.txt
+++ b/src/compiler/translator/builtin_symbols_hash_autogen.txt
@@ -1 +1 @@
-87bb6e2c1015c9e9aaf2a89e1595cd30
\ No newline at end of file
+c0555364e16391744b56e1f5d9c614c0
\ No newline at end of file
diff --git a/src/compiler/translator/gen_builtin_symbols.py b/src/compiler/translator/gen_builtin_symbols.py
index 765a802..e519391 100644
--- a/src/compiler/translator/gen_builtin_symbols.py
+++ b/src/compiler/translator/gen_builtin_symbols.py
@@ -187,7 +187,7 @@
{get_variable_definitions}
-}}; // namespace BuiltInVariable
+}} // namespace BuiltInVariable
namespace BuiltInParameters
{{
diff --git a/src/compiler/translator/glslang.l b/src/compiler/translator/glslang.l
index c6aa91d..8af29a8 100644
--- a/src/compiler/translator/glslang.l
+++ b/src/compiler/translator/glslang.l
@@ -40,6 +40,8 @@
#endif
#if defined(__clang__)
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+// Flex isn't semi-colon clean.
+#pragma clang diagnostic ignored "-Wextra-semi-stmt"
#endif
}
diff --git a/src/compiler/translator/glslang.y b/src/compiler/translator/glslang.y
index 262db79..5d113e3 100644
--- a/src/compiler/translator/glslang.y
+++ b/src/compiler/translator/glslang.y
@@ -123,41 +123,41 @@
} \
} while (0)
-#define VERTEX_ONLY(S, L) { \
+#define VERTEX_ONLY(S, L) do { \
if (context->getShaderType() != GL_VERTEX_SHADER) { \
context->error(L, " supported in vertex shaders only", S); \
} \
-}
+} while (0)
-#define COMPUTE_ONLY(S, L) { \
+#define COMPUTE_ONLY(S, L) do { \
if (context->getShaderType() != GL_COMPUTE_SHADER) { \
context->error(L, " supported in compute shaders only", S); \
} \
-}
+} while (0)
#define ES2_ONLY(S, L) { \
- if (context->getShaderVersion() != 100) { \
+ if (context->getShaderVersion() != 100) do { \
context->error(L, " supported in GLSL ES 1.00 only", S); \
} \
-}
+} while (0)
-#define ES3_OR_NEWER(TOKEN, LINE, REASON) { \
+#define ES3_OR_NEWER(TOKEN, LINE, REASON) do { \
if (context->getShaderVersion() < 300) { \
context->error(LINE, REASON " supported in GLSL ES 3.00 and above only", TOKEN); \
} \
-}
+} while (0)
-#define ES3_OR_NEWER_OR_MULTIVIEW(TOKEN, LINE, REASON) { \
+#define ES3_OR_NEWER_OR_MULTIVIEW(TOKEN, LINE, REASON) do { \
if (context->getShaderVersion() < 300 && !context->isExtensionEnabled(TExtension::OVR_multiview)) { \
context->error(LINE, REASON " supported in GLSL ES 3.00 and above only", TOKEN); \
} \
-}
+} while (0)
-#define ES3_1_ONLY(TOKEN, LINE, REASON) { \
+#define ES3_1_ONLY(TOKEN, LINE, REASON) do { \
if (context->getShaderVersion() != 310) { \
context->error(LINE, REASON " supported in GLSL ES 3.10 only", TOKEN); \
} \
-}
+} while (0)
%}
%token <lex> INVARIANT HIGH_PRECISION MEDIUM_PRECISION LOW_PRECISION PRECISION
diff --git a/src/compiler/translator/glslang_lex.cpp b/src/compiler/translator/glslang_lex.cpp
index 01d59a6..860eb3f 100644
--- a/src/compiler/translator/glslang_lex.cpp
+++ b/src/compiler/translator/glslang_lex.cpp
@@ -25,6 +25,8 @@
#endif
#if defined(__clang__)
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+// Flex isn't semi-colon clean.
+#pragma clang diagnostic ignored "-Wextra-semi-stmt"
#endif
diff --git a/src/compiler/translator/glslang_tab.cpp b/src/compiler/translator/glslang_tab.cpp
index ae76e36..d26de9a 100644
--- a/src/compiler/translator/glslang_tab.cpp
+++ b/src/compiler/translator/glslang_tab.cpp
@@ -392,41 +392,41 @@
} \
} while (0)
-#define VERTEX_ONLY(S, L) { \
+#define VERTEX_ONLY(S, L) do { \
if (context->getShaderType() != GL_VERTEX_SHADER) { \
context->error(L, " supported in vertex shaders only", S); \
} \
-}
+} while (0)
-#define COMPUTE_ONLY(S, L) { \
+#define COMPUTE_ONLY(S, L) do { \
if (context->getShaderType() != GL_COMPUTE_SHADER) { \
context->error(L, " supported in compute shaders only", S); \
} \
-}
+} while (0)
-#define ES2_ONLY(S, L) { \
+#define ES2_ONLY(S, L) do { \
if (context->getShaderVersion() != 100) { \
context->error(L, " supported in GLSL ES 1.00 only", S); \
} \
-}
+} while (0)
-#define ES3_OR_NEWER(TOKEN, LINE, REASON) { \
+#define ES3_OR_NEWER(TOKEN, LINE, REASON) do { \
if (context->getShaderVersion() < 300) { \
context->error(LINE, REASON " supported in GLSL ES 3.00 and above only", TOKEN); \
} \
-}
+} while (0)
-#define ES3_OR_NEWER_OR_MULTIVIEW(TOKEN, LINE, REASON) { \
+#define ES3_OR_NEWER_OR_MULTIVIEW(TOKEN, LINE, REASON) do { \
if (context->getShaderVersion() < 300 && !context->isExtensionEnabled(TExtension::OVR_multiview)) { \
context->error(LINE, REASON " supported in GLSL ES 3.00 and above only", TOKEN); \
} \
-}
+} while (0)
-#define ES3_1_ONLY(TOKEN, LINE, REASON) { \
+#define ES3_1_ONLY(TOKEN, LINE, REASON) do { \
if (context->getShaderVersion() != 310) { \
context->error(LINE, REASON " supported in GLSL ES 3.10 only", TOKEN); \
} \
-}
+} while (0)
diff --git a/src/compiler/translator/tree_util/BuiltIn_autogen.h b/src/compiler/translator/tree_util/BuiltIn_autogen.h
index 510092b..65b1ba7 100644
--- a/src/compiler/translator/tree_util/BuiltIn_autogen.h
+++ b/src/compiler/translator/tree_util/BuiltIn_autogen.h
@@ -2,7 +2,7 @@
// Generated by gen_builtin_symbols.py using data from builtin_variables.json and
// builtin_function_declarations.txt.
//
-// Copyright 2018 The ANGLE Project Authors. All rights reserved.
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
diff --git a/src/compiler/translator/tree_util/IntermTraverse.h b/src/compiler/translator/tree_util/IntermTraverse.h
index 094261a..30687a4 100644
--- a/src/compiler/translator/tree_util/IntermTraverse.h
+++ b/src/compiler/translator/tree_util/IntermTraverse.h
@@ -33,7 +33,7 @@
class TIntermTraverser : angle::NonCopyable
{
public:
- POOL_ALLOCATOR_NEW_DELETE();
+ POOL_ALLOCATOR_NEW_DELETE
TIntermTraverser(bool preVisit,
bool inVisit,
bool postVisit,
diff --git a/src/feature_support_util/feature_support_util.cpp b/src/feature_support_util/feature_support_util.cpp
index 1c70d5d..dd73243 100644
--- a/src/feature_support_util/feature_support_util.cpp
+++ b/src/feature_support_util/feature_support_util.cpp
@@ -13,8 +13,8 @@
#include <string.h>
#include "common/platform.h"
#if defined(ANGLE_PLATFORM_ANDROID)
-#include <android/log.h>
-#include <unistd.h>
+# include <android/log.h>
+# include <unistd.h>
#endif
#include <fstream>
#include <list>
@@ -27,21 +27,21 @@
// Define ANGLE_FEATURE_UTIL_LOG_VERBOSE if you want VERBOSE to output
// ANGLE_FEATURE_UTIL_LOG_VERBOSE is automatically defined when is_debug = true
-#define ERR(...) __android_log_print(ANDROID_LOG_ERROR, "ANGLE", __VA_ARGS__)
-#define WARN(...) __android_log_print(ANDROID_LOG_WARN, "ANGLE", __VA_ARGS__)
-#define INFO(...) __android_log_print(ANDROID_LOG_INFO, "ANGLE", __VA_ARGS__)
-#define DEBUG(...) __android_log_print(ANDROID_LOG_DEBUG, "ANGLE", __VA_ARGS__)
-#ifdef ANGLE_FEATURE_UTIL_LOG_VERBOSE
-#define VERBOSE(...) __android_log_print(ANDROID_LOG_VERBOSE, "ANGLE", __VA_ARGS__)
-#else
-#define VERBOSE(...) ((void)0)
-#endif
+# define ERR(...) __android_log_print(ANDROID_LOG_ERROR, "ANGLE", __VA_ARGS__)
+# define WARN(...) __android_log_print(ANDROID_LOG_WARN, "ANGLE", __VA_ARGS__)
+# define INFO(...) __android_log_print(ANDROID_LOG_INFO, "ANGLE", __VA_ARGS__)
+# define DEBUG(...) __android_log_print(ANDROID_LOG_DEBUG, "ANGLE", __VA_ARGS__)
+# ifdef ANGLE_FEATURE_UTIL_LOG_VERBOSE
+# define VERBOSE(...) __android_log_print(ANDROID_LOG_VERBOSE, "ANGLE", __VA_ARGS__)
+# else
+# define VERBOSE(...) ((void)0)
+# endif
#else // defined(ANDROID)
-#define ERR(...) printf(__VA_ARGS__);
-#define WARN(...) printf(__VA_ARGS__);
-#define INFO(...) printf(__VA_ARGS__);
-#define DEBUG(...) printf(__VA_ARGS__);
-#define VERBOSE(...) printf(__VA_ARGS__);
+# define ERR(...) printf(__VA_ARGS__)
+# define WARN(...) printf(__VA_ARGS__)
+# define INFO(...) printf(__VA_ARGS__)
+# define DEBUG(...) printf(__VA_ARGS__)
+# define VERBOSE(...) printf(__VA_ARGS__)
#endif // defined(ANDROID)
// JSON values are generally composed of either:
@@ -845,14 +845,14 @@
return false;
}
-// TODO (http://anglebug.com/3036): Restore the real code
+ // TODO (http://anglebug.com/3036): Restore the real code
angle::SystemInfo *systemInfo = new angle::SystemInfo;
systemInfo->gpus.resize(1);
GPUDeviceInfo &gpu = systemInfo->gpus[0];
- gpu.vendorId = 0xFEFEFEFE;
- gpu.deviceId = 0xFEEEFEEE;
- gpu.driverVendor = "Foo";
- gpu.driverVersion = "1.2.3.4";
+ gpu.vendorId = 0xFEFEFEFE;
+ gpu.deviceId = 0xFEEEFEEE;
+ gpu.driverVendor = "Foo";
+ gpu.driverVersion = "1.2.3.4";
*systemInfoHandle = systemInfo;
return true;
diff --git a/src/libANGLE/Config.cpp b/src/libANGLE/Config.cpp
index 2ecdb6d..316e7f9 100644
--- a/src/libANGLE/Config.cpp
+++ b/src/libANGLE/Config.cpp
@@ -137,11 +137,12 @@
bool operator()(const Config &x, const Config &y) const
{
-#define SORT(attribute) \
- if (x.attribute != y.attribute) \
- { \
- return x.attribute < y.attribute; \
- }
+#define SORT(attribute) \
+ do \
+ { \
+ if (x.attribute != y.attribute) \
+ return x.attribute < y.attribute; \
+ } while (0)
static_assert(EGL_NONE < EGL_SLOW_CONFIG && EGL_SLOW_CONFIG < EGL_NON_CONFORMANT_CONFIG,
"Unexpected EGL enum value.");
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index 0ffd4b5..10abb77 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -50,12 +50,6 @@
{
namespace
{
-
-#define ANGLE_HANDLE_ERR(X) \
- (void)(X); \
- return;
-#define ANGLE_CONTEXT_TRY(EXPR) ANGLE_TRY_TEMPLATE(EXPR, ANGLE_HANDLE_ERR);
-
template <typename T>
std::vector<Path *> GatherPaths(PathManager &resourceManager,
GLsizei numPaths,
diff --git a/src/libANGLE/Context.inl.h b/src/libANGLE/Context.inl.h
index 6f138de..4738160 100644
--- a/src/libANGLE/Context.inl.h
+++ b/src/libANGLE/Context.inl.h
@@ -17,7 +17,7 @@
#define ANGLE_HANDLE_ERR(X) \
(void)(X); \
return;
-#define ANGLE_CONTEXT_TRY(EXPR) ANGLE_TRY_TEMPLATE(EXPR, ANGLE_HANDLE_ERR);
+#define ANGLE_CONTEXT_TRY(EXPR) ANGLE_TRY_TEMPLATE(EXPR, ANGLE_HANDLE_ERR)
namespace gl
{
diff --git a/src/libANGLE/Device.h b/src/libANGLE/Device.h
index 9e02620..1096e95 100644
--- a/src/libANGLE/Device.h
+++ b/src/libANGLE/Device.h
@@ -19,7 +19,7 @@
namespace rx
{
class DeviceImpl;
-}
+} // namespace rx
namespace egl
{
@@ -33,7 +33,7 @@
EGLLabelKHR getLabel() const override;
Error getDevice(EGLAttrib *value);
- Display *getOwningDisplay() { return mOwningDisplay; };
+ Display *getOwningDisplay() { return mOwningDisplay; }
EGLint getType();
const DeviceExtensions &getExtensions() const;
diff --git a/src/libANGLE/Error.h b/src/libANGLE/Error.h
index 06fc5c7..37df5b0 100644
--- a/src/libANGLE/Error.h
+++ b/src/libANGLE/Error.h
@@ -129,7 +129,7 @@
} while (0)
#define ANGLE_RETURN(X) return X;
-#define ANGLE_TRY(EXPR) ANGLE_TRY_TEMPLATE(EXPR, ANGLE_RETURN);
+#define ANGLE_TRY(EXPR) ANGLE_TRY_TEMPLATE(EXPR, ANGLE_RETURN)
// TODO(jmadill): Remove after EGL error refactor. http://anglebug.com/3041
#define ANGLE_SWALLOW_ERR(EXPR) \
@@ -147,13 +147,14 @@
#undef ANGLE_CONCAT1
#define ANGLE_CHECK(CONTEXT, EXPR, MESSAGE, ERROR) \
+ do \
{ \
if (ANGLE_UNLIKELY(!(EXPR))) \
{ \
CONTEXT->handleError(ERROR, MESSAGE, __FILE__, ANGLE_FUNCTION, __LINE__); \
return angle::Result::Stop; \
} \
- }
+ } while (0)
namespace angle
{
diff --git a/src/libANGLE/Framebuffer.cpp b/src/libANGLE/Framebuffer.cpp
index c4e83d1..ec99a04 100644
--- a/src/libANGLE/Framebuffer.cpp
+++ b/src/libANGLE/Framebuffer.cpp
@@ -143,7 +143,7 @@
}
return true;
-};
+}
bool CheckAttachmentSampleCompleteness(const Context *context,
const FramebufferAttachment &attachment,
diff --git a/src/libANGLE/WorkerThread.cpp b/src/libANGLE/WorkerThread.cpp
index 565e959..65ca66f 100644
--- a/src/libANGLE/WorkerThread.cpp
+++ b/src/libANGLE/WorkerThread.cpp
@@ -121,7 +121,7 @@
class AsyncWorkerPool final : public WorkerThreadPool
{
public:
- AsyncWorkerPool(size_t maxThreads) : mMaxThreads(maxThreads), mRunningThreads(0){};
+ AsyncWorkerPool(size_t maxThreads) : mMaxThreads(maxThreads), mRunningThreads(0) {}
~AsyncWorkerPool() override = default;
std::shared_ptr<WaitableEvent> postWorkerTask(std::shared_ptr<Closure> task) override;
diff --git a/src/libANGLE/renderer/EGLSyncImpl.h b/src/libANGLE/renderer/EGLSyncImpl.h
index ebf8f79..9d910c4 100644
--- a/src/libANGLE/renderer/EGLSyncImpl.h
+++ b/src/libANGLE/renderer/EGLSyncImpl.h
@@ -25,8 +25,8 @@
class EGLSyncImpl : angle::NonCopyable
{
public:
- EGLSyncImpl(){};
- virtual ~EGLSyncImpl(){};
+ EGLSyncImpl() {}
+ virtual ~EGLSyncImpl() {}
virtual void onDestroy(const egl::Display *display) {}
diff --git a/src/libANGLE/renderer/ProgramImpl.h b/src/libANGLE/renderer/ProgramImpl.h
index 384ddae..bd19069 100644
--- a/src/libANGLE/renderer/ProgramImpl.h
+++ b/src/libANGLE/renderer/ProgramImpl.h
@@ -35,7 +35,7 @@
class LinkEvent : angle::NonCopyable
{
public:
- virtual ~LinkEvent(){};
+ virtual ~LinkEvent() {}
// Please be aware that these methods may be called under a gl::Context other
// than the one where the LinkEvent was created.
diff --git a/src/libANGLE/renderer/d3d/ImageD3D.h b/src/libANGLE/renderer/d3d/ImageD3D.h
index 04dd38b..70b1e12 100644
--- a/src/libANGLE/renderer/d3d/ImageD3D.h
+++ b/src/libANGLE/renderer/d3d/ImageD3D.h
@@ -38,7 +38,7 @@
{
public:
ImageD3D();
- virtual ~ImageD3D(){};
+ virtual ~ImageD3D() {}
GLsizei getWidth() const { return mWidth; }
GLsizei getHeight() const { return mHeight; }
diff --git a/src/libANGLE/renderer/d3d/ProgramD3D.cpp b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
index d43e560..edd6d2a 100644
--- a/src/libANGLE/renderer/d3d/ProgramD3D.cpp
+++ b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
@@ -263,7 +263,7 @@
*sizeOut = sizeIter->second;
return true;
-};
+}
bool InterfaceBlockInfo::getBlockMemberInfo(const std::string &name,
const std::string &mappedName,
@@ -278,7 +278,7 @@
*infoOut = infoIter->second;
return true;
-};
+}
// Helper class that gathers uniform info from the default uniform block.
class UniformEncodingVisitorD3D : public sh::BlockEncoderVisitor
diff --git a/src/libANGLE/renderer/d3d/RendererD3D.h b/src/libANGLE/renderer/d3d/RendererD3D.h
index 888c5ca..18c7b8e 100644
--- a/src/libANGLE/renderer/d3d/RendererD3D.h
+++ b/src/libANGLE/renderer/d3d/RendererD3D.h
@@ -92,7 +92,7 @@
// ANGLE_TRY for HRESULT errors.
#define ANGLE_TRY_HR(CONTEXT, EXPR, MESSAGE) \
- \
+ do \
{ \
auto ANGLE_LOCAL_VAR = (EXPR); \
if (ANGLE_UNLIKELY(FAILED(ANGLE_LOCAL_VAR))) \
@@ -100,16 +100,17 @@
CONTEXT->handleResult(ANGLE_LOCAL_VAR, MESSAGE, __FILE__, ANGLE_FUNCTION, __LINE__); \
return angle::Result::Stop; \
} \
- }
+ } while (0)
#define ANGLE_CHECK_HR(CONTEXT, EXPR, MESSAGE, ERROR) \
+ do \
{ \
if (ANGLE_UNLIKELY(!(EXPR))) \
{ \
CONTEXT->handleResult(ERROR, MESSAGE, __FILE__, ANGLE_FUNCTION, __LINE__); \
return angle::Result::Stop; \
} \
- }
+ } while (0)
#define ANGLE_HR_UNREACHABLE(context) \
UNREACHABLE(); \
diff --git a/src/libANGLE/renderer/d3d/TextureD3D.h b/src/libANGLE/renderer/d3d/TextureD3D.h
index 8d2dfaf..4eb43b5 100644
--- a/src/libANGLE/renderer/d3d/TextureD3D.h
+++ b/src/libANGLE/renderer/d3d/TextureD3D.h
@@ -160,7 +160,7 @@
angle::Result releaseTexStorage(const gl::Context *context);
- GLuint getBaseLevel() const { return mBaseLevel; };
+ GLuint getBaseLevel() const { return mBaseLevel; }
virtual void markAllImagesDirty() = 0;
diff --git a/src/libANGLE/renderer/d3d/VertexBuffer.h b/src/libANGLE/renderer/d3d/VertexBuffer.h
index 2376fbb..2b91b9f 100644
--- a/src/libANGLE/renderer/d3d/VertexBuffer.h
+++ b/src/libANGLE/renderer/d3d/VertexBuffer.h
@@ -62,7 +62,7 @@
unsigned int getSerial() const;
// This may be overridden (e.g. by VertexBuffer11) if necessary.
- virtual void hintUnmapResource(){};
+ virtual void hintUnmapResource() {}
// Reference counting.
void addRef();
diff --git a/src/libANGLE/renderer/d3d/d3d11/Blit11Helper_autogen.inc b/src/libANGLE/renderer/d3d/d3d11/Blit11Helper_autogen.inc
index 5c9434c..5662700 100644
--- a/src/libANGLE/renderer/d3d/d3d11/Blit11Helper_autogen.inc
+++ b/src/libANGLE/renderer/d3d/d3d11/Blit11Helper_autogen.inc
@@ -1,7 +1,7 @@
// GENERATED FILE - DO NOT EDIT.
// Generated by gen_blit11helper.py.
//
-// Copyright 2018 The ANGLE Project Authors. All rights reserved.
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
@@ -914,7 +914,7 @@
UNREACHABLE();
return BLITSHADER_INVALID;
}
-};
+}
angle::Result Blit11::mapBlitShader(const gl::Context *context,
BlitShaderType blitShaderType)
diff --git a/src/libANGLE/renderer/d3d/d3d11/Renderer11.h b/src/libANGLE/renderer/d3d/d3d11/Renderer11.h
index dcdd4c4..9861b9b 100644
--- a/src/libANGLE/renderer/d3d/d3d11/Renderer11.h
+++ b/src/libANGLE/renderer/d3d/d3d11/Renderer11.h
@@ -317,9 +317,9 @@
// D3D11-renderer specific methods
ID3D11Device *getDevice() { return mDevice; }
void *getD3DDevice() override;
- ID3D11DeviceContext *getDeviceContext() { return mDeviceContext; };
- ID3D11DeviceContext1 *getDeviceContext1IfSupported() { return mDeviceContext1; };
- IDXGIFactory *getDxgiFactory() { return mDxgiFactory; };
+ ID3D11DeviceContext *getDeviceContext() { return mDeviceContext; }
+ ID3D11DeviceContext1 *getDeviceContext1IfSupported() { return mDeviceContext1; }
+ IDXGIFactory *getDxgiFactory() { return mDxgiFactory; }
angle::Result getBlendState(const gl::Context *context,
const d3d11::BlendStateKey &key,
@@ -388,7 +388,7 @@
bool stencilBlit);
bool isES3Capable() const;
- const Renderer11DeviceCaps &getRenderer11DeviceCaps() const { return mRenderer11DeviceCaps; };
+ const Renderer11DeviceCaps &getRenderer11DeviceCaps() const { return mRenderer11DeviceCaps; }
RendererClass getRendererClass() const override;
StateManager11 *getStateManager() { return &mStateManager; }
diff --git a/src/libANGLE/renderer/d3d/d3d11/VertexArray11.cpp b/src/libANGLE/renderer/d3d/d3d11/VertexArray11.cpp
index 9fcd8a5..e88b906 100644
--- a/src/libANGLE/renderer/d3d/d3d11/VertexArray11.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/VertexArray11.cpp
@@ -97,9 +97,9 @@
break;
}
- ANGLE_VERTEX_INDEX_CASES(ANGLE_VERTEX_DIRTY_ATTRIB_FUNC);
- ANGLE_VERTEX_INDEX_CASES(ANGLE_VERTEX_DIRTY_BINDING_FUNC);
- ANGLE_VERTEX_INDEX_CASES(ANGLE_VERTEX_DIRTY_BUFFER_DATA_FUNC);
+ ANGLE_VERTEX_INDEX_CASES(ANGLE_VERTEX_DIRTY_ATTRIB_FUNC)
+ ANGLE_VERTEX_INDEX_CASES(ANGLE_VERTEX_DIRTY_BINDING_FUNC)
+ ANGLE_VERTEX_INDEX_CASES(ANGLE_VERTEX_DIRTY_BUFFER_DATA_FUNC)
default:
UNREACHABLE();
diff --git a/src/libANGLE/renderer/d3d/d3d11/d3d11_blit_shaders_autogen.gni b/src/libANGLE/renderer/d3d/d3d11/d3d11_blit_shaders_autogen.gni
index 185810e..988ae52 100644
--- a/src/libANGLE/renderer/d3d/d3d11/d3d11_blit_shaders_autogen.gni
+++ b/src/libANGLE/renderer/d3d/d3d11/d3d11_blit_shaders_autogen.gni
@@ -1,7 +1,7 @@
# GENERATED FILE - DO NOT EDIT.
# Generated by gen_blit11helper.py.
#
-# Copyright 2018 The ANGLE Project Authors. All rights reserved.
+# Copyright 2019 The ANGLE Project Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
diff --git a/src/libANGLE/renderer/d3d/d3d11/gen_blit11helper.py b/src/libANGLE/renderer/d3d/d3d11/gen_blit11helper.py
index 3b04689..d262b43 100644
--- a/src/libANGLE/renderer/d3d/d3d11/gen_blit11helper.py
+++ b/src/libANGLE/renderer/d3d/d3d11/gen_blit11helper.py
@@ -45,7 +45,7 @@
UNREACHABLE();
return BLITSHADER_INVALID;
}}
-}};
+}}
angle::Result Blit11::mapBlitShader(const gl::Context *context,
BlitShaderType blitShaderType)
diff --git a/src/libANGLE/renderer/gl/QueryGL.cpp b/src/libANGLE/renderer/gl/QueryGL.cpp
index 23f4ef6..459e555 100644
--- a/src/libANGLE/renderer/gl/QueryGL.cpp
+++ b/src/libANGLE/renderer/gl/QueryGL.cpp
@@ -326,7 +326,7 @@
else if (nativegl::SupportsOcclusionQueries(mFunctions))
{
mSyncProvider.reset(new SyncProviderGLQuery(mFunctions));
- ANGLE_TRY(mSyncProvider->init(context, gl::QueryType::AnySamples))
+ ANGLE_TRY(mSyncProvider->init(context, gl::QueryType::AnySamples));
}
else
{
diff --git a/src/libANGLE/renderer/gl/VertexArrayGL.cpp b/src/libANGLE/renderer/gl/VertexArrayGL.cpp
index 897a11c..dc8264f 100644
--- a/src/libANGLE/renderer/gl/VertexArrayGL.cpp
+++ b/src/libANGLE/renderer/gl/VertexArrayGL.cpp
@@ -690,9 +690,9 @@
case VertexArray::DIRTY_BIT_ELEMENT_ARRAY_BUFFER_DATA:
break;
- ANGLE_VERTEX_INDEX_CASES(ANGLE_DIRTY_ATTRIB_FUNC);
- ANGLE_VERTEX_INDEX_CASES(ANGLE_DIRTY_BINDING_FUNC);
- ANGLE_VERTEX_INDEX_CASES(ANGLE_DIRTY_BUFFER_DATA_FUNC);
+ ANGLE_VERTEX_INDEX_CASES(ANGLE_DIRTY_ATTRIB_FUNC)
+ ANGLE_VERTEX_INDEX_CASES(ANGLE_DIRTY_BINDING_FUNC)
+ ANGLE_VERTEX_INDEX_CASES(ANGLE_DIRTY_BUFFER_DATA_FUNC)
default:
UNREACHABLE();
diff --git a/src/libANGLE/renderer/gl/egl/FunctionsEGL.cpp b/src/libANGLE/renderer/gl/egl/FunctionsEGL.cpp
index 7c88f65..ac03341 100644
--- a/src/libANGLE/renderer/gl/egl/FunctionsEGL.cpp
+++ b/src/libANGLE/renderer/gl/egl/FunctionsEGL.cpp
@@ -145,11 +145,14 @@
egl::Error FunctionsEGL::initialize(EGLNativeDisplayType nativeDisplay)
{
-#define ANGLE_GET_PROC_OR_ERROR(MEMBER, NAME) \
- if (!SetPtr(MEMBER, getProcAddress(#NAME))) \
- { \
- return egl::EglNotInitialized() << "Could not load EGL entry point " #NAME; \
- }
+#define ANGLE_GET_PROC_OR_ERROR(MEMBER, NAME) \
+ do \
+ { \
+ if (!SetPtr(MEMBER, getProcAddress(#NAME))) \
+ { \
+ return egl::EglNotInitialized() << "Could not load EGL entry point " #NAME; \
+ } \
+ } while (0)
ANGLE_GET_PROC_OR_ERROR(&mFnPtrs->bindAPIPtr, eglBindAPI);
ANGLE_GET_PROC_OR_ERROR(&mFnPtrs->chooseConfigPtr, eglChooseConfig);
diff --git a/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp b/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp
index bb9fb6a..1304622 100644
--- a/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp
+++ b/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp
@@ -150,16 +150,19 @@
getProc = reinterpret_cast<PFNGETPROCPROC>(glXGetProcAddress);
#endif
-#define GET_PROC_OR_ERROR(MEMBER, NAME) \
- if (!GetProc(getProc, MEMBER, #NAME)) \
- { \
- *errorString = "Could not load GLX entry point " #NAME; \
- return false; \
- }
+#define GET_PROC_OR_ERROR(MEMBER, NAME) \
+ do \
+ { \
+ if (!GetProc(getProc, MEMBER, #NAME)) \
+ { \
+ *errorString = "Could not load GLX entry point " #NAME; \
+ return false; \
+ } \
+ } while (0)
#if !defined(ANGLE_LINK_GLX)
# define GET_FNPTR_OR_ERROR(MEMBER, NAME) GET_PROC_OR_ERROR(MEMBER, NAME)
#else
-# define GET_FNPTR_OR_ERROR(MEMBER, NAME) *MEMBER = NAME;
+# define GET_FNPTR_OR_ERROR(MEMBER, NAME) *MEMBER = NAME
#endif
// GLX 1.0
diff --git a/src/libANGLE/renderer/gl/wgl/DisplayWGL.cpp b/src/libANGLE/renderer/gl/wgl/DisplayWGL.cpp
index bf32090..2a41387 100644
--- a/src/libANGLE/renderer/gl/wgl/DisplayWGL.cpp
+++ b/src/libANGLE/renderer/gl/wgl/DisplayWGL.cpp
@@ -1006,19 +1006,22 @@
HDC workerDeviceContext = nullptr;
HGLRC workerContext = nullptr;
-#define CLEANUP_ON_ERROR() \
- if (workerContext) \
- { \
- mFunctionsWGL->deleteContext(workerContext); \
- } \
- if (workerDeviceContext) \
- { \
- mFunctionsWGL->releasePbufferDCARB(workerPbuffer, workerDeviceContext); \
- } \
- if (workerPbuffer) \
- { \
- mFunctionsWGL->destroyPbufferARB(workerPbuffer); \
- }
+#define CLEANUP_ON_ERROR() \
+ do \
+ { \
+ if (workerContext) \
+ { \
+ mFunctionsWGL->deleteContext(workerContext); \
+ } \
+ if (workerDeviceContext) \
+ { \
+ mFunctionsWGL->releasePbufferDCARB(workerPbuffer, workerDeviceContext); \
+ } \
+ if (workerPbuffer) \
+ { \
+ mFunctionsWGL->destroyPbufferARB(workerPbuffer); \
+ } \
+ } while (0)
const int attribs[] = {0, 0};
workerPbuffer = mFunctionsWGL->createPbufferARB(mDeviceContext, mPixelFormat, 1, 1, attribs);
diff --git a/src/libANGLE/renderer/renderer_utils.cpp b/src/libANGLE/renderer/renderer_utils.cpp
index ed4b629..4cbc899 100644
--- a/src/libANGLE/renderer/renderer_utils.cpp
+++ b/src/libANGLE/renderer/renderer_utils.cpp
@@ -577,7 +577,7 @@
// unsigned integers(with wrapping on overflow conditions)." ANGLE does not fully handle
// these rules, an overflow error is returned if the start vertex cannot be stored in a
// 32-bit signed integer.
- ANGLE_CHECK_GL_MATH(contextImpl, startVertexInt64 <= std::numeric_limits<GLint>::max())
+ ANGLE_CHECK_GL_MATH(contextImpl, startVertexInt64 <= std::numeric_limits<GLint>::max());
*firstVertexOut = static_cast<GLint>(startVertexInt64);
return angle::Result::Continue;
diff --git a/src/libANGLE/renderer/vulkan/ContextVk.cpp b/src/libANGLE/renderer/vulkan/ContextVk.cpp
index 9af3932..cda4488 100644
--- a/src/libANGLE/renderer/vulkan/ContextVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ContextVk.cpp
@@ -326,7 +326,7 @@
for (size_t attribIndex : mDirtyDefaultAttribsMask)
{
- ANGLE_TRY(updateDefaultAttribute(attribIndex))
+ ANGLE_TRY(updateDefaultAttribute(attribIndex));
}
mDirtyDefaultAttribsMask.reset();
diff --git a/src/libANGLE/renderer/vulkan/GlslangWrapper.cpp b/src/libANGLE/renderer/vulkan/GlslangWrapper.cpp
index 132fe1b..d0677d6 100644
--- a/src/libANGLE/renderer/vulkan/GlslangWrapper.cpp
+++ b/src/libANGLE/renderer/vulkan/GlslangWrapper.cpp
@@ -8,6 +8,9 @@
#include "libANGLE/renderer/vulkan/GlslangWrapper.h"
+// glslang has issues with some specific warnings.
+ANGLE_DISABLE_EXTRA_SEMI_WARNING
+
// glslang's version of ShaderLang.h, not to be confused with ANGLE's.
#include <glslang/Public/ShaderLang.h>
@@ -15,6 +18,8 @@
#include <SPIRV/GlslangToSpv.h>
#include <StandAlone/ResourceLimits.h>
+ANGLE_REENABLE_EXTRA_SEMI_WARNING
+
#include <array>
#include "common/FixedVector.h"
diff --git a/src/libANGLE/renderer/vulkan/SyncVk.cpp b/src/libANGLE/renderer/vulkan/SyncVk.cpp
index 0de3afa..fb2beba 100644
--- a/src/libANGLE/renderer/vulkan/SyncVk.cpp
+++ b/src/libANGLE/renderer/vulkan/SyncVk.cpp
@@ -241,7 +241,7 @@
UNREACHABLE();
*outResult = EGL_FALSE;
return egl::Error(EGL_BAD_ALLOC);
- };
+ }
}
egl::Error EGLSyncVk::serverWait(const egl::Display *display, EGLint flags)
diff --git a/src/libANGLE/renderer/vulkan/UtilsVk.cpp b/src/libANGLE/renderer/vulkan/UtilsVk.cpp
index 0d403a5..1fba26f 100644
--- a/src/libANGLE/renderer/vulkan/UtilsVk.cpp
+++ b/src/libANGLE/renderer/vulkan/UtilsVk.cpp
@@ -620,7 +620,7 @@
vk::CommandBuffer *commandBuffer;
if (!framebuffer->appendToStartedRenderPass(renderer->getCurrentQueueSerial(), &commandBuffer))
{
- ANGLE_TRY(framebuffer->startNewRenderPass(contextVk, &commandBuffer))
+ ANGLE_TRY(framebuffer->startNewRenderPass(contextVk, &commandBuffer));
}
ImageClearShaderParams shaderParams;
diff --git a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
index 1cdcbaa..16a5b4d 100644
--- a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
+++ b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
@@ -357,7 +357,7 @@
(*attribBits)[INDEX].reset(); \
break;
- ANGLE_VERTEX_INDEX_CASES(ANGLE_VERTEX_DIRTY_ATTRIB_FUNC);
+ ANGLE_VERTEX_INDEX_CASES(ANGLE_VERTEX_DIRTY_ATTRIB_FUNC)
#define ANGLE_VERTEX_DIRTY_BINDING_FUNC(INDEX) \
case gl::VertexArray::DIRTY_BIT_BINDING_0 + INDEX: \
@@ -367,7 +367,7 @@
(*bindingBits)[INDEX].reset(); \
break;
- ANGLE_VERTEX_INDEX_CASES(ANGLE_VERTEX_DIRTY_BINDING_FUNC);
+ ANGLE_VERTEX_INDEX_CASES(ANGLE_VERTEX_DIRTY_BINDING_FUNC)
#define ANGLE_VERTEX_DIRTY_BUFFER_DATA_FUNC(INDEX) \
case gl::VertexArray::DIRTY_BIT_BUFFER_DATA_0 + INDEX: \
@@ -375,7 +375,7 @@
bindings[attribs[INDEX].bindingIndex], INDEX)); \
break;
- ANGLE_VERTEX_INDEX_CASES(ANGLE_VERTEX_DIRTY_BUFFER_DATA_FUNC);
+ ANGLE_VERTEX_INDEX_CASES(ANGLE_VERTEX_DIRTY_BUFFER_DATA_FUNC)
default:
UNREACHABLE();
diff --git a/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp b/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
index 0777ac3..a9f6949 100644
--- a/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
+++ b/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
@@ -280,7 +280,7 @@
// Helper macro that casts to a bitfield type then verifies no bits were dropped.
#define SetBitField(lhs, rhs) \
lhs = static_cast<typename std::decay<decltype(lhs)>::type>(rhs); \
- ASSERT(static_cast<decltype(rhs)>(lhs) == (rhs));
+ ASSERT(static_cast<decltype(rhs)>(lhs) == (rhs))
// When converting a byte number to a transition bit index we can shift instead of divide.
constexpr size_t kTransitionByteShift = Log2(kGraphicsPipelineDirtyBitBytes);
diff --git a/src/libANGLE/renderer/vulkan/vk_helpers.h b/src/libANGLE/renderer/vulkan/vk_helpers.h
index 2ab9a2a..ab00a9b 100644
--- a/src/libANGLE/renderer/vulkan/vk_helpers.h
+++ b/src/libANGLE/renderer/vulkan/vk_helpers.h
@@ -64,7 +64,7 @@
// This frees resources immediately.
void destroy(VkDevice device);
- BufferHelper *getCurrentBuffer() { return mBuffer; };
+ BufferHelper *getCurrentBuffer() { return mBuffer; }
// For testing only!
void setMinimumSizeForTesting(size_t minSize);
diff --git a/src/libANGLE/renderer/vulkan/vk_utils.h b/src/libANGLE/renderer/vulkan/vk_utils.h
index f7a6ada..60aa808 100644
--- a/src/libANGLE/renderer/vulkan/vk_utils.h
+++ b/src/libANGLE/renderer/vulkan/vk_utils.h
@@ -45,7 +45,7 @@
struct VertexAttribute;
class VertexBinding;
-ANGLE_GL_OBJECTS_X(ANGLE_PRE_DECLARE_OBJECT);
+ANGLE_GL_OBJECTS_X(ANGLE_PRE_DECLARE_OBJECT)
} // namespace gl
#define ANGLE_PRE_DECLARE_VK_OBJECT(OBJ) class OBJ##Vk;
@@ -66,7 +66,7 @@
namespace rx
{
-ANGLE_GL_OBJECTS_X(ANGLE_PRE_DECLARE_VK_OBJECT);
+ANGLE_GL_OBJECTS_X(ANGLE_PRE_DECLARE_VK_OBJECT)
const char *VulkanResultString(VkResult result);
// Verify that validation layers are available.
diff --git a/src/libANGLE/validationEGL.h b/src/libANGLE/validationEGL.h
index 9e0f444..a671bb0 100644
--- a/src/libANGLE/validationEGL.h
+++ b/src/libANGLE/validationEGL.h
@@ -318,13 +318,15 @@
} // namespace egl
#define ANGLE_EGL_TRY(THREAD, EXPR, FUNCNAME, LABELOBJECT) \
+ do \
{ \
auto ANGLE_LOCAL_VAR = (EXPR); \
if (ANGLE_LOCAL_VAR.isError()) \
return THREAD->setError(ANGLE_LOCAL_VAR, GetDebug(), FUNCNAME, LABELOBJECT); \
- }
+ } while (0)
#define ANGLE_EGL_TRY_RETURN(THREAD, EXPR, FUNCNAME, LABELOBJECT, RETVAL) \
+ do \
{ \
auto ANGLE_LOCAL_VAR = (EXPR); \
if (ANGLE_LOCAL_VAR.isError()) \
@@ -332,6 +334,6 @@
THREAD->setError(ANGLE_LOCAL_VAR, GetDebug(), FUNCNAME, LABELOBJECT); \
return RETVAL; \
} \
- }
+ } while (0)
#endif // LIBANGLE_VALIDATIONEGL_H_
diff --git a/src/libANGLE/validationES.h b/src/libANGLE/validationES.h
index 00f1cf1..2ed9ec4 100644
--- a/src/libANGLE/validationES.h
+++ b/src/libANGLE/validationES.h
@@ -661,8 +661,8 @@
// Utility macro for handling implementation methods inside Validation.
#define ANGLE_HANDLE_VALIDATION_ERR(X) \
(void)(X); \
- return false;
-#define ANGLE_VALIDATION_TRY(EXPR) ANGLE_TRY_TEMPLATE(EXPR, ANGLE_HANDLE_VALIDATION_ERR);
+ return false
+#define ANGLE_VALIDATION_TRY(EXPR) ANGLE_TRY_TEMPLATE(EXPR, ANGLE_HANDLE_VALIDATION_ERR)
// We should check with Khronos if returning INVALID_FRAMEBUFFER_OPERATION is OK when querying
// implementation format info for incomplete framebuffers. It seems like these queries are
diff --git a/src/libANGLE/validationES1.cpp b/src/libANGLE/validationES1.cpp
index 4102302..57b8b88 100644
--- a/src/libANGLE/validationES1.cpp
+++ b/src/libANGLE/validationES1.cpp
@@ -16,12 +16,15 @@
#include "libANGLE/queryutils.h"
#include "libANGLE/validationES.h"
-#define ANGLE_VALIDATE_IS_GLES1(context) \
- if (context->getClientMajorVersion() > 1) \
- { \
- context->validationError(GL_INVALID_OPERATION, kGLES1Only); \
- return false; \
- }
+#define ANGLE_VALIDATE_IS_GLES1(context) \
+ do \
+ { \
+ if (context->getClientMajorVersion() > 1) \
+ { \
+ context->validationError(GL_INVALID_OPERATION, kGLES1Only); \
+ return false; \
+ } \
+ } while (0)
namespace gl
{
diff --git a/src/libGLESv2.gni b/src/libGLESv2.gni
index 676922a..d667596 100644
--- a/src/libGLESv2.gni
+++ b/src/libGLESv2.gni
@@ -45,8 +45,6 @@
"src/common/third_party/base/anglebase/sys_byteorder.h",
"src/common/third_party/smhasher/src/PMurHash.cpp",
"src/common/third_party/smhasher/src/PMurHash.h",
- "src/common/third_party/xxhash/xxhash.c",
- "src/common/third_party/xxhash/xxhash.h",
"src/common/tls.cpp",
"src/common/tls.h",
"src/common/uniform_type_info_autogen.cpp",
@@ -55,6 +53,11 @@
"src/common/vector_utils.h",
]
+xxhash_sources = [
+ "src/common/third_party/xxhash/xxhash.c",
+ "src/common/third_party/xxhash/xxhash.h",
+]
+
angle_system_utils_sources = [
"src/common/Optional.h",
"src/common/angleutils.h",
diff --git a/src/tests/BUILD.gn b/src/tests/BUILD.gn
index 7c1ab36..0c21d5a 100644
--- a/src/tests/BUILD.gn
+++ b/src/tests/BUILD.gn
@@ -38,6 +38,7 @@
"${angle_googletest_dir}/googletest/src/gtest-all.cc",
]
public_configs += [ ":angle_internal_gtest_config" ]
+ configs -= [ "${angle_root}:extra_warnings" ]
}
config("angle_internal_gmock_config") {
diff --git a/src/tests/compiler_tests/ImmutableString_test_autogen.cpp b/src/tests/compiler_tests/ImmutableString_test_autogen.cpp
index c298a31..423d619 100644
--- a/src/tests/compiler_tests/ImmutableString_test_autogen.cpp
+++ b/src/tests/compiler_tests/ImmutableString_test_autogen.cpp
@@ -1,7 +1,7 @@
// GENERATED FILE - DO NOT EDIT.
// Generated by gen_builtin_symbols.py using data from builtin_function_declarations.txt.
//
-// Copyright 2018 The ANGLE Project Authors. All rights reserved.
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
diff --git a/src/tests/compiler_tests/InitOutputVariables_test.cpp b/src/tests/compiler_tests/InitOutputVariables_test.cpp
index ba16bd9..ddbc9f1 100644
--- a/src/tests/compiler_tests/InitOutputVariables_test.cpp
+++ b/src/tests/compiler_tests/InitOutputVariables_test.cpp
@@ -176,7 +176,7 @@
}
}
- bool isStructureFound() const { return mStructure != nullptr; };
+ bool isStructureFound() const { return mStructure != nullptr; }
const TStructure *getStructure() const { return mStructure; }
private:
diff --git a/src/tests/egl_tests/EGLContextCompatibilityTest.cpp b/src/tests/egl_tests/EGLContextCompatibilityTest.cpp
index 0b37d26..8d205a7 100644
--- a/src/tests/egl_tests/EGLContextCompatibilityTest.cpp
+++ b/src/tests/egl_tests/EGLContextCompatibilityTest.cpp
@@ -58,7 +58,7 @@
{
eglMakeCurrent(mDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
eglTerminate(mDisplay);
- };
+ }
protected:
// Queries EGL config to determine if multisampled or not
diff --git a/src/tests/gl_tests/BPTCCompressedTextureTest.cpp b/src/tests/gl_tests/BPTCCompressedTextureTest.cpp
index 4578b48..802eada 100644
--- a/src/tests/gl_tests/BPTCCompressedTextureTest.cpp
+++ b/src/tests/gl_tests/BPTCCompressedTextureTest.cpp
@@ -21,7 +21,7 @@
const std::array<GLubyte, 16> kBC7Data4x4 = {0x50, 0x1f, 0xfc, 0xf, 0x0, 0xf0, 0xe3, 0xe1,
0xe1, 0xe1, 0xc1, 0xf, 0xfc, 0xc0, 0xf, 0xfc};
-}; // anonymous namespace
+} // anonymous namespace
class BPTCCompressedTextureTest : public ANGLETest
{
diff --git a/src/tests/gl_tests/BindUniformLocationTest.cpp b/src/tests/gl_tests/BindUniformLocationTest.cpp
index 5a561c0..d4ef718 100644
--- a/src/tests/gl_tests/BindUniformLocationTest.cpp
+++ b/src/tests/gl_tests/BindUniformLocationTest.cpp
@@ -544,6 +544,6 @@
ES2_OPENGLES(),
ES2_VULKAN());
-ANGLE_INSTANTIATE_TEST(BindUniformLocationES31Test, ES31_D3D11(), ES31_OPENGL(), ES31_OPENGLES())
+ANGLE_INSTANTIATE_TEST(BindUniformLocationES31Test, ES31_D3D11(), ES31_OPENGL(), ES31_OPENGLES());
} // namespace
diff --git a/src/tests/gl_tests/ClearTest.cpp b/src/tests/gl_tests/ClearTest.cpp
index 6d044bf..1c62f66 100644
--- a/src/tests/gl_tests/ClearTest.cpp
+++ b/src/tests/gl_tests/ClearTest.cpp
@@ -33,7 +33,7 @@
color.B = static_cast<uint8_t>(vec.z() * 255.0f);
color.A = static_cast<uint8_t>(vec.w() * 255.0f);
return color;
-};
+}
class ClearTestBase : public ANGLETest
{
diff --git a/src/tests/gl_tests/TextureMultisampleTest.cpp b/src/tests/gl_tests/TextureMultisampleTest.cpp
index 51f31b0..15d3d15 100644
--- a/src/tests/gl_tests/TextureMultisampleTest.cpp
+++ b/src/tests/gl_tests/TextureMultisampleTest.cpp
@@ -118,7 +118,7 @@
my_FragColor = texelFetch(tex, sampleCoords, sampleNum);
}
)";
- };
+ }
const char *blitArrayTextureLayerFragmentShader()
{
@@ -140,7 +140,7 @@
my_FragColor = texelFetch(tex, ivec3(sampleCoords, layer), sampleNum);
}
)";
- };
+ }
const char *blitIntArrayTextureLayerFragmentShader()
{
@@ -162,7 +162,7 @@
my_FragColor = vec4(texelFetch(tex, ivec3(sampleCoords, layer), sampleNum));
}
)";
- };
+ }
};
class NegativeTextureMultisampleTest : public TextureMultisampleTest
diff --git a/src/tests/gl_tests/WebGLCompatibilityTest.cpp b/src/tests/gl_tests/WebGLCompatibilityTest.cpp
index f14d933..4db6c0d 100644
--- a/src/tests/gl_tests/WebGLCompatibilityTest.cpp
+++ b/src/tests/gl_tests/WebGLCompatibilityTest.cpp
@@ -297,7 +297,7 @@
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(data), data, GL_STATIC_DRAW);
ANGLE_GL_PROGRAM(program, "void main() { gl_Position = vec4(0, 0, 0, 1); }",
- "void main() { gl_FragColor = vec4(0, 1, 0, 1); }")
+ "void main() { gl_FragColor = vec4(0, 1, 0, 1); }");
glUseProgram(program.get());
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, nullptr);
@@ -1336,7 +1336,7 @@
renderbuffer.get());
ANGLE_GL_PROGRAM(program, "void main() { gl_Position = vec4(0, 0, 0, 1); }",
- "void main() { gl_FragColor = vec4(0, 1, 0, 1); }")
+ "void main() { gl_FragColor = vec4(0, 1, 0, 1); }");
glUseProgram(program.get());
ASSERT_GL_NO_ERROR();
diff --git a/src/tests/perf_tests/BlitFramebufferPerf.cpp b/src/tests/perf_tests/BlitFramebufferPerf.cpp
index 47698f1..de9d536 100644
--- a/src/tests/perf_tests/BlitFramebufferPerf.cpp
+++ b/src/tests/perf_tests/BlitFramebufferPerf.cpp
@@ -249,4 +249,4 @@
D3D11(BufferType::COLOR, 2),
D3D11(BufferType::DEPTH, 2),
D3D11(BufferType::STENCIL, 2),
- D3D11(BufferType::DEPTH_STENCIL, 2))
+ D3D11(BufferType::DEPTH_STENCIL, 2));
diff --git a/src/tests/perf_tests/DrawCallPerf.cpp b/src/tests/perf_tests/DrawCallPerf.cpp
index 19e1584..b3f0725 100644
--- a/src/tests/perf_tests/DrawCallPerf.cpp
+++ b/src/tests/perf_tests/DrawCallPerf.cpp
@@ -45,7 +45,6 @@
break;
default:
break;
- ;
}
return strstr.str();
diff --git a/src/tests/perf_tests/LinkProgramPerfTest.cpp b/src/tests/perf_tests/LinkProgramPerfTest.cpp
index 59cb0ac..937795e 100644
--- a/src/tests/perf_tests/LinkProgramPerfTest.cpp
+++ b/src/tests/perf_tests/LinkProgramPerfTest.cpp
@@ -121,7 +121,7 @@
glBindBuffer(GL_ARRAY_BUFFER, mVertexBuffer);
glBufferData(GL_ARRAY_BUFFER, vertices.size() * sizeof(Vector3), vertices.data(),
GL_STATIC_DRAW);
-};
+}
void LinkProgramBenchmark::destroyBenchmark()
{
diff --git a/src/tests/perf_tests/MultiviewPerf.cpp b/src/tests/perf_tests/MultiviewPerf.cpp
index c61c882..8732765 100644
--- a/src/tests/perf_tests/MultiviewPerf.cpp
+++ b/src/tests/perf_tests/MultiviewPerf.cpp
@@ -34,7 +34,6 @@
{
return "#extension GL_OVR_multiview : require\nlayout(num_views = " + ToString(numViews) +
") in;\n";
- ;
}
return "#extension GL_OVR_multiview : require\n";
}
diff --git a/src/tests/preprocessor_tests/char_test.cpp b/src/tests/preprocessor_tests/char_test.cpp
index aa40388..17b6d78 100644
--- a/src/tests/preprocessor_tests/char_test.cpp
+++ b/src/tests/preprocessor_tests/char_test.cpp
@@ -88,7 +88,7 @@
mPreprocessor.lex(&token);
EXPECT_EQ(expectedType, token.type);
EXPECT_EQ(expectedValue, token.text);
-};
+}
// Note +1 for the max-value in range. It is there because the max-value
// not included in the range.
diff --git a/src/tests/preprocessor_tests/define_test.cpp b/src/tests/preprocessor_tests/define_test.cpp
index 5ec4b2f..16dc812 100644
--- a/src/tests/preprocessor_tests/define_test.cpp
+++ b/src/tests/preprocessor_tests/define_test.cpp
@@ -30,7 +30,7 @@
print(pp::Diagnostics::PP_UNEXPECTED_TOKEN, pp::SourceLocation(0, 1), "2"));
preprocess(input, expected);
-};
+}
TEST_F(DefineTest, RedefinePredefined)
{
diff --git a/src/tests/test_utils/ANGLETest.h b/src/tests/test_utils/ANGLETest.h
index 2c44aa0..f58d681 100644
--- a/src/tests/test_utils/ANGLETest.h
+++ b/src/tests/test_utils/ANGLETest.h
@@ -174,15 +174,16 @@
#define EXPECT_PIXEL_COLOR32F_EQ(x, y, angleColor) EXPECT_EQ(angleColor, angle::ReadColor32F(x, y))
#define EXPECT_PIXEL_RECT_EQ(x, y, width, height, color) \
- \
+ do \
{ \
std::vector<GLColor> actualColors(width *height); \
glReadPixels((x), (y), (width), (height), GL_RGBA, GL_UNSIGNED_BYTE, actualColors.data()); \
std::vector<GLColor> expectedColors(width *height, color); \
EXPECT_EQ(expectedColors, actualColors); \
- }
+ } while (0)
#define EXPECT_PIXEL_NEAR(x, y, r, g, b, a, abs_error) \
+ do \
{ \
GLubyte pixel[4]; \
glReadPixels((x), (y), 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, pixel); \
@@ -191,10 +192,10 @@
EXPECT_NEAR((g), pixel[1], abs_error); \
EXPECT_NEAR((b), pixel[2], abs_error); \
EXPECT_NEAR((a), pixel[3], abs_error); \
- }
+ } while (0)
#define EXPECT_PIXEL32F_NEAR(x, y, r, g, b, a, abs_error) \
- \
+ do \
{ \
GLfloat pixel[4]; \
glReadPixels((x), (y), 1, 1, GL_RGBA, GL_FLOAT, pixel); \
@@ -203,7 +204,7 @@
EXPECT_NEAR((g), pixel[1], abs_error); \
EXPECT_NEAR((b), pixel[2], abs_error); \
EXPECT_NEAR((a), pixel[3], abs_error); \
- }
+ } while (0)
// TODO(jmadill): Figure out how we can use GLColor's nice printing with EXPECT_NEAR.
#define EXPECT_PIXEL_COLOR_NEAR(x, y, angleColor, abs_error) \
@@ -213,15 +214,15 @@
EXPECT_PIXEL32F_NEAR(x, y, angleColor.R, angleColor.G, angleColor.B, angleColor.A, abs_error)
#define EXPECT_COLOR_NEAR(expected, actual, abs_error) \
- \
+ do \
{ \
EXPECT_NEAR(expected.R, actual.R, abs_error); \
EXPECT_NEAR(expected.G, actual.G, abs_error); \
EXPECT_NEAR(expected.B, actual.B, abs_error); \
EXPECT_NEAR(expected.A, actual.A, abs_error); \
- }
+ } while (0)
#define EXPECT_PIXEL32F_NEAR(x, y, r, g, b, a, abs_error) \
- \
+ do \
{ \
GLfloat pixel[4]; \
glReadPixels((x), (y), 1, 1, GL_RGBA, GL_FLOAT, pixel); \
@@ -230,7 +231,7 @@
EXPECT_NEAR((g), pixel[1], abs_error); \
EXPECT_NEAR((b), pixel[2], abs_error); \
EXPECT_NEAR((a), pixel[3], abs_error); \
- }
+ } while (0)
#define EXPECT_PIXEL_COLOR32F_NEAR(x, y, angleColor, abs_error) \
EXPECT_PIXEL32F_NEAR(x, y, angleColor.R, angleColor.G, angleColor.B, angleColor.A, abs_error)
diff --git a/src/tests/test_utils/angle_test_instantiate.h b/src/tests/test_utils/angle_test_instantiate.h
index 3e983cc..032dbcc 100644
--- a/src/tests/test_utils/angle_test_instantiate.h
+++ b/src/tests/test_utils/angle_test_instantiate.h
@@ -50,7 +50,7 @@
INSTANTIATE_TEST_CASE_P(, testName, \
testing::ValuesIn(::angle::FilterTestParams( \
testName##params, ArraySize(testName##params))), \
- testing::PrintToStringParamName());
+ testing::PrintToStringParamName())
} // namespace angle
diff --git a/src/tests/test_utils/gl_raii.h b/src/tests/test_utils/gl_raii.h
index a2e7d0e..e5848a4 100644
--- a/src/tests/test_utils/gl_raii.h
+++ b/src/tests/test_utils/gl_raii.h
@@ -187,37 +187,37 @@
#define ANGLE_GL_EMPTY_PROGRAM(name) \
priv::GLProgram name; \
name.makeEmpty(); \
- ASSERT_TRUE(name.valid());
+ ASSERT_TRUE(name.valid())
#define ANGLE_GL_PROGRAM(name, vertex, fragment) \
priv::GLProgram name; \
name.makeRaster(vertex, fragment); \
- ASSERT_TRUE(name.valid());
+ ASSERT_TRUE(name.valid())
#define ANGLE_GL_PROGRAM_WITH_GS(name, vertex, geometry, fragment) \
priv::GLProgram name; \
name.makeRaster(vertex, geometry, fragment); \
- ASSERT_TRUE(name.valid());
+ ASSERT_TRUE(name.valid())
#define ANGLE_GL_PROGRAM_TRANSFORM_FEEDBACK(name, vertex, fragment, tfVaryings, bufferMode) \
priv::GLProgram name; \
name.makeRasterWithTransformFeedback(vertex, fragment, tfVaryings, bufferMode); \
- ASSERT_TRUE(name.valid());
+ ASSERT_TRUE(name.valid())
#define ANGLE_GL_COMPUTE_PROGRAM(name, compute) \
priv::GLProgram name; \
name.makeCompute(compute); \
- ASSERT_TRUE(name.valid());
+ ASSERT_TRUE(name.valid())
#define ANGLE_GL_BINARY_OES_PROGRAM(name, binary, binaryFormat) \
priv::GLProgram name; \
name.makeBinaryOES(binary, binaryFormat); \
- ASSERT_TRUE(name.valid());
+ ASSERT_TRUE(name.valid())
#define ANGLE_GL_BINARY_ES3_PROGRAM(name, binary, binaryFormat) \
priv::GLProgram name; \
name.makeBinaryES3(binary, binaryFormat); \
- ASSERT_TRUE(name.valid());
+ ASSERT_TRUE(name.valid())
} // namespace angle
diff --git a/src/tests/test_utils/third_party/vulkan_command_buffer_utils.h b/src/tests/test_utils/third_party/vulkan_command_buffer_utils.h
index ee59776..6d9b096 100644
--- a/src/tests/test_utils/third_party/vulkan_command_buffer_utils.h
+++ b/src/tests/test_utils/third_party/vulkan_command_buffer_utils.h
@@ -30,8 +30,16 @@
#include <sstream>
#include <string>
#include <vector>
+
+#include "common/debug.h"
+
+// glslang has issues with some specific warnings.
+ANGLE_DISABLE_EXTRA_SEMI_WARNING
+
#include "SPIRV/GlslangToSpv.h"
+ANGLE_REENABLE_EXTRA_SEMI_WARNING
+
#if defined(__linux__) && !defined(__ANDROID__)
# define VK_USE_PLATFORM_XCB_KHR
#endif
diff --git a/src/third_party/trace_event/trace_event.h b/src/third_party/trace_event/trace_event.h
index 040580e..ebc329b 100644
--- a/src/third_party/trace_event/trace_event.h
+++ b/src/third_party/trace_event/trace_event.h
@@ -462,16 +462,20 @@
// Implementation detail: internal macro to create static category and add begin
// event if the category is enabled. Also adds the end event when the scope
// ends.
-#define INTERNAL_TRACE_EVENT_ADD_SCOPED(category, name, ...) \
- INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \
- gl::TraceEvent::TraceEndOnScopeClose INTERNALTRACEEVENTUID(profileScope); \
- if (*INTERNALTRACEEVENTUID(catstatic)) \
- { \
- gl::TraceEvent::addTraceEvent(TRACE_EVENT_PHASE_BEGIN, INTERNALTRACEEVENTUID(catstatic), \
- name, gl::TraceEvent::noEventId, TRACE_EVENT_FLAG_NONE, \
- ##__VA_ARGS__); \
- INTERNALTRACEEVENTUID(profileScope).initialize(INTERNALTRACEEVENTUID(catstatic), name); \
- }
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED(category, name, ...) \
+ do \
+ { \
+ INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \
+ gl::TraceEvent::TraceEndOnScopeClose INTERNALTRACEEVENTUID(profileScope); \
+ if (*INTERNALTRACEEVENTUID(catstatic)) \
+ { \
+ gl::TraceEvent::addTraceEvent( \
+ TRACE_EVENT_PHASE_BEGIN, INTERNALTRACEEVENTUID(catstatic), name, \
+ gl::TraceEvent::noEventId, TRACE_EVENT_FLAG_NONE, ##__VA_ARGS__); \
+ INTERNALTRACEEVENTUID(profileScope) \
+ .initialize(INTERNALTRACEEVENTUID(catstatic), name); \
+ } \
+ } while (0)
// Implementation detail: internal macro to create static category and add
// event if the category is enabled.