83 lines · cpp
1// RUN: %clang_cc1 -std=c++11 -verify %s -Wno-tautological-compare2 3template <typename T, typename U>4void 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); // FIXME10 (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); // FIXME16 (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); // FIXME23 (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); // FIXME29 (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); // FIXME36 (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); // FIXME42 (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); // FIXME49 (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); // FIXME55 (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); // FIXME62 (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); // FIXME68 (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); // FIXME75 (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); // FIXME81 (void)(3 >> t);82}83