BUGFIX: TORTURE.C - Fixes to allow builds with Compaq C

John Aldridge john.aldridge at informatix.co.uk
Tue Jul 10 16:54:30 GMT 2001


At 12:30 10/07/2001 -0400, Michael Sweet wrote:
>John Aldridge wrote:
> > ...
> > No... it's an error.  ANSI C says (under Assignment)
> >
> > "One of the following shall hold... both operands are pointers to qualified
> > or unqualified versions of compatible types, and the type pointed to by the
> > left hand side has all the qualifiers of the type pointed to by the right."
> >
> > and then defines argument passing to be "as if by assignment".
>
>Sigh...  You might also look to see that "signed" and "unsigned" types
>are considered to be compatible for assignment purposes, although a
>compiler is free to issue a warning about it...

The section on assignment also says "One of the following shall hold... the 
left operand has qualified or unqualifed arithmetic type and the right has 
arithmetic type." which covers this case

In other words
    signed = unsigned
is legal (though the compiler may warn), but
    int* = volatile int*
isn't, and the compiler must issue a diagnostic and need complete the 
compilation.


-- 
Cheers,
John





More information about the samba-technical mailing list