grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Frozen


From: Lennart Sorensen
Subject: Re: Frozen
Date: Thu, 1 Mar 2012 14:15:17 -0500
User-agent: Mutt/1.5.20 (2009-06-14)

On Thu, Mar 01, 2012 at 01:37:10PM -0500, Lennart Sorensen wrote:
> gcc-4.4 -DHAVE_CONFIG_H -I. -I../../../grub-core -I..  -Wall -W 
> -I../../../include -I../include  -DGRUB_MACHINE_EMU=1 
> -DGRUB_MACHINE=POWERPC_EMU -DGRUB_TARGET_CPU_POWERPC=1 -m32 
> -DGRUB_FILE=\"normal/charset.c\" -I. -I../../../grub-core -I.. -I../../.. 
> -I../../../include -I../include   -I../../../grub-core/lib/posix_wrap   -Os 
> -Wall -W -Wshadow -Wold-style-declaration -Wold-style-definition 
> -Wpointer-arith -Wundef -Wextra -Waddress -Warray-bounds -Wattributes 
> -Wbuiltin-macro-redefined -Wcast-align -Wchar-subscripts -Wclobbered 
> -Wcomment -Wcoverage-mismatch -Wdeprecated -Wdeprecated-declarations 
> -Wdisabled-optimization -Wdiv-by-zero -Wempty-body -Wendif-labels 
> -Wfloat-equal -Wformat-contains-nul -Wformat-extra-args -Wformat-security 
> -Wformat-y2k -Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration 
> -Wimplicit-int -Winit-self -Wint-to-pointer-cast -Winvalid-pch 
> -Wunsafe-loop-optimizations -Wlogical-op -Wmain -Wmissing-braces 
> -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-noreturn -W
> mudflap -Wmultichar -Wnonnull -Woverflow -Wpacked-bitfield-compat 
> -Wparentheses -Wpointer-arith -Wpointer-to-int-cast -Wreturn-type 
> -Wsequence-point -Wshadow -Wsign-compare -Wstrict-aliasing -Wswitch 
> -Wsync-nand -Wtrigraphs  -Wtype-limits -Wundef -Wuninitialized 
> -Wunknown-pragmas -Wunused -Wunused-function -Wunused-label 
> -Wunused-parameter -Wunused-value  -Wunused-variable -Wvariadic-macros 
> -Wvolatile-register-var -Wwrite-strings -Wmissing-parameter-type 
> -Wnested-externs -Wstrict-prototypes -Wpointer-sign -g -Wredundant-decls 
> -Wmissing-prototypes -Wmissing-declarations -fno-dwarf2-cfi-asm 
> -fno-asynchronous-unwind-tables -m32 -fno-stack-protector -Werror 
> -DUSE_ASCII_FAILBACK=1 -DHAVE_UNIFONT_WIDTHSPEC=1         -ffreestanding 
> -fno-builtin -Wno-redundant-decls   -c -o normal/normal_module-charset.o 
> `test -f 'normal/charset.c' || echo '../../../grub-core/'`normal/charset.c
> cc1: warnings being treated as errors
> ../../../grub-core/normal/charset.c: In function 
> 'grub_bidi_line_logical_to_visual':
> ../../../grub-core/normal/charset.c:636: error: cannot optimize possibly 
> infinite loops

Would using this instead work:

for (i = k - 1; i >= 0 && (unsigned) i > line_start - 1;

After all if i already had to be >=0 then casting it to unsigned has no
harm, whereas casting line_start to signed could potentially generate
a very negative number if line_start was very big.

The compiler approves.

-- 
Len Sorensen



reply via email to

[Prev in Thread] Current Thread [Next in Thread]