VMS Help  —  CC  Messages  VALUEPRES
 Message        <Context> the conversion of the unsigned char/short
                value "<expression>" to signed int shows one example
                of this program's use of value-preserving integral
                promotion.  This differs from the unsigned-preserving
                semantics of some older C compilers.

 Description    This expression shows one of possibly many places
                where this compilation uses value-preserving
                semantics for small integer promotions rather than
                unsigned-preserving semantics used by some older
                compilers.  In cases where an unsigned char or
                unsigned short int is promoted to an integer, there
                are two different ways the convert could happen.
                Standard C requires that the type be converted to a
                signed int (value-preserving semantics) while some
                older compilers will convert to an unsigned int
                (unsigned-preserving semantics).  The difference in
                the choice of int or unsigned int can have an impact
                on results of expressions that use the converted
                value.  The compiler cannot determine whether or not
                a particular instance of this usage will cause an
                observable behavior difference in the program.  For
                more information, consult Section 3.2.1.1 of the
                Rationale for ANSI C.

 User Action    Be aware that older, non-standard compilers might
                interpret this expression differently.
Close Help