https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120075

            Bug ID: 120075
           Summary: -Wuninitialized warning with internal "SR" variable
                    name, compiling hb-subset-plan-layout.cc
           Product: gcc
           Version: 15.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ats-gccbugs at offog dot org
  Target Milestone: ---

Created attachment 61276
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61276&action=edit
Minimised example

The attached example in4.cc is minimised with cvise from Harfbuzz 11.2.0's
src/hb-subset-plan-layout.cc, being compiled on arm-linux-gnueabihf. (I'll also
attach the non-minimised version in1.cc, in case minimisation has introduced
additional warnings.)

Cross-compiling or native-compiling in4.cc with arm-linux-gnueabihf-g++ -O2
-Wuninitialized -g produces "warning: ‘SR.7’ is used uninitialized" - i.e. a
warning with a GCC-generated internal variable name. Full output below.

I tried cross-compiling the minimised file for other targets: it does the same
for i686-pc-linux-gnu, but produces a warning with a correct variable name (and
a different location) for all other targets. The real Harfbuzz code compiled
cleanly on all platforms except arm-linux-gnueabihf.

$ arm-linux-gnueabihf-g++ -v -O2 -Wuninitialized -g -c in4.cc
Using built-in specs.
COLLECT_GCC=arm-linux-gnueabihf-g++
Target: arm-linux-gnueabihf
Configured with: /src/devel/gcc-armv7/work/gcc-15.1.0/configure --prefix=/gar
--sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var/com
--target=arm-linux-gnueabihf --with-sysroot=/cross/linux-armv7 --disable-libssp
--disable-libcc1 --disable-multilib --with-system-zlib
--enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ --with-arch=armv7-a
--with-float=hard --with-fpu=vfpv3-d16
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 15.1.0 (GCC) 
COLLECT_GCC_OPTIONS='-v' '-O2' '-Wuninitialized' '-g' '-c' '-shared-libgcc' 
'-mfloat-abi=hard' '-mfpu=vfpv3-d16' '-mtls-dialect=gnu' '-marm'
'-mlibarch=armv7-a+fp' '-march=armv7-a+fp'

/gar/packages/gcc-armv7-15.1.0/bin/../libexec/gcc/arm-linux-gnueabihf/15.1.0/cc1plus
-quiet -v -iprefix
/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/
-D_GNU_SOURCE in4.cc -quiet -dumpbase in4.cc -dumpbase-ext .cc -mfloat-abi=hard
-mfpu=vfpv3-d16 -mtls-dialect=gnu -marm -mlibarch=armv7-a+fp -march=armv7-a+fp
-g -O2 -Wuninitialized -version -o /tmp/ccw0kyGy.s
GNU C++17 (GCC) version 15.1.0 (arm-linux-gnueabihf)
        compiled by GNU C version 15.1.0, GMP version 6.3.0, MPFR version
4.2.2, MPC version 1.3.1, isl version isl-0.18-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory
"/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include/c++/15.1.0"
ignoring duplicate directory
"/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include/c++/15.1.0/arm-linux-gnueabihf"
ignoring duplicate directory
"/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include/c++/15.1.0/backward"
ignoring duplicate directory
"/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/15.1.0/include"
ignoring nonexistent directory "/cross/linux-armv7/usr/local/include"
ignoring duplicate directory
"/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/15.1.0/include-fixed"
ignoring duplicate directory
"/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include"
#include "..." search starts here:
#include <...> search starts here:

/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include/c++/15.1.0

/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include/c++/15.1.0/arm-linux-gnueabihf

/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include/c++/15.1.0/backward

/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/include

/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/include-fixed

/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include
 /cross/linux-armv7/usr/include
End of search list.
Compiler executable checksum: 2346e57d66b2417563d1c0228a0b0866
In constructor ‘hb_map_iter_t<Iter>::hb_map_iter_t(Iter, int) [with Iter =
hb_zip_iter_t<iter_t, int>]’,
    inlined from ‘hb_map_iter_t<Iter> hb_map_iter_t<Iter>::__end__() [with Iter
= hb_zip_iter_t<iter_t, int>]’ at in4.cc:26:62,
    inlined from ‘iter_t hb_iter_t<iter_t>::_end() [with iter_t =
hb_map_iter_t<hb_zip_iter_t<iter_t, int> >]’ at in4.cc:6:34,
    inlined from ‘iter_t hb_iter_t<iter_t>::end() [with iter_t =
hb_map_iter_t<hb_zip_iter_t<iter_t, int> >]’ at in4.cc:8:29,
    inlined from ‘void<unnamed
struct>::collect_variation_indices(hb_collect_variation_indices_context_t*)’ at
in4.cc:81:23,
    inlined from ‘void hb_collect_variation_indices_context_t::dispatch(T)
[with T = <unnamed struct>]’ at in4.cc:63:34,
    inlined from ‘void PosLookupSubTable::dispatch()’ at in4.cc:87:40,
    inlined from ‘void
Lookup::dispatch(hb_collect_variation_indices_context_t*) [with TSubTable =
PosLookupSubTable]’ at in4.cc:70:40,
    inlined from ‘void<unnamed struct>::dispatch()’ at in4.cc:90:56,
    inlined from ‘void GPOS::collect_variation_indices()’ at in4.cc:93:60,
    inlined from ‘void collect_layout_variation_indices()’ at in4.cc:98:67:
in4.cc:25:33: warning: ‘SR.7’ is used uninitialized [-Wuninitialized]
   25 |   hb_map_iter_t(Iter it, int) : it(it) {}
      |                                 ^~~~~~
in4.cc: In function ‘void collect_layout_variation_indices()’:
in4.cc:16:56: note: ‘SR.7’ was declared here
   16 |   hb_zip_iter_t __end__() { return hb_zip_iter_t(a._end(), b); }
      |                                                  ~~~~~~^~
COLLECT_GCC_OPTIONS='-v' '-O2' '-Wuninitialized' '-g' '-c' '-shared-libgcc' 
'-mfloat-abi=hard' '-mfpu=vfpv3-d16' '-mtls-dialect=gnu' '-marm'
'-mlibarch=armv7-a+fp' '-march=armv7-a+fp'

/gar/packages/gcc-armv7-15.1.0/bin/../libexec/gcc/arm-linux-gnueabihf/15.1.0/as
-v -march=armv7-a+fp -mfloat-abi=hard -mfpu=vfpv3-d16 -meabi=5 -o in4.o
/tmp/ccw0kyGy.s
GNU assembler version 2.44 (arm-linux-gnueabihf) using BFD version (GNU
Binutils) 2.44
COMPILER_PATH=/gar/packages/gcc-armv7-15.1.0/bin/../libexec/gcc/arm-linux-gnueabihf/15.1.0/:/gar/packages/gcc-armv7-15.1.0/bin/../libexec/gcc/
LIBRARY_PATH=/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/:/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/:/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/lib/:/cross/linux-armv7/lib/:/cross/linux-armv7/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-O2' '-Wuninitialized' '-g' '-c' '-shared-libgcc' 
'-mfloat-abi=hard' '-mfpu=vfpv3-d16' '-mtls-dialect=gnu' '-marm'
'-mlibarch=armv7-a+fp' '-march=armv7-a+fp'
  • [Bug c++/120075] New: -Wuninitia... ats-gccbugs at offog dot org via Gcc-bugs

Reply via email to