// RUN: c-index-test -test-print-binops %s | FileCheck %s struct C { int m; }; void func(void) { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-value" int a, b; int C::*p = &C::m; C c; c.*p; C *pc; pc->*p; a *b; a / b; a % b; a + b; a - b; a << b; a >> b; a < b; a > b; a <= b; a >= b; a == b; a != b; a &b; a ^ b; a | b; a &&b; a || b; a = b; a *= b; a /= b; a %= b; a += b; a -= b; a <<= b; a >>= b; a &= b; a ^= b; a |= b; a, b; #pragma clang diagnostic pop } // CHECK: BinaryOperator=.* BinOp=.* 1 // CHECK: BinaryOperator=->* BinOp=->* 2 // CHECK: BinaryOperator=* BinOp=* 3 // CHECK: BinaryOperator=/ BinOp=/ 4 // CHECK: BinaryOperator=% BinOp=% 5 // CHECK: BinaryOperator=+ BinOp=+ 6 // CHECK: BinaryOperator=- BinOp=- 7 // CHECK: BinaryOperator=<< BinOp=<< 8 // CHECK: BinaryOperator=>> BinOp=>> 9 // CHECK: BinaryOperator=< BinOp=< 11 // CHECK: BinaryOperator=> BinOp=> 12 // CHECK: BinaryOperator=<= BinOp=<= 13 // CHECK: BinaryOperator=>= BinOp=>= 14 // CHECK: BinaryOperator=== BinOp=== 15 // CHECK: BinaryOperator=!= BinOp=!= 16 // CHECK: BinaryOperator=& BinOp=& 17 // CHECK: BinaryOperator=^ BinOp=^ 18 // CHECK: BinaryOperator=| BinOp=| 19 // CHECK: BinaryOperator=&& BinOp=&& 20 // CHECK: BinaryOperator=|| BinOp=|| 21 // CHECK: BinaryOperator== BinOp== 22 // CHECK: CompoundAssignOperator=*= BinOp=*= 23 // CHECK: CompoundAssignOperator=/= BinOp=/= 24 // CHECK: CompoundAssignOperator=%= BinOp=%= 25 // CHECK: CompoundAssignOperator=+= BinOp=+= 26 // CHECK: CompoundAssignOperator=-= BinOp=-= 27 // CHECK: CompoundAssignOperator=<<= BinOp=<<= 28 // CHECK: CompoundAssignOperator=>>= BinOp=>>= 29 // CHECK: CompoundAssignOperator=&= BinOp=&= 30 // CHECK: CompoundAssignOperator=^= BinOp=^= 31 // CHECK: CompoundAssignOperator=|= BinOp=|= 32 // CHECK: BinaryOperator=, BinOp=, 33