* ru.po: Update.
[official-gcc.git] / gcc / testsuite / g++.dg / warn / Wuseless-cast.C
blob6f0e2cfb0b2e6002e449b0e9767797b787a2c1c6
1 // { dg-options "-Wuseless-cast" }
3 template<typename T>
4   void tmpl_f1(T& t)
5   {
6     (int)(t);
7     static_cast<int>(t);
8     reinterpret_cast<int>(t);
10     (int*)(&t);
11     const_cast<int*>(&t);
12     static_cast<int*>(&t);
13     reinterpret_cast<int*>(&t);
15     (int&)(t);
16     const_cast<int&>(t);
17     static_cast<int&>(t);
18     reinterpret_cast<int&>(t);
19   }
21 template<typename T>
22   void tmpl_f2(T t)
23   {
24     (int&)(t);
25     const_cast<int&>(t);
26     static_cast<int&>(t);
27     reinterpret_cast<int&>(t);
28   }
30 struct A { };
32 template<typename T>
33   void tmpl_f3(T& t)
34   {
35     (A)(t);
36     static_cast<A>(t);
38     (A*)(&t);
39     const_cast<A*>(&t);
40     static_cast<A*>(&t);
41     reinterpret_cast<A*>(&t);
42     dynamic_cast<A*>(&t);
44     (A&)(t);
45     const_cast<A&>(t);
46     static_cast<A&>(t);
47     reinterpret_cast<A&>(t);
48     dynamic_cast<A&>(t);
49   }
51 template<typename T>
52   void tmpl_f4(T t)
53   {
54     (A&)(t);
55     const_cast<A&>(t);
56     static_cast<A&>(t);
57     reinterpret_cast<A&>(t);
58     dynamic_cast<A&>(t);
59   }
61 A prvalue();
63 void f()
65   int n; 
67   (int)(n);                    // { dg-warning "useless cast" }
68   static_cast<int>(n);         // { dg-warning "useless cast" }
69   reinterpret_cast<int>(n);    // { dg-warning "useless cast" }
71   (int*)(&n);                  // { dg-warning "useless cast" }
72   const_cast<int*>(&n);        // { dg-warning "useless cast" }
73   static_cast<int*>(&n);       // { dg-warning "useless cast" }
74   reinterpret_cast<int*>(&n);  // { dg-warning "useless cast" }
76   int& m = n;
78   (int&)(m);                   // { dg-warning "useless cast" }
79   const_cast<int&>(m);         // { dg-warning "useless cast" }
80   static_cast<int&>(m);        // { dg-warning "useless cast" }
81   reinterpret_cast<int&>(m);   // { dg-warning "useless cast" }
83   tmpl_f1(m);
85   (int&)(n);                   // { dg-warning "useless cast" }
86   const_cast<int&>(n);         // { dg-warning "useless cast" }
87   static_cast<int&>(n);        // { dg-warning "useless cast" }
88   reinterpret_cast<int&>(n);   // { dg-warning "useless cast" }
90   tmpl_f2(n);
92 #ifdef __GXX_EXPERIMENTAL_CXX0X__
93   (int&&)(42);
94   static_cast<int&&>(42);
96   (A&&)(prvalue());
97   const_cast<A&&>(prvalue());
98   static_cast<A&&>(prvalue());
99 #endif
101   A a;
103   (A)(a);                     // { dg-warning "useless cast" }
104   static_cast<A>(a);          // { dg-warning "useless cast" }
106   (A*)(&a);                   // { dg-warning "useless cast" }
107   const_cast<A*>(&a);         // { dg-warning "useless cast" }
108   static_cast<A*>(&a);        // { dg-warning "useless cast" }
109   reinterpret_cast<A*>(&a);   // { dg-warning "useless cast" }
110   dynamic_cast<A*>(&a);       // { dg-warning "useless cast" }
112   A& b = a;
114   (A&)(b);                    // { dg-warning "useless cast" }
115   const_cast<A&>(b);          // { dg-warning "useless cast" }
116   static_cast<A&>(b);         // { dg-warning "useless cast" }     
117   static_cast<A&>(b);         // { dg-warning "useless cast" }
118   dynamic_cast<A&>(b);        // { dg-warning "useless cast" }
120   tmpl_f3(b);
122   (A&)(a);                    // { dg-warning "useless cast" } 
123   const_cast<A&>(a);          // { dg-warning "useless cast" }
124   static_cast<A&>(a);         // { dg-warning "useless cast" }
125   reinterpret_cast<A&>(a);    // { dg-warning "useless cast" }
126   dynamic_cast<A&>(a);        // { dg-warning "useless cast" }
128   tmpl_f4(a);