bug-texinfo
[Top][All Lists]
Advanced

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

Re: -Wtype-limits warning in info/infokey.c


From: Gavin Smith
Subject: Re: -Wtype-limits warning in info/infokey.c
Date: Thu, 10 Oct 2024 17:00:18 +0100

On Thu, Oct 10, 2024 at 02:22:52PM +0300, Eli Zaretskii wrote:
> > Date: Thu, 10 Oct 2024 12:33:45 +0200
> > From: Patrice Dumas <pertusus@free.fr>
> > 
> > Hello,
> > 
> > I get this warning:
> > In file included from ../../info/doc.h:59,
> >                  from ../../info/infokey.c:21:
> > ../../info/infokey.c: In function ‘compile’:
> > ../../info/infomap.h:105:29: warning: comparison is always true due to 
> > limited range of data type [-Wtype-limits]
> >   105 | #define KEYMAP_META(k) ((k) < KEYMAP_META_BASE ? (k) + 
> > KEYMAP_META_BASE : (k))
> >       |                             ^
> > ../../info/infokey.c:223:44: note: in expansion of macro ‘KEYMAP_META’
> >   223 |                       seq[slen++] = meta ? KEYMAP_META(c) : (c); \
> >       |                                            ^~~~~~~~~~~
> > ../../info/infokey.c:380:21: note: in expansion of macro ‘To_seq’
> >   380 |                     To_seq (oval);
> >       |                     ^~~~~~
> 
> This is because 'oval' is declared as 'char':
> 
>   char oval = 0;
> 
> So therefore this part in KEYMAP_META:
> 
>   #define KEYMAP_META(k) ((k) < KEYMAP_META_BASE ? (k) + KEYMAP_META_BASE : 
> (k))
>                           ^^^^^^^^^^^^^^^^^^^^^^
> 
> is always true, because KEYMAP_META_BASE is 271, and a 'char' variable
> cannot be more than 255 (if it's unsigned; otherwise it cannot be more
> than 127).
> 
> I think we should declare 'oval' as 'int' instead.
> 

I agree.



reply via email to

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