// Build don't link: // Copyright (C) 1999 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 21 Nov 1999 // make sure we only warn on assigning a negative (signed) value // to an unsigned type, and don't warn just if the unsigned value // happens to have the top bit set. typedef unsigned U; void fn (unsigned); void fu () { unsigned s1 = -1u; unsigned s2(-1u); unsigned volatile s3 = -1u; unsigned const s4 = -1u; unsigned const &s5(-1u); s1 = -1u; fn (-1u); } void fU () { U s1 = -1u; U s2(-1u); U volatile s3 = -1u; U const s4 = -1u; U const &s5(-1u); s1 = -1u; fn (-1u); } void fs () { unsigned s1 = -1; // WARNING - initialization unsigned s2(-1); // WARNING - initialization unsigned volatile s3 = -1;// WARNING - initialization unsigned const s4 = -1; // WARNING - initialization unsigned const &s5(-1); // WARNING - initialization s1 = -1; // WARNING - assignment fn (-1); // WARNING - passing } void fss () { unsigned s1 = -(-1); unsigned s2(-(-1)); unsigned volatile s3 = -(-1); unsigned const s4 = -(-1); unsigned const &s5(-(-1)); s1 = -(-1); fn (-(-1)); } void fsz () { unsigned s1 = -0; unsigned s2(-0); unsigned volatile s3 = -0; unsigned const s4 = -0; unsigned const &s5(-0); s1 = -0; fn (-0); }