On 17/10/21, Bram Moolenaar wrote:
> 
> Tony wrote:
> 
> > In GTK builds (here GTK3):
> > 
> > gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread
> > -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0
> > -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0
> > -I/usr/lib64/dbus-1.0/include -I/usr/include/gtk-3.0
> > -I/usr/include/gio-unix-2.0 -I/usr/include/libxkbcommon
> > -I/usr/include/wayland -I/usr/include/cairo -I/usr/include/pango-1.0
> > -I/usr/include/fribidi -I/usr/include/harfbuzz -I/usr/include/atk-1.0
> > -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2
> > -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
> > -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0
> > -I/usr/lib64/glib-2.0/include   -O2 -fno-strength-reduce -Wall
> > -Wno-deprecated-declarations -D_REENTRANT -U_FORTIFY_SOURCE
> > -D_FORTIFY_SOURCE=1        -o objects/gui_gtk_x11.o gui_gtk_x11.c
> > gui_gtk_x11.c: In function ‘gui_gtk2_draw_string’:
> > gui_gtk_x11.c:5749:13: warning: ‘should_need_pango’ may be used
> > uninitialized in this function [-Wmaybe-uninitialized]
> >   len_sum += gui_gtk2_draw_string_ext(row, col + len_sum,
> >              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >         cs, slen, flags, needs_pango);
> >         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> The error is confusing, because it is at the line where needs_pango is
> used.  But needs_pango got the value of should_need_pango further down,
> apparently the not-initialized mark is transfered between the variables.
> 
> Gcc doesn't know that the while is always making at least one loop.

There are two nested while loops with seemingly different math, I
believe that's what made Gcc stumble: `while (cs < s + len)` and `while
(slen < (len - byte_sum))`. Variable is set in inner loop while outer
loop needs it. Human eye can distinguish that we can't enter outer loop
without entering inner one, at least once, but I can understand how that
may look to Gcc. Will take care with next PR, thanks.

Best,
Dusan

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/YWwAQPgdwg9fOSVw%40ryzen.me.

Attachment: signature.asc
Description: PGP signature

Raspunde prin e-mail lui