1// { dg-do assemble } 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 10struct X 11{ 12 X (int const &); 13 X (int const &, int const &); 14}; 15 16void foo (int const &); 17void wibble (int const &); 18void wibble (int const &, int const &); 19void punk (int const & = 3.5f); // { dg-warning "" } in passing 20void rock (); 21void rock (int const &, int const & = 3.5f); // { dg-warning "" } in passing 22 23void fn () 24{ 25 X x2(3.5f); // { dg-warning "" } float to int 26 X x4(1, 3.5f); // { dg-warning "" } float to int 27 X x6(3.5f, 1); // { dg-warning "" } float to int 28 29 X y2 = 3.5f; // { dg-warning "" } float to int 30 31 int j2 (3.5f); // { dg-warning "" } float to int 32 33 int k2 = 3.5f; // { dg-warning "" } float to int 34 35 j2 = 3.5f; // { dg-warning "" } float to int 36 37 foo (3.5f); // { dg-warning "" } float to int 38 39 wibble (3.5f); // { dg-warning "" } float to int 40 wibble (1, 3.5f); // { dg-warning "" } float to int 41 wibble (3.5f, 1); // { dg-warning "" } float to int 42 43 punk (); // { dg-warning "" } float to int 44 rock (1); // { dg-warning "" } float to int 45} 46 47// and make sure we really know when something's unsigned 48void 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} 69