Enable "-Wundefined-reinterpret-cast".

A couple cases popped up where we were using an undefined cast.
Fix them by rearranging assignment macros to use decltype.

Another warning that is enabled in Skia.

Bug: angleproject:4046
Change-Id: Ibdbae0b2a96909b101a259ff805b8b2d43a5174b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877479
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This commit is contained in:
Jamie Madill
2019-10-24 12:55:10 -04:00
committed by Commit Bot
parent 77fba58c96
commit c017cee9df
5 changed files with 6 additions and 5 deletions

View File

@@ -144,6 +144,7 @@ config("extra_warnings") {
"-Wredundant-parens",
"-Wshadow-field",
"-Wtautological-type-limit-compare",
"-Wundefined-reinterpret-cast",
"-Wunneeded-internal-declaration",
# The below warnings are used by WebKit. We enable them to make rolling

View File

@@ -4,11 +4,11 @@
"src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c",
"src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp":
"7ebaa7f7525a0fe13f163ec076a8eace",
"ea253c245e64fd67c55904fd28173997",
"src/libANGLE/renderer/gl/DispatchTableGL_autogen.h":
"27af4da77c5cc60708fd2aabedc983f7",
"src/libANGLE/renderer/gl/generate_gl_dispatch_table.py":
"f21314d401e650b4182c4b7d66ac5c9c",
"4f19a7eee17679b3a0ad4abad6fab2c9",
"src/libANGLE/renderer/gl/gl_bindings_data.json":
"e870a4d86dc69e52dcab9afd78a47c9b",
"src/libANGLE/renderer/gl/null_functions.cpp":

View File

@@ -20,7 +20,7 @@
// Check for nullptr so extensions do not overwrite core imports.
#define ASSIGN(NAME, FP) \
if (!FP) \
*reinterpret_cast<void **>(&FP) = loadProcAddress(NAME)
FP = reinterpret_cast<decltype(FP)>(loadProcAddress(NAME))
namespace rx
{

View File

@@ -93,7 +93,7 @@ static void INTERNAL_GL_APIENTRY DummyGetShaderiv(GLuint program, GLenum pname,
}
#endif // defined(ANGLE_ENABLE_OPENGL_NULL)
#define ASSIGN(NAME, FP) *reinterpret_cast<void **>(&FP) = loadProcAddress(NAME)
#define ASSIGN(NAME, FP) FP = reinterpret_cast<decltype(FP)>(loadProcAddress(NAME))
FunctionsGL::FunctionsGL() : version(), standard(), extensions() {}

View File

@@ -111,7 +111,7 @@ dispatch_table_source_template = """// GENERATED FILE - DO NOT EDIT.
#endif // defined(ANGLE_ENABLE_OPENGL_NULL)
// Check for nullptr so extensions do not overwrite core imports.
#define ASSIGN(NAME, FP) if (!FP) *reinterpret_cast<void **>(&FP) = loadProcAddress(NAME)
#define ASSIGN(NAME, FP) if (!FP) FP = reinterpret_cast<decltype(FP)>(loadProcAddress(NAME))
namespace rx
{{