OSDN Git Service

* g++.old-deja/g++.benjamin/16077.C: Adjust warnings.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.old-deja / g++.warn / impint2.C
1 // Build don't link:
2
3 // Copyright (C) 2000 Free Software Foundation, Inc.
4 // Contributed by Nathan Sidwell 6 Mar 2000 <nathan@codesourcery.com>
5
6 // initialization to 'int' from to 'double' We expect consistent warnings
7 // whenever a float is implicitly truncated to int, make sure references
8 // don't confuse us, as Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> found out.
9
10 struct X
11 {
12   X (int const &);
13   X (int const &, int const &);
14 };
15
16 void foo (int const &);
17 void wibble (int const &);
18 void wibble (int const &, int const &);
19 void punk (int const & = 3.5f);        // WARNING - in passing
20 void rock ();
21 void rock (int const &, int  const & = 3.5f);       // WARNING - in passing
22
23 void fn ()
24 {
25   X x2(3.5f);       // WARNING - float to int
26   X x4(1, 3.5f);    // WARNING - float to int
27   X x6(3.5f, 1);    // WARNING - float to int
28
29   X y2 = 3.5f;      // WARNING - float to int
30
31   int j2 (3.5f);    // WARNING - float to int
32
33   int k2 = 3.5f;    // WARNING - float to int
34   
35   j2 = 3.5f;        // WARNING - float to int
36   
37   foo (3.5f);       // WARNING - float to int
38   
39   wibble (3.5f);    // WARNING - float to int
40   wibble (1, 3.5f); // WARNING - float to int
41   wibble (3.5f, 1); // WARNING - float to int
42   
43   punk ();          // WARNING - float to int
44   rock (1);         // WARNING - float to int
45 }
46
47 // and make sure we really know when something's unsigned
48 void foo ()
49 {
50   X x2(-1);
51   X x4(1, -1);
52   X x6(-1, 1);
53
54   X y2 = -1;
55
56   int j2 (-1);
57
58   int k2 = -1;
59   
60   j2 = -1;
61   
62   foo (-1);
63   
64   wibble (-1);   
65   wibble (1, -1);
66   wibble (-1, 1);
67   
68 }