xref: /llvm-project/clang/test/CXX/over/over.built/p18.cpp (revision d3dc7d077f1d9c9478813a34ed38abbcb4fc1ef5)
1 // RUN: %clang_cc1 -std=c++11 -verify %s -Wno-tautological-compare
2 
3 template <typename T, typename U>
f(int i,float f,bool b,int * pi,T * pt,T t)4 void f(int i, float f, bool b, int* pi, T* pt, T t) {
5   (void)(i % 3);
6   (void)(f % 3);  // expected-error {{invalid operands}}
7   (void)(b % 3);
8   (void)(pi % 3); // expected-error {{invalid operands}}
9   (void)(pt % 3); // FIXME
10   (void)(t % 3);
11   (void)(3 % i);
12   (void)(3 % f);  // expected-error {{invalid operands}}
13   (void)(3 % b);
14   (void)(3 % pi); // expected-error {{invalid operands}}
15   (void)(3 % pt); // FIXME
16   (void)(3 % t);
17 
18   (void)(i & 3);
19   (void)(f & 3);  // expected-error {{invalid operands}}
20   (void)(b & 3);
21   (void)(pi & 3); // expected-error {{invalid operands}}
22   (void)(pt & 3); // FIXME
23   (void)(t & 3);
24   (void)(3 & i);
25   (void)(3 & f);  // expected-error {{invalid operands}}
26   (void)(3 & b);
27   (void)(3 & pi); // expected-error {{invalid operands}}
28   (void)(3 & pt); // FIXME
29   (void)(3 & t);
30 
31   (void)(i ^ 3);
32   (void)(f ^ 3);  // expected-error {{invalid operands}}
33   (void)(b ^ 3);
34   (void)(pi ^ 3); // expected-error {{invalid operands}}
35   (void)(pt ^ 3); // FIXME
36   (void)(t ^ 3);
37   (void)(3 ^ i);
38   (void)(3 ^ f);  // expected-error {{invalid operands}}
39   (void)(3 ^ b);
40   (void)(3 ^ pi); // expected-error {{invalid operands}}
41   (void)(3 ^ pt); // FIXME
42   (void)(3 ^ t);
43 
44   (void)(i | 3);
45   (void)(f | 3);  // expected-error {{invalid operands}}
46   (void)(b | 3);
47   (void)(pi | 3); // expected-error {{invalid operands}}
48   (void)(pt | 3); // FIXME
49   (void)(t | 3);
50   (void)(3 | i);
51   (void)(3 | f);  // expected-error {{invalid operands}}
52   (void)(3 | b);
53   (void)(3 | pi); // expected-error {{invalid operands}}
54   (void)(3 | pt); // FIXME
55   (void)(3 | t);
56 
57   (void)(i << 3);
58   (void)(f << 3);  // expected-error {{invalid operands}}
59   (void)(b << 3);
60   (void)(pi << 3); // expected-error {{invalid operands}}
61   (void)(pt << 3); // FIXME
62   (void)(t << 3);
63   (void)(3 << i);
64   (void)(3 << f);  // expected-error {{invalid operands}}
65   (void)(3 << b);
66   (void)(3 << pi); // expected-error {{invalid operands}}
67   (void)(3 << pt); // FIXME
68   (void)(3 << t);
69 
70   (void)(i >> 3);
71   (void)(f >> 3);  // expected-error {{invalid operands}}
72   (void)(b >> 3);
73   (void)(pi >> 3); // expected-error {{invalid operands}}
74   (void)(pt >> 3); // FIXME
75   (void)(t >> 3);
76   (void)(3 >> i);
77   (void)(3 >> f);  // expected-error {{invalid operands}}
78   (void)(3 >> b);
79   (void)(3 >> pi); // expected-error {{invalid operands}}
80   (void)(3 >> pt); // FIXME
81   (void)(3 >> t);
82 }
83