From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 794803858D28; Wed, 3 May 2023 14:13:50 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 794803858D28 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1683123230; bh=z+ngE+JTzZZVR5LOj2R5TlSvOjx2US73azpxL0I3lKY=; h=From:To:Subject:Date:From; b=mVlasAcz2SLoaN1KGHrJe8QUe+R6BXZE1rRBagCzgtmDEr2dJJVdrbHCDz4PbcEVg AAhCYtczP8KrUhHwa4N0t+qpgPtnrewFUYhxQlkZs1MK1AeNEBU+aXR2hXPyQzV9b2 QFi7zrk7KWIiEzWEBfQlTSLcKJoHALSzp+pyFUGU= From: "david at ixit dot cz" To: gcc-bugs@gcc.gnu.org Subject: [Bug c/109714] New: bogus may be used uninitialized warning Date: Wed, 03 May 2023 14:13:49 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: david at ixit dot cz X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone cf_gcchost cf_gcctarget Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D109714 Bug ID: 109714 Summary: bogus may be used uninitialized warning Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: david at ixit dot cz Target Milestone: --- Host: x86_64 Target: x86_64 Code: https://gitlab.freedesktop.org/mesa/mesa/ main branch Compiler: 13.0.1 20230315 (experimental) [master r13-6680-ga9ae16db8cb] Compilation: ``` CC=3D/usr/lib/gcc-snapshot/bin/gcc CXX=3D/usr/lib/gcc-snapshot/bin/g++ meso= n setup builddir-snapshot -D libdir=3Dlib -D buildtype=3Drelease -D build-tests=3Df= alse -D enable-glcpp-tests=3Dfalse -D libunwind=3Denabled -D glx=3Ddri -D gbm=3Dena= bled -D egl=3Denabled -D platforms=3Dx11,wayland -D dri3=3Denabled -D gallium-extra= -hud=3Dtrue -D gallium-vdpau=3Ddisabled -D gallium-omx=3Ddisabled -D gallium-va=3Ddisab= led -D gallium-xa=3Ddisabled -D gallium-nine=3Dfalse -D gallium-opencl=3Ddisabled = -D gallium-rusticl=3Dfalse -D llvm=3Denabled -D gallium-drivers=3Di915,iris,sw= rast -D vulkan-drivers=3D -D video-codecs=3Dh264dec,h264enc,h265dec,h265enc -D spirv-to-dxil=3Dfalse -D osmesa=3Dtrue -D intel-clc=3Ddisabled -D imagination-srv=3Dfalse ``` ``` [1110/1401] Compiling C object src/gallium/auxiliary/libgallium.a.p/draw_draw_llvm.c.o In function 'generate_clipmask', inlined from 'draw_llvm_generate' at ../src/gallium/auxiliary/draw/draw_llvm.c:2163:24: ../src/gallium/auxiliary/draw/draw_llvm.c:1496:25: warning: 'sum' may be us= ed uninitialized [-Wmaybe-uninitialized] 1496 | sum =3D lp_build_fmuladd(builder, planes, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1497 | (LLVMValueRef[]){cv_x, cv_= y, cv_z, cv_w}[i], sum); |=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/gallium/auxiliary/draw/draw_llvm.c: In function 'draw_llvm_generate': ../src/gallium/auxiliary/draw/draw_llvm.c:1343:44: note: 'sum' was declared here 1343 | LLVMValueRef plane1, planes, plane_ptr, sum; |=20 ``` The code (relevant to the sum variable): ``` ... LLVMValueRef plane1, planes, plane_ptr, sum; ... for (int i =3D 0; i < 4; ++i) { indices[2] =3D lp_build_const_int32(gallivm, i); plane_ptr =3D LLVMBuildGEP2(builder, planes_type, planes_ptr, indices, 3, ""); plane1 =3D LLVMBuildLoad2(builder, vs_elem_type, plane_ptr, (const char *[]){"plane_x", "plane_y= ", "plane_z", "plane_w"}[i]); planes =3D lp_build_broadcast(gallivm, vs_type_llvm, plane1); if (i =3D=3D 0) { sum =3D LLVMBuildFMul(builder, planes, cv_x, ""); // sum = is set always in first iteration } else { // we never get here without having sum already assigned sum =3D lp_build_fmuladd(builder, planes, (LLVMValueRef[]){cv_x, cv_y, cv_z, cv_w}[i], sum); } } ... ``` Thou the `sum` value is always assigned in first for interation. I tried do simple test case, but it always works with simple c file.=