1 // RUN: %clang_cc1 -std=c++11 -verify %s -Wno-tautological-compare
3 template <typename T
, typename U
>
4 void f(int i
, float f
, bool b
, int* pi
, T
* pt
, T t
) {
6 (void)(f
% 3); // expected-error {{invalid operands}}
8 (void)(pi
% 3); // expected-error {{invalid operands}}
9 (void)(pt
% 3); // FIXME
12 (void)(3 % f
); // expected-error {{invalid operands}}
14 (void)(3 % pi
); // expected-error {{invalid operands}}
15 (void)(3 % pt
); // FIXME
19 (void)(f
& 3); // expected-error {{invalid operands}}
21 (void)(pi
& 3); // expected-error {{invalid operands}}
22 (void)(pt
& 3); // FIXME
25 (void)(3 & f
); // expected-error {{invalid operands}}
27 (void)(3 & pi
); // expected-error {{invalid operands}}
28 (void)(3 & pt
); // FIXME
32 (void)(f
^ 3); // expected-error {{invalid operands}}
34 (void)(pi
^ 3); // expected-error {{invalid operands}}
35 (void)(pt
^ 3); // FIXME
38 (void)(3 ^ f
); // expected-error {{invalid operands}}
40 (void)(3 ^ pi
); // expected-error {{invalid operands}}
41 (void)(3 ^ pt
); // FIXME
45 (void)(f
| 3); // expected-error {{invalid operands}}
47 (void)(pi
| 3); // expected-error {{invalid operands}}
48 (void)(pt
| 3); // FIXME
51 (void)(3 | f
); // expected-error {{invalid operands}}
53 (void)(3 | pi
); // expected-error {{invalid operands}}
54 (void)(3 | pt
); // FIXME
58 (void)(f
<< 3); // expected-error {{invalid operands}}
60 (void)(pi
<< 3); // expected-error {{invalid operands}}
61 (void)(pt
<< 3); // FIXME
64 (void)(3 << f
); // expected-error {{invalid operands}}
66 (void)(3 << pi
); // expected-error {{invalid operands}}
67 (void)(3 << pt
); // FIXME
71 (void)(f
>> 3); // expected-error {{invalid operands}}
73 (void)(pi
>> 3); // expected-error {{invalid operands}}
74 (void)(pt
>> 3); // FIXME
77 (void)(3 >> f
); // expected-error {{invalid operands}}
79 (void)(3 >> pi
); // expected-error {{invalid operands}}
80 (void)(3 >> pt
); // FIXME