2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.other / warn4.C
blobdca3ed4e35b6e014a561564e8c42d857f8212b31
1 // { dg-do assemble  }
3 // Copyright (C) 1999 Free Software Foundation, Inc.
4 // Contributed by Nathan Sidwell 21 Nov 1999 <nathan@acm.org>
6 // make sure we only warn on assigning a negative (signed) value
7 // to an unsigned type, and don't warn just if the unsigned value
8 // happens to have the top bit set.
10 typedef unsigned U;
12 void fn (unsigned);
14 void fu ()
16   unsigned s1 = -1u;
17   unsigned s2(-1u);
18   unsigned volatile s3 = -1u;
19   unsigned const s4 = -1u;
20   unsigned const &s5(-1u);
21   s1 = -1u;
22   fn (-1u);
25 void fU ()
27   U s1 = -1u;
28   U s2(-1u);
29   U volatile s3 = -1u;
30   U const s4 = -1u;
31   U const &s5(-1u);
32   s1 = -1u;
33   fn (-1u);
36 void fs ()
38   unsigned s1 = -1;         // { dg-warning "" } initialization
39   unsigned s2(-1);          // { dg-warning "" } initialization
40   unsigned volatile s3 = -1;// { dg-warning "" } initialization
41   unsigned const s4 = -1;   // { dg-warning "" } initialization
42   unsigned const &s5(-1);   // { dg-warning "" } initialization
43   s1 = -1;                  // { dg-warning "" } assignment
44   fn (-1);                  // { dg-warning "" } passing
47 void fss ()
49   unsigned s1 = -(-1);
50   unsigned s2(-(-1));
51   unsigned volatile s3 = -(-1);
52   unsigned const s4 = -(-1);
53   unsigned const &s5(-(-1));
54   s1 = -(-1);
55   fn (-(-1));
58 void fsz ()
60   unsigned s1 = -0;
61   unsigned s2(-0);
62   unsigned volatile s3 = -0;
63   unsigned const s4 = -0;
64   unsigned const &s5(-0);
65   s1 = -0;
66   fn (-0);