Copyright Digital Equipment Corp. All rights reserved.

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.