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'