sign-compare warning for short and char

2018-02-20 Thread Christophe de Dinechin
I wonder why -Wsign-compare only warns when there is no int promotion?

No warning for this, where the result is “surprisingly” false because of int 
promotion:
   signed char i = (signed char) -3;
   unsigned char j = (unsigned char) -3;
   printf("i=%x j=%x i==j=%d\n", i, j, i==j);
gcc  -Wsign-compare ~/test.c -o /tmp/glop && /tmp/glop
i=fffd j=fd i==j=0

But a warning for this where the result is true (which I believe represents a 
lower risk than the above case):
signed int i = (signed int) -3;
unsigned int j = (unsigned int) -3;
printf("i=%x j=%x i==j=%d\n", i, j, i==j);

% gcc  -Wsign-compare ~/test.c -o /tmp/glop && /tmp/glop
i=fffd j=fd i==j=0
/home/ddd/test.c:7:42: warning: comparison between signed and unsigned integer 
expressions [-Wsign-compare]
 printf("i=%x j=%x i==j=%d\n", i, j, i==j);
  ^~
i=fffd j=fffd i==j=1

I did not find a rationale in the documentation, nor a good alternative flag 
that would focus on comparisons with promotion.

Tested with several semi-old variants of GCC, e.g. 4.8.5, and more recent ones 
e.g. 7.2.1, with consistent results.
gcc --version
gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2)


Thanks,
Christophe





Re: sign-compare warning for short and char

2018-02-20 Thread Christophe de Dinechin


> On 20 Feb 2018, at 16:15, Jonathan Wakely  wrote:
> 
> This question belongs on the gcc-help list really.

I posted here because I saw it as a possible diagnostic bug / limitation. Do 
such things go to gcc-help? Or is it that you thought I was asking for the 
correct option?

> On 20 February 2018 at 14:44, Christophe de Dinechin
>  wrote:
>> I wonder why -Wsign-compare only warns when there is no int promotion?
> 
> I suspect the correct-but-not-helpful answer is that after integer
> promotion the operands have the same type, and so there's no
> comparison between signed and unsigned types.

That’s an implementation explanation, not a rationale, right?

> But the compiler could make the warning apply *before* doing integer
> promotion, to diagnose this case.

That is what I am thinking, but I was wondering if there was not some rationale 
making this a bad idea.



Re: Remove RMS from the GCC Steering Committee

2021-03-29 Thread Christophe de Dinechin via Gcc



> On 27 Mar 2021, at 08:08, Didier Kryn  wrote:
> 
> I've been lurking on this list for a while but never contributed in
> any way to the project. Therefore I understand my voice has little weight.
> 
> I'm terrified by this campaign of harassment against the person who
> has given the biggest contribution to free software.

+1

> This confirms to my
> eyes that the People *is not* the defensor of Liberty and only the law
> can defend it. The success of this campaign will prove that even the
> liberty to express personnal opinions seems excessive to the People.
> This is how terror begins.
> 
> -- Didier
> 
>