From f725bd99f4cedc9ce9cfc602b1aae8ee7b5a6a51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Fri, 27 Mar 2020 12:36:59 +0100 Subject: [PATCH] Fix some -Wmaybe-uninitialized warnings Namely: ``` modules/basis_universal/register_types.cpp: In function 'Ref basis_universal_unpacker(const Vector&)': modules/basis_universal/register_types.cpp:266:15: warning: 'imgfmt' may be used uninitialized in this function [-Wmaybe-uninitialized] 266 | image->create(info.m_width, info.m_height, info.m_total_levels > 1, imgfmt, gpudata); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ modules/basis_universal/register_types.cpp:255:39: warning: 'format' may be used uninitialized in this function [-Wmaybe-uninitialized] 255 | bool ret = tr.transcode_image_level(ptr, size, 0, i, dst + ofs, level.m_total_blocks - i, format); | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``` ``` servers/visual_server.cpp: In member function 'Error VisualServer::_surface_set_data(Array, uint32_t, uint32_t*, uint32_t, Vector&, int, Vector&, int, AABB&, Vector&)': servers/visual_server.cpp:636:15: warning: 'iw' may be used uninitialized in this function [-Wmaybe-uninitialized] 636 | copymem(&iw[i * 2], &v, 2); | ^ ``` ``` core/image.cpp: In member function 'Error Image::generate_mipmap_roughness(Image::RoughnessChannel, const Ref&)': core/image.cpp:1683:11: warning: 'roughness' may be used uninitialized in this function [-Wmaybe-uninitialized] 1683 | float roughness; | ^~~~~~~~~ ``` --- core/image.cpp | 2 +- modules/basis_universal/register_types.cpp | 3 ++- .../visual/rasterizer_rd/rasterizer_scene_high_end_rd.cpp | 5 +---- servers/visual_server.cpp | 1 + 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/core/image.cpp b/core/image.cpp index 2c39c9b88276..d691c4f44291 100644 --- a/core/image.cpp +++ b/core/image.cpp @@ -1680,7 +1680,7 @@ Error Image::generate_mipmap_roughness(RoughnessChannel p_roughness_channel, con int pixel_ofs = y * w + x; Color c = _get_color_at_ofs(ptr, pixel_ofs); - float roughness; + float roughness = 0; switch (p_roughness_channel) { case ROUGHNESS_CHANNEL_R: { diff --git a/modules/basis_universal/register_types.cpp b/modules/basis_universal/register_types.cpp index 062b5b59f854..c29e91b5aa6a 100644 --- a/modules/basis_universal/register_types.cpp +++ b/modules/basis_universal/register_types.cpp @@ -174,7 +174,8 @@ static Ref basis_universal_unpacker(const Vector &p_buffer) { //format = basist::transcoder_texture_format::cTFETC1; // get this from renderer //imgfmt = Image::FORMAT_RGTC_RG; } else { - //decompress + // FIXME: There wasn't anything here, but then imgformat is used uninitialized. + ERR_FAIL_V(image); } } break; case BASIS_DECOMPRESS_RGB: { diff --git a/servers/visual/rasterizer_rd/rasterizer_scene_high_end_rd.cpp b/servers/visual/rasterizer_rd/rasterizer_scene_high_end_rd.cpp index 113f225c4790..70219a398156 100644 --- a/servers/visual/rasterizer_rd/rasterizer_scene_high_end_rd.cpp +++ b/servers/visual/rasterizer_rd/rasterizer_scene_high_end_rd.cpp @@ -749,7 +749,6 @@ void RasterizerSceneHighEndRD::_render_list(RenderingDevice::DrawListID p_draw_l RD::get_singleton()->draw_list_bind_uniform_set(draw_list, default_vec4_xform_uniform_set, TRANSFORMS_UNIFORM_SET); MaterialData *prev_material = nullptr; - // ShaderData *prev_shader = nullptr; RID prev_vertex_array_rd; RID prev_index_array_rd; @@ -809,12 +808,11 @@ void RasterizerSceneHighEndRD::_render_list(RenderingDevice::DrawListID p_draw_l } } - ShaderVersion shader_version = SHADER_VERSION_MAX; + ShaderVersion shader_version = SHADER_VERSION_MAX; // Assigned to silence wrong -Wmaybe-initialized. switch (p_pass_mode) { case PASS_MODE_COLOR: case PASS_MODE_COLOR_TRANSPARENT: { - if (e->uses_lightmap) { shader_version = SHADER_VERSION_LIGHTMAP_COLOR_PASS; } else if (e->uses_vct) { @@ -822,7 +820,6 @@ void RasterizerSceneHighEndRD::_render_list(RenderingDevice::DrawListID p_draw_l } else { shader_version = SHADER_VERSION_COLOR_PASS; } - } break; case PASS_MODE_COLOR_SPECULAR: { if (e->uses_lightmap) { diff --git a/servers/visual_server.cpp b/servers/visual_server.cpp index da1f3efbab0f..fecaf563db4a 100644 --- a/servers/visual_server.cpp +++ b/servers/visual_server.cpp @@ -617,6 +617,7 @@ Error VisualServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint32_ } break; case VS::ARRAY_INDEX: { + ERR_FAIL_NULL_V(iw, ERR_INVALID_DATA); ERR_FAIL_COND_V(p_index_array_len <= 0, ERR_INVALID_DATA); ERR_FAIL_COND_V(p_arrays[ai].get_type() != Variant::PACKED_INT32_ARRAY, ERR_INVALID_PARAMETER);