[Info-vax] C compiler question

Arne Vajhøj arne at vajhoej.dk
Sat Jul 27 13:17:06 EDT 2019


On 7/27/2019 12:57 PM, Mark Berryman wrote:
> Something I see all the time when porting unix code is something similar 
> to the following:
> 
> unsigned int x;
> .
> .
> .
> if (x <= 0) {something}
> 
> This, of course, generates a QUESTCOMPARE informational.  I'm wondering 
> what code the compiler generates in such a case.  Does it treat the 
> variable as if it had been declared signed or does it do something else? 
>   Is the compiler's behavior in this case defined by a standard or is it 
> left up to the implementation?
> 
> Part of what I am wondering is if I can count on the code generated by a 
> VMS compiler to function the same as the code generated by a gcc or 
> clang compiler.

I believe the behavior is defined.

So that:

unsigned int x;
.
if (x <= 0) {something}

will work like:

unsigned int x;
.
if (x == 0) {something}

and:

unsigned int x;
.
if (x >= 0) {something}

as:

unsigned int x;
.
{something}

Arne




More information about the Info-vax mailing list