diff options
author | Thomas Wucher <30866545+thomaswucher@users.noreply.github.com> | 2024-07-15 15:17:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-15 09:17:28 -0400 |
commit | a972a394afcb276abb3029d0f2753d4403e379c2 (patch) | |
tree | 117adb17513a6d40e76ad0f02341306fb13e64f0 | |
parent | 1af3a89a4b384cbc5a6b111a0f7756085de818cd (diff) | |
download | llvm-a972a394afcb276abb3029d0f2753d4403e379c2.zip llvm-a972a394afcb276abb3029d0f2753d4403e379c2.tar.gz llvm-a972a394afcb276abb3029d0f2753d4403e379c2.tar.bz2 |
Retrieve BinaryOperator::getOpcode and BinaryOperator::getOpcodeStr via libclang and its python interface (#98489)
This is a rework of patch [D10833](https://reviews.llvm.org/D10833)
previously posted on LLVM Phabricator by arthurp in 2015. It allows to
retrieve the type of binary operator via libclangs python bindings.
I did clean up the changes, removed unrelated changes and rebased the
changeset to the latest main branch. As this is my first contribution to
the LLVM project, let me know if any required tests or documentation are
missing.
-rw-r--r-- | clang/bindings/python/clang/cindex.py | 63 | ||||
-rw-r--r-- | clang/bindings/python/tests/cindex/test_cursor.py | 104 | ||||
-rw-r--r-- | clang/bindings/python/tests/cindex/test_enums.py | 2 | ||||
-rw-r--r-- | clang/docs/ReleaseNotes.rst | 2 | ||||
-rw-r--r-- | clang/include/clang-c/Index.h | 53 | ||||
-rw-r--r-- | clang/test/Index/binop.cpp | 92 | ||||
-rw-r--r-- | clang/test/Index/blocks.c | 3 | ||||
-rw-r--r-- | clang/test/Index/c-index-api-loadTU-test.m | 2 | ||||
-rw-r--r-- | clang/test/Index/index-concepts.cpp | 6 | ||||
-rw-r--r-- | clang/test/Index/load-staticassert.cpp | 4 | ||||
-rw-r--r-- | clang/test/Index/nested-binaryoperators.cpp | 1961 | ||||
-rw-r--r-- | clang/test/Index/preamble.c | 2 | ||||
-rw-r--r-- | clang/test/Index/print-type.c | 4 | ||||
-rw-r--r-- | clang/test/Index/print-type.cpp | 2 | ||||
-rw-r--r-- | clang/test/Index/recursive-cxx-member-calls.cpp | 66 | ||||
-rw-r--r-- | clang/test/Index/remap-load.c | 2 | ||||
-rw-r--r-- | clang/test/Index/usrs.m | 2 | ||||
-rw-r--r-- | clang/tools/c-index-test/c-index-test.c | 18 | ||||
-rw-r--r-- | clang/tools/libclang/CIndex.cpp | 36 | ||||
-rw-r--r-- | clang/tools/libclang/libclang.map | 2 |
20 files changed, 1655 insertions, 771 deletions
diff --git a/clang/bindings/python/clang/cindex.py b/clang/bindings/python/clang/cindex.py index 1d3ab89..be024da 100644 --- a/clang/bindings/python/clang/cindex.py +++ b/clang/bindings/python/clang/cindex.py @@ -1821,6 +1821,18 @@ class Cursor(Structure): return AvailabilityKind.from_id(self._availability) @property + def binary_operator(self): + """ + Retrieves the opcode if this cursor points to a binary operator + :return: + """ + + if not hasattr(self, "_binopcode"): + self._binopcode = conf.lib.clang_Cursor_getBinaryOpcode(self) + + return BinaryOperator.from_id(self._binopcode) + + @property def access_specifier(self): """ Retrieves the access specifier (if any) of the entity pointed at by the @@ -2110,6 +2122,55 @@ class Cursor(Structure): return res +class BinaryOperator(BaseEnumeration): + """ + Describes the BinaryOperator of a declaration + """ + + def __nonzero__(self): + """Allows checks of the kind ```if cursor.binary_operator:```""" + return self.value != 0 + + @property + def is_assignment(self): + return BinaryOperator.Assign.value <= self.value < BinaryOperator.Comma.value + + Invalid = 0 + PtrMemD = 1 + PtrMemI = 2 + Mul = 3 + Div = 4 + Rem = 5 + Add = 6 + Sub = 7 + Shl = 8 + Shr = 9 + Cmp = 10 + LT = 11 + GT = 12 + LE = 13 + GE = 14 + EQ = 15 + NE = 16 + And = 17 + Xor = 18 + Or = 19 + LAnd = 20 + LOr = 21 + Assign = 22 + MulAssign = 23 + DivAssign = 24 + RemAssign = 25 + AddAssign = 26 + SubAssign = 27 + ShlAssign = 28 + ShrAssign = 29 + AndAssign = 30 + XorAssign = 31 + OrAssign = 32 + Comma = 33 + + class StorageClass(BaseEnumeration): """ Describes the storage class of a declaration @@ -3847,6 +3908,7 @@ functionList = [ ("clang_Cursor_getTemplateArgumentUnsignedValue", [Cursor, c_uint], c_ulonglong), ("clang_Cursor_isAnonymous", [Cursor], bool), ("clang_Cursor_isBitField", [Cursor], bool), + ("clang_Cursor_getBinaryOpcode", [Cursor], c_int), ("clang_Cursor_getBriefCommentText", [Cursor], _CXString, _CXString.from_result), ("clang_Cursor_getRawCommentText", [Cursor], _CXString, _CXString.from_result), ("clang_Cursor_getOffsetOfField", [Cursor], c_longlong), @@ -4016,6 +4078,7 @@ conf = Config() __all__ = [ "AvailabilityKind", + "BinaryOperator", "Config", "CodeCompletionResults", "CompilationDatabase", diff --git a/clang/bindings/python/tests/cindex/test_cursor.py b/clang/bindings/python/tests/cindex/test_cursor.py index 84cd81394..7476947bd 100644 --- a/clang/bindings/python/tests/cindex/test_cursor.py +++ b/clang/bindings/python/tests/cindex/test_cursor.py @@ -13,6 +13,7 @@ from clang.cindex import CursorKind from clang.cindex import TemplateArgumentKind from clang.cindex import TranslationUnit from clang.cindex import TypeKind +from clang.cindex import BinaryOperator from .util import get_cursor from .util import get_cursors from .util import get_tu @@ -54,6 +55,64 @@ kTemplateArgTest = """\ void foo<-7, float, true>(); """ +kBinops = """\ +struct C { + int m; + }; + + void func(void){ + int a, b; + int C::* p = &C:: + + 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; + + } + """ + class TestCursor(unittest.TestCase): def test_get_children(self): @@ -695,3 +754,48 @@ class TestCursor(unittest.TestCase): self.assertIn( foo.mangled_name, ("_Z3fooii", "__Z3fooii", "?foo@@YAHHH", "?foo@@YAHHH@Z") ) + + def test_binop(self): + tu = get_tu(kBinops, lang="cpp") + + operators = { + # not exposed yet + # ".*" : BinaryOperator.PtrMemD, + "->*": BinaryOperator.PtrMemI, + "*": BinaryOperator.Mul, + "/": BinaryOperator.Div, + "%": BinaryOperator.Rem, + "+": BinaryOperator.Add, + "-": BinaryOperator.Sub, + "<<": BinaryOperator.Shl, + ">>": BinaryOperator.Shr, + # tests do not run in C++2a mode so this operator is not available + # "<=>" : BinaryOperator.Cmp, + "<": BinaryOperator.LT, + ">": BinaryOperator.GT, + "<=": BinaryOperator.LE, + ">=": BinaryOperator.GE, + "==": BinaryOperator.EQ, + "!=": BinaryOperator.NE, + "&": BinaryOperator.And, + "^": BinaryOperator.Xor, + "|": BinaryOperator.Or, + "&&": BinaryOperator.LAnd, + "||": BinaryOperator.LOr, + "=": BinaryOperator.Assign, + "*=": BinaryOperator.MulAssign, + "/=": BinaryOperator.DivAssign, + "%=": BinaryOperator.RemAssign, + "+=": BinaryOperator.AddAssign, + "-=": BinaryOperator.SubAssign, + "<<=": BinaryOperator.ShlAssign, + ">>=": BinaryOperator.ShrAssign, + "&=": BinaryOperator.AndAssign, + "^=": BinaryOperator.XorAssign, + "|=": BinaryOperator.OrAssign, + ",": BinaryOperator.Comma, + } + + for op, typ in operators.items(): + c = get_cursor(tu, op) + assert c.binary_operator == typ diff --git a/clang/bindings/python/tests/cindex/test_enums.py b/clang/bindings/python/tests/cindex/test_enums.py index d750529..63b2292 100644 --- a/clang/bindings/python/tests/cindex/test_enums.py +++ b/clang/bindings/python/tests/cindex/test_enums.py @@ -12,6 +12,7 @@ from clang.cindex import ( LinkageKind, TLSKind, StorageClass, + BinaryOperator, ) @@ -28,6 +29,7 @@ class TestEnums(unittest.TestCase): LinkageKind, TLSKind, StorageClass, + BinaryOperator, ] def test_from_id(self): diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 239107a..a34f109 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -1309,6 +1309,8 @@ Python Binding Changes - Exposed `CXRewriter` API as `class Rewriter`. - Add some missing kinds from Index.h (CursorKind: 149-156, 272-320, 420-437. TemplateArgumentKind: 5-9. TypeKind: 161-175 and 178). +- Add support for retrieving binary operator information through + Cursor.binary_operator(). OpenMP Support -------------- diff --git a/clang/include/clang-c/Index.h b/clang/include/clang-c/Index.h index ce22829..24ed23a 100644 --- a/clang/include/clang-c/Index.h +++ b/clang/include/clang-c/Index.h @@ -3751,6 +3751,59 @@ enum CX_StorageClass { }; /** + * Represents a specific kind of binary operator which can appear at a cursor. + */ +enum CX_BinaryOperatorKind { + CX_BO_Invalid = 0, + CX_BO_PtrMemD = 1, + CX_BO_PtrMemI = 2, + CX_BO_Mul = 3, + CX_BO_Div = 4, + CX_BO_Rem = 5, + CX_BO_Add = 6, + CX_BO_Sub = 7, + CX_BO_Shl = 8, + CX_BO_Shr = 9, + CX_BO_Cmp = 10, + CX_BO_LT = 11, + CX_BO_GT = 12, + CX_BO_LE = 13, + CX_BO_GE = 14, + CX_BO_EQ = 15, + CX_BO_NE = 16, + CX_BO_And = 17, + CX_BO_Xor = 18, + CX_BO_Or = 19, + CX_BO_LAnd = 20, + CX_BO_LOr = 21, + CX_BO_Assign = 22, + CX_BO_MulAssign = 23, + CX_BO_DivAssign = 24, + CX_BO_RemAssign = 25, + CX_BO_AddAssign = 26, + CX_BO_SubAssign = 27, + CX_BO_ShlAssign = 28, + CX_BO_ShrAssign = 29, + CX_BO_AndAssign = 30, + CX_BO_XorAssign = 31, + CX_BO_OrAssign = 32, + CX_BO_Comma = 33, + CX_BO_LAST = CX_BO_Comma +}; + +/** + * \brief Returns the operator code for the binary operator. + */ +CINDEX_LINKAGE enum CX_BinaryOperatorKind +clang_Cursor_getBinaryOpcode(CXCursor C); + +/** + * \brief Returns a string containing the spelling of the binary operator. + */ +CINDEX_LINKAGE CXString +clang_Cursor_getBinaryOpcodeStr(enum CX_BinaryOperatorKind Op); + +/** * Returns the storage class for a function or variable declaration. * * If the passed in Cursor is not a function or variable declaration, diff --git a/clang/test/Index/binop.cpp b/clang/test/Index/binop.cpp new file mode 100644 index 0000000..576fd73 --- /dev/null +++ b/clang/test/Index/binop.cpp @@ -0,0 +1,92 @@ +// 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 diff --git a/clang/test/Index/blocks.c b/clang/test/Index/blocks.c index 3f33e48..304c780 100644 --- a/clang/test/Index/blocks.c +++ b/clang/test/Index/blocks.c @@ -23,7 +23,7 @@ void test() { // CHECK: blocks.c:9:18: TypeRef=struct foo:4:8 Extent=[9:18 - 9:21] // CHECK: blocks.c:9:28: CompoundStmt= Extent=[9:28 - 9:58] // CHECK: blocks.c:9:30: ReturnStmt= Extent=[9:30 - 9:55] -// CHECK: blocks.c:9:37: BinaryOperator= Extent=[9:37 - 9:55] +// CHECK: blocks.c:9:37: BinaryOperator=+ Extent=[9:37 - 9:55] // CHECK: blocks.c:9:37: CStyleCastExpr= Extent=[9:37 - 9:51] // CHECK: blocks.c:9:38: TypeRef=int_t:3:13 Extent=[9:38 - 9:43] // CHECK: blocks.c:9:50: MemberRefExpr=x:4:19 SingleRefName=[9:50 - 9:51] RefName=[9:50 - 9:51] Extent=[9:45 - 9:51] @@ -31,4 +31,3 @@ void test() { // CHECK: blocks.c:9:54: DeclRefExpr=i:8:11 Extent=[9:54 - 9:55] // CHECK: blocks.c:9:59: UnaryOperator= Extent=[9:59 - 9:64] // CHECK: blocks.c:9:60: DeclRefExpr=_foo:7:21 Extent=[9:60 - 9:64] - diff --git a/clang/test/Index/c-index-api-loadTU-test.m b/clang/test/Index/c-index-api-loadTU-test.m index 7aa8f80..7ec57cf 100644 --- a/clang/test/Index/c-index-api-loadTU-test.m +++ b/clang/test/Index/c-index-api-loadTU-test.m @@ -130,7 +130,7 @@ struct X0 {}; // CHECK: c-index-api-loadTU-test.m:50:13: VarDecl=d:50:13 (Definition) Extent=[50:2 - 50:14] // CHECK: c-index-api-loadTU-test.m:50:2: TypeRef=id:0:0 Extent=[50:2 - 50:4] // CHECK: c-index-api-loadTU-test.m:50:6: ObjCProtocolRef=Proto:25:11 Extent=[50:6 - 50:11] -// CHECK: c-index-api-loadTU-test.m:51:2: BinaryOperator= Extent=[51:2 - 51:7] +// CHECK: c-index-api-loadTU-test.m:51:2: BinaryOperator== Extent=[51:2 - 51:7] // CHECK: c-index-api-loadTU-test.m:51:2: DeclRefExpr=d:50:13 Extent=[51:2 - 51:3] // CHECK: c-index-api-loadTU-test.m:51:6: UnexposedExpr=c:49:12 Extent=[51:6 - 51:7] // CHECK: c-index-api-loadTU-test.m:51:6: UnexposedExpr=c:49:12 Extent=[51:6 - 51:7] diff --git a/clang/test/Index/index-concepts.cpp b/clang/test/Index/index-concepts.cpp index d29b9dc..17fbd02 100644 --- a/clang/test/Index/index-concepts.cpp +++ b/clang/test/Index/index-concepts.cpp @@ -41,10 +41,10 @@ template <class T> concept ConWithLogicalAnd = Con1<T> && sizeof(T) > sizeFunc(); // CHECK: index-concepts.cpp:[[@LINE-1]]:9: ConceptDecl=ConWithLogicalAnd:[[@LINE-1]]:9 (Definition) Extent=[[[@LINE-2]]:1 - [[@LINE-1]]:62] // CHECK: index-concepts.cpp:[[@LINE-3]]:17: TemplateTypeParameter=T:[[@LINE-3]]:17 (Definition) Extent=[[[@LINE-3]]:11 - [[@LINE-3]]:18] [access=public] -// CHECK: index-concepts.cpp:[[@LINE-3]]:29: BinaryOperator= Extent=[[[@LINE-3]]:29 - [[@LINE-3]]:62] +// CHECK: index-concepts.cpp:[[@LINE-3]]:29: BinaryOperator=&& Extent=[[[@LINE-3]]:29 - [[@LINE-3]]:62] // CHECK: index-concepts.cpp:[[@LINE-4]]:29: ConceptSpecializationExpr= Extent=[[[@LINE-4]]:29 - [[@LINE-4]]:36] // CHECK: index-concepts.cpp:[[@LINE-5]]:29: TemplateRef=Con1:31:9 Extent=[[[@LINE-5]]:29 - [[@LINE-5]]:33] -// CHECK: index-concepts.cpp:[[@LINE-6]]:40: BinaryOperator= Extent=[[[@LINE-6]]:40 - [[@LINE-6]]:62] +// CHECK: index-concepts.cpp:[[@LINE-6]]:40: BinaryOperator=> Extent=[[[@LINE-6]]:40 - [[@LINE-6]]:62] // CHECK: index-concepts.cpp:[[@LINE-7]]:40: UnaryExpr= Extent=[[[@LINE-7]]:40 - [[@LINE-7]]:49] // CHECK: index-concepts.cpp:[[@LINE-8]]:47: TypeRef=T:40:17 Extent=[[[@LINE-8]]:47 - [[@LINE-8]]:48] // CHECK: index-concepts.cpp:[[@LINE-9]]:52: UnexposedExpr=sizeFunc:38:15 Extent=[[[@LINE-9]]:52 - [[@LINE-9]]:62] @@ -64,7 +64,7 @@ concept ConTwoTemplateParams = ns::ConInNamespace<T1> && ConWithLogicalAnd<T2>; // CHECK: index-concepts.cpp:[[@LINE-1]]:9: ConceptDecl=ConTwoTemplateParams:[[@LINE-1]]:9 (Definition) Extent=[[[@LINE-2]]:1 - [[@LINE-1]]:79] // CHECK: index-concepts.cpp:[[@LINE-3]]:17: TemplateTypeParameter=T1:[[@LINE-3]]:17 (Definition) Extent=[[[@LINE-3]]:11 - [[@LINE-3]]:19] [access=public] // CHECK: index-concepts.cpp:[[@LINE-4]]:27: TemplateTypeParameter=T2:[[@LINE-4]]:27 (Definition) Extent=[[[@LINE-4]]:21 - [[@LINE-4]]:29] [access=public] -// CHECK: index-concepts.cpp:[[@LINE-4]]:32: BinaryOperator= Extent=[[[@LINE-4]]:32 - [[@LINE-4]]:79] +// CHECK: index-concepts.cpp:[[@LINE-4]]:32: BinaryOperator=&& Extent=[[[@LINE-4]]:32 - [[@LINE-4]]:79] // CHECK: index-concepts.cpp:[[@LINE-5]]:32: ConceptSpecializationExpr= Extent=[[[@LINE-5]]:32 - [[@LINE-5]]:54] // CHECK: index-concepts.cpp:[[@LINE-6]]:32: NamespaceRef=ns:55:11 Extent=[[[@LINE-6]]:32 - [[@LINE-6]]:34] // CHECK: index-concepts.cpp:[[@LINE-7]]:36: TemplateRef=ConInNamespace:58:9 Extent=[[[@LINE-7]]:36 - [[@LINE-7]]:50] diff --git a/clang/test/Index/load-staticassert.cpp b/clang/test/Index/load-staticassert.cpp index 04e45c2..99f5988 100644 --- a/clang/test/Index/load-staticassert.cpp +++ b/clang/test/Index/load-staticassert.cpp @@ -3,8 +3,8 @@ static_assert(2 + 2 == 4, "Simple maths"); // RUN: c-index-test -test-load-source all -fno-delayed-template-parsing -std=c++11 %s | FileCheck %s // CHECK: load-staticassert.cpp:2:1: StaticAssert=:2:1 (Definition) Extent=[2:1 - 2:42] -// CHECK: load-staticassert.cpp:2:15: BinaryOperator= Extent=[2:15 - 2:25] -// CHECK: load-staticassert.cpp:2:15: BinaryOperator= Extent=[2:15 - 2:20] +// CHECK: load-staticassert.cpp:2:15: BinaryOperator=== Extent=[2:15 - 2:25] +// CHECK: load-staticassert.cpp:2:15: BinaryOperator=+ Extent=[2:15 - 2:20] // CHECK: load-staticassert.cpp:2:15: IntegerLiteral= Extent=[2:15 - 2:16] // CHECK: load-staticassert.cpp:2:19: IntegerLiteral= Extent=[2:19 - 2:20] // CHECK: load-staticassert.cpp:2:24: IntegerLiteral= Extent=[2:24 - 2:25] diff --git a/clang/test/Index/nested-binaryoperators.cpp b/clang/test/Index/nested-binaryoperators.cpp index 57adc6b..443e565 100644 --- a/clang/test/Index/nested-binaryoperators.cpp +++ b/clang/test/Index/nested-binaryoperators.cpp @@ -169,1815 +169,2328 @@ int foo(uint c) { // CHECK: 3:3: ReturnStmt= Extent=[3:3 - 160:52] // CHECK: 3:10: UnexposedExpr= Extent=[3:10 - 160:52] // CHECK: 3:10: ParenExpr= Extent=[3:10 - 160:52] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 160:51] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 160:19] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 159:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 158:51] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 158:19] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 157:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 156:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 155:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 154:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 153:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 152:51] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 152:19] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 151:51] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 151:19] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 150:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 149:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 148:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 147:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 146:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 145:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 144:51] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 144:19] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 143:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 142:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 141:81] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 141:49] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 141:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 141:19] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 140:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 139:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 138:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 137:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 136:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 135:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 134:81] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 134:49] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 134:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 134:19] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 133:51] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 133:19] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 132:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 131:33] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 130:64] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 130:49] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 130:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 130:19] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 129:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 128:33] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 127:64] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 127:49] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 127:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 127:19] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 126:51] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 126:19] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 125:63] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 125:31] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 125:16] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 124:64] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 124:49] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 124:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 124:19] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 123:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 122:51] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 122:19] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 121:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 120:51] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 120:19] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 119:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 118:36] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 117:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 116:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 115:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 115:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 114:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 114:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 113:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 112:62] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 112:32] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 112:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 111:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 110:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 109:62] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 109:32] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 109:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 108:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 108:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 107:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 106:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 105:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 105:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 104:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 103:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 102:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 101:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 100:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 99:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 98:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 98:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 97:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 96:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 95:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 94:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 93:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 92:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 91:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 90:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 89:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 88:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 87:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 86:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 85:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 84:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 83:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 82:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 82:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 81:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 80:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 79:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 78:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 77:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 76:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 76:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 75:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 74:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 73:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 72:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 71:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 70:62] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 70:32] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 70:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 69:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 68:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 67:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 66:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 65:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 65:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 64:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 63:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 63:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 62:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 61:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 60:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 59:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 58:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 57:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 56:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 55:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 54:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 53:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 52:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 51:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 51:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 50:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 49:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 48:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 47:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 46:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 46:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 45:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 44:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 44:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 43:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 42:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 41:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 40:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 39:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 38:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 37:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 36:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 35:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 35:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 34:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 33:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 32:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 31:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 30:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 29:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 28:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 27:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 26:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 25:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 24:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 23:45] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 23:15] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 22:46] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 22:32] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 22:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 21:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 20:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 19:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 19:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 18:48] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 18:18] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 17:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 16:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 15:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 14:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 13:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 12:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 11:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 10:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 9:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 8:34] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 7:32] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 6:32] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 5:32] -// CHECK: 3:11: BinaryOperator= Extent=[3:11 - 4:32] -// CHECK: 3:12: BinaryOperator= Extent=[3:12 - 3:34] -// CHECK: 3:12: BinaryOperator= Extent=[3:12 - 3:21] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 160:51] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 160:19] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 159:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 158:51] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 158:19] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 157:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 156:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 155:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 154:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 153:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 152:51] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 152:19] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 151:51] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 151:19] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 150:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 149:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 148:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 147:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 146:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 145:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 144:51] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 144:19] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 143:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 142:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 141:81] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 141:49] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 141:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 141:19] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 140:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 139:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 138:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 137:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 136:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 135:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 134:81] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 134:49] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 134:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 134:19] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 133:51] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 133:19] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 132:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 131:33] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 130:64] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 130:49] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 130:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 130:19] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 129:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 128:33] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 127:64] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 127:49] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 127:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 127:19] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 126:51] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 126:19] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 125:63] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 125:31] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 125:16] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 124:64] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 124:49] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 124:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 124:19] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 123:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 122:51] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 122:19] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 121:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 120:51] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 120:19] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 119:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 118:36] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 117:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 116:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 115:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 115:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 114:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 114:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 113:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 112:62] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 112:32] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 112:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 111:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 110:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 109:62] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 109:32] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 109:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 108:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 108:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 107:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 106:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 105:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 105:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 104:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 103:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 102:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 101:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 100:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 99:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 98:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 98:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 97:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 96:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 95:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 94:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 93:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 92:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 91:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 90:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 89:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 88:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 87:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 86:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 85:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 84:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 83:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 82:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 82:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 81:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 80:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 79:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 78:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 77:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 76:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 76:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 75:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 74:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 73:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 72:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 71:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 70:62] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 70:32] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 70:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 69:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 68:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 67:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 66:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 65:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 65:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 64:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 63:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 63:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 62:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 61:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 60:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 59:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 58:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 57:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 56:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 55:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 54:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 53:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 52:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 51:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 51:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 50:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 49:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 48:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 47:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 46:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 46:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 45:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 44:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 44:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 43:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 42:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 41:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 40:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 39:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 38:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 37:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 36:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 35:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 35:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 34:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 33:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 32:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 31:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 30:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 29:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 28:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 27:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 26:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 25:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 24:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 23:45] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 23:15] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 22:46] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 22:32] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 22:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 21:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 20:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 19:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 19:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 18:48] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 18:18] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 17:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 16:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 15:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 14:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 13:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 12:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 11:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 10:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 9:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 8:34] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 7:32] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 6:32] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 5:32] +// CHECK: 3:11: BinaryOperator=|| Extent=[3:11 - 4:32] +// CHECK: 3:11: ParenExpr= Extent=[3:11 - 3:35] +// CHECK: 3:12: BinaryOperator=&& Extent=[3:12 - 3:34] +// CHECK: 3:12: BinaryOperator=>= Extent=[3:12 - 3:21] +// CHECK: 3:12: UnexposedExpr=c:2:14 Extent=[3:12 - 3:13] // CHECK: 3:12: DeclRefExpr=c:2:14 Extent=[3:12 - 3:13] // CHECK: 3:17: UnexposedExpr= Extent=[3:17 - 3:21] // CHECK: 3:17: IntegerLiteral= Extent=[3:17 - 3:21] -// CHECK: 3:25: BinaryOperator= Extent=[3:25 - 3:34] +// CHECK: 3:25: BinaryOperator=<= Extent=[3:25 - 3:34] +// CHECK: 3:25: UnexposedExpr=c:2:14 Extent=[3:25 - 3:26] // CHECK: 3:25: DeclRefExpr=c:2:14 Extent=[3:25 - 3:26] // CHECK: 3:30: UnexposedExpr= Extent=[3:30 - 3:34] // CHECK: 3:30: IntegerLiteral= Extent=[3:30 - 3:34] -// CHECK: 4:9: BinaryOperator= Extent=[4:9 - 4:31] -// CHECK: 4:9: BinaryOperator= Extent=[4:9 - 4:18] +// CHECK: 4:8: ParenExpr= Extent=[4:8 - 4:32] +// CHECK: 4:9: BinaryOperator=&& Extent=[4:9 - 4:31] +// CHECK: 4:9: BinaryOperator=>= Extent=[4:9 - 4:18] +// CHECK: 4:9: UnexposedExpr=c:2:14 Extent=[4:9 - 4:10] // CHECK: 4:9: DeclRefExpr=c:2:14 Extent=[4:9 - 4:10] // CHECK: 4:14: UnexposedExpr= Extent=[4:14 - 4:18] // CHECK: 4:14: IntegerLiteral= Extent=[4:14 - 4:18] -// CHECK: 4:22: BinaryOperator= Extent=[4:22 - 4:31] +// CHECK: 4:22: BinaryOperator=<= Extent=[4:22 - 4:31] +// CHECK: 4:22: UnexposedExpr=c:2:14 Extent=[4:22 - 4:23] // CHECK: 4:22: DeclRefExpr=c:2:14 Extent=[4:22 - 4:23] // CHECK: 4:27: UnexposedExpr= Extent=[4:27 - 4:31] // CHECK: 4:27: IntegerLiteral= Extent=[4:27 - 4:31] // CHECK: 5:8: ParenExpr= Extent=[5:8 - 5:32] -// CHECK: 5:9: BinaryOperator= Extent=[5:9 - 5:31] -// CHECK: 5:9: BinaryOperator= Extent=[5:9 - 5:18] +// CHECK: 5:9: BinaryOperator=&& Extent=[5:9 - 5:31] +// CHECK: 5:9: BinaryOperator=>= Extent=[5:9 - 5:18] +// CHECK: 5:9: UnexposedExpr=c:2:14 Extent=[5:9 - 5:10] // CHECK: 5:9: DeclRefExpr=c:2:14 Extent=[5:9 - 5:10] // CHECK: 5:14: UnexposedExpr= Extent=[5:14 - 5:18] // CHECK: 5:14: IntegerLiteral= Extent=[5:14 - 5:18] -// CHECK: 5:22: BinaryOperator= Extent=[5:22 - 5:31] +// CHECK: 5:22: BinaryOperator=<= Extent=[5:22 - 5:31] +// CHECK: 5:22: UnexposedExpr=c:2:14 Extent=[5:22 - 5:23] // CHECK: 5:22: DeclRefExpr=c:2:14 Extent=[5:22 - 5:23] // CHECK: 5:27: UnexposedExpr= Extent=[5:27 - 5:31] // CHECK: 5:27: IntegerLiteral= Extent=[5:27 - 5:31] -// CHECK: 6:9: BinaryOperator= Extent=[6:9 - 6:31] -// CHECK: 6:9: BinaryOperator= Extent=[6:9 - 6:18] +// CHECK: 6:8: ParenExpr= Extent=[6:8 - 6:32] +// CHECK: 6:9: BinaryOperator=&& Extent=[6:9 - 6:31] +// CHECK: 6:9: BinaryOperator=>= Extent=[6:9 - 6:18] +// CHECK: 6:9: UnexposedExpr=c:2:14 Extent=[6:9 - 6:10] // CHECK: 6:9: DeclRefExpr=c:2:14 Extent=[6:9 - 6:10] // CHECK: 6:14: UnexposedExpr= Extent=[6:14 - 6:18] // CHECK: 6:14: IntegerLiteral= Extent=[6:14 - 6:18] -// CHECK: 6:22: BinaryOperator= Extent=[6:22 - 6:31] +// CHECK: 6:22: BinaryOperator=<= Extent=[6:22 - 6:31] +// CHECK: 6:22: UnexposedExpr=c:2:14 Extent=[6:22 - 6:23] // CHECK: 6:22: DeclRefExpr=c:2:14 Extent=[6:22 - 6:23] // CHECK: 6:27: UnexposedExpr= Extent=[6:27 - 6:31] // CHECK: 6:27: IntegerLiteral= Extent=[6:27 - 6:31] -// CHECK: 7:9: BinaryOperator= Extent=[7:9 - 7:31] -// CHECK: 7:9: BinaryOperator= Extent=[7:9 - 7:18] +// CHECK: 7:8: ParenExpr= Extent=[7:8 - 7:32] +// CHECK: 7:9: BinaryOperator=&& Extent=[7:9 - 7:31] +// CHECK: 7:9: BinaryOperator=>= Extent=[7:9 - 7:18] +// CHECK: 7:9: UnexposedExpr=c:2:14 Extent=[7:9 - 7:10] // CHECK: 7:9: DeclRefExpr=c:2:14 Extent=[7:9 - 7:10] // CHECK: 7:14: UnexposedExpr= Extent=[7:14 - 7:18] // CHECK: 7:14: IntegerLiteral= Extent=[7:14 - 7:18] -// CHECK: 7:22: BinaryOperator= Extent=[7:22 - 7:31] +// CHECK: 7:22: BinaryOperator=<= Extent=[7:22 - 7:31] +// CHECK: 7:22: UnexposedExpr=c:2:14 Extent=[7:22 - 7:23] // CHECK: 7:22: DeclRefExpr=c:2:14 Extent=[7:22 - 7:23] // CHECK: 7:27: UnexposedExpr= Extent=[7:27 - 7:31] // CHECK: 7:27: IntegerLiteral= Extent=[7:27 - 7:31] -// CHECK: 8:9: BinaryOperator= Extent=[8:9 - 8:33] -// CHECK: 8:9: BinaryOperator= Extent=[8:9 - 8:19] +// CHECK: 8:8: ParenExpr= Extent=[8:8 - 8:34] +// CHECK: 8:9: BinaryOperator=&& Extent=[8:9 - 8:33] +// CHECK: 8:9: BinaryOperator=>= Extent=[8:9 - 8:19] +// CHECK: 8:9: UnexposedExpr=c:2:14 Extent=[8:9 - 8:10] // CHECK: 8:9: DeclRefExpr=c:2:14 Extent=[8:9 - 8:10] // CHECK: 8:14: UnexposedExpr= Extent=[8:14 - 8:19] // CHECK: 8:14: IntegerLiteral= Extent=[8:14 - 8:19] -// CHECK: 8:23: BinaryOperator= Extent=[8:23 - 8:33] +// CHECK: 8:23: BinaryOperator=<= Extent=[8:23 - 8:33] +// CHECK: 8:23: UnexposedExpr=c:2:14 Extent=[8:23 - 8:24] // CHECK: 8:23: DeclRefExpr=c:2:14 Extent=[8:23 - 8:24] // CHECK: 8:28: UnexposedExpr= Extent=[8:28 - 8:33] // CHECK: 8:28: IntegerLiteral= Extent=[8:28 - 8:33] -// CHECK: 9:9: BinaryOperator= Extent=[9:9 - 9:33] -// CHECK: 9:9: BinaryOperator= Extent=[9:9 - 9:19] +// CHECK: 9:8: ParenExpr= Extent=[9:8 - 9:34] +// CHECK: 9:9: BinaryOperator=&& Extent=[9:9 - 9:33] +// CHECK: 9:9: BinaryOperator=>= Extent=[9:9 - 9:19] +// CHECK: 9:9: UnexposedExpr=c:2:14 Extent=[9:9 - 9:10] // CHECK: 9:9: DeclRefExpr=c:2:14 Extent=[9:9 - 9:10] // CHECK: 9:14: UnexposedExpr= Extent=[9:14 - 9:19] // CHECK: 9:14: IntegerLiteral= Extent=[9:14 - 9:19] -// CHECK: 9:23: BinaryOperator= Extent=[9:23 - 9:33] +// CHECK: 9:23: BinaryOperator=<= Extent=[9:23 - 9:33] +// CHECK: 9:23: UnexposedExpr=c:2:14 Extent=[9:23 - 9:24] // CHECK: 9:23: DeclRefExpr=c:2:14 Extent=[9:23 - 9:24] // CHECK: 9:28: UnexposedExpr= Extent=[9:28 - 9:33] // CHECK: 9:28: IntegerLiteral= Extent=[9:28 - 9:33] -// CHECK: 10:9: BinaryOperator= Extent=[10:9 - 10:33] -// CHECK: 10:9: BinaryOperator= Extent=[10:9 - 10:19] +// CHECK: 10:8: ParenExpr= Extent=[10:8 - 10:34] +// CHECK: 10:9: BinaryOperator=&& Extent=[10:9 - 10:33] +// CHECK: 10:9: BinaryOperator=>= Extent=[10:9 - 10:19] +// CHECK: 10:9: UnexposedExpr=c:2:14 Extent=[10:9 - 10:10] // CHECK: 10:9: DeclRefExpr=c:2:14 Extent=[10:9 - 10:10] // CHECK: 10:14: UnexposedExpr= Extent=[10:14 - 10:19] // CHECK: 10:14: IntegerLiteral= Extent=[10:14 - 10:19] -// CHECK: 10:23: BinaryOperator= Extent=[10:23 - 10:33] +// CHECK: 10:23: BinaryOperator=<= Extent=[10:23 - 10:33] +// CHECK: 10:23: UnexposedExpr=c:2:14 Extent=[10:23 - 10:24] // CHECK: 10:23: DeclRefExpr=c:2:14 Extent=[10:23 - 10:24] // CHECK: 10:28: UnexposedExpr= Extent=[10:28 - 10:33] // CHECK: 10:28: IntegerLiteral= Extent=[10:28 - 10:33] -// CHECK: 11:9: BinaryOperator= Extent=[11:9 - 11:33] -// CHECK: 11:9: BinaryOperator= Extent=[11:9 - 11:19] +// CHECK: 11:8: ParenExpr= Extent=[11:8 - 11:34] +// CHECK: 11:9: BinaryOperator=&& Extent=[11:9 - 11:33] +// CHECK: 11:9: BinaryOperator=>= Extent=[11:9 - 11:19] +// CHECK: 11:9: UnexposedExpr=c:2:14 Extent=[11:9 - 11:10] // CHECK: 11:9: DeclRefExpr=c:2:14 Extent=[11:9 - 11:10] // CHECK: 11:14: UnexposedExpr= Extent=[11:14 - 11:19] // CHECK: 11:14: IntegerLiteral= Extent=[11:14 - 11:19] -// CHECK: 11:23: BinaryOperator= Extent=[11:23 - 11:33] +// CHECK: 11:23: BinaryOperator=<= Extent=[11:23 - 11:33] +// CHECK: 11:23: UnexposedExpr=c:2:14 Extent=[11:23 - 11:24] // CHECK: 11:23: DeclRefExpr=c:2:14 Extent=[11:23 - 11:24] // CHECK: 11:28: UnexposedExpr= Extent=[11:28 - 11:33] // CHECK: 11:28: IntegerLiteral= Extent=[11:28 - 11:33] -// CHECK: 12:9: BinaryOperator= Extent=[12:9 - 12:33] -// CHECK: 12:9: BinaryOperator= Extent=[12:9 - 12:19] +// CHECK: 12:8: ParenExpr= Extent=[12:8 - 12:34] +// CHECK: 12:9: BinaryOperator=&& Extent=[12:9 - 12:33] +// CHECK: 12:9: BinaryOperator=>= Extent=[12:9 - 12:19] +// CHECK: 12:9: UnexposedExpr=c:2:14 Extent=[12:9 - 12:10] // CHECK: 12:9: DeclRefExpr=c:2:14 Extent=[12:9 - 12:10] // CHECK: 12:14: UnexposedExpr= Extent=[12:14 - 12:19] // CHECK: 12:14: IntegerLiteral= Extent=[12:14 - 12:19] -// CHECK: 12:23: BinaryOperator= Extent=[12:23 - 12:33] +// CHECK: 12:23: BinaryOperator=<= Extent=[12:23 - 12:33] +// CHECK: 12:23: UnexposedExpr=c:2:14 Extent=[12:23 - 12:24] // CHECK: 12:23: DeclRefExpr=c:2:14 Extent=[12:23 - 12:24] // CHECK: 12:28: UnexposedExpr= Extent=[12:28 - 12:33] // CHECK: 12:28: IntegerLiteral= Extent=[12:28 - 12:33] -// CHECK: 13:9: BinaryOperator= Extent=[13:9 - 13:33] -// CHECK: 13:9: BinaryOperator= Extent=[13:9 - 13:19] +// CHECK: 13:8: ParenExpr= Extent=[13:8 - 13:34] +// CHECK: 13:9: BinaryOperator=&& Extent=[13:9 - 13:33] +// CHECK: 13:9: BinaryOperator=>= Extent=[13:9 - 13:19] +// CHECK: 13:9: UnexposedExpr=c:2:14 Extent=[13:9 - 13:10] // CHECK: 13:9: DeclRefExpr=c:2:14 Extent=[13:9 - 13:10] // CHECK: 13:14: UnexposedExpr= Extent=[13:14 - 13:19] // CHECK: 13:14: IntegerLiteral= Extent=[13:14 - 13:19] -// CHECK: 13:23: BinaryOperator= Extent=[13:23 - 13:33] +// CHECK: 13:23: BinaryOperator=<= Extent=[13:23 - 13:33] +// CHECK: 13:23: UnexposedExpr=c:2:14 Extent=[13:23 - 13:24] // CHECK: 13:23: DeclRefExpr=c:2:14 Extent=[13:23 - 13:24] // CHECK: 13:28: UnexposedExpr= Extent=[13:28 - 13:33] // CHECK: 13:28: IntegerLiteral= Extent=[13:28 - 13:33] -// CHECK: 14:9: BinaryOperator= Extent=[14:9 - 14:33] -// CHECK: 14:9: BinaryOperator= Extent=[14:9 - 14:19] +// CHECK: 14:8: ParenExpr= Extent=[14:8 - 14:34] +// CHECK: 14:9: BinaryOperator=&& Extent=[14:9 - 14:33] +// CHECK: 14:9: BinaryOperator=>= Extent=[14:9 - 14:19] +// CHECK: 14:9: UnexposedExpr=c:2:14 Extent=[14:9 - 14:10] // CHECK: 14:9: DeclRefExpr=c:2:14 Extent=[14:9 - 14:10] // CHECK: 14:14: UnexposedExpr= Extent=[14:14 - 14:19] // CHECK: 14:14: IntegerLiteral= Extent=[14:14 - 14:19] -// CHECK: 14:23: BinaryOperator= Extent=[14:23 - 14:33] +// CHECK: 14:23: BinaryOperator=<= Extent=[14:23 - 14:33] +// CHECK: 14:23: UnexposedExpr=c:2:14 Extent=[14:23 - 14:24] // CHECK: 14:23: DeclRefExpr=c:2:14 Extent=[14:23 - 14:24] // CHECK: 14:28: UnexposedExpr= Extent=[14:28 - 14:33] // CHECK: 14:28: IntegerLiteral= Extent=[14:28 - 14:33] -// CHECK: 15:9: BinaryOperator= Extent=[15:9 - 15:33] -// CHECK: 15:9: BinaryOperator= Extent=[15:9 - 15:19] +// CHECK: 15:8: ParenExpr= Extent=[15:8 - 15:34] +// CHECK: 15:9: BinaryOperator=&& Extent=[15:9 - 15:33] +// CHECK: 15:9: BinaryOperator=>= Extent=[15:9 - 15:19] +// CHECK: 15:9: UnexposedExpr=c:2:14 Extent=[15:9 - 15:10] // CHECK: 15:9: DeclRefExpr=c:2:14 Extent=[15:9 - 15:10] // CHECK: 15:14: UnexposedExpr= Extent=[15:14 - 15:19] // CHECK: 15:14: IntegerLiteral= Extent=[15:14 - 15:19] -// CHECK: 15:23: BinaryOperator= Extent=[15:23 - 15:33] +// CHECK: 15:23: BinaryOperator=<= Extent=[15:23 - 15:33] +// CHECK: 15:23: UnexposedExpr=c:2:14 Extent=[15:23 - 15:24] // CHECK: 15:23: DeclRefExpr=c:2:14 Extent=[15:23 - 15:24] // CHECK: 15:28: UnexposedExpr= Extent=[15:28 - 15:33] // CHECK: 15:28: IntegerLiteral= Extent=[15:28 - 15:33] -// CHECK: 16:9: BinaryOperator= Extent=[16:9 - 16:33] -// CHECK: 16:9: BinaryOperator= Extent=[16:9 - 16:19] +// CHECK: 16:8: ParenExpr= Extent=[16:8 - 16:34] +// CHECK: 16:9: BinaryOperator=&& Extent=[16:9 - 16:33] +// CHECK: 16:9: BinaryOperator=>= Extent=[16:9 - 16:19] +// CHECK: 16:9: UnexposedExpr=c:2:14 Extent=[16:9 - 16:10] // CHECK: 16:9: DeclRefExpr=c:2:14 Extent=[16:9 - 16:10] // CHECK: 16:14: UnexposedExpr= Extent=[16:14 - 16:19] // CHECK: 16:14: IntegerLiteral= Extent=[16:14 - 16:19] -// CHECK: 16:23: BinaryOperator= Extent=[16:23 - 16:33] +// CHECK: 16:23: BinaryOperator=<= Extent=[16:23 - 16:33] +// CHECK: 16:23: UnexposedExpr=c:2:14 Extent=[16:23 - 16:24] // CHECK: 16:23: DeclRefExpr=c:2:14 Extent=[16:23 - 16:24] // CHECK: 16:28: UnexposedExpr= Extent=[16:28 - 16:33] // CHECK: 16:28: IntegerLiteral= Extent=[16:28 - 16:33] -// CHECK: 17:9: BinaryOperator= Extent=[17:9 - 17:33] -// CHECK: 17:9: BinaryOperator= Extent=[17:9 - 17:19] +// CHECK: 17:8: ParenExpr= Extent=[17:8 - 17:34] +// CHECK: 17:9: BinaryOperator=&& Extent=[17:9 - 17:33] +// CHECK: 17:9: BinaryOperator=>= Extent=[17:9 - 17:19] +// CHECK: 17:9: UnexposedExpr=c:2:14 Extent=[17:9 - 17:10] // CHECK: 17:9: DeclRefExpr=c:2:14 Extent=[17:9 - 17:10] // CHECK: 17:14: UnexposedExpr= Extent=[17:14 - 17:19] // CHECK: 17:14: IntegerLiteral= Extent=[17:14 - 17:19] -// CHECK: 17:23: BinaryOperator= Extent=[17:23 - 17:33] +// CHECK: 17:23: BinaryOperator=<= Extent=[17:23 - 17:33] +// CHECK: 17:23: UnexposedExpr=c:2:14 Extent=[17:23 - 17:24] // CHECK: 17:23: DeclRefExpr=c:2:14 Extent=[17:23 - 17:24] // CHECK: 17:28: UnexposedExpr= Extent=[17:28 - 17:33] // CHECK: 17:28: IntegerLiteral= Extent=[17:28 - 17:33] -// CHECK: 18:8: BinaryOperator= Extent=[18:8 - 18:18] +// CHECK: 18:8: BinaryOperator=== Extent=[18:8 - 18:18] +// CHECK: 18:8: UnexposedExpr=c:2:14 Extent=[18:8 - 18:9] // CHECK: 18:8: DeclRefExpr=c:2:14 Extent=[18:8 - 18:9] // CHECK: 18:13: UnexposedExpr= Extent=[18:13 - 18:18] // CHECK: 18:13: IntegerLiteral= Extent=[18:13 - 18:18] -// CHECK: 18:23: BinaryOperator= Extent=[18:23 - 18:47] -// CHECK: 18:23: BinaryOperator= Extent=[18:23 - 18:33] +// CHECK: 18:22: ParenExpr= Extent=[18:22 - 18:48] +// CHECK: 18:23: BinaryOperator=&& Extent=[18:23 - 18:47] +// CHECK: 18:23: BinaryOperator=>= Extent=[18:23 - 18:33] +// CHECK: 18:23: UnexposedExpr=c:2:14 Extent=[18:23 - 18:24] // CHECK: 18:23: DeclRefExpr=c:2:14 Extent=[18:23 - 18:24] // CHECK: 18:28: UnexposedExpr= Extent=[18:28 - 18:33] // CHECK: 18:28: IntegerLiteral= Extent=[18:28 - 18:33] -// CHECK: 18:37: BinaryOperator= Extent=[18:37 - 18:47] +// CHECK: 18:37: BinaryOperator=<= Extent=[18:37 - 18:47] +// CHECK: 18:37: UnexposedExpr=c:2:14 Extent=[18:37 - 18:38] // CHECK: 18:37: DeclRefExpr=c:2:14 Extent=[18:37 - 18:38] // CHECK: 18:42: UnexposedExpr= Extent=[18:42 - 18:47] // CHECK: 18:42: IntegerLiteral= Extent=[18:42 - 18:47] -// CHECK: 19:8: BinaryOperator= Extent=[19:8 - 19:18] +// CHECK: 19:8: BinaryOperator=== Extent=[19:8 - 19:18] +// CHECK: 19:8: UnexposedExpr=c:2:14 Extent=[19:8 - 19:9] // CHECK: 19:8: DeclRefExpr=c:2:14 Extent=[19:8 - 19:9] // CHECK: 19:13: UnexposedExpr= Extent=[19:13 - 19:18] // CHECK: 19:13: IntegerLiteral= Extent=[19:13 - 19:18] -// CHECK: 19:23: BinaryOperator= Extent=[19:23 - 19:47] -// CHECK: 19:23: BinaryOperator= Extent=[19:23 - 19:33] +// CHECK: 19:22: ParenExpr= Extent=[19:22 - 19:48] +// CHECK: 19:23: BinaryOperator=&& Extent=[19:23 - 19:47] +// CHECK: 19:23: BinaryOperator=>= Extent=[19:23 - 19:33] +// CHECK: 19:23: UnexposedExpr=c:2:14 Extent=[19:23 - 19:24] // CHECK: 19:23: DeclRefExpr=c:2:14 Extent=[19:23 - 19:24] // CHECK: 19:28: UnexposedExpr= Extent=[19:28 - 19:33] // CHECK: 19:28: IntegerLiteral= Extent=[19:28 - 19:33] -// CHECK: 19:37: BinaryOperator= Extent=[19:37 - 19:47] +// CHECK: 19:37: BinaryOperator=<= Extent=[19:37 - 19:47] +// CHECK: 19:37: UnexposedExpr=c:2:14 Extent=[19:37 - 19:38] // CHECK: 19:37: DeclRefExpr=c:2:14 Extent=[19:37 - 19:38] // CHECK: 19:42: UnexposedExpr= Extent=[19:42 - 19:47] // CHECK: 19:42: IntegerLiteral= Extent=[19:42 - 19:47] -// CHECK: 20:9: BinaryOperator= Extent=[20:9 - 20:33] -// CHECK: 20:9: BinaryOperator= Extent=[20:9 - 20:19] +// CHECK: 20:8: ParenExpr= Extent=[20:8 - 20:34] +// CHECK: 20:9: BinaryOperator=&& Extent=[20:9 - 20:33] +// CHECK: 20:9: BinaryOperator=>= Extent=[20:9 - 20:19] +// CHECK: 20:9: UnexposedExpr=c:2:14 Extent=[20:9 - 20:10] // CHECK: 20:9: DeclRefExpr=c:2:14 Extent=[20:9 - 20:10] // CHECK: 20:14: UnexposedExpr= Extent=[20:14 - 20:19] // CHECK: 20:14: IntegerLiteral= Extent=[20:14 - 20:19] -// CHECK: 20:23: BinaryOperator= Extent=[20:23 - 20:33] +// CHECK: 20:23: BinaryOperator=<= Extent=[20:23 - 20:33] +// CHECK: 20:23: UnexposedExpr=c:2:14 Extent=[20:23 - 20:24] // CHECK: 20:23: DeclRefExpr=c:2:14 Extent=[20:23 - 20:24] // CHECK: 20:28: UnexposedExpr= Extent=[20:28 - 20:33] // CHECK: 20:28: IntegerLiteral= Extent=[20:28 - 20:33] -// CHECK: 21:9: BinaryOperator= Extent=[21:9 - 21:33] -// CHECK: 21:9: BinaryOperator= Extent=[21:9 - 21:19] +// CHECK: 21:8: ParenExpr= Extent=[21:8 - 21:34] +// CHECK: 21:9: BinaryOperator=&& Extent=[21:9 - 21:33] +// CHECK: 21:9: BinaryOperator=>= Extent=[21:9 - 21:19] +// CHECK: 21:9: UnexposedExpr=c:2:14 Extent=[21:9 - 21:10] // CHECK: 21:9: DeclRefExpr=c:2:14 Extent=[21:9 - 21:10] // CHECK: 21:14: UnexposedExpr= Extent=[21:14 - 21:19] // CHECK: 21:14: IntegerLiteral= Extent=[21:14 - 21:19] -// CHECK: 21:23: BinaryOperator= Extent=[21:23 - 21:33] +// CHECK: 21:23: BinaryOperator=<= Extent=[21:23 - 21:33] +// CHECK: 21:23: UnexposedExpr=c:2:14 Extent=[21:23 - 21:24] // CHECK: 21:23: DeclRefExpr=c:2:14 Extent=[21:23 - 21:24] // CHECK: 21:28: UnexposedExpr= Extent=[21:28 - 21:33] // CHECK: 21:28: IntegerLiteral= Extent=[21:28 - 21:33] -// CHECK: 22:8: BinaryOperator= Extent=[22:8 - 22:18] +// CHECK: 22:8: BinaryOperator=== Extent=[22:8 - 22:18] +// CHECK: 22:8: UnexposedExpr=c:2:14 Extent=[22:8 - 22:9] // CHECK: 22:8: DeclRefExpr=c:2:14 Extent=[22:8 - 22:9] // CHECK: 22:13: UnexposedExpr= Extent=[22:13 - 22:18] // CHECK: 22:13: IntegerLiteral= Extent=[22:13 - 22:18] -// CHECK: 22:22: BinaryOperator= Extent=[22:22 - 22:32] +// CHECK: 22:22: BinaryOperator=== Extent=[22:22 - 22:32] +// CHECK: 22:22: UnexposedExpr=c:2:14 Extent=[22:22 - 22:23] // CHECK: 22:22: DeclRefExpr=c:2:14 Extent=[22:22 - 22:23] // CHECK: 22:27: UnexposedExpr= Extent=[22:27 - 22:32] // CHECK: 22:27: IntegerLiteral= Extent=[22:27 - 22:32] -// CHECK: 22:36: BinaryOperator= Extent=[22:36 - 22:46] +// CHECK: 22:36: BinaryOperator=== Extent=[22:36 - 22:46] +// CHECK: 22:36: UnexposedExpr=c:2:14 Extent=[22:36 - 22:37] // CHECK: 22:36: DeclRefExpr=c:2:14 Extent=[22:36 - 22:37] // CHECK: 22:41: UnexposedExpr= Extent=[22:41 - 22:46] // CHECK: 22:41: IntegerLiteral= Extent=[22:41 - 22:46] -// CHECK: 23:5: BinaryOperator= Extent=[23:5 - 23:15] +// CHECK: 23:5: BinaryOperator=== Extent=[23:5 - 23:15] +// CHECK: 23:5: UnexposedExpr=c:2:14 Extent=[23:5 - 23:6] // CHECK: 23:5: DeclRefExpr=c:2:14 Extent=[23:5 - 23:6] // CHECK: 23:10: UnexposedExpr= Extent=[23:10 - 23:15] // CHECK: 23:10: IntegerLiteral= Extent=[23:10 - 23:15] -// CHECK: 23:20: BinaryOperator= Extent=[23:20 - 23:44] -// CHECK: 23:20: BinaryOperator= Extent=[23:20 - 23:30] +// CHECK: 23:19: ParenExpr= Extent=[23:19 - 23:45] +// CHECK: 23:20: BinaryOperator=&& Extent=[23:20 - 23:44] +// CHECK: 23:20: BinaryOperator=>= Extent=[23:20 - 23:30] +// CHECK: 23:20: UnexposedExpr=c:2:14 Extent=[23:20 - 23:21] // CHECK: 23:20: DeclRefExpr=c:2:14 Extent=[23:20 - 23:21] // CHECK: 23:25: UnexposedExpr= Extent=[23:25 - 23:30] // CHECK: 23:25: IntegerLiteral= Extent=[23:25 - 23:30] -// CHECK: 23:34: BinaryOperator= Extent=[23:34 - 23:44] +// CHECK: 23:34: BinaryOperator=<= Extent=[23:34 - 23:44] +// CHECK: 23:34: UnexposedExpr=c:2:14 Extent=[23:34 - 23:35] // CHECK: 23:34: DeclRefExpr=c:2:14 Extent=[23:34 - 23:35] // CHECK: 23:39: UnexposedExpr= Extent=[23:39 - 23:44] // CHECK: 23:39: IntegerLiteral= Extent=[23:39 - 23:44] -// CHECK: 24:9: BinaryOperator= Extent=[24:9 - 24:33] -// CHECK: 24:9: BinaryOperator= Extent=[24:9 - 24:19] +// CHECK: 24:8: ParenExpr= Extent=[24:8 - 24:34] +// CHECK: 24:9: BinaryOperator=&& Extent=[24:9 - 24:33] +// CHECK: 24:9: BinaryOperator=>= Extent=[24:9 - 24:19] +// CHECK: 24:9: UnexposedExpr=c:2:14 Extent=[24:9 - 24:10] // CHECK: 24:9: DeclRefExpr=c:2:14 Extent=[24:9 - 24:10] // CHECK: 24:14: UnexposedExpr= Extent=[24:14 - 24:19] // CHECK: 24:14: IntegerLiteral= Extent=[24:14 - 24:19] -// CHECK: 24:23: BinaryOperator= Extent=[24:23 - 24:33] +// CHECK: 24:23: BinaryOperator=<= Extent=[24:23 - 24:33] +// CHECK: 24:23: UnexposedExpr=c:2:14 Extent=[24:23 - 24:24] // CHECK: 24:23: DeclRefExpr=c:2:14 Extent=[24:23 - 24:24] // CHECK: 24:28: UnexposedExpr= Extent=[24:28 - 24:33] // CHECK: 24:28: IntegerLiteral= Extent=[24:28 - 24:33] -// CHECK: 25:9: BinaryOperator= Extent=[25:9 - 25:33] -// CHECK: 25:9: BinaryOperator= Extent=[25:9 - 25:19] +// CHECK: 25:8: ParenExpr= Extent=[25:8 - 25:34] +// CHECK: 25:9: BinaryOperator=&& Extent=[25:9 - 25:33] +// CHECK: 25:9: BinaryOperator=>= Extent=[25:9 - 25:19] +// CHECK: 25:9: UnexposedExpr=c:2:14 Extent=[25:9 - 25:10] // CHECK: 25:9: DeclRefExpr=c:2:14 Extent=[25:9 - 25:10] // CHECK: 25:14: UnexposedExpr= Extent=[25:14 - 25:19] // CHECK: 25:14: IntegerLiteral= Extent=[25:14 - 25:19] -// CHECK: 25:23: BinaryOperator= Extent=[25:23 - 25:33] +// CHECK: 25:23: BinaryOperator=<= Extent=[25:23 - 25:33] +// CHECK: 25:23: UnexposedExpr=c:2:14 Extent=[25:23 - 25:24] // CHECK: 25:23: DeclRefExpr=c:2:14 Extent=[25:23 - 25:24] // CHECK: 25:28: UnexposedExpr= Extent=[25:28 - 25:33] // CHECK: 25:28: IntegerLiteral= Extent=[25:28 - 25:33] -// CHECK: 26:9: BinaryOperator= Extent=[26:9 - 26:33] -// CHECK: 26:9: BinaryOperator= Extent=[26:9 - 26:19] +// CHECK: 26:8: ParenExpr= Extent=[26:8 - 26:34] +// CHECK: 26:9: BinaryOperator=&& Extent=[26:9 - 26:33] +// CHECK: 26:9: BinaryOperator=>= Extent=[26:9 - 26:19] +// CHECK: 26:9: UnexposedExpr=c:2:14 Extent=[26:9 - 26:10] // CHECK: 26:9: DeclRefExpr=c:2:14 Extent=[26:9 - 26:10] // CHECK: 26:14: UnexposedExpr= Extent=[26:14 - 26:19] // CHECK: 26:14: IntegerLiteral= Extent=[26:14 - 26:19] -// CHECK: 26:23: BinaryOperator= Extent=[26:23 - 26:33] +// CHECK: 26:23: BinaryOperator=<= Extent=[26:23 - 26:33] +// CHECK: 26:23: UnexposedExpr=c:2:14 Extent=[26:23 - 26:24] // CHECK: 26:23: DeclRefExpr=c:2:14 Extent=[26:23 - 26:24] // CHECK: 26:28: UnexposedExpr= Extent=[26:28 - 26:33] // CHECK: 26:28: IntegerLiteral= Extent=[26:28 - 26:33] -// CHECK: 27:9: BinaryOperator= Extent=[27:9 - 27:33] -// CHECK: 27:9: BinaryOperator= Extent=[27:9 - 27:19] +// CHECK: 27:8: ParenExpr= Extent=[27:8 - 27:34] +// CHECK: 27:9: BinaryOperator=&& Extent=[27:9 - 27:33] +// CHECK: 27:9: BinaryOperator=>= Extent=[27:9 - 27:19] +// CHECK: 27:9: UnexposedExpr=c:2:14 Extent=[27:9 - 27:10] // CHECK: 27:9: DeclRefExpr=c:2:14 Extent=[27:9 - 27:10] // CHECK: 27:14: UnexposedExpr= Extent=[27:14 - 27:19] // CHECK: 27:14: IntegerLiteral= Extent=[27:14 - 27:19] -// CHECK: 27:23: BinaryOperator= Extent=[27:23 - 27:33] +// CHECK: 27:23: BinaryOperator=<= Extent=[27:23 - 27:33] +// CHECK: 27:23: UnexposedExpr=c:2:14 Extent=[27:23 - 27:24] // CHECK: 27:23: DeclRefExpr=c:2:14 Extent=[27:23 - 27:24] // CHECK: 27:28: UnexposedExpr= Extent=[27:28 - 27:33] // CHECK: 27:28: IntegerLiteral= Extent=[27:28 - 27:33] -// CHECK: 28:9: BinaryOperator= Extent=[28:9 - 28:33] -// CHECK: 28:9: BinaryOperator= Extent=[28:9 - 28:19] +// CHECK: 28:8: ParenExpr= Extent=[28:8 - 28:34] +// CHECK: 28:9: BinaryOperator=&& Extent=[28:9 - 28:33] +// CHECK: 28:9: BinaryOperator=>= Extent=[28:9 - 28:19] +// CHECK: 28:9: UnexposedExpr=c:2:14 Extent=[28:9 - 28:10] // CHECK: 28:9: DeclRefExpr=c:2:14 Extent=[28:9 - 28:10] // CHECK: 28:14: UnexposedExpr= Extent=[28:14 - 28:19] // CHECK: 28:14: IntegerLiteral= Extent=[28:14 - 28:19] -// CHECK: 28:23: BinaryOperator= Extent=[28:23 - 28:33] +// CHECK: 28:23: BinaryOperator=<= Extent=[28:23 - 28:33] +// CHECK: 28:23: UnexposedExpr=c:2:14 Extent=[28:23 - 28:24] // CHECK: 28:23: DeclRefExpr=c:2:14 Extent=[28:23 - 28:24] // CHECK: 28:28: UnexposedExpr= Extent=[28:28 - 28:33] // CHECK: 28:28: IntegerLiteral= Extent=[28:28 - 28:33] -// CHECK: 29:9: BinaryOperator= Extent=[29:9 - 29:33] -// CHECK: 29:9: BinaryOperator= Extent=[29:9 - 29:19] +// CHECK: 29:8: ParenExpr= Extent=[29:8 - 29:34] +// CHECK: 29:9: BinaryOperator=&& Extent=[29:9 - 29:33] +// CHECK: 29:9: BinaryOperator=>= Extent=[29:9 - 29:19] +// CHECK: 29:9: UnexposedExpr=c:2:14 Extent=[29:9 - 29:10] // CHECK: 29:9: DeclRefExpr=c:2:14 Extent=[29:9 - 29:10] // CHECK: 29:14: UnexposedExpr= Extent=[29:14 - 29:19] // CHECK: 29:14: IntegerLiteral= Extent=[29:14 - 29:19] -// CHECK: 29:23: BinaryOperator= Extent=[29:23 - 29:33] +// CHECK: 29:23: BinaryOperator=<= Extent=[29:23 - 29:33] +// CHECK: 29:23: UnexposedExpr=c:2:14 Extent=[29:23 - 29:24] // CHECK: 29:23: DeclRefExpr=c:2:14 Extent=[29:23 - 29:24] // CHECK: 29:28: UnexposedExpr= Extent=[29:28 - 29:33] // CHECK: 29:28: IntegerLiteral= Extent=[29:28 - 29:33] -// CHECK: 30:9: BinaryOperator= Extent=[30:9 - 30:33] -// CHECK: 30:9: BinaryOperator= Extent=[30:9 - 30:19] +// CHECK: 30:8: ParenExpr= Extent=[30:8 - 30:34] +// CHECK: 30:9: BinaryOperator=&& Extent=[30:9 - 30:33] +// CHECK: 30:9: BinaryOperator=>= Extent=[30:9 - 30:19] +// CHECK: 30:9: UnexposedExpr=c:2:14 Extent=[30:9 - 30:10] // CHECK: 30:9: DeclRefExpr=c:2:14 Extent=[30:9 - 30:10] // CHECK: 30:14: UnexposedExpr= Extent=[30:14 - 30:19] // CHECK: 30:14: IntegerLiteral= Extent=[30:14 - 30:19] -// CHECK: 30:23: BinaryOperator= Extent=[30:23 - 30:33] +// CHECK: 30:23: BinaryOperator=<= Extent=[30:23 - 30:33] +// CHECK: 30:23: UnexposedExpr=c:2:14 Extent=[30:23 - 30:24] // CHECK: 30:23: DeclRefExpr=c:2:14 Extent=[30:23 - 30:24] // CHECK: 30:28: UnexposedExpr= Extent=[30:28 - 30:33] // CHECK: 30:28: IntegerLiteral= Extent=[30:28 - 30:33] -// CHECK: 31:9: BinaryOperator= Extent=[31:9 - 31:33] -// CHECK: 31:9: BinaryOperator= Extent=[31:9 - 31:19] +// CHECK: 31:8: ParenExpr= Extent=[31:8 - 31:34] +// CHECK: 31:9: BinaryOperator=&& Extent=[31:9 - 31:33] +// CHECK: 31:9: BinaryOperator=>= Extent=[31:9 - 31:19] +// CHECK: 31:9: UnexposedExpr=c:2:14 Extent=[31:9 - 31:10] // CHECK: 31:9: DeclRefExpr=c:2:14 Extent=[31:9 - 31:10] // CHECK: 31:14: UnexposedExpr= Extent=[31:14 - 31:19] // CHECK: 31:14: IntegerLiteral= Extent=[31:14 - 31:19] -// CHECK: 31:23: BinaryOperator= Extent=[31:23 - 31:33] +// CHECK: 31:23: BinaryOperator=<= Extent=[31:23 - 31:33] +// CHECK: 31:23: UnexposedExpr=c:2:14 Extent=[31:23 - 31:24] // CHECK: 31:23: DeclRefExpr=c:2:14 Extent=[31:23 - 31:24] // CHECK: 31:28: UnexposedExpr= Extent=[31:28 - 31:33] // CHECK: 31:28: IntegerLiteral= Extent=[31:28 - 31:33] -// CHECK: 32:9: BinaryOperator= Extent=[32:9 - 32:33] -// CHECK: 32:9: BinaryOperator= Extent=[32:9 - 32:19] +// CHECK: 32:8: ParenExpr= Extent=[32:8 - 32:34] +// CHECK: 32:9: BinaryOperator=&& Extent=[32:9 - 32:33] +// CHECK: 32:9: BinaryOperator=>= Extent=[32:9 - 32:19] +// CHECK: 32:9: UnexposedExpr=c:2:14 Extent=[32:9 - 32:10] // CHECK: 32:9: DeclRefExpr=c:2:14 Extent=[32:9 - 32:10] // CHECK: 32:14: UnexposedExpr= Extent=[32:14 - 32:19] // CHECK: 32:14: IntegerLiteral= Extent=[32:14 - 32:19] -// CHECK: 32:23: BinaryOperator= Extent=[32:23 - 32:33] +// CHECK: 32:23: BinaryOperator=<= Extent=[32:23 - 32:33] +// CHECK: 32:23: UnexposedExpr=c:2:14 Extent=[32:23 - 32:24] // CHECK: 32:23: DeclRefExpr=c:2:14 Extent=[32:23 - 32:24] // CHECK: 32:28: UnexposedExpr= Extent=[32:28 - 32:33] // CHECK: 32:28: IntegerLiteral= Extent=[32:28 - 32:33] -// CHECK: 33:9: BinaryOperator= Extent=[33:9 - 33:33] -// CHECK: 33:9: BinaryOperator= Extent=[33:9 - 33:19] +// CHECK: 33:8: ParenExpr= Extent=[33:8 - 33:34] +// CHECK: 33:9: BinaryOperator=&& Extent=[33:9 - 33:33] +// CHECK: 33:9: BinaryOperator=>= Extent=[33:9 - 33:19] +// CHECK: 33:9: UnexposedExpr=c:2:14 Extent=[33:9 - 33:10] // CHECK: 33:9: DeclRefExpr=c:2:14 Extent=[33:9 - 33:10] // CHECK: 33:14: UnexposedExpr= Extent=[33:14 - 33:19] // CHECK: 33:14: IntegerLiteral= Extent=[33:14 - 33:19] -// CHECK: 33:23: BinaryOperator= Extent=[33:23 - 33:33] +// CHECK: 33:23: BinaryOperator=<= Extent=[33:23 - 33:33] +// CHECK: 33:23: UnexposedExpr=c:2:14 Extent=[33:23 - 33:24] // CHECK: 33:23: DeclRefExpr=c:2:14 Extent=[33:23 - 33:24] // CHECK: 33:28: UnexposedExpr= Extent=[33:28 - 33:33] // CHECK: 33:28: IntegerLiteral= Extent=[33:28 - 33:33] -// CHECK: 34:9: BinaryOperator= Extent=[34:9 - 34:33] -// CHECK: 34:9: BinaryOperator= Extent=[34:9 - 34:19] +// CHECK: 34:8: ParenExpr= Extent=[34:8 - 34:34] +// CHECK: 34:9: BinaryOperator=&& Extent=[34:9 - 34:33] +// CHECK: 34:9: BinaryOperator=>= Extent=[34:9 - 34:19] +// CHECK: 34:9: UnexposedExpr=c:2:14 Extent=[34:9 - 34:10] // CHECK: 34:9: DeclRefExpr=c:2:14 Extent=[34:9 - 34:10] // CHECK: 34:14: UnexposedExpr= Extent=[34:14 - 34:19] // CHECK: 34:14: IntegerLiteral= Extent=[34:14 - 34:19] -// CHECK: 34:23: BinaryOperator= Extent=[34:23 - 34:33] +// CHECK: 34:23: BinaryOperator=<= Extent=[34:23 - 34:33] +// CHECK: 34:23: UnexposedExpr=c:2:14 Extent=[34:23 - 34:24] // CHECK: 34:23: DeclRefExpr=c:2:14 Extent=[34:23 - 34:24] // CHECK: 34:28: UnexposedExpr= Extent=[34:28 - 34:33] // CHECK: 34:28: IntegerLiteral= Extent=[34:28 - 34:33] -// CHECK: 35:8: BinaryOperator= Extent=[35:8 - 35:18] +// CHECK: 35:8: BinaryOperator=== Extent=[35:8 - 35:18] +// CHECK: 35:8: UnexposedExpr=c:2:14 Extent=[35:8 - 35:9] // CHECK: 35:8: DeclRefExpr=c:2:14 Extent=[35:8 - 35:9] // CHECK: 35:13: UnexposedExpr= Extent=[35:13 - 35:18] // CHECK: 35:13: IntegerLiteral= Extent=[35:13 - 35:18] -// CHECK: 35:23: BinaryOperator= Extent=[35:23 - 35:47] -// CHECK: 35:23: BinaryOperator= Extent=[35:23 - 35:33] +// CHECK: 35:22: ParenExpr= Extent=[35:22 - 35:48] +// CHECK: 35:23: BinaryOperator=&& Extent=[35:23 - 35:47] +// CHECK: 35:23: BinaryOperator=>= Extent=[35:23 - 35:33] +// CHECK: 35:23: UnexposedExpr=c:2:14 Extent=[35:23 - 35:24] // CHECK: 35:23: DeclRefExpr=c:2:14 Extent=[35:23 - 35:24] // CHECK: 35:28: UnexposedExpr= Extent=[35:28 - 35:33] // CHECK: 35:28: IntegerLiteral= Extent=[35:28 - 35:33] -// CHECK: 35:37: BinaryOperator= Extent=[35:37 - 35:47] +// CHECK: 35:37: BinaryOperator=<= Extent=[35:37 - 35:47] +// CHECK: 35:37: UnexposedExpr=c:2:14 Extent=[35:37 - 35:38] // CHECK: 35:37: DeclRefExpr=c:2:14 Extent=[35:37 - 35:38] // CHECK: 35:42: UnexposedExpr= Extent=[35:42 - 35:47] // CHECK: 35:42: IntegerLiteral= Extent=[35:42 - 35:47] -// CHECK: 36:9: BinaryOperator= Extent=[36:9 - 36:33] -// CHECK: 36:9: BinaryOperator= Extent=[36:9 - 36:19] +// CHECK: 36:8: ParenExpr= Extent=[36:8 - 36:34] +// CHECK: 36:9: BinaryOperator=&& Extent=[36:9 - 36:33] +// CHECK: 36:9: BinaryOperator=>= Extent=[36:9 - 36:19] +// CHECK: 36:9: UnexposedExpr=c:2:14 Extent=[36:9 - 36:10] // CHECK: 36:9: DeclRefExpr=c:2:14 Extent=[36:9 - 36:10] // CHECK: 36:14: UnexposedExpr= Extent=[36:14 - 36:19] // CHECK: 36:14: IntegerLiteral= Extent=[36:14 - 36:19] -// CHECK: 36:23: BinaryOperator= Extent=[36:23 - 36:33] +// CHECK: 36:23: BinaryOperator=<= Extent=[36:23 - 36:33] +// CHECK: 36:23: UnexposedExpr=c:2:14 Extent=[36:23 - 36:24] // CHECK: 36:23: DeclRefExpr=c:2:14 Extent=[36:23 - 36:24] // CHECK: 36:28: UnexposedExpr= Extent=[36:28 - 36:33] // CHECK: 36:28: IntegerLiteral= Extent=[36:28 - 36:33] -// CHECK: 37:9: BinaryOperator= Extent=[37:9 - 37:33] -// CHECK: 37:9: BinaryOperator= Extent=[37:9 - 37:19] +// CHECK: 37:8: ParenExpr= Extent=[37:8 - 37:34] +// CHECK: 37:9: BinaryOperator=&& Extent=[37:9 - 37:33] +// CHECK: 37:9: BinaryOperator=>= Extent=[37:9 - 37:19] +// CHECK: 37:9: UnexposedExpr=c:2:14 Extent=[37:9 - 37:10] // CHECK: 37:9: DeclRefExpr=c:2:14 Extent=[37:9 - 37:10] // CHECK: 37:14: UnexposedExpr= Extent=[37:14 - 37:19] // CHECK: 37:14: IntegerLiteral= Extent=[37:14 - 37:19] -// CHECK: 37:23: BinaryOperator= Extent=[37:23 - 37:33] +// CHECK: 37:23: BinaryOperator=<= Extent=[37:23 - 37:33] +// CHECK: 37:23: UnexposedExpr=c:2:14 Extent=[37:23 - 37:24] // CHECK: 37:23: DeclRefExpr=c:2:14 Extent=[37:23 - 37:24] // CHECK: 37:28: UnexposedExpr= Extent=[37:28 - 37:33] // CHECK: 37:28: IntegerLiteral= Extent=[37:28 - 37:33] -// CHECK: 38:9: BinaryOperator= Extent=[38:9 - 38:33] -// CHECK: 38:9: BinaryOperator= Extent=[38:9 - 38:19] +// CHECK: 38:8: ParenExpr= Extent=[38:8 - 38:34] +// CHECK: 38:9: BinaryOperator=&& Extent=[38:9 - 38:33] +// CHECK: 38:9: BinaryOperator=>= Extent=[38:9 - 38:19] +// CHECK: 38:9: UnexposedExpr=c:2:14 Extent=[38:9 - 38:10] // CHECK: 38:9: DeclRefExpr=c:2:14 Extent=[38:9 - 38:10] // CHECK: 38:14: UnexposedExpr= Extent=[38:14 - 38:19] // CHECK: 38:14: IntegerLiteral= Extent=[38:14 - 38:19] -// CHECK: 38:23: BinaryOperator= Extent=[38:23 - 38:33] +// CHECK: 38:23: BinaryOperator=<= Extent=[38:23 - 38:33] +// CHECK: 38:23: UnexposedExpr=c:2:14 Extent=[38:23 - 38:24] // CHECK: 38:23: DeclRefExpr=c:2:14 Extent=[38:23 - 38:24] // CHECK: 38:28: UnexposedExpr= Extent=[38:28 - 38:33] // CHECK: 38:28: IntegerLiteral= Extent=[38:28 - 38:33] -// CHECK: 39:9: BinaryOperator= Extent=[39:9 - 39:33] -// CHECK: 39:9: BinaryOperator= Extent=[39:9 - 39:19] +// CHECK: 39:8: ParenExpr= Extent=[39:8 - 39:34] +// CHECK: 39:9: BinaryOperator=&& Extent=[39:9 - 39:33] +// CHECK: 39:9: BinaryOperator=>= Extent=[39:9 - 39:19] +// CHECK: 39:9: UnexposedExpr=c:2:14 Extent=[39:9 - 39:10] // CHECK: 39:9: DeclRefExpr=c:2:14 Extent=[39:9 - 39:10] // CHECK: 39:14: UnexposedExpr= Extent=[39:14 - 39:19] // CHECK: 39:14: IntegerLiteral= Extent=[39:14 - 39:19] -// CHECK: 39:23: BinaryOperator= Extent=[39:23 - 39:33] +// CHECK: 39:23: BinaryOperator=<= Extent=[39:23 - 39:33] +// CHECK: 39:23: UnexposedExpr=c:2:14 Extent=[39:23 - 39:24] // CHECK: 39:23: DeclRefExpr=c:2:14 Extent=[39:23 - 39:24] // CHECK: 39:28: UnexposedExpr= Extent=[39:28 - 39:33] // CHECK: 39:28: IntegerLiteral= Extent=[39:28 - 39:33] -// CHECK: 40:9: BinaryOperator= Extent=[40:9 - 40:33] -// CHECK: 40:9: BinaryOperator= Extent=[40:9 - 40:19] +// CHECK: 40:8: ParenExpr= Extent=[40:8 - 40:34] +// CHECK: 40:9: BinaryOperator=&& Extent=[40:9 - 40:33] +// CHECK: 40:9: BinaryOperator=>= Extent=[40:9 - 40:19] +// CHECK: 40:9: UnexposedExpr=c:2:14 Extent=[40:9 - 40:10] // CHECK: 40:9: DeclRefExpr=c:2:14 Extent=[40:9 - 40:10] // CHECK: 40:14: UnexposedExpr= Extent=[40:14 - 40:19] // CHECK: 40:14: IntegerLiteral= Extent=[40:14 - 40:19] -// CHECK: 40:23: BinaryOperator= Extent=[40:23 - 40:33] +// CHECK: 40:23: BinaryOperator=<= Extent=[40:23 - 40:33] +// CHECK: 40:23: UnexposedExpr=c:2:14 Extent=[40:23 - 40:24] // CHECK: 40:23: DeclRefExpr=c:2:14 Extent=[40:23 - 40:24] // CHECK: 40:28: UnexposedExpr= Extent=[40:28 - 40:33] // CHECK: 40:28: IntegerLiteral= Extent=[40:28 - 40:33] -// CHECK: 41:9: BinaryOperator= Extent=[41:9 - 41:33] -// CHECK: 41:9: BinaryOperator= Extent=[41:9 - 41:19] +// CHECK: 41:8: ParenExpr= Extent=[41:8 - 41:34] +// CHECK: 41:9: BinaryOperator=&& Extent=[41:9 - 41:33] +// CHECK: 41:9: BinaryOperator=>= Extent=[41:9 - 41:19] +// CHECK: 41:9: UnexposedExpr=c:2:14 Extent=[41:9 - 41:10] // CHECK: 41:9: DeclRefExpr=c:2:14 Extent=[41:9 - 41:10] // CHECK: 41:14: UnexposedExpr= Extent=[41:14 - 41:19] // CHECK: 41:14: IntegerLiteral= Extent=[41:14 - 41:19] -// CHECK: 41:23: BinaryOperator= Extent=[41:23 - 41:33] +// CHECK: 41:23: BinaryOperator=<= Extent=[41:23 - 41:33] +// CHECK: 41:23: UnexposedExpr=c:2:14 Extent=[41:23 - 41:24] // CHECK: 41:23: DeclRefExpr=c:2:14 Extent=[41:23 - 41:24] // CHECK: 41:28: UnexposedExpr= Extent=[41:28 - 41:33] // CHECK: 41:28: IntegerLiteral= Extent=[41:28 - 41:33] -// CHECK: 42:9: BinaryOperator= Extent=[42:9 - 42:33] -// CHECK: 42:9: BinaryOperator= Extent=[42:9 - 42:19] +// CHECK: 42:8: ParenExpr= Extent=[42:8 - 42:34] +// CHECK: 42:9: BinaryOperator=&& Extent=[42:9 - 42:33] +// CHECK: 42:9: BinaryOperator=>= Extent=[42:9 - 42:19] +// CHECK: 42:9: UnexposedExpr=c:2:14 Extent=[42:9 - 42:10] // CHECK: 42:9: DeclRefExpr=c:2:14 Extent=[42:9 - 42:10] // CHECK: 42:14: UnexposedExpr= Extent=[42:14 - 42:19] // CHECK: 42:14: IntegerLiteral= Extent=[42:14 - 42:19] -// CHECK: 42:23: BinaryOperator= Extent=[42:23 - 42:33] +// CHECK: 42:23: BinaryOperator=<= Extent=[42:23 - 42:33] +// CHECK: 42:23: UnexposedExpr=c:2:14 Extent=[42:23 - 42:24] // CHECK: 42:23: DeclRefExpr=c:2:14 Extent=[42:23 - 42:24] // CHECK: 42:28: UnexposedExpr= Extent=[42:28 - 42:33] // CHECK: 42:28: IntegerLiteral= Extent=[42:28 - 42:33] -// CHECK: 43:9: BinaryOperator= Extent=[43:9 - 43:33] -// CHECK: 43:9: BinaryOperator= Extent=[43:9 - 43:19] +// CHECK: 43:8: ParenExpr= Extent=[43:8 - 43:34] +// CHECK: 43:9: BinaryOperator=&& Extent=[43:9 - 43:33] +// CHECK: 43:9: BinaryOperator=>= Extent=[43:9 - 43:19] +// CHECK: 43:9: UnexposedExpr=c:2:14 Extent=[43:9 - 43:10] // CHECK: 43:9: DeclRefExpr=c:2:14 Extent=[43:9 - 43:10] // CHECK: 43:14: UnexposedExpr= Extent=[43:14 - 43:19] // CHECK: 43:14: IntegerLiteral= Extent=[43:14 - 43:19] -// CHECK: 43:23: BinaryOperator= Extent=[43:23 - 43:33] +// CHECK: 43:23: BinaryOperator=<= Extent=[43:23 - 43:33] +// CHECK: 43:23: UnexposedExpr=c:2:14 Extent=[43:23 - 43:24] // CHECK: 43:23: DeclRefExpr=c:2:14 Extent=[43:23 - 43:24] // CHECK: 43:28: UnexposedExpr= Extent=[43:28 - 43:33] // CHECK: 43:28: IntegerLiteral= Extent=[43:28 - 43:33] -// CHECK: 44:8: BinaryOperator= Extent=[44:8 - 44:18] +// CHECK: 44:8: BinaryOperator=== Extent=[44:8 - 44:18] +// CHECK: 44:8: UnexposedExpr=c:2:14 Extent=[44:8 - 44:9] // CHECK: 44:8: DeclRefExpr=c:2:14 Extent=[44:8 - 44:9] // CHECK: 44:13: UnexposedExpr= Extent=[44:13 - 44:18] // CHECK: 44:13: IntegerLiteral= Extent=[44:13 - 44:18] -// CHECK: 44:23: BinaryOperator= Extent=[44:23 - 44:47] -// CHECK: 44:23: BinaryOperator= Extent=[44:23 - 44:33] +// CHECK: 44:22: ParenExpr= Extent=[44:22 - 44:48] +// CHECK: 44:23: BinaryOperator=&& Extent=[44:23 - 44:47] +// CHECK: 44:23: BinaryOperator=>= Extent=[44:23 - 44:33] +// CHECK: 44:23: UnexposedExpr=c:2:14 Extent=[44:23 - 44:24] // CHECK: 44:23: DeclRefExpr=c:2:14 Extent=[44:23 - 44:24] // CHECK: 44:28: UnexposedExpr= Extent=[44:28 - 44:33] // CHECK: 44:28: IntegerLiteral= Extent=[44:28 - 44:33] -// CHECK: 44:37: BinaryOperator= Extent=[44:37 - 44:47] +// CHECK: 44:37: BinaryOperator=<= Extent=[44:37 - 44:47] +// CHECK: 44:37: UnexposedExpr=c:2:14 Extent=[44:37 - 44:38] // CHECK: 44:37: DeclRefExpr=c:2:14 Extent=[44:37 - 44:38] // CHECK: 44:42: UnexposedExpr= Extent=[44:42 - 44:47] // CHECK: 44:42: IntegerLiteral= Extent=[44:42 - 44:47] -// CHECK: 45:9: BinaryOperator= Extent=[45:9 - 45:33] -// CHECK: 45:9: BinaryOperator= Extent=[45:9 - 45:19] +// CHECK: 45:8: ParenExpr= Extent=[45:8 - 45:34] +// CHECK: 45:9: BinaryOperator=&& Extent=[45:9 - 45:33] +// CHECK: 45:9: BinaryOperator=>= Extent=[45:9 - 45:19] +// CHECK: 45:9: UnexposedExpr=c:2:14 Extent=[45:9 - 45:10] // CHECK: 45:9: DeclRefExpr=c:2:14 Extent=[45:9 - 45:10] // CHECK: 45:14: UnexposedExpr= Extent=[45:14 - 45:19] // CHECK: 45:14: IntegerLiteral= Extent=[45:14 - 45:19] -// CHECK: 45:23: BinaryOperator= Extent=[45:23 - 45:33] +// CHECK: 45:23: BinaryOperator=<= Extent=[45:23 - 45:33] +// CHECK: 45:23: UnexposedExpr=c:2:14 Extent=[45:23 - 45:24] // CHECK: 45:23: DeclRefExpr=c:2:14 Extent=[45:23 - 45:24] // CHECK: 45:28: UnexposedExpr= Extent=[45:28 - 45:33] // CHECK: 45:28: IntegerLiteral= Extent=[45:28 - 45:33] -// CHECK: 46:8: BinaryOperator= Extent=[46:8 - 46:18] +// CHECK: 46:8: BinaryOperator=== Extent=[46:8 - 46:18] +// CHECK: 46:8: UnexposedExpr=c:2:14 Extent=[46:8 - 46:9] // CHECK: 46:8: DeclRefExpr=c:2:14 Extent=[46:8 - 46:9] // CHECK: 46:13: UnexposedExpr= Extent=[46:13 - 46:18] // CHECK: 46:13: IntegerLiteral= Extent=[46:13 - 46:18] -// CHECK: 46:23: BinaryOperator= Extent=[46:23 - 46:47] -// CHECK: 46:23: BinaryOperator= Extent=[46:23 - 46:33] +// CHECK: 46:22: ParenExpr= Extent=[46:22 - 46:48] +// CHECK: 46:23: BinaryOperator=&& Extent=[46:23 - 46:47] +// CHECK: 46:23: BinaryOperator=>= Extent=[46:23 - 46:33] +// CHECK: 46:23: UnexposedExpr=c:2:14 Extent=[46:23 - 46:24] // CHECK: 46:23: DeclRefExpr=c:2:14 Extent=[46:23 - 46:24] // CHECK: 46:28: UnexposedExpr= Extent=[46:28 - 46:33] // CHECK: 46:28: IntegerLiteral= Extent=[46:28 - 46:33] -// CHECK: 46:37: BinaryOperator= Extent=[46:37 - 46:47] +// CHECK: 46:37: BinaryOperator=<= Extent=[46:37 - 46:47] +// CHECK: 46:37: UnexposedExpr=c:2:14 Extent=[46:37 - 46:38] // CHECK: 46:37: DeclRefExpr=c:2:14 Extent=[46:37 - 46:38] // CHECK: 46:42: UnexposedExpr= Extent=[46:42 - 46:47] // CHECK: 46:42: IntegerLiteral= Extent=[46:42 - 46:47] -// CHECK: 47:9: BinaryOperator= Extent=[47:9 - 47:33] -// CHECK: 47:9: BinaryOperator= Extent=[47:9 - 47:19] +// CHECK: 47:8: ParenExpr= Extent=[47:8 - 47:34] +// CHECK: 47:9: BinaryOperator=&& Extent=[47:9 - 47:33] +// CHECK: 47:9: BinaryOperator=>= Extent=[47:9 - 47:19] +// CHECK: 47:9: UnexposedExpr=c:2:14 Extent=[47:9 - 47:10] // CHECK: 47:9: DeclRefExpr=c:2:14 Extent=[47:9 - 47:10] // CHECK: 47:14: UnexposedExpr= Extent=[47:14 - 47:19] // CHECK: 47:14: IntegerLiteral= Extent=[47:14 - 47:19] -// CHECK: 47:23: BinaryOperator= Extent=[47:23 - 47:33] +// CHECK: 47:23: BinaryOperator=<= Extent=[47:23 - 47:33] +// CHECK: 47:23: UnexposedExpr=c:2:14 Extent=[47:23 - 47:24] // CHECK: 47:23: DeclRefExpr=c:2:14 Extent=[47:23 - 47:24] // CHECK: 47:28: UnexposedExpr= Extent=[47:28 - 47:33] // CHECK: 47:28: IntegerLiteral= Extent=[47:28 - 47:33] -// CHECK: 48:9: BinaryOperator= Extent=[48:9 - 48:33] -// CHECK: 48:9: BinaryOperator= Extent=[48:9 - 48:19] +// CHECK: 48:8: ParenExpr= Extent=[48:8 - 48:34] +// CHECK: 48:9: BinaryOperator=&& Extent=[48:9 - 48:33] +// CHECK: 48:9: BinaryOperator=>= Extent=[48:9 - 48:19] +// CHECK: 48:9: UnexposedExpr=c:2:14 Extent=[48:9 - 48:10] // CHECK: 48:9: DeclRefExpr=c:2:14 Extent=[48:9 - 48:10] // CHECK: 48:14: UnexposedExpr= Extent=[48:14 - 48:19] // CHECK: 48:14: IntegerLiteral= Extent=[48:14 - 48:19] -// CHECK: 48:23: BinaryOperator= Extent=[48:23 - 48:33] +// CHECK: 48:23: BinaryOperator=<= Extent=[48:23 - 48:33] +// CHECK: 48:23: UnexposedExpr=c:2:14 Extent=[48:23 - 48:24] // CHECK: 48:23: DeclRefExpr=c:2:14 Extent=[48:23 - 48:24] // CHECK: 48:28: UnexposedExpr= Extent=[48:28 - 48:33] // CHECK: 48:28: IntegerLiteral= Extent=[48:28 - 48:33] -// CHECK: 49:9: BinaryOperator= Extent=[49:9 - 49:33] -// CHECK: 49:9: BinaryOperator= Extent=[49:9 - 49:19] +// CHECK: 49:8: ParenExpr= Extent=[49:8 - 49:34] +// CHECK: 49:9: BinaryOperator=&& Extent=[49:9 - 49:33] +// CHECK: 49:9: BinaryOperator=>= Extent=[49:9 - 49:19] +// CHECK: 49:9: UnexposedExpr=c:2:14 Extent=[49:9 - 49:10] // CHECK: 49:9: DeclRefExpr=c:2:14 Extent=[49:9 - 49:10] // CHECK: 49:14: UnexposedExpr= Extent=[49:14 - 49:19] // CHECK: 49:14: IntegerLiteral= Extent=[49:14 - 49:19] -// CHECK: 49:23: BinaryOperator= Extent=[49:23 - 49:33] +// CHECK: 49:23: BinaryOperator=<= Extent=[49:23 - 49:33] +// CHECK: 49:23: UnexposedExpr=c:2:14 Extent=[49:23 - 49:24] // CHECK: 49:23: DeclRefExpr=c:2:14 Extent=[49:23 - 49:24] // CHECK: 49:28: UnexposedExpr= Extent=[49:28 - 49:33] // CHECK: 49:28: IntegerLiteral= Extent=[49:28 - 49:33] -// CHECK: 50:9: BinaryOperator= Extent=[50:9 - 50:33] -// CHECK: 50:9: BinaryOperator= Extent=[50:9 - 50:19] +// CHECK: 50:8: ParenExpr= Extent=[50:8 - 50:34] +// CHECK: 50:9: BinaryOperator=&& Extent=[50:9 - 50:33] +// CHECK: 50:9: BinaryOperator=>= Extent=[50:9 - 50:19] +// CHECK: 50:9: UnexposedExpr=c:2:14 Extent=[50:9 - 50:10] // CHECK: 50:9: DeclRefExpr=c:2:14 Extent=[50:9 - 50:10] // CHECK: 50:14: UnexposedExpr= Extent=[50:14 - 50:19] // CHECK: 50:14: IntegerLiteral= Extent=[50:14 - 50:19] -// CHECK: 50:23: BinaryOperator= Extent=[50:23 - 50:33] +// CHECK: 50:23: BinaryOperator=<= Extent=[50:23 - 50:33] +// CHECK: 50:23: UnexposedExpr=c:2:14 Extent=[50:23 - 50:24] // CHECK: 50:23: DeclRefExpr=c:2:14 Extent=[50:23 - 50:24] // CHECK: 50:28: UnexposedExpr= Extent=[50:28 - 50:33] // CHECK: 50:28: IntegerLiteral= Extent=[50:28 - 50:33] -// CHECK: 51:8: BinaryOperator= Extent=[51:8 - 51:18] +// CHECK: 51:8: BinaryOperator=== Extent=[51:8 - 51:18] +// CHECK: 51:8: UnexposedExpr=c:2:14 Extent=[51:8 - 51:9] // CHECK: 51:8: DeclRefExpr=c:2:14 Extent=[51:8 - 51:9] // CHECK: 51:13: UnexposedExpr= Extent=[51:13 - 51:18] // CHECK: 51:13: IntegerLiteral= Extent=[51:13 - 51:18] -// CHECK: 51:23: BinaryOperator= Extent=[51:23 - 51:47] -// CHECK: 51:23: BinaryOperator= Extent=[51:23 - 51:33] +// CHECK: 51:22: ParenExpr= Extent=[51:22 - 51:48] +// CHECK: 51:23: BinaryOperator=&& Extent=[51:23 - 51:47] +// CHECK: 51:23: BinaryOperator=>= Extent=[51:23 - 51:33] +// CHECK: 51:23: UnexposedExpr=c:2:14 Extent=[51:23 - 51:24] // CHECK: 51:23: DeclRefExpr=c:2:14 Extent=[51:23 - 51:24] // CHECK: 51:28: UnexposedExpr= Extent=[51:28 - 51:33] // CHECK: 51:28: IntegerLiteral= Extent=[51:28 - 51:33] -// CHECK: 51:37: BinaryOperator= Extent=[51:37 - 51:47] +// CHECK: 51:37: BinaryOperator=<= Extent=[51:37 - 51:47] +// CHECK: 51:37: UnexposedExpr=c:2:14 Extent=[51:37 - 51:38] // CHECK: 51:37: DeclRefExpr=c:2:14 Extent=[51:37 - 51:38] // CHECK: 51:42: UnexposedExpr= Extent=[51:42 - 51:47] // CHECK: 51:42: IntegerLiteral= Extent=[51:42 - 51:47] -// CHECK: 52:9: BinaryOperator= Extent=[52:9 - 52:33] -// CHECK: 52:9: BinaryOperator= Extent=[52:9 - 52:19] +// CHECK: 52:8: ParenExpr= Extent=[52:8 - 52:34] +// CHECK: 52:9: BinaryOperator=&& Extent=[52:9 - 52:33] +// CHECK: 52:9: BinaryOperator=>= Extent=[52:9 - 52:19] +// CHECK: 52:9: UnexposedExpr=c:2:14 Extent=[52:9 - 52:10] // CHECK: 52:9: DeclRefExpr=c:2:14 Extent=[52:9 - 52:10] // CHECK: 52:14: UnexposedExpr= Extent=[52:14 - 52:19] // CHECK: 52:14: IntegerLiteral= Extent=[52:14 - 52:19] -// CHECK: 52:23: BinaryOperator= Extent=[52:23 - 52:33] +// CHECK: 52:23: BinaryOperator=<= Extent=[52:23 - 52:33] +// CHECK: 52:23: UnexposedExpr=c:2:14 Extent=[52:23 - 52:24] // CHECK: 52:23: DeclRefExpr=c:2:14 Extent=[52:23 - 52:24] // CHECK: 52:28: UnexposedExpr= Extent=[52:28 - 52:33] // CHECK: 52:28: IntegerLiteral= Extent=[52:28 - 52:33] -// CHECK: 53:9: BinaryOperator= Extent=[53:9 - 53:33] -// CHECK: 53:9: BinaryOperator= Extent=[53:9 - 53:19] +// CHECK: 53:8: ParenExpr= Extent=[53:8 - 53:34] +// CHECK: 53:9: BinaryOperator=&& Extent=[53:9 - 53:33] +// CHECK: 53:9: BinaryOperator=>= Extent=[53:9 - 53:19] +// CHECK: 53:9: UnexposedExpr=c:2:14 Extent=[53:9 - 53:10] // CHECK: 53:9: DeclRefExpr=c:2:14 Extent=[53:9 - 53:10] // CHECK: 53:14: UnexposedExpr= Extent=[53:14 - 53:19] // CHECK: 53:14: IntegerLiteral= Extent=[53:14 - 53:19] -// CHECK: 53:23: BinaryOperator= Extent=[53:23 - 53:33] +// CHECK: 53:23: BinaryOperator=<= Extent=[53:23 - 53:33] +// CHECK: 53:23: UnexposedExpr=c:2:14 Extent=[53:23 - 53:24] // CHECK: 53:23: DeclRefExpr=c:2:14 Extent=[53:23 - 53:24] // CHECK: 53:28: UnexposedExpr= Extent=[53:28 - 53:33] // CHECK: 53:28: IntegerLiteral= Extent=[53:28 - 53:33] -// CHECK: 54:9: BinaryOperator= Extent=[54:9 - 54:33] -// CHECK: 54:9: BinaryOperator= Extent=[54:9 - 54:19] +// CHECK: 54:8: ParenExpr= Extent=[54:8 - 54:34] +// CHECK: 54:9: BinaryOperator=&& Extent=[54:9 - 54:33] +// CHECK: 54:9: BinaryOperator=>= Extent=[54:9 - 54:19] +// CHECK: 54:9: UnexposedExpr=c:2:14 Extent=[54:9 - 54:10] // CHECK: 54:9: DeclRefExpr=c:2:14 Extent=[54:9 - 54:10] // CHECK: 54:14: UnexposedExpr= Extent=[54:14 - 54:19] // CHECK: 54:14: IntegerLiteral= Extent=[54:14 - 54:19] -// CHECK: 54:23: BinaryOperator= Extent=[54:23 - 54:33] +// CHECK: 54:23: BinaryOperator=<= Extent=[54:23 - 54:33] +// CHECK: 54:23: UnexposedExpr=c:2:14 Extent=[54:23 - 54:24] // CHECK: 54:23: DeclRefExpr=c:2:14 Extent=[54:23 - 54:24] // CHECK: 54:28: UnexposedExpr= Extent=[54:28 - 54:33] // CHECK: 54:28: IntegerLiteral= Extent=[54:28 - 54:33] -// CHECK: 55:9: BinaryOperator= Extent=[55:9 - 55:33] -// CHECK: 55:9: BinaryOperator= Extent=[55:9 - 55:19] +// CHECK: 55:8: ParenExpr= Extent=[55:8 - 55:34] +// CHECK: 55:9: BinaryOperator=&& Extent=[55:9 - 55:33] +// CHECK: 55:9: BinaryOperator=>= Extent=[55:9 - 55:19] +// CHECK: 55:9: UnexposedExpr=c:2:14 Extent=[55:9 - 55:10] // CHECK: 55:9: DeclRefExpr=c:2:14 Extent=[55:9 - 55:10] // CHECK: 55:14: UnexposedExpr= Extent=[55:14 - 55:19] // CHECK: 55:14: IntegerLiteral= Extent=[55:14 - 55:19] -// CHECK: 55:23: BinaryOperator= Extent=[55:23 - 55:33] +// CHECK: 55:23: BinaryOperator=<= Extent=[55:23 - 55:33] +// CHECK: 55:23: UnexposedExpr=c:2:14 Extent=[55:23 - 55:24] // CHECK: 55:23: DeclRefExpr=c:2:14 Extent=[55:23 - 55:24] // CHECK: 55:28: UnexposedExpr= Extent=[55:28 - 55:33] // CHECK: 55:28: IntegerLiteral= Extent=[55:28 - 55:33] -// CHECK: 56:9: BinaryOperator= Extent=[56:9 - 56:33] -// CHECK: 56:9: BinaryOperator= Extent=[56:9 - 56:19] +// CHECK: 56:8: ParenExpr= Extent=[56:8 - 56:34] +// CHECK: 56:9: BinaryOperator=&& Extent=[56:9 - 56:33] +// CHECK: 56:9: BinaryOperator=>= Extent=[56:9 - 56:19] +// CHECK: 56:9: UnexposedExpr=c:2:14 Extent=[56:9 - 56:10] // CHECK: 56:9: DeclRefExpr=c:2:14 Extent=[56:9 - 56:10] // CHECK: 56:14: UnexposedExpr= Extent=[56:14 - 56:19] // CHECK: 56:14: IntegerLiteral= Extent=[56:14 - 56:19] -// CHECK: 56:23: BinaryOperator= Extent=[56:23 - 56:33] +// CHECK: 56:23: BinaryOperator=<= Extent=[56:23 - 56:33] +// CHECK: 56:23: UnexposedExpr=c:2:14 Extent=[56:23 - 56:24] // CHECK: 56:23: DeclRefExpr=c:2:14 Extent=[56:23 - 56:24] // CHECK: 56:28: UnexposedExpr= Extent=[56:28 - 56:33] // CHECK: 56:28: IntegerLiteral= Extent=[56:28 - 56:33] -// CHECK: 57:9: BinaryOperator= Extent=[57:9 - 57:33] -// CHECK: 57:9: BinaryOperator= Extent=[57:9 - 57:19] +// CHECK: 57:8: ParenExpr= Extent=[57:8 - 57:34] +// CHECK: 57:9: BinaryOperator=&& Extent=[57:9 - 57:33] +// CHECK: 57:9: BinaryOperator=>= Extent=[57:9 - 57:19] +// CHECK: 57:9: UnexposedExpr=c:2:14 Extent=[57:9 - 57:10] // CHECK: 57:9: DeclRefExpr=c:2:14 Extent=[57:9 - 57:10] // CHECK: 57:14: UnexposedExpr= Extent=[57:14 - 57:19] // CHECK: 57:14: IntegerLiteral= Extent=[57:14 - 57:19] -// CHECK: 57:23: BinaryOperator= Extent=[57:23 - 57:33] +// CHECK: 57:23: BinaryOperator=<= Extent=[57:23 - 57:33] +// CHECK: 57:23: UnexposedExpr=c:2:14 Extent=[57:23 - 57:24] // CHECK: 57:23: DeclRefExpr=c:2:14 Extent=[57:23 - 57:24] // CHECK: 57:28: UnexposedExpr= Extent=[57:28 - 57:33] // CHECK: 57:28: IntegerLiteral= Extent=[57:28 - 57:33] -// CHECK: 58:9: BinaryOperator= Extent=[58:9 - 58:33] -// CHECK: 58:9: BinaryOperator= Extent=[58:9 - 58:19] +// CHECK: 58:8: ParenExpr= Extent=[58:8 - 58:34] +// CHECK: 58:9: BinaryOperator=&& Extent=[58:9 - 58:33] +// CHECK: 58:9: BinaryOperator=>= Extent=[58:9 - 58:19] +// CHECK: 58:9: UnexposedExpr=c:2:14 Extent=[58:9 - 58:10] // CHECK: 58:9: DeclRefExpr=c:2:14 Extent=[58:9 - 58:10] // CHECK: 58:14: UnexposedExpr= Extent=[58:14 - 58:19] // CHECK: 58:14: IntegerLiteral= Extent=[58:14 - 58:19] -// CHECK: 58:23: BinaryOperator= Extent=[58:23 - 58:33] +// CHECK: 58:23: BinaryOperator=<= Extent=[58:23 - 58:33] +// CHECK: 58:23: UnexposedExpr=c:2:14 Extent=[58:23 - 58:24] // CHECK: 58:23: DeclRefExpr=c:2:14 Extent=[58:23 - 58:24] // CHECK: 58:28: UnexposedExpr= Extent=[58:28 - 58:33] // CHECK: 58:28: IntegerLiteral= Extent=[58:28 - 58:33] -// CHECK: 59:9: BinaryOperator= Extent=[59:9 - 59:33] -// CHECK: 59:9: BinaryOperator= Extent=[59:9 - 59:19] +// CHECK: 59:8: ParenExpr= Extent=[59:8 - 59:34] +// CHECK: 59:9: BinaryOperator=&& Extent=[59:9 - 59:33] +// CHECK: 59:9: BinaryOperator=>= Extent=[59:9 - 59:19] +// CHECK: 59:9: UnexposedExpr=c:2:14 Extent=[59:9 - 59:10] // CHECK: 59:9: DeclRefExpr=c:2:14 Extent=[59:9 - 59:10] // CHECK: 59:14: UnexposedExpr= Extent=[59:14 - 59:19] // CHECK: 59:14: IntegerLiteral= Extent=[59:14 - 59:19] -// CHECK: 59:23: BinaryOperator= Extent=[59:23 - 59:33] +// CHECK: 59:23: BinaryOperator=<= Extent=[59:23 - 59:33] +// CHECK: 59:23: UnexposedExpr=c:2:14 Extent=[59:23 - 59:24] // CHECK: 59:23: DeclRefExpr=c:2:14 Extent=[59:23 - 59:24] // CHECK: 59:28: UnexposedExpr= Extent=[59:28 - 59:33] // CHECK: 59:28: IntegerLiteral= Extent=[59:28 - 59:33] -// CHECK: 60:9: BinaryOperator= Extent=[60:9 - 60:33] -// CHECK: 60:9: BinaryOperator= Extent=[60:9 - 60:19] +// CHECK: 60:8: ParenExpr= Extent=[60:8 - 60:34] +// CHECK: 60:9: BinaryOperator=&& Extent=[60:9 - 60:33] +// CHECK: 60:9: BinaryOperator=>= Extent=[60:9 - 60:19] +// CHECK: 60:9: UnexposedExpr=c:2:14 Extent=[60:9 - 60:10] // CHECK: 60:9: DeclRefExpr=c:2:14 Extent=[60:9 - 60:10] // CHECK: 60:14: UnexposedExpr= Extent=[60:14 - 60:19] // CHECK: 60:14: IntegerLiteral= Extent=[60:14 - 60:19] -// CHECK: 60:23: BinaryOperator= Extent=[60:23 - 60:33] +// CHECK: 60:23: BinaryOperator=<= Extent=[60:23 - 60:33] +// CHECK: 60:23: UnexposedExpr=c:2:14 Extent=[60:23 - 60:24] // CHECK: 60:23: DeclRefExpr=c:2:14 Extent=[60:23 - 60:24] // CHECK: 60:28: UnexposedExpr= Extent=[60:28 - 60:33] // CHECK: 60:28: IntegerLiteral= Extent=[60:28 - 60:33] -// CHECK: 61:9: BinaryOperator= Extent=[61:9 - 61:33] -// CHECK: 61:9: BinaryOperator= Extent=[61:9 - 61:19] +// CHECK: 61:8: ParenExpr= Extent=[61:8 - 61:34] +// CHECK: 61:9: BinaryOperator=&& Extent=[61:9 - 61:33] +// CHECK: 61:9: BinaryOperator=>= Extent=[61:9 - 61:19] +// CHECK: 61:9: UnexposedExpr=c:2:14 Extent=[61:9 - 61:10] // CHECK: 61:9: DeclRefExpr=c:2:14 Extent=[61:9 - 61:10] // CHECK: 61:14: UnexposedExpr= Extent=[61:14 - 61:19] // CHECK: 61:14: IntegerLiteral= Extent=[61:14 - 61:19] -// CHECK: 61:23: BinaryOperator= Extent=[61:23 - 61:33] +// CHECK: 61:23: BinaryOperator=<= Extent=[61:23 - 61:33] +// CHECK: 61:23: UnexposedExpr=c:2:14 Extent=[61:23 - 61:24] // CHECK: 61:23: DeclRefExpr=c:2:14 Extent=[61:23 - 61:24] // CHECK: 61:28: UnexposedExpr= Extent=[61:28 - 61:33] // CHECK: 61:28: IntegerLiteral= Extent=[61:28 - 61:33] -// CHECK: 62:9: BinaryOperator= Extent=[62:9 - 62:33] -// CHECK: 62:9: BinaryOperator= Extent=[62:9 - 62:19] +// CHECK: 62:8: ParenExpr= Extent=[62:8 - 62:34] +// CHECK: 62:9: BinaryOperator=&& Extent=[62:9 - 62:33] +// CHECK: 62:9: BinaryOperator=>= Extent=[62:9 - 62:19] +// CHECK: 62:9: UnexposedExpr=c:2:14 Extent=[62:9 - 62:10] // CHECK: 62:9: DeclRefExpr=c:2:14 Extent=[62:9 - 62:10] // CHECK: 62:14: UnexposedExpr= Extent=[62:14 - 62:19] // CHECK: 62:14: IntegerLiteral= Extent=[62:14 - 62:19] -// CHECK: 62:23: BinaryOperator= Extent=[62:23 - 62:33] +// CHECK: 62:23: BinaryOperator=<= Extent=[62:23 - 62:33] +// CHECK: 62:23: UnexposedExpr=c:2:14 Extent=[62:23 - 62:24] // CHECK: 62:23: DeclRefExpr=c:2:14 Extent=[62:23 - 62:24] // CHECK: 62:28: UnexposedExpr= Extent=[62:28 - 62:33] // CHECK: 62:28: IntegerLiteral= Extent=[62:28 - 62:33] -// CHECK: 63:8: BinaryOperator= Extent=[63:8 - 63:18] +// CHECK: 63:8: BinaryOperator=== Extent=[63:8 - 63:18] +// CHECK: 63:8: UnexposedExpr=c:2:14 Extent=[63:8 - 63:9] // CHECK: 63:8: DeclRefExpr=c:2:14 Extent=[63:8 - 63:9] // CHECK: 63:13: UnexposedExpr= Extent=[63:13 - 63:18] // CHECK: 63:13: IntegerLiteral= Extent=[63:13 - 63:18] -// CHECK: 63:23: BinaryOperator= Extent=[63:23 - 63:47] -// CHECK: 63:23: BinaryOperator= Extent=[63:23 - 63:33] +// CHECK: 63:22: ParenExpr= Extent=[63:22 - 63:48] +// CHECK: 63:23: BinaryOperator=&& Extent=[63:23 - 63:47] +// CHECK: 63:23: BinaryOperator=>= Extent=[63:23 - 63:33] +// CHECK: 63:23: UnexposedExpr=c:2:14 Extent=[63:23 - 63:24] // CHECK: 63:23: DeclRefExpr=c:2:14 Extent=[63:23 - 63:24] // CHECK: 63:28: UnexposedExpr= Extent=[63:28 - 63:33] // CHECK: 63:28: IntegerLiteral= Extent=[63:28 - 63:33] -// CHECK: 63:37: BinaryOperator= Extent=[63:37 - 63:47] +// CHECK: 63:37: BinaryOperator=<= Extent=[63:37 - 63:47] +// CHECK: 63:37: UnexposedExpr=c:2:14 Extent=[63:37 - 63:38] // CHECK: 63:37: DeclRefExpr=c:2:14 Extent=[63:37 - 63:38] // CHECK: 63:42: UnexposedExpr= Extent=[63:42 - 63:47] // CHECK: 63:42: IntegerLiteral= Extent=[63:42 - 63:47] -// CHECK: 64:9: BinaryOperator= Extent=[64:9 - 64:33] -// CHECK: 64:9: BinaryOperator= Extent=[64:9 - 64:19] +// CHECK: 64:8: ParenExpr= Extent=[64:8 - 64:34] +// CHECK: 64:9: BinaryOperator=&& Extent=[64:9 - 64:33] +// CHECK: 64:9: BinaryOperator=>= Extent=[64:9 - 64:19] +// CHECK: 64:9: UnexposedExpr=c:2:14 Extent=[64:9 - 64:10] // CHECK: 64:9: DeclRefExpr=c:2:14 Extent=[64:9 - 64:10] // CHECK: 64:14: UnexposedExpr= Extent=[64:14 - 64:19] // CHECK: 64:14: IntegerLiteral= Extent=[64:14 - 64:19] -// CHECK: 64:23: BinaryOperator= Extent=[64:23 - 64:33] +// CHECK: 64:23: BinaryOperator=<= Extent=[64:23 - 64:33] +// CHECK: 64:23: UnexposedExpr=c:2:14 Extent=[64:23 - 64:24] // CHECK: 64:23: DeclRefExpr=c:2:14 Extent=[64:23 - 64:24] // CHECK: 64:28: UnexposedExpr= Extent=[64:28 - 64:33] // CHECK: 64:28: IntegerLiteral= Extent=[64:28 - 64:33] -// CHECK: 65:8: BinaryOperator= Extent=[65:8 - 65:18] +// CHECK: 65:8: BinaryOperator=== Extent=[65:8 - 65:18] +// CHECK: 65:8: UnexposedExpr=c:2:14 Extent=[65:8 - 65:9] // CHECK: 65:8: DeclRefExpr=c:2:14 Extent=[65:8 - 65:9] // CHECK: 65:13: UnexposedExpr= Extent=[65:13 - 65:18] // CHECK: 65:13: IntegerLiteral= Extent=[65:13 - 65:18] -// CHECK: 65:23: BinaryOperator= Extent=[65:23 - 65:47] -// CHECK: 65:23: BinaryOperator= Extent=[65:23 - 65:33] +// CHECK: 65:22: ParenExpr= Extent=[65:22 - 65:48] +// CHECK: 65:23: BinaryOperator=&& Extent=[65:23 - 65:47] +// CHECK: 65:23: BinaryOperator=>= Extent=[65:23 - 65:33] +// CHECK: 65:23: UnexposedExpr=c:2:14 Extent=[65:23 - 65:24] // CHECK: 65:23: DeclRefExpr=c:2:14 Extent=[65:23 - 65:24] // CHECK: 65:28: UnexposedExpr= Extent=[65:28 - 65:33] // CHECK: 65:28: IntegerLiteral= Extent=[65:28 - 65:33] -// CHECK: 65:37: BinaryOperator= Extent=[65:37 - 65:47] +// CHECK: 65:37: BinaryOperator=<= Extent=[65:37 - 65:47] +// CHECK: 65:37: UnexposedExpr=c:2:14 Extent=[65:37 - 65:38] // CHECK: 65:37: DeclRefExpr=c:2:14 Extent=[65:37 - 65:38] // CHECK: 65:42: UnexposedExpr= Extent=[65:42 - 65:47] // CHECK: 65:42: IntegerLiteral= Extent=[65:42 - 65:47] -// CHECK: 66:9: BinaryOperator= Extent=[66:9 - 66:33] -// CHECK: 66:9: BinaryOperator= Extent=[66:9 - 66:19] +// CHECK: 66:8: ParenExpr= Extent=[66:8 - 66:34] +// CHECK: 66:9: BinaryOperator=&& Extent=[66:9 - 66:33] +// CHECK: 66:9: BinaryOperator=>= Extent=[66:9 - 66:19] +// CHECK: 66:9: UnexposedExpr=c:2:14 Extent=[66:9 - 66:10] // CHECK: 66:9: DeclRefExpr=c:2:14 Extent=[66:9 - 66:10] // CHECK: 66:14: UnexposedExpr= Extent=[66:14 - 66:19] // CHECK: 66:14: IntegerLiteral= Extent=[66:14 - 66:19] -// CHECK: 66:23: BinaryOperator= Extent=[66:23 - 66:33] +// CHECK: 66:23: BinaryOperator=<= Extent=[66:23 - 66:33] +// CHECK: 66:23: UnexposedExpr=c:2:14 Extent=[66:23 - 66:24] // CHECK: 66:23: DeclRefExpr=c:2:14 Extent=[66:23 - 66:24] // CHECK: 66:28: UnexposedExpr= Extent=[66:28 - 66:33] // CHECK: 66:28: IntegerLiteral= Extent=[66:28 - 66:33] -// CHECK: 67:9: BinaryOperator= Extent=[67:9 - 67:33] -// CHECK: 67:9: BinaryOperator= Extent=[67:9 - 67:19] +// CHECK: 67:8: ParenExpr= Extent=[67:8 - 67:34] +// CHECK: 67:9: BinaryOperator=&& Extent=[67:9 - 67:33] +// CHECK: 67:9: BinaryOperator=>= Extent=[67:9 - 67:19] +// CHECK: 67:9: UnexposedExpr=c:2:14 Extent=[67:9 - 67:10] // CHECK: 67:9: DeclRefExpr=c:2:14 Extent=[67:9 - 67:10] // CHECK: 67:14: UnexposedExpr= Extent=[67:14 - 67:19] // CHECK: 67:14: IntegerLiteral= Extent=[67:14 - 67:19] -// CHECK: 67:23: BinaryOperator= Extent=[67:23 - 67:33] +// CHECK: 67:23: BinaryOperator=<= Extent=[67:23 - 67:33] +// CHECK: 67:23: UnexposedExpr=c:2:14 Extent=[67:23 - 67:24] // CHECK: 67:23: DeclRefExpr=c:2:14 Extent=[67:23 - 67:24] // CHECK: 67:28: UnexposedExpr= Extent=[67:28 - 67:33] // CHECK: 67:28: IntegerLiteral= Extent=[67:28 - 67:33] -// CHECK: 68:9: BinaryOperator= Extent=[68:9 - 68:33] -// CHECK: 68:9: BinaryOperator= Extent=[68:9 - 68:19] +// CHECK: 68:8: ParenExpr= Extent=[68:8 - 68:34] +// CHECK: 68:9: BinaryOperator=&& Extent=[68:9 - 68:33] +// CHECK: 68:9: BinaryOperator=>= Extent=[68:9 - 68:19] +// CHECK: 68:9: UnexposedExpr=c:2:14 Extent=[68:9 - 68:10] // CHECK: 68:9: DeclRefExpr=c:2:14 Extent=[68:9 - 68:10] // CHECK: 68:14: UnexposedExpr= Extent=[68:14 - 68:19] // CHECK: 68:14: IntegerLiteral= Extent=[68:14 - 68:19] -// CHECK: 68:23: BinaryOperator= Extent=[68:23 - 68:33] +// CHECK: 68:23: BinaryOperator=<= Extent=[68:23 - 68:33] +// CHECK: 68:23: UnexposedExpr=c:2:14 Extent=[68:23 - 68:24] // CHECK: 68:23: DeclRefExpr=c:2:14 Extent=[68:23 - 68:24] // CHECK: 68:28: UnexposedExpr= Extent=[68:28 - 68:33] // CHECK: 68:28: IntegerLiteral= Extent=[68:28 - 68:33] -// CHECK: 69:9: BinaryOperator= Extent=[69:9 - 69:33] -// CHECK: 69:9: BinaryOperator= Extent=[69:9 - 69:19] +// CHECK: 69:8: ParenExpr= Extent=[69:8 - 69:34] +// CHECK: 69:9: BinaryOperator=&& Extent=[69:9 - 69:33] +// CHECK: 69:9: BinaryOperator=>= Extent=[69:9 - 69:19] +// CHECK: 69:9: UnexposedExpr=c:2:14 Extent=[69:9 - 69:10] // CHECK: 69:9: DeclRefExpr=c:2:14 Extent=[69:9 - 69:10] // CHECK: 69:14: UnexposedExpr= Extent=[69:14 - 69:19] // CHECK: 69:14: IntegerLiteral= Extent=[69:14 - 69:19] -// CHECK: 69:23: BinaryOperator= Extent=[69:23 - 69:33] +// CHECK: 69:23: BinaryOperator=<= Extent=[69:23 - 69:33] +// CHECK: 69:23: UnexposedExpr=c:2:14 Extent=[69:23 - 69:24] // CHECK: 69:23: DeclRefExpr=c:2:14 Extent=[69:23 - 69:24] // CHECK: 69:28: UnexposedExpr= Extent=[69:28 - 69:33] // CHECK: 69:28: IntegerLiteral= Extent=[69:28 - 69:33] -// CHECK: 70:8: BinaryOperator= Extent=[70:8 - 70:18] +// CHECK: 70:8: BinaryOperator=== Extent=[70:8 - 70:18] +// CHECK: 70:8: UnexposedExpr=c:2:14 Extent=[70:8 - 70:9] // CHECK: 70:8: DeclRefExpr=c:2:14 Extent=[70:8 - 70:9] // CHECK: 70:13: UnexposedExpr= Extent=[70:13 - 70:18] // CHECK: 70:13: IntegerLiteral= Extent=[70:13 - 70:18] -// CHECK: 70:22: BinaryOperator= Extent=[70:22 - 70:32] +// CHECK: 70:22: BinaryOperator=== Extent=[70:22 - 70:32] +// CHECK: 70:22: UnexposedExpr=c:2:14 Extent=[70:22 - 70:23] // CHECK: 70:22: DeclRefExpr=c:2:14 Extent=[70:22 - 70:23] // CHECK: 70:27: UnexposedExpr= Extent=[70:27 - 70:32] // CHECK: 70:27: IntegerLiteral= Extent=[70:27 - 70:32] -// CHECK: 70:37: BinaryOperator= Extent=[70:37 - 70:61] -// CHECK: 70:37: BinaryOperator= Extent=[70:37 - 70:47] +// CHECK: 70:36: ParenExpr= Extent=[70:36 - 70:62] +// CHECK: 70:37: BinaryOperator=&& Extent=[70:37 - 70:61] +// CHECK: 70:37: BinaryOperator=>= Extent=[70:37 - 70:47] +// CHECK: 70:37: UnexposedExpr=c:2:14 Extent=[70:37 - 70:38] // CHECK: 70:37: DeclRefExpr=c:2:14 Extent=[70:37 - 70:38] // CHECK: 70:42: UnexposedExpr= Extent=[70:42 - 70:47] // CHECK: 70:42: IntegerLiteral= Extent=[70:42 - 70:47] -// CHECK: 70:51: BinaryOperator= Extent=[70:51 - 70:61] +// CHECK: 70:51: BinaryOperator=<= Extent=[70:51 - 70:61] +// CHECK: 70:51: UnexposedExpr=c:2:14 Extent=[70:51 - 70:52] // CHECK: 70:51: DeclRefExpr=c:2:14 Extent=[70:51 - 70:52] // CHECK: 70:56: UnexposedExpr= Extent=[70:56 - 70:61] // CHECK: 70:56: IntegerLiteral= Extent=[70:56 - 70:61] -// CHECK: 71:9: BinaryOperator= Extent=[71:9 - 71:33] -// CHECK: 71:9: BinaryOperator= Extent=[71:9 - 71:19] +// CHECK: 71:8: ParenExpr= Extent=[71:8 - 71:34] +// CHECK: 71:9: BinaryOperator=&& Extent=[71:9 - 71:33] +// CHECK: 71:9: BinaryOperator=>= Extent=[71:9 - 71:19] +// CHECK: 71:9: UnexposedExpr=c:2:14 Extent=[71:9 - 71:10] // CHECK: 71:9: DeclRefExpr=c:2:14 Extent=[71:9 - 71:10] // CHECK: 71:14: UnexposedExpr= Extent=[71:14 - 71:19] // CHECK: 71:14: IntegerLiteral= Extent=[71:14 - 71:19] -// CHECK: 71:23: BinaryOperator= Extent=[71:23 - 71:33] +// CHECK: 71:23: BinaryOperator=<= Extent=[71:23 - 71:33] +// CHECK: 71:23: UnexposedExpr=c:2:14 Extent=[71:23 - 71:24] // CHECK: 71:23: DeclRefExpr=c:2:14 Extent=[71:23 - 71:24] // CHECK: 71:28: UnexposedExpr= Extent=[71:28 - 71:33] // CHECK: 71:28: IntegerLiteral= Extent=[71:28 - 71:33] -// CHECK: 72:9: BinaryOperator= Extent=[72:9 - 72:33] -// CHECK: 72:9: BinaryOperator= Extent=[72:9 - 72:19] +// CHECK: 72:8: ParenExpr= Extent=[72:8 - 72:34] +// CHECK: 72:9: BinaryOperator=&& Extent=[72:9 - 72:33] +// CHECK: 72:9: BinaryOperator=>= Extent=[72:9 - 72:19] +// CHECK: 72:9: UnexposedExpr=c:2:14 Extent=[72:9 - 72:10] // CHECK: 72:9: DeclRefExpr=c:2:14 Extent=[72:9 - 72:10] // CHECK: 72:14: UnexposedExpr= Extent=[72:14 - 72:19] // CHECK: 72:14: IntegerLiteral= Extent=[72:14 - 72:19] -// CHECK: 72:23: BinaryOperator= Extent=[72:23 - 72:33] +// CHECK: 72:23: BinaryOperator=<= Extent=[72:23 - 72:33] +// CHECK: 72:23: UnexposedExpr=c:2:14 Extent=[72:23 - 72:24] // CHECK: 72:23: DeclRefExpr=c:2:14 Extent=[72:23 - 72:24] // CHECK: 72:28: UnexposedExpr= Extent=[72:28 - 72:33] // CHECK: 72:28: IntegerLiteral= Extent=[72:28 - 72:33] -// CHECK: 73:9: BinaryOperator= Extent=[73:9 - 73:33] -// CHECK: 73:9: BinaryOperator= Extent=[73:9 - 73:19] +// CHECK: 73:8: ParenExpr= Extent=[73:8 - 73:34] +// CHECK: 73:9: BinaryOperator=&& Extent=[73:9 - 73:33] +// CHECK: 73:9: BinaryOperator=>= Extent=[73:9 - 73:19] +// CHECK: 73:9: UnexposedExpr=c:2:14 Extent=[73:9 - 73:10] // CHECK: 73:9: DeclRefExpr=c:2:14 Extent=[73:9 - 73:10] // CHECK: 73:14: UnexposedExpr= Extent=[73:14 - 73:19] // CHECK: 73:14: IntegerLiteral= Extent=[73:14 - 73:19] -// CHECK: 73:23: BinaryOperator= Extent=[73:23 - 73:33] +// CHECK: 73:23: BinaryOperator=<= Extent=[73:23 - 73:33] +// CHECK: 73:23: UnexposedExpr=c:2:14 Extent=[73:23 - 73:24] // CHECK: 73:23: DeclRefExpr=c:2:14 Extent=[73:23 - 73:24] // CHECK: 73:28: UnexposedExpr= Extent=[73:28 - 73:33] // CHECK: 73:28: IntegerLiteral= Extent=[73:28 - 73:33] -// CHECK: 74:9: BinaryOperator= Extent=[74:9 - 74:33] -// CHECK: 74:9: BinaryOperator= Extent=[74:9 - 74:19] +// CHECK: 74:8: ParenExpr= Extent=[74:8 - 74:34] +// CHECK: 74:9: BinaryOperator=&& Extent=[74:9 - 74:33] +// CHECK: 74:9: BinaryOperator=>= Extent=[74:9 - 74:19] +// CHECK: 74:9: UnexposedExpr=c:2:14 Extent=[74:9 - 74:10] // CHECK: 74:9: DeclRefExpr=c:2:14 Extent=[74:9 - 74:10] // CHECK: 74:14: UnexposedExpr= Extent=[74:14 - 74:19] // CHECK: 74:14: IntegerLiteral= Extent=[74:14 - 74:19] -// CHECK: 74:23: BinaryOperator= Extent=[74:23 - 74:33] +// CHECK: 74:23: BinaryOperator=<= Extent=[74:23 - 74:33] +// CHECK: 74:23: UnexposedExpr=c:2:14 Extent=[74:23 - 74:24] // CHECK: 74:23: DeclRefExpr=c:2:14 Extent=[74:23 - 74:24] // CHECK: 74:28: UnexposedExpr= Extent=[74:28 - 74:33] // CHECK: 74:28: IntegerLiteral= Extent=[74:28 - 74:33] -// CHECK: 75:9: BinaryOperator= Extent=[75:9 - 75:33] -// CHECK: 75:9: BinaryOperator= Extent=[75:9 - 75:19] +// CHECK: 75:8: ParenExpr= Extent=[75:8 - 75:34] +// CHECK: 75:9: BinaryOperator=&& Extent=[75:9 - 75:33] +// CHECK: 75:9: BinaryOperator=>= Extent=[75:9 - 75:19] +// CHECK: 75:9: UnexposedExpr=c:2:14 Extent=[75:9 - 75:10] // CHECK: 75:9: DeclRefExpr=c:2:14 Extent=[75:9 - 75:10] // CHECK: 75:14: UnexposedExpr= Extent=[75:14 - 75:19] // CHECK: 75:14: IntegerLiteral= Extent=[75:14 - 75:19] -// CHECK: 75:23: BinaryOperator= Extent=[75:23 - 75:33] +// CHECK: 75:23: BinaryOperator=<= Extent=[75:23 - 75:33] +// CHECK: 75:23: UnexposedExpr=c:2:14 Extent=[75:23 - 75:24] // CHECK: 75:23: DeclRefExpr=c:2:14 Extent=[75:23 - 75:24] // CHECK: 75:28: UnexposedExpr= Extent=[75:28 - 75:33] // CHECK: 75:28: IntegerLiteral= Extent=[75:28 - 75:33] -// CHECK: 76:8: BinaryOperator= Extent=[76:8 - 76:18] +// CHECK: 76:8: BinaryOperator=== Extent=[76:8 - 76:18] +// CHECK: 76:8: UnexposedExpr=c:2:14 Extent=[76:8 - 76:9] // CHECK: 76:8: DeclRefExpr=c:2:14 Extent=[76:8 - 76:9] // CHECK: 76:13: UnexposedExpr= Extent=[76:13 - 76:18] // CHECK: 76:13: IntegerLiteral= Extent=[76:13 - 76:18] -// CHECK: 76:23: BinaryOperator= Extent=[76:23 - 76:47] -// CHECK: 76:23: BinaryOperator= Extent=[76:23 - 76:33] +// CHECK: 76:22: ParenExpr= Extent=[76:22 - 76:48] +// CHECK: 76:23: BinaryOperator=&& Extent=[76:23 - 76:47] +// CHECK: 76:23: BinaryOperator=>= Extent=[76:23 - 76:33] +// CHECK: 76:23: UnexposedExpr=c:2:14 Extent=[76:23 - 76:24] // CHECK: 76:23: DeclRefExpr=c:2:14 Extent=[76:23 - 76:24] // CHECK: 76:28: UnexposedExpr= Extent=[76:28 - 76:33] // CHECK: 76:28: IntegerLiteral= Extent=[76:28 - 76:33] -// CHECK: 76:37: BinaryOperator= Extent=[76:37 - 76:47] +// CHECK: 76:37: BinaryOperator=<= Extent=[76:37 - 76:47] +// CHECK: 76:37: UnexposedExpr=c:2:14 Extent=[76:37 - 76:38] // CHECK: 76:37: DeclRefExpr=c:2:14 Extent=[76:37 - 76:38] // CHECK: 76:42: UnexposedExpr= Extent=[76:42 - 76:47] // CHECK: 76:42: IntegerLiteral= Extent=[76:42 - 76:47] -// CHECK: 77:9: BinaryOperator= Extent=[77:9 - 77:33] -// CHECK: 77:9: BinaryOperator= Extent=[77:9 - 77:19] +// CHECK: 77:8: ParenExpr= Extent=[77:8 - 77:34] +// CHECK: 77:9: BinaryOperator=&& Extent=[77:9 - 77:33] +// CHECK: 77:9: BinaryOperator=>= Extent=[77:9 - 77:19] +// CHECK: 77:9: UnexposedExpr=c:2:14 Extent=[77:9 - 77:10] // CHECK: 77:9: DeclRefExpr=c:2:14 Extent=[77:9 - 77:10] // CHECK: 77:14: UnexposedExpr= Extent=[77:14 - 77:19] // CHECK: 77:14: IntegerLiteral= Extent=[77:14 - 77:19] -// CHECK: 77:23: BinaryOperator= Extent=[77:23 - 77:33] +// CHECK: 77:23: BinaryOperator=<= Extent=[77:23 - 77:33] +// CHECK: 77:23: UnexposedExpr=c:2:14 Extent=[77:23 - 77:24] // CHECK: 77:23: DeclRefExpr=c:2:14 Extent=[77:23 - 77:24] // CHECK: 77:28: UnexposedExpr= Extent=[77:28 - 77:33] // CHECK: 77:28: IntegerLiteral= Extent=[77:28 - 77:33] -// CHECK: 78:9: BinaryOperator= Extent=[78:9 - 78:33] -// CHECK: 78:9: BinaryOperator= Extent=[78:9 - 78:19] +// CHECK: 78:8: ParenExpr= Extent=[78:8 - 78:34] +// CHECK: 78:9: BinaryOperator=&& Extent=[78:9 - 78:33] +// CHECK: 78:9: BinaryOperator=>= Extent=[78:9 - 78:19] +// CHECK: 78:9: UnexposedExpr=c:2:14 Extent=[78:9 - 78:10] // CHECK: 78:9: DeclRefExpr=c:2:14 Extent=[78:9 - 78:10] // CHECK: 78:14: UnexposedExpr= Extent=[78:14 - 78:19] // CHECK: 78:14: IntegerLiteral= Extent=[78:14 - 78:19] -// CHECK: 78:23: BinaryOperator= Extent=[78:23 - 78:33] +// CHECK: 78:23: BinaryOperator=<= Extent=[78:23 - 78:33] +// CHECK: 78:23: UnexposedExpr=c:2:14 Extent=[78:23 - 78:24] // CHECK: 78:23: DeclRefExpr=c:2:14 Extent=[78:23 - 78:24] // CHECK: 78:28: UnexposedExpr= Extent=[78:28 - 78:33] // CHECK: 78:28: IntegerLiteral= Extent=[78:28 - 78:33] -// CHECK: 79:9: BinaryOperator= Extent=[79:9 - 79:33] -// CHECK: 79:9: BinaryOperator= Extent=[79:9 - 79:19] +// CHECK: 79:8: ParenExpr= Extent=[79:8 - 79:34] +// CHECK: 79:9: BinaryOperator=&& Extent=[79:9 - 79:33] +// CHECK: 79:9: BinaryOperator=>= Extent=[79:9 - 79:19] +// CHECK: 79:9: UnexposedExpr=c:2:14 Extent=[79:9 - 79:10] // CHECK: 79:9: DeclRefExpr=c:2:14 Extent=[79:9 - 79:10] // CHECK: 79:14: UnexposedExpr= Extent=[79:14 - 79:19] // CHECK: 79:14: IntegerLiteral= Extent=[79:14 - 79:19] -// CHECK: 79:23: BinaryOperator= Extent=[79:23 - 79:33] +// CHECK: 79:23: BinaryOperator=<= Extent=[79:23 - 79:33] +// CHECK: 79:23: UnexposedExpr=c:2:14 Extent=[79:23 - 79:24] // CHECK: 79:23: DeclRefExpr=c:2:14 Extent=[79:23 - 79:24] // CHECK: 79:28: UnexposedExpr= Extent=[79:28 - 79:33] // CHECK: 79:28: IntegerLiteral= Extent=[79:28 - 79:33] -// CHECK: 80:9: BinaryOperator= Extent=[80:9 - 80:33] -// CHECK: 80:9: BinaryOperator= Extent=[80:9 - 80:19] +// CHECK: 80:8: ParenExpr= Extent=[80:8 - 80:34] +// CHECK: 80:9: BinaryOperator=&& Extent=[80:9 - 80:33] +// CHECK: 80:9: BinaryOperator=>= Extent=[80:9 - 80:19] +// CHECK: 80:9: UnexposedExpr=c:2:14 Extent=[80:9 - 80:10] // CHECK: 80:9: DeclRefExpr=c:2:14 Extent=[80:9 - 80:10] // CHECK: 80:14: UnexposedExpr= Extent=[80:14 - 80:19] // CHECK: 80:14: IntegerLiteral= Extent=[80:14 - 80:19] -// CHECK: 80:23: BinaryOperator= Extent=[80:23 - 80:33] +// CHECK: 80:23: BinaryOperator=<= Extent=[80:23 - 80:33] +// CHECK: 80:23: UnexposedExpr=c:2:14 Extent=[80:23 - 80:24] // CHECK: 80:23: DeclRefExpr=c:2:14 Extent=[80:23 - 80:24] // CHECK: 80:28: UnexposedExpr= Extent=[80:28 - 80:33] // CHECK: 80:28: IntegerLiteral= Extent=[80:28 - 80:33] -// CHECK: 81:9: BinaryOperator= Extent=[81:9 - 81:33] -// CHECK: 81:9: BinaryOperator= Extent=[81:9 - 81:19] +// CHECK: 81:8: ParenExpr= Extent=[81:8 - 81:34] +// CHECK: 81:9: BinaryOperator=&& Extent=[81:9 - 81:33] +// CHECK: 81:9: BinaryOperator=>= Extent=[81:9 - 81:19] +// CHECK: 81:9: UnexposedExpr=c:2:14 Extent=[81:9 - 81:10] // CHECK: 81:9: DeclRefExpr=c:2:14 Extent=[81:9 - 81:10] // CHECK: 81:14: UnexposedExpr= Extent=[81:14 - 81:19] // CHECK: 81:14: IntegerLiteral= Extent=[81:14 - 81:19] -// CHECK: 81:23: BinaryOperator= Extent=[81:23 - 81:33] +// CHECK: 81:23: BinaryOperator=<= Extent=[81:23 - 81:33] +// CHECK: 81:23: UnexposedExpr=c:2:14 Extent=[81:23 - 81:24] // CHECK: 81:23: DeclRefExpr=c:2:14 Extent=[81:23 - 81:24] // CHECK: 81:28: UnexposedExpr= Extent=[81:28 - 81:33] // CHECK: 81:28: IntegerLiteral= Extent=[81:28 - 81:33] -// CHECK: 82:8: BinaryOperator= Extent=[82:8 - 82:18] +// CHECK: 82:8: BinaryOperator=== Extent=[82:8 - 82:18] +// CHECK: 82:8: UnexposedExpr=c:2:14 Extent=[82:8 - 82:9] // CHECK: 82:8: DeclRefExpr=c:2:14 Extent=[82:8 - 82:9] // CHECK: 82:13: UnexposedExpr= Extent=[82:13 - 82:18] // CHECK: 82:13: IntegerLiteral= Extent=[82:13 - 82:18] -// CHECK: 82:23: BinaryOperator= Extent=[82:23 - 82:47] -// CHECK: 82:23: BinaryOperator= Extent=[82:23 - 82:33] +// CHECK: 82:22: ParenExpr= Extent=[82:22 - 82:48] +// CHECK: 82:23: BinaryOperator=&& Extent=[82:23 - 82:47] +// CHECK: 82:23: BinaryOperator=>= Extent=[82:23 - 82:33] +// CHECK: 82:23: UnexposedExpr=c:2:14 Extent=[82:23 - 82:24] // CHECK: 82:23: DeclRefExpr=c:2:14 Extent=[82:23 - 82:24] // CHECK: 82:28: UnexposedExpr= Extent=[82:28 - 82:33] // CHECK: 82:28: IntegerLiteral= Extent=[82:28 - 82:33] -// CHECK: 82:37: BinaryOperator= Extent=[82:37 - 82:47] +// CHECK: 82:37: BinaryOperator=<= Extent=[82:37 - 82:47] +// CHECK: 82:37: UnexposedExpr=c:2:14 Extent=[82:37 - 82:38] // CHECK: 82:37: DeclRefExpr=c:2:14 Extent=[82:37 - 82:38] // CHECK: 82:42: UnexposedExpr= Extent=[82:42 - 82:47] // CHECK: 82:42: IntegerLiteral= Extent=[82:42 - 82:47] -// CHECK: 83:9: BinaryOperator= Extent=[83:9 - 83:33] -// CHECK: 83:9: BinaryOperator= Extent=[83:9 - 83:19] +// CHECK: 83:8: ParenExpr= Extent=[83:8 - 83:34] +// CHECK: 83:9: BinaryOperator=&& Extent=[83:9 - 83:33] +// CHECK: 83:9: BinaryOperator=>= Extent=[83:9 - 83:19] +// CHECK: 83:9: UnexposedExpr=c:2:14 Extent=[83:9 - 83:10] // CHECK: 83:9: DeclRefExpr=c:2:14 Extent=[83:9 - 83:10] // CHECK: 83:14: UnexposedExpr= Extent=[83:14 - 83:19] // CHECK: 83:14: IntegerLiteral= Extent=[83:14 - 83:19] -// CHECK: 83:23: BinaryOperator= Extent=[83:23 - 83:33] +// CHECK: 83:23: BinaryOperator=<= Extent=[83:23 - 83:33] +// CHECK: 83:23: UnexposedExpr=c:2:14 Extent=[83:23 - 83:24] // CHECK: 83:23: DeclRefExpr=c:2:14 Extent=[83:23 - 83:24] // CHECK: 83:28: UnexposedExpr= Extent=[83:28 - 83:33] // CHECK: 83:28: IntegerLiteral= Extent=[83:28 - 83:33] -// CHECK: 84:9: BinaryOperator= Extent=[84:9 - 84:33] -// CHECK: 84:9: BinaryOperator= Extent=[84:9 - 84:19] +// CHECK: 84:8: ParenExpr= Extent=[84:8 - 84:34] +// CHECK: 84:9: BinaryOperator=&& Extent=[84:9 - 84:33] +// CHECK: 84:9: BinaryOperator=>= Extent=[84:9 - 84:19] +// CHECK: 84:9: UnexposedExpr=c:2:14 Extent=[84:9 - 84:10] // CHECK: 84:9: DeclRefExpr=c:2:14 Extent=[84:9 - 84:10] // CHECK: 84:14: UnexposedExpr= Extent=[84:14 - 84:19] // CHECK: 84:14: IntegerLiteral= Extent=[84:14 - 84:19] -// CHECK: 84:23: BinaryOperator= Extent=[84:23 - 84:33] +// CHECK: 84:23: BinaryOperator=<= Extent=[84:23 - 84:33] +// CHECK: 84:23: UnexposedExpr=c:2:14 Extent=[84:23 - 84:24] // CHECK: 84:23: DeclRefExpr=c:2:14 Extent=[84:23 - 84:24] // CHECK: 84:28: UnexposedExpr= Extent=[84:28 - 84:33] // CHECK: 84:28: IntegerLiteral= Extent=[84:28 - 84:33] -// CHECK: 85:9: BinaryOperator= Extent=[85:9 - 85:33] -// CHECK: 85:9: BinaryOperator= Extent=[85:9 - 85:19] +// CHECK: 85:8: ParenExpr= Extent=[85:8 - 85:34] +// CHECK: 85:9: BinaryOperator=&& Extent=[85:9 - 85:33] +// CHECK: 85:9: BinaryOperator=>= Extent=[85:9 - 85:19] +// CHECK: 85:9: UnexposedExpr=c:2:14 Extent=[85:9 - 85:10] // CHECK: 85:9: DeclRefExpr=c:2:14 Extent=[85:9 - 85:10] // CHECK: 85:14: UnexposedExpr= Extent=[85:14 - 85:19] // CHECK: 85:14: IntegerLiteral= Extent=[85:14 - 85:19] -// CHECK: 85:23: BinaryOperator= Extent=[85:23 - 85:33] +// CHECK: 85:23: BinaryOperator=<= Extent=[85:23 - 85:33] +// CHECK: 85:23: UnexposedExpr=c:2:14 Extent=[85:23 - 85:24] // CHECK: 85:23: DeclRefExpr=c:2:14 Extent=[85:23 - 85:24] // CHECK: 85:28: UnexposedExpr= Extent=[85:28 - 85:33] // CHECK: 85:28: IntegerLiteral= Extent=[85:28 - 85:33] -// CHECK: 86:9: BinaryOperator= Extent=[86:9 - 86:33] -// CHECK: 86:9: BinaryOperator= Extent=[86:9 - 86:19] +// CHECK: 86:8: ParenExpr= Extent=[86:8 - 86:34] +// CHECK: 86:9: BinaryOperator=&& Extent=[86:9 - 86:33] +// CHECK: 86:9: BinaryOperator=>= Extent=[86:9 - 86:19] +// CHECK: 86:9: UnexposedExpr=c:2:14 Extent=[86:9 - 86:10] // CHECK: 86:9: DeclRefExpr=c:2:14 Extent=[86:9 - 86:10] // CHECK: 86:14: UnexposedExpr= Extent=[86:14 - 86:19] // CHECK: 86:14: IntegerLiteral= Extent=[86:14 - 86:19] -// CHECK: 86:23: BinaryOperator= Extent=[86:23 - 86:33] +// CHECK: 86:23: BinaryOperator=<= Extent=[86:23 - 86:33] +// CHECK: 86:23: UnexposedExpr=c:2:14 Extent=[86:23 - 86:24] // CHECK: 86:23: DeclRefExpr=c:2:14 Extent=[86:23 - 86:24] // CHECK: 86:28: UnexposedExpr= Extent=[86:28 - 86:33] // CHECK: 86:28: IntegerLiteral= Extent=[86:28 - 86:33] -// CHECK: 87:9: BinaryOperator= Extent=[87:9 - 87:33] -// CHECK: 87:9: BinaryOperator= Extent=[87:9 - 87:19] +// CHECK: 87:8: ParenExpr= Extent=[87:8 - 87:34] +// CHECK: 87:9: BinaryOperator=&& Extent=[87:9 - 87:33] +// CHECK: 87:9: BinaryOperator=>= Extent=[87:9 - 87:19] +// CHECK: 87:9: UnexposedExpr=c:2:14 Extent=[87:9 - 87:10] // CHECK: 87:9: DeclRefExpr=c:2:14 Extent=[87:9 - 87:10] // CHECK: 87:14: UnexposedExpr= Extent=[87:14 - 87:19] // CHECK: 87:14: IntegerLiteral= Extent=[87:14 - 87:19] -// CHECK: 87:23: BinaryOperator= Extent=[87:23 - 87:33] +// CHECK: 87:23: BinaryOperator=<= Extent=[87:23 - 87:33] +// CHECK: 87:23: UnexposedExpr=c:2:14 Extent=[87:23 - 87:24] // CHECK: 87:23: DeclRefExpr=c:2:14 Extent=[87:23 - 87:24] // CHECK: 87:28: UnexposedExpr= Extent=[87:28 - 87:33] // CHECK: 87:28: IntegerLiteral= Extent=[87:28 - 87:33] -// CHECK: 88:9: BinaryOperator= Extent=[88:9 - 88:33] -// CHECK: 88:9: BinaryOperator= Extent=[88:9 - 88:19] +// CHECK: 88:8: ParenExpr= Extent=[88:8 - 88:34] +// CHECK: 88:9: BinaryOperator=&& Extent=[88:9 - 88:33] +// CHECK: 88:9: BinaryOperator=>= Extent=[88:9 - 88:19] +// CHECK: 88:9: UnexposedExpr=c:2:14 Extent=[88:9 - 88:10] // CHECK: 88:9: DeclRefExpr=c:2:14 Extent=[88:9 - 88:10] // CHECK: 88:14: UnexposedExpr= Extent=[88:14 - 88:19] // CHECK: 88:14: IntegerLiteral= Extent=[88:14 - 88:19] -// CHECK: 88:23: BinaryOperator= Extent=[88:23 - 88:33] +// CHECK: 88:23: BinaryOperator=<= Extent=[88:23 - 88:33] +// CHECK: 88:23: UnexposedExpr=c:2:14 Extent=[88:23 - 88:24] // CHECK: 88:23: DeclRefExpr=c:2:14 Extent=[88:23 - 88:24] // CHECK: 88:28: UnexposedExpr= Extent=[88:28 - 88:33] // CHECK: 88:28: IntegerLiteral= Extent=[88:28 - 88:33] -// CHECK: 89:9: BinaryOperator= Extent=[89:9 - 89:33] -// CHECK: 89:9: BinaryOperator= Extent=[89:9 - 89:19] +// CHECK: 89:8: ParenExpr= Extent=[89:8 - 89:34] +// CHECK: 89:9: BinaryOperator=&& Extent=[89:9 - 89:33] +// CHECK: 89:9: BinaryOperator=>= Extent=[89:9 - 89:19] +// CHECK: 89:9: UnexposedExpr=c:2:14 Extent=[89:9 - 89:10] // CHECK: 89:9: DeclRefExpr=c:2:14 Extent=[89:9 - 89:10] // CHECK: 89:14: UnexposedExpr= Extent=[89:14 - 89:19] // CHECK: 89:14: IntegerLiteral= Extent=[89:14 - 89:19] -// CHECK: 89:23: BinaryOperator= Extent=[89:23 - 89:33] +// CHECK: 89:23: BinaryOperator=<= Extent=[89:23 - 89:33] +// CHECK: 89:23: UnexposedExpr=c:2:14 Extent=[89:23 - 89:24] // CHECK: 89:23: DeclRefExpr=c:2:14 Extent=[89:23 - 89:24] // CHECK: 89:28: UnexposedExpr= Extent=[89:28 - 89:33] // CHECK: 89:28: IntegerLiteral= Extent=[89:28 - 89:33] -// CHECK: 90:9: BinaryOperator= Extent=[90:9 - 90:33] -// CHECK: 90:9: BinaryOperator= Extent=[90:9 - 90:19] +// CHECK: 90:8: ParenExpr= Extent=[90:8 - 90:34] +// CHECK: 90:9: BinaryOperator=&& Extent=[90:9 - 90:33] +// CHECK: 90:9: BinaryOperator=>= Extent=[90:9 - 90:19] +// CHECK: 90:9: UnexposedExpr=c:2:14 Extent=[90:9 - 90:10] // CHECK: 90:9: DeclRefExpr=c:2:14 Extent=[90:9 - 90:10] // CHECK: 90:14: UnexposedExpr= Extent=[90:14 - 90:19] // CHECK: 90:14: IntegerLiteral= Extent=[90:14 - 90:19] -// CHECK: 90:23: BinaryOperator= Extent=[90:23 - 90:33] +// CHECK: 90:23: BinaryOperator=<= Extent=[90:23 - 90:33] +// CHECK: 90:23: UnexposedExpr=c:2:14 Extent=[90:23 - 90:24] // CHECK: 90:23: DeclRefExpr=c:2:14 Extent=[90:23 - 90:24] // CHECK: 90:28: UnexposedExpr= Extent=[90:28 - 90:33] // CHECK: 90:28: IntegerLiteral= Extent=[90:28 - 90:33] -// CHECK: 91:9: BinaryOperator= Extent=[91:9 - 91:33] -// CHECK: 91:9: BinaryOperator= Extent=[91:9 - 91:19] +// CHECK: 91:8: ParenExpr= Extent=[91:8 - 91:34] +// CHECK: 91:9: BinaryOperator=&& Extent=[91:9 - 91:33] +// CHECK: 91:9: BinaryOperator=>= Extent=[91:9 - 91:19] +// CHECK: 91:9: UnexposedExpr=c:2:14 Extent=[91:9 - 91:10] // CHECK: 91:9: DeclRefExpr=c:2:14 Extent=[91:9 - 91:10] // CHECK: 91:14: UnexposedExpr= Extent=[91:14 - 91:19] // CHECK: 91:14: IntegerLiteral= Extent=[91:14 - 91:19] -// CHECK: 91:23: BinaryOperator= Extent=[91:23 - 91:33] +// CHECK: 91:23: BinaryOperator=<= Extent=[91:23 - 91:33] +// CHECK: 91:23: UnexposedExpr=c:2:14 Extent=[91:23 - 91:24] // CHECK: 91:23: DeclRefExpr=c:2:14 Extent=[91:23 - 91:24] // CHECK: 91:28: UnexposedExpr= Extent=[91:28 - 91:33] // CHECK: 91:28: IntegerLiteral= Extent=[91:28 - 91:33] -// CHECK: 92:9: BinaryOperator= Extent=[92:9 - 92:33] -// CHECK: 92:9: BinaryOperator= Extent=[92:9 - 92:19] +// CHECK: 92:8: ParenExpr= Extent=[92:8 - 92:34] +// CHECK: 92:9: BinaryOperator=&& Extent=[92:9 - 92:33] +// CHECK: 92:9: BinaryOperator=>= Extent=[92:9 - 92:19] +// CHECK: 92:9: UnexposedExpr=c:2:14 Extent=[92:9 - 92:10] // CHECK: 92:9: DeclRefExpr=c:2:14 Extent=[92:9 - 92:10] // CHECK: 92:14: UnexposedExpr= Extent=[92:14 - 92:19] // CHECK: 92:14: IntegerLiteral= Extent=[92:14 - 92:19] -// CHECK: 92:23: BinaryOperator= Extent=[92:23 - 92:33] +// CHECK: 92:23: BinaryOperator=<= Extent=[92:23 - 92:33] +// CHECK: 92:23: UnexposedExpr=c:2:14 Extent=[92:23 - 92:24] // CHECK: 92:23: DeclRefExpr=c:2:14 Extent=[92:23 - 92:24] // CHECK: 92:28: UnexposedExpr= Extent=[92:28 - 92:33] // CHECK: 92:28: IntegerLiteral= Extent=[92:28 - 92:33] -// CHECK: 93:9: BinaryOperator= Extent=[93:9 - 93:33] -// CHECK: 93:9: BinaryOperator= Extent=[93:9 - 93:19] +// CHECK: 93:8: ParenExpr= Extent=[93:8 - 93:34] +// CHECK: 93:9: BinaryOperator=&& Extent=[93:9 - 93:33] +// CHECK: 93:9: BinaryOperator=>= Extent=[93:9 - 93:19] +// CHECK: 93:9: UnexposedExpr=c:2:14 Extent=[93:9 - 93:10] // CHECK: 93:9: DeclRefExpr=c:2:14 Extent=[93:9 - 93:10] // CHECK: 93:14: UnexposedExpr= Extent=[93:14 - 93:19] // CHECK: 93:14: IntegerLiteral= Extent=[93:14 - 93:19] -// CHECK: 93:23: BinaryOperator= Extent=[93:23 - 93:33] +// CHECK: 93:23: BinaryOperator=<= Extent=[93:23 - 93:33] +// CHECK: 93:23: UnexposedExpr=c:2:14 Extent=[93:23 - 93:24] // CHECK: 93:23: DeclRefExpr=c:2:14 Extent=[93:23 - 93:24] // CHECK: 93:28: UnexposedExpr= Extent=[93:28 - 93:33] // CHECK: 93:28: IntegerLiteral= Extent=[93:28 - 93:33] -// CHECK: 94:9: BinaryOperator= Extent=[94:9 - 94:33] -// CHECK: 94:9: BinaryOperator= Extent=[94:9 - 94:19] +// CHECK: 94:8: ParenExpr= Extent=[94:8 - 94:34] +// CHECK: 94:9: BinaryOperator=&& Extent=[94:9 - 94:33] +// CHECK: 94:9: BinaryOperator=>= Extent=[94:9 - 94:19] +// CHECK: 94:9: UnexposedExpr=c:2:14 Extent=[94:9 - 94:10] // CHECK: 94:9: DeclRefExpr=c:2:14 Extent=[94:9 - 94:10] // CHECK: 94:14: UnexposedExpr= Extent=[94:14 - 94:19] // CHECK: 94:14: IntegerLiteral= Extent=[94:14 - 94:19] -// CHECK: 94:23: BinaryOperator= Extent=[94:23 - 94:33] +// CHECK: 94:23: BinaryOperator=<= Extent=[94:23 - 94:33] +// CHECK: 94:23: UnexposedExpr=c:2:14 Extent=[94:23 - 94:24] // CHECK: 94:23: DeclRefExpr=c:2:14 Extent=[94:23 - 94:24] // CHECK: 94:28: UnexposedExpr= Extent=[94:28 - 94:33] // CHECK: 94:28: IntegerLiteral= Extent=[94:28 - 94:33] -// CHECK: 95:9: BinaryOperator= Extent=[95:9 - 95:33] -// CHECK: 95:9: BinaryOperator= Extent=[95:9 - 95:19] +// CHECK: 95:8: ParenExpr= Extent=[95:8 - 95:34] +// CHECK: 95:9: BinaryOperator=&& Extent=[95:9 - 95:33] +// CHECK: 95:9: BinaryOperator=>= Extent=[95:9 - 95:19] +// CHECK: 95:9: UnexposedExpr=c:2:14 Extent=[95:9 - 95:10] // CHECK: 95:9: DeclRefExpr=c:2:14 Extent=[95:9 - 95:10] // CHECK: 95:14: UnexposedExpr= Extent=[95:14 - 95:19] // CHECK: 95:14: IntegerLiteral= Extent=[95:14 - 95:19] -// CHECK: 95:23: BinaryOperator= Extent=[95:23 - 95:33] +// CHECK: 95:23: BinaryOperator=<= Extent=[95:23 - 95:33] +// CHECK: 95:23: UnexposedExpr=c:2:14 Extent=[95:23 - 95:24] // CHECK: 95:23: DeclRefExpr=c:2:14 Extent=[95:23 - 95:24] // CHECK: 95:28: UnexposedExpr= Extent=[95:28 - 95:33] // CHECK: 95:28: IntegerLiteral= Extent=[95:28 - 95:33] -// CHECK: 96:9: BinaryOperator= Extent=[96:9 - 96:33] -// CHECK: 96:9: BinaryOperator= Extent=[96:9 - 96:19] +// CHECK: 96:8: ParenExpr= Extent=[96:8 - 96:34] +// CHECK: 96:9: BinaryOperator=&& Extent=[96:9 - 96:33] +// CHECK: 96:9: BinaryOperator=>= Extent=[96:9 - 96:19] +// CHECK: 96:9: UnexposedExpr=c:2:14 Extent=[96:9 - 96:10] // CHECK: 96:9: DeclRefExpr=c:2:14 Extent=[96:9 - 96:10] // CHECK: 96:14: UnexposedExpr= Extent=[96:14 - 96:19] // CHECK: 96:14: IntegerLiteral= Extent=[96:14 - 96:19] -// CHECK: 96:23: BinaryOperator= Extent=[96:23 - 96:33] +// CHECK: 96:23: BinaryOperator=<= Extent=[96:23 - 96:33] +// CHECK: 96:23: UnexposedExpr=c:2:14 Extent=[96:23 - 96:24] // CHECK: 96:23: DeclRefExpr=c:2:14 Extent=[96:23 - 96:24] // CHECK: 96:28: UnexposedExpr= Extent=[96:28 - 96:33] // CHECK: 96:28: IntegerLiteral= Extent=[96:28 - 96:33] -// CHECK: 97:9: BinaryOperator= Extent=[97:9 - 97:33] -// CHECK: 97:9: BinaryOperator= Extent=[97:9 - 97:19] +// CHECK: 97:8: ParenExpr= Extent=[97:8 - 97:34] +// CHECK: 97:9: BinaryOperator=&& Extent=[97:9 - 97:33] +// CHECK: 97:9: BinaryOperator=>= Extent=[97:9 - 97:19] +// CHECK: 97:9: UnexposedExpr=c:2:14 Extent=[97:9 - 97:10] // CHECK: 97:9: DeclRefExpr=c:2:14 Extent=[97:9 - 97:10] // CHECK: 97:14: UnexposedExpr= Extent=[97:14 - 97:19] // CHECK: 97:14: IntegerLiteral= Extent=[97:14 - 97:19] -// CHECK: 97:23: BinaryOperator= Extent=[97:23 - 97:33] +// CHECK: 97:23: BinaryOperator=<= Extent=[97:23 - 97:33] +// CHECK: 97:23: UnexposedExpr=c:2:14 Extent=[97:23 - 97:24] // CHECK: 97:23: DeclRefExpr=c:2:14 Extent=[97:23 - 97:24] // CHECK: 97:28: UnexposedExpr= Extent=[97:28 - 97:33] // CHECK: 97:28: IntegerLiteral= Extent=[97:28 - 97:33] -// CHECK: 98:8: BinaryOperator= Extent=[98:8 - 98:18] +// CHECK: 98:8: BinaryOperator=== Extent=[98:8 - 98:18] +// CHECK: 98:8: UnexposedExpr=c:2:14 Extent=[98:8 - 98:9] // CHECK: 98:8: DeclRefExpr=c:2:14 Extent=[98:8 - 98:9] // CHECK: 98:13: UnexposedExpr= Extent=[98:13 - 98:18] // CHECK: 98:13: IntegerLiteral= Extent=[98:13 - 98:18] -// CHECK: 98:23: BinaryOperator= Extent=[98:23 - 98:47] -// CHECK: 98:23: BinaryOperator= Extent=[98:23 - 98:33] +// CHECK: 98:22: ParenExpr= Extent=[98:22 - 98:48] +// CHECK: 98:23: BinaryOperator=&& Extent=[98:23 - 98:47] +// CHECK: 98:23: BinaryOperator=>= Extent=[98:23 - 98:33] +// CHECK: 98:23: UnexposedExpr=c:2:14 Extent=[98:23 - 98:24] // CHECK: 98:23: DeclRefExpr=c:2:14 Extent=[98:23 - 98:24] // CHECK: 98:28: UnexposedExpr= Extent=[98:28 - 98:33] // CHECK: 98:28: IntegerLiteral= Extent=[98:28 - 98:33] -// CHECK: 98:37: BinaryOperator= Extent=[98:37 - 98:47] +// CHECK: 98:37: BinaryOperator=<= Extent=[98:37 - 98:47] +// CHECK: 98:37: UnexposedExpr=c:2:14 Extent=[98:37 - 98:38] // CHECK: 98:37: DeclRefExpr=c:2:14 Extent=[98:37 - 98:38] // CHECK: 98:42: UnexposedExpr= Extent=[98:42 - 98:47] // CHECK: 98:42: IntegerLiteral= Extent=[98:42 - 98:47] -// CHECK: 99:9: BinaryOperator= Extent=[99:9 - 99:33] -// CHECK: 99:9: BinaryOperator= Extent=[99:9 - 99:19] +// CHECK: 99:8: ParenExpr= Extent=[99:8 - 99:34] +// CHECK: 99:9: BinaryOperator=&& Extent=[99:9 - 99:33] +// CHECK: 99:9: BinaryOperator=>= Extent=[99:9 - 99:19] +// CHECK: 99:9: UnexposedExpr=c:2:14 Extent=[99:9 - 99:10] // CHECK: 99:9: DeclRefExpr=c:2:14 Extent=[99:9 - 99:10] // CHECK: 99:14: UnexposedExpr= Extent=[99:14 - 99:19] // CHECK: 99:14: IntegerLiteral= Extent=[99:14 - 99:19] -// CHECK: 99:23: BinaryOperator= Extent=[99:23 - 99:33] +// CHECK: 99:23: BinaryOperator=<= Extent=[99:23 - 99:33] +// CHECK: 99:23: UnexposedExpr=c:2:14 Extent=[99:23 - 99:24] // CHECK: 99:23: DeclRefExpr=c:2:14 Extent=[99:23 - 99:24] // CHECK: 99:28: UnexposedExpr= Extent=[99:28 - 99:33] // CHECK: 99:28: IntegerLiteral= Extent=[99:28 - 99:33] -// CHECK: 100:9: BinaryOperator= Extent=[100:9 - 100:33] -// CHECK: 100:9: BinaryOperator= Extent=[100:9 - 100:19] +// CHECK: 100:8: ParenExpr= Extent=[100:8 - 100:34] +// CHECK: 100:9: BinaryOperator=&& Extent=[100:9 - 100:33] +// CHECK: 100:9: BinaryOperator=>= Extent=[100:9 - 100:19] +// CHECK: 100:9: UnexposedExpr=c:2:14 Extent=[100:9 - 100:10] // CHECK: 100:9: DeclRefExpr=c:2:14 Extent=[100:9 - 100:10] // CHECK: 100:14: UnexposedExpr= Extent=[100:14 - 100:19] // CHECK: 100:14: IntegerLiteral= Extent=[100:14 - 100:19] -// CHECK: 100:23: BinaryOperator= Extent=[100:23 - 100:33] +// CHECK: 100:23: BinaryOperator=<= Extent=[100:23 - 100:33] +// CHECK: 100:23: UnexposedExpr=c:2:14 Extent=[100:23 - 100:24] // CHECK: 100:23: DeclRefExpr=c:2:14 Extent=[100:23 - 100:24] // CHECK: 100:28: UnexposedExpr= Extent=[100:28 - 100:33] // CHECK: 100:28: IntegerLiteral= Extent=[100:28 - 100:33] -// CHECK: 101:9: BinaryOperator= Extent=[101:9 - 101:33] -// CHECK: 101:9: BinaryOperator= Extent=[101:9 - 101:19] +// CHECK: 101:8: ParenExpr= Extent=[101:8 - 101:34] +// CHECK: 101:9: BinaryOperator=&& Extent=[101:9 - 101:33] +// CHECK: 101:9: BinaryOperator=>= Extent=[101:9 - 101:19] +// CHECK: 101:9: UnexposedExpr=c:2:14 Extent=[101:9 - 101:10] // CHECK: 101:9: DeclRefExpr=c:2:14 Extent=[101:9 - 101:10] // CHECK: 101:14: UnexposedExpr= Extent=[101:14 - 101:19] // CHECK: 101:14: IntegerLiteral= Extent=[101:14 - 101:19] -// CHECK: 101:23: BinaryOperator= Extent=[101:23 - 101:33] +// CHECK: 101:23: BinaryOperator=<= Extent=[101:23 - 101:33] +// CHECK: 101:23: UnexposedExpr=c:2:14 Extent=[101:23 - 101:24] // CHECK: 101:23: DeclRefExpr=c:2:14 Extent=[101:23 - 101:24] // CHECK: 101:28: UnexposedExpr= Extent=[101:28 - 101:33] // CHECK: 101:28: IntegerLiteral= Extent=[101:28 - 101:33] -// CHECK: 102:9: BinaryOperator= Extent=[102:9 - 102:33] -// CHECK: 102:9: BinaryOperator= Extent=[102:9 - 102:19] +// CHECK: 102:8: ParenExpr= Extent=[102:8 - 102:34] +// CHECK: 102:9: BinaryOperator=&& Extent=[102:9 - 102:33] +// CHECK: 102:9: BinaryOperator=>= Extent=[102:9 - 102:19] +// CHECK: 102:9: UnexposedExpr=c:2:14 Extent=[102:9 - 102:10] // CHECK: 102:9: DeclRefExpr=c:2:14 Extent=[102:9 - 102:10] // CHECK: 102:14: UnexposedExpr= Extent=[102:14 - 102:19] // CHECK: 102:14: IntegerLiteral= Extent=[102:14 - 102:19] -// CHECK: 102:23: BinaryOperator= Extent=[102:23 - 102:33] +// CHECK: 102:23: BinaryOperator=<= Extent=[102:23 - 102:33] +// CHECK: 102:23: UnexposedExpr=c:2:14 Extent=[102:23 - 102:24] // CHECK: 102:23: DeclRefExpr=c:2:14 Extent=[102:23 - 102:24] // CHECK: 102:28: UnexposedExpr= Extent=[102:28 - 102:33] // CHECK: 102:28: IntegerLiteral= Extent=[102:28 - 102:33] -// CHECK: 103:9: BinaryOperator= Extent=[103:9 - 103:33] -// CHECK: 103:9: BinaryOperator= Extent=[103:9 - 103:19] +// CHECK: 103:8: ParenExpr= Extent=[103:8 - 103:34] +// CHECK: 103:9: BinaryOperator=&& Extent=[103:9 - 103:33] +// CHECK: 103:9: BinaryOperator=>= Extent=[103:9 - 103:19] +// CHECK: 103:9: UnexposedExpr=c:2:14 Extent=[103:9 - 103:10] // CHECK: 103:9: DeclRefExpr=c:2:14 Extent=[103:9 - 103:10] // CHECK: 103:14: UnexposedExpr= Extent=[103:14 - 103:19] // CHECK: 103:14: IntegerLiteral= Extent=[103:14 - 103:19] -// CHECK: 103:23: BinaryOperator= Extent=[103:23 - 103:33] +// CHECK: 103:23: BinaryOperator=<= Extent=[103:23 - 103:33] +// CHECK: 103:23: UnexposedExpr=c:2:14 Extent=[103:23 - 103:24] // CHECK: 103:23: DeclRefExpr=c:2:14 Extent=[103:23 - 103:24] // CHECK: 103:28: UnexposedExpr= Extent=[103:28 - 103:33] // CHECK: 103:28: IntegerLiteral= Extent=[103:28 - 103:33] -// CHECK: 104:9: BinaryOperator= Extent=[104:9 - 104:33] -// CHECK: 104:9: BinaryOperator= Extent=[104:9 - 104:19] +// CHECK: 104:8: ParenExpr= Extent=[104:8 - 104:34] +// CHECK: 104:9: BinaryOperator=&& Extent=[104:9 - 104:33] +// CHECK: 104:9: BinaryOperator=>= Extent=[104:9 - 104:19] +// CHECK: 104:9: UnexposedExpr=c:2:14 Extent=[104:9 - 104:10] // CHECK: 104:9: DeclRefExpr=c:2:14 Extent=[104:9 - 104:10] // CHECK: 104:14: UnexposedExpr= Extent=[104:14 - 104:19] // CHECK: 104:14: IntegerLiteral= Extent=[104:14 - 104:19] -// CHECK: 104:23: BinaryOperator= Extent=[104:23 - 104:33] +// CHECK: 104:23: BinaryOperator=<= Extent=[104:23 - 104:33] +// CHECK: 104:23: UnexposedExpr=c:2:14 Extent=[104:23 - 104:24] // CHECK: 104:23: DeclRefExpr=c:2:14 Extent=[104:23 - 104:24] // CHECK: 104:28: UnexposedExpr= Extent=[104:28 - 104:33] // CHECK: 104:28: IntegerLiteral= Extent=[104:28 - 104:33] -// CHECK: 105:8: BinaryOperator= Extent=[105:8 - 105:18] +// CHECK: 105:8: BinaryOperator=== Extent=[105:8 - 105:18] +// CHECK: 105:8: UnexposedExpr=c:2:14 Extent=[105:8 - 105:9] // CHECK: 105:8: DeclRefExpr=c:2:14 Extent=[105:8 - 105:9] // CHECK: 105:13: UnexposedExpr= Extent=[105:13 - 105:18] // CHECK: 105:13: IntegerLiteral= Extent=[105:13 - 105:18] -// CHECK: 105:23: BinaryOperator= Extent=[105:23 - 105:47] -// CHECK: 105:23: BinaryOperator= Extent=[105:23 - 105:33] +// CHECK: 105:22: ParenExpr= Extent=[105:22 - 105:48] +// CHECK: 105:23: BinaryOperator=&& Extent=[105:23 - 105:47] +// CHECK: 105:23: BinaryOperator=>= Extent=[105:23 - 105:33] +// CHECK: 105:23: UnexposedExpr=c:2:14 Extent=[105:23 - 105:24] // CHECK: 105:23: DeclRefExpr=c:2:14 Extent=[105:23 - 105:24] // CHECK: 105:28: UnexposedExpr= Extent=[105:28 - 105:33] // CHECK: 105:28: IntegerLiteral= Extent=[105:28 - 105:33] -// CHECK: 105:37: BinaryOperator= Extent=[105:37 - 105:47] +// CHECK: 105:37: BinaryOperator=<= Extent=[105:37 - 105:47] +// CHECK: 105:37: UnexposedExpr=c:2:14 Extent=[105:37 - 105:38] // CHECK: 105:37: DeclRefExpr=c:2:14 Extent=[105:37 - 105:38] // CHECK: 105:42: UnexposedExpr= Extent=[105:42 - 105:47] // CHECK: 105:42: IntegerLiteral= Extent=[105:42 - 105:47] -// CHECK: 106:9: BinaryOperator= Extent=[106:9 - 106:33] -// CHECK: 106:9: BinaryOperator= Extent=[106:9 - 106:19] +// CHECK: 106:8: ParenExpr= Extent=[106:8 - 106:34] +// CHECK: 106:9: BinaryOperator=&& Extent=[106:9 - 106:33] +// CHECK: 106:9: BinaryOperator=>= Extent=[106:9 - 106:19] +// CHECK: 106:9: UnexposedExpr=c:2:14 Extent=[106:9 - 106:10] // CHECK: 106:9: DeclRefExpr=c:2:14 Extent=[106:9 - 106:10] // CHECK: 106:14: UnexposedExpr= Extent=[106:14 - 106:19] // CHECK: 106:14: IntegerLiteral= Extent=[106:14 - 106:19] -// CHECK: 106:23: BinaryOperator= Extent=[106:23 - 106:33] +// CHECK: 106:23: BinaryOperator=<= Extent=[106:23 - 106:33] +// CHECK: 106:23: UnexposedExpr=c:2:14 Extent=[106:23 - 106:24] // CHECK: 106:23: DeclRefExpr=c:2:14 Extent=[106:23 - 106:24] // CHECK: 106:28: UnexposedExpr= Extent=[106:28 - 106:33] // CHECK: 106:28: IntegerLiteral= Extent=[106:28 - 106:33] -// CHECK: 107:9: BinaryOperator= Extent=[107:9 - 107:33] -// CHECK: 107:9: BinaryOperator= Extent=[107:9 - 107:19] +// CHECK: 107:8: ParenExpr= Extent=[107:8 - 107:34] +// CHECK: 107:9: BinaryOperator=&& Extent=[107:9 - 107:33] +// CHECK: 107:9: BinaryOperator=>= Extent=[107:9 - 107:19] +// CHECK: 107:9: UnexposedExpr=c:2:14 Extent=[107:9 - 107:10] // CHECK: 107:9: DeclRefExpr=c:2:14 Extent=[107:9 - 107:10] // CHECK: 107:14: UnexposedExpr= Extent=[107:14 - 107:19] // CHECK: 107:14: IntegerLiteral= Extent=[107:14 - 107:19] -// CHECK: 107:23: BinaryOperator= Extent=[107:23 - 107:33] +// CHECK: 107:23: BinaryOperator=<= Extent=[107:23 - 107:33] +// CHECK: 107:23: UnexposedExpr=c:2:14 Extent=[107:23 - 107:24] // CHECK: 107:23: DeclRefExpr=c:2:14 Extent=[107:23 - 107:24] // CHECK: 107:28: UnexposedExpr= Extent=[107:28 - 107:33] // CHECK: 107:28: IntegerLiteral= Extent=[107:28 - 107:33] -// CHECK: 108:8: BinaryOperator= Extent=[108:8 - 108:18] +// CHECK: 108:8: BinaryOperator=== Extent=[108:8 - 108:18] +// CHECK: 108:8: UnexposedExpr=c:2:14 Extent=[108:8 - 108:9] // CHECK: 108:8: DeclRefExpr=c:2:14 Extent=[108:8 - 108:9] // CHECK: 108:13: UnexposedExpr= Extent=[108:13 - 108:18] // CHECK: 108:13: IntegerLiteral= Extent=[108:13 - 108:18] -// CHECK: 108:23: BinaryOperator= Extent=[108:23 - 108:47] -// CHECK: 108:23: BinaryOperator= Extent=[108:23 - 108:33] +// CHECK: 108:22: ParenExpr= Extent=[108:22 - 108:48] +// CHECK: 108:23: BinaryOperator=&& Extent=[108:23 - 108:47] +// CHECK: 108:23: BinaryOperator=>= Extent=[108:23 - 108:33] +// CHECK: 108:23: UnexposedExpr=c:2:14 Extent=[108:23 - 108:24] // CHECK: 108:23: DeclRefExpr=c:2:14 Extent=[108:23 - 108:24] // CHECK: 108:28: UnexposedExpr= Extent=[108:28 - 108:33] // CHECK: 108:28: IntegerLiteral= Extent=[108:28 - 108:33] -// CHECK: 108:37: BinaryOperator= Extent=[108:37 - 108:47] +// CHECK: 108:37: BinaryOperator=<= Extent=[108:37 - 108:47] +// CHECK: 108:37: UnexposedExpr=c:2:14 Extent=[108:37 - 108:38] // CHECK: 108:37: DeclRefExpr=c:2:14 Extent=[108:37 - 108:38] // CHECK: 108:42: UnexposedExpr= Extent=[108:42 - 108:47] // CHECK: 108:42: IntegerLiteral= Extent=[108:42 - 108:47] -// CHECK: 109:8: BinaryOperator= Extent=[109:8 - 109:18] +// CHECK: 109:8: BinaryOperator=== Extent=[109:8 - 109:18] +// CHECK: 109:8: UnexposedExpr=c:2:14 Extent=[109:8 - 109:9] // CHECK: 109:8: DeclRefExpr=c:2:14 Extent=[109:8 - 109:9] // CHECK: 109:13: UnexposedExpr= Extent=[109:13 - 109:18] // CHECK: 109:13: IntegerLiteral= Extent=[109:13 - 109:18] -// CHECK: 109:22: BinaryOperator= Extent=[109:22 - 109:32] +// CHECK: 109:22: BinaryOperator=== Extent=[109:22 - 109:32] +// CHECK: 109:22: UnexposedExpr=c:2:14 Extent=[109:22 - 109:23] // CHECK: 109:22: DeclRefExpr=c:2:14 Extent=[109:22 - 109:23] // CHECK: 109:27: UnexposedExpr= Extent=[109:27 - 109:32] // CHECK: 109:27: IntegerLiteral= Extent=[109:27 - 109:32] -// CHECK: 109:37: BinaryOperator= Extent=[109:37 - 109:61] -// CHECK: 109:37: BinaryOperator= Extent=[109:37 - 109:47] +// CHECK: 109:36: ParenExpr= Extent=[109:36 - 109:62] +// CHECK: 109:37: BinaryOperator=&& Extent=[109:37 - 109:61] +// CHECK: 109:37: BinaryOperator=>= Extent=[109:37 - 109:47] +// CHECK: 109:37: UnexposedExpr=c:2:14 Extent=[109:37 - 109:38] // CHECK: 109:37: DeclRefExpr=c:2:14 Extent=[109:37 - 109:38] // CHECK: 109:42: UnexposedExpr= Extent=[109:42 - 109:47] // CHECK: 109:42: IntegerLiteral= Extent=[109:42 - 109:47] -// CHECK: 109:51: BinaryOperator= Extent=[109:51 - 109:61] +// CHECK: 109:51: BinaryOperator=<= Extent=[109:51 - 109:61] +// CHECK: 109:51: UnexposedExpr=c:2:14 Extent=[109:51 - 109:52] // CHECK: 109:51: DeclRefExpr=c:2:14 Extent=[109:51 - 109:52] // CHECK: 109:56: UnexposedExpr= Extent=[109:56 - 109:61] // CHECK: 109:56: IntegerLiteral= Extent=[109:56 - 109:61] -// CHECK: 110:9: BinaryOperator= Extent=[110:9 - 110:33] -// CHECK: 110:9: BinaryOperator= Extent=[110:9 - 110:19] +// CHECK: 110:8: ParenExpr= Extent=[110:8 - 110:34] +// CHECK: 110:9: BinaryOperator=&& Extent=[110:9 - 110:33] +// CHECK: 110:9: BinaryOperator=>= Extent=[110:9 - 110:19] +// CHECK: 110:9: UnexposedExpr=c:2:14 Extent=[110:9 - 110:10] // CHECK: 110:9: DeclRefExpr=c:2:14 Extent=[110:9 - 110:10] // CHECK: 110:14: UnexposedExpr= Extent=[110:14 - 110:19] // CHECK: 110:14: IntegerLiteral= Extent=[110:14 - 110:19] -// CHECK: 110:23: BinaryOperator= Extent=[110:23 - 110:33] +// CHECK: 110:23: BinaryOperator=<= Extent=[110:23 - 110:33] +// CHECK: 110:23: UnexposedExpr=c:2:14 Extent=[110:23 - 110:24] // CHECK: 110:23: DeclRefExpr=c:2:14 Extent=[110:23 - 110:24] // CHECK: 110:28: UnexposedExpr= Extent=[110:28 - 110:33] // CHECK: 110:28: IntegerLiteral= Extent=[110:28 - 110:33] -// CHECK: 111:9: BinaryOperator= Extent=[111:9 - 111:33] -// CHECK: 111:9: BinaryOperator= Extent=[111:9 - 111:19] +// CHECK: 111:8: ParenExpr= Extent=[111:8 - 111:34] +// CHECK: 111:9: BinaryOperator=&& Extent=[111:9 - 111:33] +// CHECK: 111:9: BinaryOperator=>= Extent=[111:9 - 111:19] +// CHECK: 111:9: UnexposedExpr=c:2:14 Extent=[111:9 - 111:10] // CHECK: 111:9: DeclRefExpr=c:2:14 Extent=[111:9 - 111:10] // CHECK: 111:14: UnexposedExpr= Extent=[111:14 - 111:19] // CHECK: 111:14: IntegerLiteral= Extent=[111:14 - 111:19] -// CHECK: 111:23: BinaryOperator= Extent=[111:23 - 111:33] +// CHECK: 111:23: BinaryOperator=<= Extent=[111:23 - 111:33] +// CHECK: 111:23: UnexposedExpr=c:2:14 Extent=[111:23 - 111:24] // CHECK: 111:23: DeclRefExpr=c:2:14 Extent=[111:23 - 111:24] // CHECK: 111:28: UnexposedExpr= Extent=[111:28 - 111:33] // CHECK: 111:28: IntegerLiteral= Extent=[111:28 - 111:33] -// CHECK: 112:8: BinaryOperator= Extent=[112:8 - 112:18] +// CHECK: 112:8: BinaryOperator=== Extent=[112:8 - 112:18] +// CHECK: 112:8: UnexposedExpr=c:2:14 Extent=[112:8 - 112:9] // CHECK: 112:8: DeclRefExpr=c:2:14 Extent=[112:8 - 112:9] // CHECK: 112:13: UnexposedExpr= Extent=[112:13 - 112:18] // CHECK: 112:13: IntegerLiteral= Extent=[112:13 - 112:18] -// CHECK: 112:22: BinaryOperator= Extent=[112:22 - 112:32] +// CHECK: 112:22: BinaryOperator=== Extent=[112:22 - 112:32] +// CHECK: 112:22: UnexposedExpr=c:2:14 Extent=[112:22 - 112:23] // CHECK: 112:22: DeclRefExpr=c:2:14 Extent=[112:22 - 112:23] // CHECK: 112:27: UnexposedExpr= Extent=[112:27 - 112:32] // CHECK: 112:27: IntegerLiteral= Extent=[112:27 - 112:32] -// CHECK: 112:37: BinaryOperator= Extent=[112:37 - 112:61] -// CHECK: 112:37: BinaryOperator= Extent=[112:37 - 112:47] +// CHECK: 112:36: ParenExpr= Extent=[112:36 - 112:62] +// CHECK: 112:37: BinaryOperator=&& Extent=[112:37 - 112:61] +// CHECK: 112:37: BinaryOperator=>= Extent=[112:37 - 112:47] +// CHECK: 112:37: UnexposedExpr=c:2:14 Extent=[112:37 - 112:38] // CHECK: 112:37: DeclRefExpr=c:2:14 Extent=[112:37 - 112:38] // CHECK: 112:42: UnexposedExpr= Extent=[112:42 - 112:47] // CHECK: 112:42: IntegerLiteral= Extent=[112:42 - 112:47] -// CHECK: 112:51: BinaryOperator= Extent=[112:51 - 112:61] +// CHECK: 112:51: BinaryOperator=<= Extent=[112:51 - 112:61] +// CHECK: 112:51: UnexposedExpr=c:2:14 Extent=[112:51 - 112:52] // CHECK: 112:51: DeclRefExpr=c:2:14 Extent=[112:51 - 112:52] // CHECK: 112:56: UnexposedExpr= Extent=[112:56 - 112:61] // CHECK: 112:56: IntegerLiteral= Extent=[112:56 - 112:61] -// CHECK: 113:9: BinaryOperator= Extent=[113:9 - 113:33] -// CHECK: 113:9: BinaryOperator= Extent=[113:9 - 113:19] +// CHECK: 113:8: ParenExpr= Extent=[113:8 - 113:34] +// CHECK: 113:9: BinaryOperator=&& Extent=[113:9 - 113:33] +// CHECK: 113:9: BinaryOperator=>= Extent=[113:9 - 113:19] +// CHECK: 113:9: UnexposedExpr=c:2:14 Extent=[113:9 - 113:10] // CHECK: 113:9: DeclRefExpr=c:2:14 Extent=[113:9 - 113:10] // CHECK: 113:14: UnexposedExpr= Extent=[113:14 - 113:19] // CHECK: 113:14: IntegerLiteral= Extent=[113:14 - 113:19] -// CHECK: 113:23: BinaryOperator= Extent=[113:23 - 113:33] +// CHECK: 113:23: BinaryOperator=<= Extent=[113:23 - 113:33] +// CHECK: 113:23: UnexposedExpr=c:2:14 Extent=[113:23 - 113:24] // CHECK: 113:23: DeclRefExpr=c:2:14 Extent=[113:23 - 113:24] // CHECK: 113:28: UnexposedExpr= Extent=[113:28 - 113:33] // CHECK: 113:28: IntegerLiteral= Extent=[113:28 - 113:33] -// CHECK: 114:8: BinaryOperator= Extent=[114:8 - 114:18] +// CHECK: 114:8: BinaryOperator=== Extent=[114:8 - 114:18] +// CHECK: 114:8: UnexposedExpr=c:2:14 Extent=[114:8 - 114:9] // CHECK: 114:8: DeclRefExpr=c:2:14 Extent=[114:8 - 114:9] // CHECK: 114:13: UnexposedExpr= Extent=[114:13 - 114:18] // CHECK: 114:13: IntegerLiteral= Extent=[114:13 - 114:18] -// CHECK: 114:23: BinaryOperator= Extent=[114:23 - 114:47] -// CHECK: 114:23: BinaryOperator= Extent=[114:23 - 114:33] +// CHECK: 114:22: ParenExpr= Extent=[114:22 - 114:48] +// CHECK: 114:23: BinaryOperator=&& Extent=[114:23 - 114:47] +// CHECK: 114:23: BinaryOperator=>= Extent=[114:23 - 114:33] +// CHECK: 114:23: UnexposedExpr=c:2:14 Extent=[114:23 - 114:24] // CHECK: 114:23: DeclRefExpr=c:2:14 Extent=[114:23 - 114:24] // CHECK: 114:28: UnexposedExpr= Extent=[114:28 - 114:33] // CHECK: 114:28: IntegerLiteral= Extent=[114:28 - 114:33] -// CHECK: 114:37: BinaryOperator= Extent=[114:37 - 114:47] +// CHECK: 114:37: BinaryOperator=<= Extent=[114:37 - 114:47] +// CHECK: 114:37: UnexposedExpr=c:2:14 Extent=[114:37 - 114:38] // CHECK: 114:37: DeclRefExpr=c:2:14 Extent=[114:37 - 114:38] // CHECK: 114:42: UnexposedExpr= Extent=[114:42 - 114:47] // CHECK: 114:42: IntegerLiteral= Extent=[114:42 - 114:47] -// CHECK: 115:8: BinaryOperator= Extent=[115:8 - 115:18] +// CHECK: 115:8: BinaryOperator=== Extent=[115:8 - 115:18] +// CHECK: 115:8: UnexposedExpr=c:2:14 Extent=[115:8 - 115:9] // CHECK: 115:8: DeclRefExpr=c:2:14 Extent=[115:8 - 115:9] // CHECK: 115:13: UnexposedExpr= Extent=[115:13 - 115:18] // CHECK: 115:13: IntegerLiteral= Extent=[115:13 - 115:18] -// CHECK: 115:23: BinaryOperator= Extent=[115:23 - 115:47] -// CHECK: 115:23: BinaryOperator= Extent=[115:23 - 115:33] +// CHECK: 115:22: ParenExpr= Extent=[115:22 - 115:48] +// CHECK: 115:23: BinaryOperator=&& Extent=[115:23 - 115:47] +// CHECK: 115:23: BinaryOperator=>= Extent=[115:23 - 115:33] +// CHECK: 115:23: UnexposedExpr=c:2:14 Extent=[115:23 - 115:24] // CHECK: 115:23: DeclRefExpr=c:2:14 Extent=[115:23 - 115:24] // CHECK: 115:28: UnexposedExpr= Extent=[115:28 - 115:33] // CHECK: 115:28: IntegerLiteral= Extent=[115:28 - 115:33] -// CHECK: 115:37: BinaryOperator= Extent=[115:37 - 115:47] +// CHECK: 115:37: BinaryOperator=<= Extent=[115:37 - 115:47] +// CHECK: 115:37: UnexposedExpr=c:2:14 Extent=[115:37 - 115:38] // CHECK: 115:37: DeclRefExpr=c:2:14 Extent=[115:37 - 115:38] // CHECK: 115:42: UnexposedExpr= Extent=[115:42 - 115:47] // CHECK: 115:42: IntegerLiteral= Extent=[115:42 - 115:47] -// CHECK: 116:9: BinaryOperator= Extent=[116:9 - 116:33] -// CHECK: 116:9: BinaryOperator= Extent=[116:9 - 116:19] +// CHECK: 116:8: ParenExpr= Extent=[116:8 - 116:34] +// CHECK: 116:9: BinaryOperator=&& Extent=[116:9 - 116:33] +// CHECK: 116:9: BinaryOperator=>= Extent=[116:9 - 116:19] +// CHECK: 116:9: UnexposedExpr=c:2:14 Extent=[116:9 - 116:10] // CHECK: 116:9: DeclRefExpr=c:2:14 Extent=[116:9 - 116:10] // CHECK: 116:14: UnexposedExpr= Extent=[116:14 - 116:19] // CHECK: 116:14: IntegerLiteral= Extent=[116:14 - 116:19] -// CHECK: 116:23: BinaryOperator= Extent=[116:23 - 116:33] +// CHECK: 116:23: BinaryOperator=<= Extent=[116:23 - 116:33] +// CHECK: 116:23: UnexposedExpr=c:2:14 Extent=[116:23 - 116:24] // CHECK: 116:23: DeclRefExpr=c:2:14 Extent=[116:23 - 116:24] // CHECK: 116:28: UnexposedExpr= Extent=[116:28 - 116:33] // CHECK: 116:28: IntegerLiteral= Extent=[116:28 - 116:33] -// CHECK: 117:9: BinaryOperator= Extent=[117:9 - 117:33] -// CHECK: 117:9: BinaryOperator= Extent=[117:9 - 117:19] +// CHECK: 117:8: ParenExpr= Extent=[117:8 - 117:34] +// CHECK: 117:9: BinaryOperator=&& Extent=[117:9 - 117:33] +// CHECK: 117:9: BinaryOperator=>= Extent=[117:9 - 117:19] +// CHECK: 117:9: UnexposedExpr=c:2:14 Extent=[117:9 - 117:10] // CHECK: 117:9: DeclRefExpr=c:2:14 Extent=[117:9 - 117:10] // CHECK: 117:14: UnexposedExpr= Extent=[117:14 - 117:19] // CHECK: 117:14: IntegerLiteral= Extent=[117:14 - 117:19] -// CHECK: 117:23: BinaryOperator= Extent=[117:23 - 117:33] +// CHECK: 117:23: BinaryOperator=<= Extent=[117:23 - 117:33] +// CHECK: 117:23: UnexposedExpr=c:2:14 Extent=[117:23 - 117:24] // CHECK: 117:23: DeclRefExpr=c:2:14 Extent=[117:23 - 117:24] // CHECK: 117:28: UnexposedExpr= Extent=[117:28 - 117:33] // CHECK: 117:28: IntegerLiteral= Extent=[117:28 - 117:33] -// CHECK: 118:9: BinaryOperator= Extent=[118:9 - 118:35] -// CHECK: 118:9: BinaryOperator= Extent=[118:9 - 118:20] +// CHECK: 118:8: ParenExpr= Extent=[118:8 - 118:36] +// CHECK: 118:9: BinaryOperator=&& Extent=[118:9 - 118:35] +// CHECK: 118:9: BinaryOperator=>= Extent=[118:9 - 118:20] +// CHECK: 118:9: UnexposedExpr=c:2:14 Extent=[118:9 - 118:10] // CHECK: 118:9: DeclRefExpr=c:2:14 Extent=[118:9 - 118:10] // CHECK: 118:14: UnexposedExpr= Extent=[118:14 - 118:20] // CHECK: 118:14: IntegerLiteral= Extent=[118:14 - 118:20] -// CHECK: 118:24: BinaryOperator= Extent=[118:24 - 118:35] +// CHECK: 118:24: BinaryOperator=<= Extent=[118:24 - 118:35] +// CHECK: 118:24: UnexposedExpr=c:2:14 Extent=[118:24 - 118:25] // CHECK: 118:24: DeclRefExpr=c:2:14 Extent=[118:24 - 118:25] // CHECK: 118:29: UnexposedExpr= Extent=[118:29 - 118:35] // CHECK: 118:29: IntegerLiteral= Extent=[118:29 - 118:35] -// CHECK: 119:9: BinaryOperator= Extent=[119:9 - 119:35] -// CHECK: 119:9: BinaryOperator= Extent=[119:9 - 119:20] +// CHECK: 119:8: ParenExpr= Extent=[119:8 - 119:36] +// CHECK: 119:9: BinaryOperator=&& Extent=[119:9 - 119:35] +// CHECK: 119:9: BinaryOperator=>= Extent=[119:9 - 119:20] +// CHECK: 119:9: UnexposedExpr=c:2:14 Extent=[119:9 - 119:10] // CHECK: 119:9: DeclRefExpr=c:2:14 Extent=[119:9 - 119:10] // CHECK: 119:14: UnexposedExpr= Extent=[119:14 - 119:20] // CHECK: 119:14: IntegerLiteral= Extent=[119:14 - 119:20] -// CHECK: 119:24: BinaryOperator= Extent=[119:24 - 119:35] +// CHECK: 119:24: BinaryOperator=<= Extent=[119:24 - 119:35] +// CHECK: 119:24: UnexposedExpr=c:2:14 Extent=[119:24 - 119:25] // CHECK: 119:24: DeclRefExpr=c:2:14 Extent=[119:24 - 119:25] // CHECK: 119:29: UnexposedExpr= Extent=[119:29 - 119:35] // CHECK: 119:29: IntegerLiteral= Extent=[119:29 - 119:35] -// CHECK: 120:8: BinaryOperator= Extent=[120:8 - 120:19] +// CHECK: 120:8: BinaryOperator=== Extent=[120:8 - 120:19] +// CHECK: 120:8: UnexposedExpr=c:2:14 Extent=[120:8 - 120:9] // CHECK: 120:8: DeclRefExpr=c:2:14 Extent=[120:8 - 120:9] // CHECK: 120:13: UnexposedExpr= Extent=[120:13 - 120:19] // CHECK: 120:13: IntegerLiteral= Extent=[120:13 - 120:19] -// CHECK: 120:24: BinaryOperator= Extent=[120:24 - 120:50] -// CHECK: 120:24: BinaryOperator= Extent=[120:24 - 120:35] +// CHECK: 120:23: ParenExpr= Extent=[120:23 - 120:51] +// CHECK: 120:24: BinaryOperator=&& Extent=[120:24 - 120:50] +// CHECK: 120:24: BinaryOperator=>= Extent=[120:24 - 120:35] +// CHECK: 120:24: UnexposedExpr=c:2:14 Extent=[120:24 - 120:25] // CHECK: 120:24: DeclRefExpr=c:2:14 Extent=[120:24 - 120:25] // CHECK: 120:29: UnexposedExpr= Extent=[120:29 - 120:35] // CHECK: 120:29: IntegerLiteral= Extent=[120:29 - 120:35] -// CHECK: 120:39: BinaryOperator= Extent=[120:39 - 120:50] +// CHECK: 120:39: BinaryOperator=<= Extent=[120:39 - 120:50] +// CHECK: 120:39: UnexposedExpr=c:2:14 Extent=[120:39 - 120:40] // CHECK: 120:39: DeclRefExpr=c:2:14 Extent=[120:39 - 120:40] // CHECK: 120:44: UnexposedExpr= Extent=[120:44 - 120:50] // CHECK: 120:44: IntegerLiteral= Extent=[120:44 - 120:50] -// CHECK: 121:9: BinaryOperator= Extent=[121:9 - 121:35] -// CHECK: 121:9: BinaryOperator= Extent=[121:9 - 121:20] +// CHECK: 121:8: ParenExpr= Extent=[121:8 - 121:36] +// CHECK: 121:9: BinaryOperator=&& Extent=[121:9 - 121:35] +// CHECK: 121:9: BinaryOperator=>= Extent=[121:9 - 121:20] +// CHECK: 121:9: UnexposedExpr=c:2:14 Extent=[121:9 - 121:10] // CHECK: 121:9: DeclRefExpr=c:2:14 Extent=[121:9 - 121:10] // CHECK: 121:14: UnexposedExpr= Extent=[121:14 - 121:20] // CHECK: 121:14: IntegerLiteral= Extent=[121:14 - 121:20] -// CHECK: 121:24: BinaryOperator= Extent=[121:24 - 121:35] +// CHECK: 121:24: BinaryOperator=<= Extent=[121:24 - 121:35] +// CHECK: 121:24: UnexposedExpr=c:2:14 Extent=[121:24 - 121:25] // CHECK: 121:24: DeclRefExpr=c:2:14 Extent=[121:24 - 121:25] // CHECK: 121:29: UnexposedExpr= Extent=[121:29 - 121:35] // CHECK: 121:29: IntegerLiteral= Extent=[121:29 - 121:35] -// CHECK: 122:8: BinaryOperator= Extent=[122:8 - 122:19] +// CHECK: 122:8: BinaryOperator=== Extent=[122:8 - 122:19] +// CHECK: 122:8: UnexposedExpr=c:2:14 Extent=[122:8 - 122:9] // CHECK: 122:8: DeclRefExpr=c:2:14 Extent=[122:8 - 122:9] // CHECK: 122:13: UnexposedExpr= Extent=[122:13 - 122:19] // CHECK: 122:13: IntegerLiteral= Extent=[122:13 - 122:19] -// CHECK: 122:24: BinaryOperator= Extent=[122:24 - 122:50] -// CHECK: 122:24: BinaryOperator= Extent=[122:24 - 122:35] +// CHECK: 122:23: ParenExpr= Extent=[122:23 - 122:51] +// CHECK: 122:24: BinaryOperator=&& Extent=[122:24 - 122:50] +// CHECK: 122:24: BinaryOperator=>= Extent=[122:24 - 122:35] +// CHECK: 122:24: UnexposedExpr=c:2:14 Extent=[122:24 - 122:25] // CHECK: 122:24: DeclRefExpr=c:2:14 Extent=[122:24 - 122:25] // CHECK: 122:29: UnexposedExpr= Extent=[122:29 - 122:35] // CHECK: 122:29: IntegerLiteral= Extent=[122:29 - 122:35] -// CHECK: 122:39: BinaryOperator= Extent=[122:39 - 122:50] +// CHECK: 122:39: BinaryOperator=<= Extent=[122:39 - 122:50] +// CHECK: 122:39: UnexposedExpr=c:2:14 Extent=[122:39 - 122:40] // CHECK: 122:39: DeclRefExpr=c:2:14 Extent=[122:39 - 122:40] // CHECK: 122:44: UnexposedExpr= Extent=[122:44 - 122:50] // CHECK: 122:44: IntegerLiteral= Extent=[122:44 - 122:50] -// CHECK: 123:9: BinaryOperator= Extent=[123:9 - 123:35] -// CHECK: 123:9: BinaryOperator= Extent=[123:9 - 123:20] +// CHECK: 123:8: ParenExpr= Extent=[123:8 - 123:36] +// CHECK: 123:9: BinaryOperator=&& Extent=[123:9 - 123:35] +// CHECK: 123:9: BinaryOperator=>= Extent=[123:9 - 123:20] +// CHECK: 123:9: UnexposedExpr=c:2:14 Extent=[123:9 - 123:10] // CHECK: 123:9: DeclRefExpr=c:2:14 Extent=[123:9 - 123:10] // CHECK: 123:14: UnexposedExpr= Extent=[123:14 - 123:20] // CHECK: 123:14: IntegerLiteral= Extent=[123:14 - 123:20] -// CHECK: 123:24: BinaryOperator= Extent=[123:24 - 123:35] +// CHECK: 123:24: BinaryOperator=<= Extent=[123:24 - 123:35] +// CHECK: 123:24: UnexposedExpr=c:2:14 Extent=[123:24 - 123:25] // CHECK: 123:24: DeclRefExpr=c:2:14 Extent=[123:24 - 123:25] // CHECK: 123:29: UnexposedExpr= Extent=[123:29 - 123:35] // CHECK: 123:29: IntegerLiteral= Extent=[123:29 - 123:35] -// CHECK: 124:8: BinaryOperator= Extent=[124:8 - 124:19] +// CHECK: 124:8: BinaryOperator=== Extent=[124:8 - 124:19] +// CHECK: 124:8: UnexposedExpr=c:2:14 Extent=[124:8 - 124:9] // CHECK: 124:8: DeclRefExpr=c:2:14 Extent=[124:8 - 124:9] // CHECK: 124:13: UnexposedExpr= Extent=[124:13 - 124:19] // CHECK: 124:13: IntegerLiteral= Extent=[124:13 - 124:19] -// CHECK: 124:23: BinaryOperator= Extent=[124:23 - 124:34] +// CHECK: 124:23: BinaryOperator=== Extent=[124:23 - 124:34] +// CHECK: 124:23: UnexposedExpr=c:2:14 Extent=[124:23 - 124:24] // CHECK: 124:23: DeclRefExpr=c:2:14 Extent=[124:23 - 124:24] // CHECK: 124:28: UnexposedExpr= Extent=[124:28 - 124:34] // CHECK: 124:28: IntegerLiteral= Extent=[124:28 - 124:34] -// CHECK: 124:38: BinaryOperator= Extent=[124:38 - 124:49] +// CHECK: 124:38: BinaryOperator=== Extent=[124:38 - 124:49] +// CHECK: 124:38: UnexposedExpr=c:2:14 Extent=[124:38 - 124:39] // CHECK: 124:38: DeclRefExpr=c:2:14 Extent=[124:38 - 124:39] // CHECK: 124:43: UnexposedExpr= Extent=[124:43 - 124:49] // CHECK: 124:43: IntegerLiteral= Extent=[124:43 - 124:49] -// CHECK: 124:53: BinaryOperator= Extent=[124:53 - 124:64] +// CHECK: 124:53: BinaryOperator=== Extent=[124:53 - 124:64] +// CHECK: 124:53: UnexposedExpr=c:2:14 Extent=[124:53 - 124:54] // CHECK: 124:53: DeclRefExpr=c:2:14 Extent=[124:53 - 124:54] // CHECK: 124:58: UnexposedExpr= Extent=[124:58 - 124:64] // CHECK: 124:58: IntegerLiteral= Extent=[124:58 - 124:64] -// CHECK: 125:5: BinaryOperator= Extent=[125:5 - 125:16] +// CHECK: 125:5: BinaryOperator=== Extent=[125:5 - 125:16] +// CHECK: 125:5: UnexposedExpr=c:2:14 Extent=[125:5 - 125:6] // CHECK: 125:5: DeclRefExpr=c:2:14 Extent=[125:5 - 125:6] // CHECK: 125:10: UnexposedExpr= Extent=[125:10 - 125:16] // CHECK: 125:10: IntegerLiteral= Extent=[125:10 - 125:16] -// CHECK: 125:20: BinaryOperator= Extent=[125:20 - 125:31] +// CHECK: 125:20: BinaryOperator=== Extent=[125:20 - 125:31] +// CHECK: 125:20: UnexposedExpr=c:2:14 Extent=[125:20 - 125:21] // CHECK: 125:20: DeclRefExpr=c:2:14 Extent=[125:20 - 125:21] // CHECK: 125:25: UnexposedExpr= Extent=[125:25 - 125:31] // CHECK: 125:25: IntegerLiteral= Extent=[125:25 - 125:31] -// CHECK: 125:36: BinaryOperator= Extent=[125:36 - 125:62] -// CHECK: 125:36: BinaryOperator= Extent=[125:36 - 125:47] +// CHECK: 125:35: ParenExpr= Extent=[125:35 - 125:63] +// CHECK: 125:36: BinaryOperator=&& Extent=[125:36 - 125:62] +// CHECK: 125:36: BinaryOperator=>= Extent=[125:36 - 125:47] +// CHECK: 125:36: UnexposedExpr=c:2:14 Extent=[125:36 - 125:37] // CHECK: 125:36: DeclRefExpr=c:2:14 Extent=[125:36 - 125:37] // CHECK: 125:41: UnexposedExpr= Extent=[125:41 - 125:47] // CHECK: 125:41: IntegerLiteral= Extent=[125:41 - 125:47] -// CHECK: 125:51: BinaryOperator= Extent=[125:51 - 125:62] +// CHECK: 125:51: BinaryOperator=<= Extent=[125:51 - 125:62] +// CHECK: 125:51: UnexposedExpr=c:2:14 Extent=[125:51 - 125:52] // CHECK: 125:51: DeclRefExpr=c:2:14 Extent=[125:51 - 125:52] // CHECK: 125:56: UnexposedExpr= Extent=[125:56 - 125:62] // CHECK: 125:56: IntegerLiteral= Extent=[125:56 - 125:62] -// CHECK: 126:8: BinaryOperator= Extent=[126:8 - 126:19] +// CHECK: 126:8: BinaryOperator=== Extent=[126:8 - 126:19] +// CHECK: 126:8: UnexposedExpr=c:2:14 Extent=[126:8 - 126:9] // CHECK: 126:8: DeclRefExpr=c:2:14 Extent=[126:8 - 126:9] // CHECK: 126:13: UnexposedExpr= Extent=[126:13 - 126:19] // CHECK: 126:13: IntegerLiteral= Extent=[126:13 - 126:19] -// CHECK: 126:24: BinaryOperator= Extent=[126:24 - 126:50] -// CHECK: 126:24: BinaryOperator= Extent=[126:24 - 126:35] +// CHECK: 126:23: ParenExpr= Extent=[126:23 - 126:51] +// CHECK: 126:24: BinaryOperator=&& Extent=[126:24 - 126:50] +// CHECK: 126:24: BinaryOperator=>= Extent=[126:24 - 126:35] +// CHECK: 126:24: UnexposedExpr=c:2:14 Extent=[126:24 - 126:25] // CHECK: 126:24: DeclRefExpr=c:2:14 Extent=[126:24 - 126:25] // CHECK: 126:29: UnexposedExpr= Extent=[126:29 - 126:35] // CHECK: 126:29: IntegerLiteral= Extent=[126:29 - 126:35] -// CHECK: 126:39: BinaryOperator= Extent=[126:39 - 126:50] +// CHECK: 126:39: BinaryOperator=<= Extent=[126:39 - 126:50] +// CHECK: 126:39: UnexposedExpr=c:2:14 Extent=[126:39 - 126:40] // CHECK: 126:39: DeclRefExpr=c:2:14 Extent=[126:39 - 126:40] // CHECK: 126:44: UnexposedExpr= Extent=[126:44 - 126:50] // CHECK: 126:44: IntegerLiteral= Extent=[126:44 - 126:50] -// CHECK: 127:8: BinaryOperator= Extent=[127:8 - 127:19] +// CHECK: 127:8: BinaryOperator=== Extent=[127:8 - 127:19] +// CHECK: 127:8: UnexposedExpr=c:2:14 Extent=[127:8 - 127:9] // CHECK: 127:8: DeclRefExpr=c:2:14 Extent=[127:8 - 127:9] // CHECK: 127:13: UnexposedExpr= Extent=[127:13 - 127:19] // CHECK: 127:13: IntegerLiteral= Extent=[127:13 - 127:19] -// CHECK: 127:23: BinaryOperator= Extent=[127:23 - 127:34] +// CHECK: 127:23: BinaryOperator=== Extent=[127:23 - 127:34] +// CHECK: 127:23: UnexposedExpr=c:2:14 Extent=[127:23 - 127:24] // CHECK: 127:23: DeclRefExpr=c:2:14 Extent=[127:23 - 127:24] // CHECK: 127:28: UnexposedExpr= Extent=[127:28 - 127:34] // CHECK: 127:28: IntegerLiteral= Extent=[127:28 - 127:34] -// CHECK: 127:38: BinaryOperator= Extent=[127:38 - 127:49] +// CHECK: 127:38: BinaryOperator=== Extent=[127:38 - 127:49] +// CHECK: 127:38: UnexposedExpr=c:2:14 Extent=[127:38 - 127:39] // CHECK: 127:38: DeclRefExpr=c:2:14 Extent=[127:38 - 127:39] // CHECK: 127:43: UnexposedExpr= Extent=[127:43 - 127:49] // CHECK: 127:43: IntegerLiteral= Extent=[127:43 - 127:49] -// CHECK: 127:53: BinaryOperator= Extent=[127:53 - 127:64] +// CHECK: 127:53: BinaryOperator=== Extent=[127:53 - 127:64] +// CHECK: 127:53: UnexposedExpr=c:2:14 Extent=[127:53 - 127:54] // CHECK: 127:53: DeclRefExpr=c:2:14 Extent=[127:53 - 127:54] // CHECK: 127:58: UnexposedExpr= Extent=[127:58 - 127:64] // CHECK: 127:58: IntegerLiteral= Extent=[127:58 - 127:64] -// CHECK: 128:6: BinaryOperator= Extent=[128:6 - 128:32] -// CHECK: 128:6: BinaryOperator= Extent=[128:6 - 128:17] +// CHECK: 128:5: ParenExpr= Extent=[128:5 - 128:33] +// CHECK: 128:6: BinaryOperator=&& Extent=[128:6 - 128:32] +// CHECK: 128:6: BinaryOperator=>= Extent=[128:6 - 128:17] +// CHECK: 128:6: UnexposedExpr=c:2:14 Extent=[128:6 - 128:7] // CHECK: 128:6: DeclRefExpr=c:2:14 Extent=[128:6 - 128:7] // CHECK: 128:11: UnexposedExpr= Extent=[128:11 - 128:17] // CHECK: 128:11: IntegerLiteral= Extent=[128:11 - 128:17] -// CHECK: 128:21: BinaryOperator= Extent=[128:21 - 128:32] +// CHECK: 128:21: BinaryOperator=<= Extent=[128:21 - 128:32] +// CHECK: 128:21: UnexposedExpr=c:2:14 Extent=[128:21 - 128:22] // CHECK: 128:21: DeclRefExpr=c:2:14 Extent=[128:21 - 128:22] // CHECK: 128:26: UnexposedExpr= Extent=[128:26 - 128:32] // CHECK: 128:26: IntegerLiteral= Extent=[128:26 - 128:32] -// CHECK: 129:9: BinaryOperator= Extent=[129:9 - 129:35] -// CHECK: 129:9: BinaryOperator= Extent=[129:9 - 129:20] +// CHECK: 129:8: ParenExpr= Extent=[129:8 - 129:36] +// CHECK: 129:9: BinaryOperator=&& Extent=[129:9 - 129:35] +// CHECK: 129:9: BinaryOperator=>= Extent=[129:9 - 129:20] +// CHECK: 129:9: UnexposedExpr=c:2:14 Extent=[129:9 - 129:10] // CHECK: 129:9: DeclRefExpr=c:2:14 Extent=[129:9 - 129:10] // CHECK: 129:14: UnexposedExpr= Extent=[129:14 - 129:20] // CHECK: 129:14: IntegerLiteral= Extent=[129:14 - 129:20] -// CHECK: 129:24: BinaryOperator= Extent=[129:24 - 129:35] +// CHECK: 129:24: BinaryOperator=<= Extent=[129:24 - 129:35] +// CHECK: 129:24: UnexposedExpr=c:2:14 Extent=[129:24 - 129:25] // CHECK: 129:24: DeclRefExpr=c:2:14 Extent=[129:24 - 129:25] // CHECK: 129:29: UnexposedExpr= Extent=[129:29 - 129:35] // CHECK: 129:29: IntegerLiteral= Extent=[129:29 - 129:35] -// CHECK: 130:8: BinaryOperator= Extent=[130:8 - 130:19] +// CHECK: 130:8: BinaryOperator=== Extent=[130:8 - 130:19] +// CHECK: 130:8: UnexposedExpr=c:2:14 Extent=[130:8 - 130:9] // CHECK: 130:8: DeclRefExpr=c:2:14 Extent=[130:8 - 130:9] // CHECK: 130:13: UnexposedExpr= Extent=[130:13 - 130:19] // CHECK: 130:13: IntegerLiteral= Extent=[130:13 - 130:19] -// CHECK: 130:23: BinaryOperator= Extent=[130:23 - 130:34] +// CHECK: 130:23: BinaryOperator=== Extent=[130:23 - 130:34] +// CHECK: 130:23: UnexposedExpr=c:2:14 Extent=[130:23 - 130:24] // CHECK: 130:23: DeclRefExpr=c:2:14 Extent=[130:23 - 130:24] // CHECK: 130:28: UnexposedExpr= Extent=[130:28 - 130:34] // CHECK: 130:28: IntegerLiteral= Extent=[130:28 - 130:34] -// CHECK: 130:38: BinaryOperator= Extent=[130:38 - 130:49] +// CHECK: 130:38: BinaryOperator=== Extent=[130:38 - 130:49] +// CHECK: 130:38: UnexposedExpr=c:2:14 Extent=[130:38 - 130:39] // CHECK: 130:38: DeclRefExpr=c:2:14 Extent=[130:38 - 130:39] // CHECK: 130:43: UnexposedExpr= Extent=[130:43 - 130:49] // CHECK: 130:43: IntegerLiteral= Extent=[130:43 - 130:49] -// CHECK: 130:53: BinaryOperator= Extent=[130:53 - 130:64] +// CHECK: 130:53: BinaryOperator=== Extent=[130:53 - 130:64] +// CHECK: 130:53: UnexposedExpr=c:2:14 Extent=[130:53 - 130:54] // CHECK: 130:53: DeclRefExpr=c:2:14 Extent=[130:53 - 130:54] // CHECK: 130:58: UnexposedExpr= Extent=[130:58 - 130:64] // CHECK: 130:58: IntegerLiteral= Extent=[130:58 - 130:64] -// CHECK: 131:6: BinaryOperator= Extent=[131:6 - 131:32] -// CHECK: 131:6: BinaryOperator= Extent=[131:6 - 131:17] +// CHECK: 131:5: ParenExpr= Extent=[131:5 - 131:33] +// CHECK: 131:6: BinaryOperator=&& Extent=[131:6 - 131:32] +// CHECK: 131:6: BinaryOperator=>= Extent=[131:6 - 131:17] +// CHECK: 131:6: UnexposedExpr=c:2:14 Extent=[131:6 - 131:7] // CHECK: 131:6: DeclRefExpr=c:2:14 Extent=[131:6 - 131:7] // CHECK: 131:11: UnexposedExpr= Extent=[131:11 - 131:17] // CHECK: 131:11: IntegerLiteral= Extent=[131:11 - 131:17] -// CHECK: 131:21: BinaryOperator= Extent=[131:21 - 131:32] +// CHECK: 131:21: BinaryOperator=<= Extent=[131:21 - 131:32] +// CHECK: 131:21: UnexposedExpr=c:2:14 Extent=[131:21 - 131:22] // CHECK: 131:21: DeclRefExpr=c:2:14 Extent=[131:21 - 131:22] // CHECK: 131:26: UnexposedExpr= Extent=[131:26 - 131:32] // CHECK: 131:26: IntegerLiteral= Extent=[131:26 - 131:32] -// CHECK: 132:9: BinaryOperator= Extent=[132:9 - 132:35] -// CHECK: 132:9: BinaryOperator= Extent=[132:9 - 132:20] +// CHECK: 132:8: ParenExpr= Extent=[132:8 - 132:36] +// CHECK: 132:9: BinaryOperator=&& Extent=[132:9 - 132:35] +// CHECK: 132:9: BinaryOperator=>= Extent=[132:9 - 132:20] +// CHECK: 132:9: UnexposedExpr=c:2:14 Extent=[132:9 - 132:10] // CHECK: 132:9: DeclRefExpr=c:2:14 Extent=[132:9 - 132:10] // CHECK: 132:14: UnexposedExpr= Extent=[132:14 - 132:20] // CHECK: 132:14: IntegerLiteral= Extent=[132:14 - 132:20] -// CHECK: 132:24: BinaryOperator= Extent=[132:24 - 132:35] +// CHECK: 132:24: BinaryOperator=<= Extent=[132:24 - 132:35] +// CHECK: 132:24: UnexposedExpr=c:2:14 Extent=[132:24 - 132:25] // CHECK: 132:24: DeclRefExpr=c:2:14 Extent=[132:24 - 132:25] // CHECK: 132:29: UnexposedExpr= Extent=[132:29 - 132:35] // CHECK: 132:29: IntegerLiteral= Extent=[132:29 - 132:35] -// CHECK: 133:8: BinaryOperator= Extent=[133:8 - 133:19] +// CHECK: 133:8: BinaryOperator=== Extent=[133:8 - 133:19] +// CHECK: 133:8: UnexposedExpr=c:2:14 Extent=[133:8 - 133:9] // CHECK: 133:8: DeclRefExpr=c:2:14 Extent=[133:8 - 133:9] // CHECK: 133:13: UnexposedExpr= Extent=[133:13 - 133:19] // CHECK: 133:13: IntegerLiteral= Extent=[133:13 - 133:19] -// CHECK: 133:24: BinaryOperator= Extent=[133:24 - 133:50] -// CHECK: 133:24: BinaryOperator= Extent=[133:24 - 133:35] +// CHECK: 133:23: ParenExpr= Extent=[133:23 - 133:51] +// CHECK: 133:24: BinaryOperator=&& Extent=[133:24 - 133:50] +// CHECK: 133:24: BinaryOperator=>= Extent=[133:24 - 133:35] +// CHECK: 133:24: UnexposedExpr=c:2:14 Extent=[133:24 - 133:25] // CHECK: 133:24: DeclRefExpr=c:2:14 Extent=[133:24 - 133:25] // CHECK: 133:29: UnexposedExpr= Extent=[133:29 - 133:35] // CHECK: 133:29: IntegerLiteral= Extent=[133:29 - 133:35] -// CHECK: 133:39: BinaryOperator= Extent=[133:39 - 133:50] +// CHECK: 133:39: BinaryOperator=<= Extent=[133:39 - 133:50] +// CHECK: 133:39: UnexposedExpr=c:2:14 Extent=[133:39 - 133:40] // CHECK: 133:39: DeclRefExpr=c:2:14 Extent=[133:39 - 133:40] // CHECK: 133:44: UnexposedExpr= Extent=[133:44 - 133:50] // CHECK: 133:44: IntegerLiteral= Extent=[133:44 - 133:50] -// CHECK: 134:8: BinaryOperator= Extent=[134:8 - 134:19] +// CHECK: 134:8: BinaryOperator=== Extent=[134:8 - 134:19] +// CHECK: 134:8: UnexposedExpr=c:2:14 Extent=[134:8 - 134:9] // CHECK: 134:8: DeclRefExpr=c:2:14 Extent=[134:8 - 134:9] // CHECK: 134:13: UnexposedExpr= Extent=[134:13 - 134:19] // CHECK: 134:13: IntegerLiteral= Extent=[134:13 - 134:19] -// CHECK: 134:23: BinaryOperator= Extent=[134:23 - 134:34] +// CHECK: 134:23: BinaryOperator=== Extent=[134:23 - 134:34] +// CHECK: 134:23: UnexposedExpr=c:2:14 Extent=[134:23 - 134:24] // CHECK: 134:23: DeclRefExpr=c:2:14 Extent=[134:23 - 134:24] // CHECK: 134:28: UnexposedExpr= Extent=[134:28 - 134:34] // CHECK: 134:28: IntegerLiteral= Extent=[134:28 - 134:34] -// CHECK: 134:38: BinaryOperator= Extent=[134:38 - 134:49] +// CHECK: 134:38: BinaryOperator=== Extent=[134:38 - 134:49] +// CHECK: 134:38: UnexposedExpr=c:2:14 Extent=[134:38 - 134:39] // CHECK: 134:38: DeclRefExpr=c:2:14 Extent=[134:38 - 134:39] // CHECK: 134:43: UnexposedExpr= Extent=[134:43 - 134:49] // CHECK: 134:43: IntegerLiteral= Extent=[134:43 - 134:49] -// CHECK: 134:54: BinaryOperator= Extent=[134:54 - 134:80] -// CHECK: 134:54: BinaryOperator= Extent=[134:54 - 134:65] +// CHECK: 134:53: ParenExpr= Extent=[134:53 - 134:81] +// CHECK: 134:54: BinaryOperator=&& Extent=[134:54 - 134:80] +// CHECK: 134:54: BinaryOperator=>= Extent=[134:54 - 134:65] +// CHECK: 134:54: UnexposedExpr=c:2:14 Extent=[134:54 - 134:55] // CHECK: 134:54: DeclRefExpr=c:2:14 Extent=[134:54 - 134:55] // CHECK: 134:59: UnexposedExpr= Extent=[134:59 - 134:65] // CHECK: 134:59: IntegerLiteral= Extent=[134:59 - 134:65] -// CHECK: 134:69: BinaryOperator= Extent=[134:69 - 134:80] +// CHECK: 134:69: BinaryOperator=<= Extent=[134:69 - 134:80] +// CHECK: 134:69: UnexposedExpr=c:2:14 Extent=[134:69 - 134:70] // CHECK: 134:69: DeclRefExpr=c:2:14 Extent=[134:69 - 134:70] // CHECK: 134:74: UnexposedExpr= Extent=[134:74 - 134:80] // CHECK: 134:74: IntegerLiteral= Extent=[134:74 - 134:80] -// CHECK: 135:9: BinaryOperator= Extent=[135:9 - 135:35] -// CHECK: 135:9: BinaryOperator= Extent=[135:9 - 135:20] +// CHECK: 135:8: ParenExpr= Extent=[135:8 - 135:36] +// CHECK: 135:9: BinaryOperator=&& Extent=[135:9 - 135:35] +// CHECK: 135:9: BinaryOperator=>= Extent=[135:9 - 135:20] +// CHECK: 135:9: UnexposedExpr=c:2:14 Extent=[135:9 - 135:10] // CHECK: 135:9: DeclRefExpr=c:2:14 Extent=[135:9 - 135:10] // CHECK: 135:14: UnexposedExpr= Extent=[135:14 - 135:20] // CHECK: 135:14: IntegerLiteral= Extent=[135:14 - 135:20] -// CHECK: 135:24: BinaryOperator= Extent=[135:24 - 135:35] +// CHECK: 135:24: BinaryOperator=<= Extent=[135:24 - 135:35] +// CHECK: 135:24: UnexposedExpr=c:2:14 Extent=[135:24 - 135:25] // CHECK: 135:24: DeclRefExpr=c:2:14 Extent=[135:24 - 135:25] // CHECK: 135:29: UnexposedExpr= Extent=[135:29 - 135:35] // CHECK: 135:29: IntegerLiteral= Extent=[135:29 - 135:35] -// CHECK: 136:9: BinaryOperator= Extent=[136:9 - 136:35] -// CHECK: 136:9: BinaryOperator= Extent=[136:9 - 136:20] +// CHECK: 136:8: ParenExpr= Extent=[136:8 - 136:36] +// CHECK: 136:9: BinaryOperator=&& Extent=[136:9 - 136:35] +// CHECK: 136:9: BinaryOperator=>= Extent=[136:9 - 136:20] +// CHECK: 136:9: UnexposedExpr=c:2:14 Extent=[136:9 - 136:10] // CHECK: 136:9: DeclRefExpr=c:2:14 Extent=[136:9 - 136:10] // CHECK: 136:14: UnexposedExpr= Extent=[136:14 - 136:20] // CHECK: 136:14: IntegerLiteral= Extent=[136:14 - 136:20] -// CHECK: 136:24: BinaryOperator= Extent=[136:24 - 136:35] +// CHECK: 136:24: BinaryOperator=<= Extent=[136:24 - 136:35] +// CHECK: 136:24: UnexposedExpr=c:2:14 Extent=[136:24 - 136:25] // CHECK: 136:24: DeclRefExpr=c:2:14 Extent=[136:24 - 136:25] // CHECK: 136:29: UnexposedExpr= Extent=[136:29 - 136:35] // CHECK: 136:29: IntegerLiteral= Extent=[136:29 - 136:35] -// CHECK: 137:9: BinaryOperator= Extent=[137:9 - 137:35] -// CHECK: 137:9: BinaryOperator= Extent=[137:9 - 137:20] +// CHECK: 137:8: ParenExpr= Extent=[137:8 - 137:36] +// CHECK: 137:9: BinaryOperator=&& Extent=[137:9 - 137:35] +// CHECK: 137:9: BinaryOperator=>= Extent=[137:9 - 137:20] +// CHECK: 137:9: UnexposedExpr=c:2:14 Extent=[137:9 - 137:10] // CHECK: 137:9: DeclRefExpr=c:2:14 Extent=[137:9 - 137:10] // CHECK: 137:14: UnexposedExpr= Extent=[137:14 - 137:20] // CHECK: 137:14: IntegerLiteral= Extent=[137:14 - 137:20] -// CHECK: 137:24: BinaryOperator= Extent=[137:24 - 137:35] +// CHECK: 137:24: BinaryOperator=<= Extent=[137:24 - 137:35] +// CHECK: 137:24: UnexposedExpr=c:2:14 Extent=[137:24 - 137:25] // CHECK: 137:24: DeclRefExpr=c:2:14 Extent=[137:24 - 137:25] // CHECK: 137:29: UnexposedExpr= Extent=[137:29 - 137:35] // CHECK: 137:29: IntegerLiteral= Extent=[137:29 - 137:35] -// CHECK: 138:9: BinaryOperator= Extent=[138:9 - 138:35] -// CHECK: 138:9: BinaryOperator= Extent=[138:9 - 138:20] +// CHECK: 138:8: ParenExpr= Extent=[138:8 - 138:36] +// CHECK: 138:9: BinaryOperator=&& Extent=[138:9 - 138:35] +// CHECK: 138:9: BinaryOperator=>= Extent=[138:9 - 138:20] +// CHECK: 138:9: UnexposedExpr=c:2:14 Extent=[138:9 - 138:10] // CHECK: 138:9: DeclRefExpr=c:2:14 Extent=[138:9 - 138:10] // CHECK: 138:14: UnexposedExpr= Extent=[138:14 - 138:20] // CHECK: 138:14: IntegerLiteral= Extent=[138:14 - 138:20] -// CHECK: 138:24: BinaryOperator= Extent=[138:24 - 138:35] +// CHECK: 138:24: BinaryOperator=<= Extent=[138:24 - 138:35] +// CHECK: 138:24: UnexposedExpr=c:2:14 Extent=[138:24 - 138:25] // CHECK: 138:24: DeclRefExpr=c:2:14 Extent=[138:24 - 138:25] // CHECK: 138:29: UnexposedExpr= Extent=[138:29 - 138:35] // CHECK: 138:29: IntegerLiteral= Extent=[138:29 - 138:35] -// CHECK: 139:9: BinaryOperator= Extent=[139:9 - 139:35] -// CHECK: 139:9: BinaryOperator= Extent=[139:9 - 139:20] +// CHECK: 139:8: ParenExpr= Extent=[139:8 - 139:36] +// CHECK: 139:9: BinaryOperator=&& Extent=[139:9 - 139:35] +// CHECK: 139:9: BinaryOperator=>= Extent=[139:9 - 139:20] +// CHECK: 139:9: UnexposedExpr=c:2:14 Extent=[139:9 - 139:10] // CHECK: 139:9: DeclRefExpr=c:2:14 Extent=[139:9 - 139:10] // CHECK: 139:14: UnexposedExpr= Extent=[139:14 - 139:20] // CHECK: 139:14: IntegerLiteral= Extent=[139:14 - 139:20] -// CHECK: 139:24: BinaryOperator= Extent=[139:24 - 139:35] +// CHECK: 139:24: BinaryOperator=<= Extent=[139:24 - 139:35] +// CHECK: 139:24: UnexposedExpr=c:2:14 Extent=[139:24 - 139:25] // CHECK: 139:24: DeclRefExpr=c:2:14 Extent=[139:24 - 139:25] // CHECK: 139:29: UnexposedExpr= Extent=[139:29 - 139:35] // CHECK: 139:29: IntegerLiteral= Extent=[139:29 - 139:35] -// CHECK: 140:9: BinaryOperator= Extent=[140:9 - 140:35] -// CHECK: 140:9: BinaryOperator= Extent=[140:9 - 140:20] +// CHECK: 140:8: ParenExpr= Extent=[140:8 - 140:36] +// CHECK: 140:9: BinaryOperator=&& Extent=[140:9 - 140:35] +// CHECK: 140:9: BinaryOperator=>= Extent=[140:9 - 140:20] +// CHECK: 140:9: UnexposedExpr=c:2:14 Extent=[140:9 - 140:10] // CHECK: 140:9: DeclRefExpr=c:2:14 Extent=[140:9 - 140:10] // CHECK: 140:14: UnexposedExpr= Extent=[140:14 - 140:20] // CHECK: 140:14: IntegerLiteral= Extent=[140:14 - 140:20] -// CHECK: 140:24: BinaryOperator= Extent=[140:24 - 140:35] +// CHECK: 140:24: BinaryOperator=<= Extent=[140:24 - 140:35] +// CHECK: 140:24: UnexposedExpr=c:2:14 Extent=[140:24 - 140:25] // CHECK: 140:24: DeclRefExpr=c:2:14 Extent=[140:24 - 140:25] // CHECK: 140:29: UnexposedExpr= Extent=[140:29 - 140:35] // CHECK: 140:29: IntegerLiteral= Extent=[140:29 - 140:35] -// CHECK: 141:8: BinaryOperator= Extent=[141:8 - 141:19] +// CHECK: 141:8: BinaryOperator=== Extent=[141:8 - 141:19] +// CHECK: 141:8: UnexposedExpr=c:2:14 Extent=[141:8 - 141:9] // CHECK: 141:8: DeclRefExpr=c:2:14 Extent=[141:8 - 141:9] // CHECK: 141:13: UnexposedExpr= Extent=[141:13 - 141:19] // CHECK: 141:13: IntegerLiteral= Extent=[141:13 - 141:19] -// CHECK: 141:23: BinaryOperator= Extent=[141:23 - 141:34] +// CHECK: 141:23: BinaryOperator=== Extent=[141:23 - 141:34] +// CHECK: 141:23: UnexposedExpr=c:2:14 Extent=[141:23 - 141:24] // CHECK: 141:23: DeclRefExpr=c:2:14 Extent=[141:23 - 141:24] // CHECK: 141:28: UnexposedExpr= Extent=[141:28 - 141:34] // CHECK: 141:28: IntegerLiteral= Extent=[141:28 - 141:34] -// CHECK: 141:38: BinaryOperator= Extent=[141:38 - 141:49] +// CHECK: 141:38: BinaryOperator=== Extent=[141:38 - 141:49] +// CHECK: 141:38: UnexposedExpr=c:2:14 Extent=[141:38 - 141:39] // CHECK: 141:38: DeclRefExpr=c:2:14 Extent=[141:38 - 141:39] // CHECK: 141:43: UnexposedExpr= Extent=[141:43 - 141:49] // CHECK: 141:43: IntegerLiteral= Extent=[141:43 - 141:49] -// CHECK: 141:54: BinaryOperator= Extent=[141:54 - 141:80] -// CHECK: 141:54: BinaryOperator= Extent=[141:54 - 141:65] +// CHECK: 141:53: ParenExpr= Extent=[141:53 - 141:81] +// CHECK: 141:54: BinaryOperator=&& Extent=[141:54 - 141:80] +// CHECK: 141:54: BinaryOperator=>= Extent=[141:54 - 141:65] +// CHECK: 141:54: UnexposedExpr=c:2:14 Extent=[141:54 - 141:55] // CHECK: 141:54: DeclRefExpr=c:2:14 Extent=[141:54 - 141:55] // CHECK: 141:59: UnexposedExpr= Extent=[141:59 - 141:65] // CHECK: 141:59: IntegerLiteral= Extent=[141:59 - 141:65] -// CHECK: 141:69: BinaryOperator= Extent=[141:69 - 141:80] +// CHECK: 141:69: BinaryOperator=<= Extent=[141:69 - 141:80] +// CHECK: 141:69: UnexposedExpr=c:2:14 Extent=[141:69 - 141:70] // CHECK: 141:69: DeclRefExpr=c:2:14 Extent=[141:69 - 141:70] // CHECK: 141:74: UnexposedExpr= Extent=[141:74 - 141:80] // CHECK: 141:74: IntegerLiteral= Extent=[141:74 - 141:80] -// CHECK: 142:9: BinaryOperator= Extent=[142:9 - 142:35] -// CHECK: 142:9: BinaryOperator= Extent=[142:9 - 142:20] +// CHECK: 142:8: ParenExpr= Extent=[142:8 - 142:36] +// CHECK: 142:9: BinaryOperator=&& Extent=[142:9 - 142:35] +// CHECK: 142:9: BinaryOperator=>= Extent=[142:9 - 142:20] +// CHECK: 142:9: UnexposedExpr=c:2:14 Extent=[142:9 - 142:10] // CHECK: 142:9: DeclRefExpr=c:2:14 Extent=[142:9 - 142:10] // CHECK: 142:14: UnexposedExpr= Extent=[142:14 - 142:20] // CHECK: 142:14: IntegerLiteral= Extent=[142:14 - 142:20] -// CHECK: 142:24: BinaryOperator= Extent=[142:24 - 142:35] +// CHECK: 142:24: BinaryOperator=<= Extent=[142:24 - 142:35] +// CHECK: 142:24: UnexposedExpr=c:2:14 Extent=[142:24 - 142:25] // CHECK: 142:24: DeclRefExpr=c:2:14 Extent=[142:24 - 142:25] // CHECK: 142:29: UnexposedExpr= Extent=[142:29 - 142:35] // CHECK: 142:29: IntegerLiteral= Extent=[142:29 - 142:35] -// CHECK: 143:9: BinaryOperator= Extent=[143:9 - 143:35] -// CHECK: 143:9: BinaryOperator= Extent=[143:9 - 143:20] +// CHECK: 143:8: ParenExpr= Extent=[143:8 - 143:36] +// CHECK: 143:9: BinaryOperator=&& Extent=[143:9 - 143:35] +// CHECK: 143:9: BinaryOperator=>= Extent=[143:9 - 143:20] +// CHECK: 143:9: UnexposedExpr=c:2:14 Extent=[143:9 - 143:10] // CHECK: 143:9: DeclRefExpr=c:2:14 Extent=[143:9 - 143:10] // CHECK: 143:14: UnexposedExpr= Extent=[143:14 - 143:20] // CHECK: 143:14: IntegerLiteral= Extent=[143:14 - 143:20] -// CHECK: 143:24: BinaryOperator= Extent=[143:24 - 143:35] +// CHECK: 143:24: BinaryOperator=<= Extent=[143:24 - 143:35] +// CHECK: 143:24: UnexposedExpr=c:2:14 Extent=[143:24 - 143:25] // CHECK: 143:24: DeclRefExpr=c:2:14 Extent=[143:24 - 143:25] // CHECK: 143:29: UnexposedExpr= Extent=[143:29 - 143:35] // CHECK: 143:29: IntegerLiteral= Extent=[143:29 - 143:35] -// CHECK: 144:8: BinaryOperator= Extent=[144:8 - 144:19] +// CHECK: 144:8: BinaryOperator=== Extent=[144:8 - 144:19] +// CHECK: 144:8: UnexposedExpr=c:2:14 Extent=[144:8 - 144:9] // CHECK: 144:8: DeclRefExpr=c:2:14 Extent=[144:8 - 144:9] // CHECK: 144:13: UnexposedExpr= Extent=[144:13 - 144:19] // CHECK: 144:13: IntegerLiteral= Extent=[144:13 - 144:19] -// CHECK: 144:24: BinaryOperator= Extent=[144:24 - 144:50] -// CHECK: 144:24: BinaryOperator= Extent=[144:24 - 144:35] +// CHECK: 144:23: ParenExpr= Extent=[144:23 - 144:51] +// CHECK: 144:24: BinaryOperator=&& Extent=[144:24 - 144:50] +// CHECK: 144:24: BinaryOperator=>= Extent=[144:24 - 144:35] +// CHECK: 144:24: UnexposedExpr=c:2:14 Extent=[144:24 - 144:25] // CHECK: 144:24: DeclRefExpr=c:2:14 Extent=[144:24 - 144:25] // CHECK: 144:29: UnexposedExpr= Extent=[144:29 - 144:35] // CHECK: 144:29: IntegerLiteral= Extent=[144:29 - 144:35] -// CHECK: 144:39: BinaryOperator= Extent=[144:39 - 144:50] +// CHECK: 144:39: BinaryOperator=<= Extent=[144:39 - 144:50] +// CHECK: 144:39: UnexposedExpr=c:2:14 Extent=[144:39 - 144:40] // CHECK: 144:39: DeclRefExpr=c:2:14 Extent=[144:39 - 144:40] // CHECK: 144:44: UnexposedExpr= Extent=[144:44 - 144:50] // CHECK: 144:44: IntegerLiteral= Extent=[144:44 - 144:50] -// CHECK: 145:9: BinaryOperator= Extent=[145:9 - 145:35] -// CHECK: 145:9: BinaryOperator= Extent=[145:9 - 145:20] +// CHECK: 145:8: ParenExpr= Extent=[145:8 - 145:36] +// CHECK: 145:9: BinaryOperator=&& Extent=[145:9 - 145:35] +// CHECK: 145:9: BinaryOperator=>= Extent=[145:9 - 145:20] +// CHECK: 145:9: UnexposedExpr=c:2:14 Extent=[145:9 - 145:10] // CHECK: 145:9: DeclRefExpr=c:2:14 Extent=[145:9 - 145:10] // CHECK: 145:14: UnexposedExpr= Extent=[145:14 - 145:20] // CHECK: 145:14: IntegerLiteral= Extent=[145:14 - 145:20] -// CHECK: 145:24: BinaryOperator= Extent=[145:24 - 145:35] +// CHECK: 145:24: BinaryOperator=<= Extent=[145:24 - 145:35] +// CHECK: 145:24: UnexposedExpr=c:2:14 Extent=[145:24 - 145:25] // CHECK: 145:24: DeclRefExpr=c:2:14 Extent=[145:24 - 145:25] // CHECK: 145:29: UnexposedExpr= Extent=[145:29 - 145:35] // CHECK: 145:29: IntegerLiteral= Extent=[145:29 - 145:35] -// CHECK: 146:9: BinaryOperator= Extent=[146:9 - 146:35] -// CHECK: 146:9: BinaryOperator= Extent=[146:9 - 146:20] +// CHECK: 146:8: ParenExpr= Extent=[146:8 - 146:36] +// CHECK: 146:9: BinaryOperator=&& Extent=[146:9 - 146:35] +// CHECK: 146:9: BinaryOperator=>= Extent=[146:9 - 146:20] +// CHECK: 146:9: UnexposedExpr=c:2:14 Extent=[146:9 - 146:10] // CHECK: 146:9: DeclRefExpr=c:2:14 Extent=[146:9 - 146:10] // CHECK: 146:14: UnexposedExpr= Extent=[146:14 - 146:20] // CHECK: 146:14: IntegerLiteral= Extent=[146:14 - 146:20] -// CHECK: 146:24: BinaryOperator= Extent=[146:24 - 146:35] +// CHECK: 146:24: BinaryOperator=<= Extent=[146:24 - 146:35] +// CHECK: 146:24: UnexposedExpr=c:2:14 Extent=[146:24 - 146:25] // CHECK: 146:24: DeclRefExpr=c:2:14 Extent=[146:24 - 146:25] // CHECK: 146:29: UnexposedExpr= Extent=[146:29 - 146:35] // CHECK: 146:29: IntegerLiteral= Extent=[146:29 - 146:35] -// CHECK: 147:9: BinaryOperator= Extent=[147:9 - 147:35] -// CHECK: 147:9: BinaryOperator= Extent=[147:9 - 147:20] +// CHECK: 147:8: ParenExpr= Extent=[147:8 - 147:36] +// CHECK: 147:9: BinaryOperator=&& Extent=[147:9 - 147:35] +// CHECK: 147:9: BinaryOperator=>= Extent=[147:9 - 147:20] +// CHECK: 147:9: UnexposedExpr=c:2:14 Extent=[147:9 - 147:10] // CHECK: 147:9: DeclRefExpr=c:2:14 Extent=[147:9 - 147:10] // CHECK: 147:14: UnexposedExpr= Extent=[147:14 - 147:20] // CHECK: 147:14: IntegerLiteral= Extent=[147:14 - 147:20] -// CHECK: 147:24: BinaryOperator= Extent=[147:24 - 147:35] +// CHECK: 147:24: BinaryOperator=<= Extent=[147:24 - 147:35] +// CHECK: 147:24: UnexposedExpr=c:2:14 Extent=[147:24 - 147:25] // CHECK: 147:24: DeclRefExpr=c:2:14 Extent=[147:24 - 147:25] // CHECK: 147:29: UnexposedExpr= Extent=[147:29 - 147:35] // CHECK: 147:29: IntegerLiteral= Extent=[147:29 - 147:35] -// CHECK: 148:9: BinaryOperator= Extent=[148:9 - 148:35] -// CHECK: 148:9: BinaryOperator= Extent=[148:9 - 148:20] +// CHECK: 148:8: ParenExpr= Extent=[148:8 - 148:36] +// CHECK: 148:9: BinaryOperator=&& Extent=[148:9 - 148:35] +// CHECK: 148:9: BinaryOperator=>= Extent=[148:9 - 148:20] +// CHECK: 148:9: UnexposedExpr=c:2:14 Extent=[148:9 - 148:10] // CHECK: 148:9: DeclRefExpr=c:2:14 Extent=[148:9 - 148:10] // CHECK: 148:14: UnexposedExpr= Extent=[148:14 - 148:20] // CHECK: 148:14: IntegerLiteral= Extent=[148:14 - 148:20] -// CHECK: 148:24: BinaryOperator= Extent=[148:24 - 148:35] +// CHECK: 148:24: BinaryOperator=<= Extent=[148:24 - 148:35] +// CHECK: 148:24: UnexposedExpr=c:2:14 Extent=[148:24 - 148:25] // CHECK: 148:24: DeclRefExpr=c:2:14 Extent=[148:24 - 148:25] // CHECK: 148:29: UnexposedExpr= Extent=[148:29 - 148:35] // CHECK: 148:29: IntegerLiteral= Extent=[148:29 - 148:35] -// CHECK: 149:9: BinaryOperator= Extent=[149:9 - 149:35] -// CHECK: 149:9: BinaryOperator= Extent=[149:9 - 149:20] +// CHECK: 149:8: ParenExpr= Extent=[149:8 - 149:36] +// CHECK: 149:9: BinaryOperator=&& Extent=[149:9 - 149:35] +// CHECK: 149:9: BinaryOperator=>= Extent=[149:9 - 149:20] +// CHECK: 149:9: UnexposedExpr=c:2:14 Extent=[149:9 - 149:10] // CHECK: 149:9: DeclRefExpr=c:2:14 Extent=[149:9 - 149:10] // CHECK: 149:14: UnexposedExpr= Extent=[149:14 - 149:20] // CHECK: 149:14: IntegerLiteral= Extent=[149:14 - 149:20] -// CHECK: 149:24: BinaryOperator= Extent=[149:24 - 149:35] +// CHECK: 149:24: BinaryOperator=<= Extent=[149:24 - 149:35] +// CHECK: 149:24: UnexposedExpr=c:2:14 Extent=[149:24 - 149:25] // CHECK: 149:24: DeclRefExpr=c:2:14 Extent=[149:24 - 149:25] // CHECK: 149:29: UnexposedExpr= Extent=[149:29 - 149:35] // CHECK: 149:29: IntegerLiteral= Extent=[149:29 - 149:35] -// CHECK: 150:9: BinaryOperator= Extent=[150:9 - 150:35] -// CHECK: 150:9: BinaryOperator= Extent=[150:9 - 150:20] +// CHECK: 150:8: ParenExpr= Extent=[150:8 - 150:36] +// CHECK: 150:9: BinaryOperator=&& Extent=[150:9 - 150:35] +// CHECK: 150:9: BinaryOperator=>= Extent=[150:9 - 150:20] +// CHECK: 150:9: UnexposedExpr=c:2:14 Extent=[150:9 - 150:10] // CHECK: 150:9: DeclRefExpr=c:2:14 Extent=[150:9 - 150:10] // CHECK: 150:14: UnexposedExpr= Extent=[150:14 - 150:20] // CHECK: 150:14: IntegerLiteral= Extent=[150:14 - 150:20] -// CHECK: 150:24: BinaryOperator= Extent=[150:24 - 150:35] +// CHECK: 150:24: BinaryOperator=<= Extent=[150:24 - 150:35] +// CHECK: 150:24: UnexposedExpr=c:2:14 Extent=[150:24 - 150:25] // CHECK: 150:24: DeclRefExpr=c:2:14 Extent=[150:24 - 150:25] // CHECK: 150:29: UnexposedExpr= Extent=[150:29 - 150:35] // CHECK: 150:29: IntegerLiteral= Extent=[150:29 - 150:35] -// CHECK: 151:8: BinaryOperator= Extent=[151:8 - 151:19] +// CHECK: 151:8: BinaryOperator=== Extent=[151:8 - 151:19] +// CHECK: 151:8: UnexposedExpr=c:2:14 Extent=[151:8 - 151:9] // CHECK: 151:8: DeclRefExpr=c:2:14 Extent=[151:8 - 151:9] // CHECK: 151:13: UnexposedExpr= Extent=[151:13 - 151:19] // CHECK: 151:13: IntegerLiteral= Extent=[151:13 - 151:19] -// CHECK: 151:24: BinaryOperator= Extent=[151:24 - 151:50] -// CHECK: 151:24: BinaryOperator= Extent=[151:24 - 151:35] +// CHECK: 151:23: ParenExpr= Extent=[151:23 - 151:51] +// CHECK: 151:24: BinaryOperator=&& Extent=[151:24 - 151:50] +// CHECK: 151:24: BinaryOperator=>= Extent=[151:24 - 151:35] +// CHECK: 151:24: UnexposedExpr=c:2:14 Extent=[151:24 - 151:25] // CHECK: 151:24: DeclRefExpr=c:2:14 Extent=[151:24 - 151:25] // CHECK: 151:29: UnexposedExpr= Extent=[151:29 - 151:35] // CHECK: 151:29: IntegerLiteral= Extent=[151:29 - 151:35] -// CHECK: 151:39: BinaryOperator= Extent=[151:39 - 151:50] +// CHECK: 151:39: BinaryOperator=<= Extent=[151:39 - 151:50] +// CHECK: 151:39: UnexposedExpr=c:2:14 Extent=[151:39 - 151:40] // CHECK: 151:39: DeclRefExpr=c:2:14 Extent=[151:39 - 151:40] // CHECK: 151:44: UnexposedExpr= Extent=[151:44 - 151:50] // CHECK: 151:44: IntegerLiteral= Extent=[151:44 - 151:50] -// CHECK: 152:8: BinaryOperator= Extent=[152:8 - 152:19] +// CHECK: 152:8: BinaryOperator=== Extent=[152:8 - 152:19] +// CHECK: 152:8: UnexposedExpr=c:2:14 Extent=[152:8 - 152:9] // CHECK: 152:8: DeclRefExpr=c:2:14 Extent=[152:8 - 152:9] // CHECK: 152:13: UnexposedExpr= Extent=[152:13 - 152:19] // CHECK: 152:13: IntegerLiteral= Extent=[152:13 - 152:19] -// CHECK: 152:24: BinaryOperator= Extent=[152:24 - 152:50] -// CHECK: 152:24: BinaryOperator= Extent=[152:24 - 152:35] +// CHECK: 152:23: ParenExpr= Extent=[152:23 - 152:51] +// CHECK: 152:24: BinaryOperator=&& Extent=[152:24 - 152:50] +// CHECK: 152:24: BinaryOperator=>= Extent=[152:24 - 152:35] +// CHECK: 152:24: UnexposedExpr=c:2:14 Extent=[152:24 - 152:25] // CHECK: 152:24: DeclRefExpr=c:2:14 Extent=[152:24 - 152:25] // CHECK: 152:29: UnexposedExpr= Extent=[152:29 - 152:35] // CHECK: 152:29: IntegerLiteral= Extent=[152:29 - 152:35] -// CHECK: 152:39: BinaryOperator= Extent=[152:39 - 152:50] +// CHECK: 152:39: BinaryOperator=<= Extent=[152:39 - 152:50] +// CHECK: 152:39: UnexposedExpr=c:2:14 Extent=[152:39 - 152:40] // CHECK: 152:39: DeclRefExpr=c:2:14 Extent=[152:39 - 152:40] // CHECK: 152:44: UnexposedExpr= Extent=[152:44 - 152:50] // CHECK: 152:44: IntegerLiteral= Extent=[152:44 - 152:50] -// CHECK: 153:9: BinaryOperator= Extent=[153:9 - 153:35] -// CHECK: 153:9: BinaryOperator= Extent=[153:9 - 153:20] +// CHECK: 153:8: ParenExpr= Extent=[153:8 - 153:36] +// CHECK: 153:9: BinaryOperator=&& Extent=[153:9 - 153:35] +// CHECK: 153:9: BinaryOperator=>= Extent=[153:9 - 153:20] +// CHECK: 153:9: UnexposedExpr=c:2:14 Extent=[153:9 - 153:10] // CHECK: 153:9: DeclRefExpr=c:2:14 Extent=[153:9 - 153:10] // CHECK: 153:14: UnexposedExpr= Extent=[153:14 - 153:20] // CHECK: 153:14: IntegerLiteral= Extent=[153:14 - 153:20] -// CHECK: 153:24: BinaryOperator= Extent=[153:24 - 153:35] +// CHECK: 153:24: BinaryOperator=<= Extent=[153:24 - 153:35] +// CHECK: 153:24: UnexposedExpr=c:2:14 Extent=[153:24 - 153:25] // CHECK: 153:24: DeclRefExpr=c:2:14 Extent=[153:24 - 153:25] // CHECK: 153:29: UnexposedExpr= Extent=[153:29 - 153:35] // CHECK: 153:29: IntegerLiteral= Extent=[153:29 - 153:35] -// CHECK: 154:9: BinaryOperator= Extent=[154:9 - 154:35] -// CHECK: 154:9: BinaryOperator= Extent=[154:9 - 154:20] +// CHECK: 154:8: ParenExpr= Extent=[154:8 - 154:36] +// CHECK: 154:9: BinaryOperator=&& Extent=[154:9 - 154:35] +// CHECK: 154:9: BinaryOperator=>= Extent=[154:9 - 154:20] +// CHECK: 154:9: UnexposedExpr=c:2:14 Extent=[154:9 - 154:10] // CHECK: 154:9: DeclRefExpr=c:2:14 Extent=[154:9 - 154:10] // CHECK: 154:14: UnexposedExpr= Extent=[154:14 - 154:20] // CHECK: 154:14: IntegerLiteral= Extent=[154:14 - 154:20] -// CHECK: 154:24: BinaryOperator= Extent=[154:24 - 154:35] +// CHECK: 154:24: BinaryOperator=<= Extent=[154:24 - 154:35] +// CHECK: 154:24: UnexposedExpr=c:2:14 Extent=[154:24 - 154:25] // CHECK: 154:24: DeclRefExpr=c:2:14 Extent=[154:24 - 154:25] // CHECK: 154:29: UnexposedExpr= Extent=[154:29 - 154:35] // CHECK: 154:29: IntegerLiteral= Extent=[154:29 - 154:35] -// CHECK: 155:9: BinaryOperator= Extent=[155:9 - 155:35] -// CHECK: 155:9: BinaryOperator= Extent=[155:9 - 155:20] +// CHECK: 155:8: ParenExpr= Extent=[155:8 - 155:36] +// CHECK: 155:9: BinaryOperator=&& Extent=[155:9 - 155:35] +// CHECK: 155:9: BinaryOperator=>= Extent=[155:9 - 155:20] +// CHECK: 155:9: UnexposedExpr=c:2:14 Extent=[155:9 - 155:10] // CHECK: 155:9: DeclRefExpr=c:2:14 Extent=[155:9 - 155:10] // CHECK: 155:14: UnexposedExpr= Extent=[155:14 - 155:20] // CHECK: 155:14: IntegerLiteral= Extent=[155:14 - 155:20] -// CHECK: 155:24: BinaryOperator= Extent=[155:24 - 155:35] +// CHECK: 155:24: BinaryOperator=<= Extent=[155:24 - 155:35] +// CHECK: 155:24: UnexposedExpr=c:2:14 Extent=[155:24 - 155:25] // CHECK: 155:24: DeclRefExpr=c:2:14 Extent=[155:24 - 155:25] // CHECK: 155:29: UnexposedExpr= Extent=[155:29 - 155:35] // CHECK: 155:29: IntegerLiteral= Extent=[155:29 - 155:35] -// CHECK: 156:9: BinaryOperator= Extent=[156:9 - 156:35] -// CHECK: 156:9: BinaryOperator= Extent=[156:9 - 156:20] +// CHECK: 156:8: ParenExpr= Extent=[156:8 - 156:36] +// CHECK: 156:9: BinaryOperator=&& Extent=[156:9 - 156:35] +// CHECK: 156:9: BinaryOperator=>= Extent=[156:9 - 156:20] +// CHECK: 156:9: UnexposedExpr=c:2:14 Extent=[156:9 - 156:10] // CHECK: 156:9: DeclRefExpr=c:2:14 Extent=[156:9 - 156:10] // CHECK: 156:14: UnexposedExpr= Extent=[156:14 - 156:20] // CHECK: 156:14: IntegerLiteral= Extent=[156:14 - 156:20] -// CHECK: 156:24: BinaryOperator= Extent=[156:24 - 156:35] +// CHECK: 156:24: BinaryOperator=<= Extent=[156:24 - 156:35] +// CHECK: 156:24: UnexposedExpr=c:2:14 Extent=[156:24 - 156:25] // CHECK: 156:24: DeclRefExpr=c:2:14 Extent=[156:24 - 156:25] // CHECK: 156:29: UnexposedExpr= Extent=[156:29 - 156:35] // CHECK: 156:29: IntegerLiteral= Extent=[156:29 - 156:35] -// CHECK: 157:9: BinaryOperator= Extent=[157:9 - 157:35] -// CHECK: 157:9: BinaryOperator= Extent=[157:9 - 157:20] +// CHECK: 157:8: ParenExpr= Extent=[157:8 - 157:36] +// CHECK: 157:9: BinaryOperator=&& Extent=[157:9 - 157:35] +// CHECK: 157:9: BinaryOperator=>= Extent=[157:9 - 157:20] +// CHECK: 157:9: UnexposedExpr=c:2:14 Extent=[157:9 - 157:10] // CHECK: 157:9: DeclRefExpr=c:2:14 Extent=[157:9 - 157:10] // CHECK: 157:14: UnexposedExpr= Extent=[157:14 - 157:20] // CHECK: 157:14: IntegerLiteral= Extent=[157:14 - 157:20] -// CHECK: 157:24: BinaryOperator= Extent=[157:24 - 157:35] +// CHECK: 157:24: BinaryOperator=<= Extent=[157:24 - 157:35] +// CHECK: 157:24: UnexposedExpr=c:2:14 Extent=[157:24 - 157:25] // CHECK: 157:24: DeclRefExpr=c:2:14 Extent=[157:24 - 157:25] // CHECK: 157:29: UnexposedExpr= Extent=[157:29 - 157:35] // CHECK: 157:29: IntegerLiteral= Extent=[157:29 - 157:35] -// CHECK: 158:8: BinaryOperator= Extent=[158:8 - 158:19] +// CHECK: 158:8: BinaryOperator=== Extent=[158:8 - 158:19] +// CHECK: 158:8: UnexposedExpr=c:2:14 Extent=[158:8 - 158:9] // CHECK: 158:8: DeclRefExpr=c:2:14 Extent=[158:8 - 158:9] // CHECK: 158:13: UnexposedExpr= Extent=[158:13 - 158:19] // CHECK: 158:13: IntegerLiteral= Extent=[158:13 - 158:19] -// CHECK: 158:24: BinaryOperator= Extent=[158:24 - 158:50] -// CHECK: 158:24: BinaryOperator= Extent=[158:24 - 158:35] +// CHECK: 158:23: ParenExpr= Extent=[158:23 - 158:51] +// CHECK: 158:24: BinaryOperator=&& Extent=[158:24 - 158:50] +// CHECK: 158:24: BinaryOperator=>= Extent=[158:24 - 158:35] +// CHECK: 158:24: UnexposedExpr=c:2:14 Extent=[158:24 - 158:25] // CHECK: 158:24: DeclRefExpr=c:2:14 Extent=[158:24 - 158:25] // CHECK: 158:29: UnexposedExpr= Extent=[158:29 - 158:35] // CHECK: 158:29: IntegerLiteral= Extent=[158:29 - 158:35] -// CHECK: 158:39: BinaryOperator= Extent=[158:39 - 158:50] +// CHECK: 158:39: BinaryOperator=<= Extent=[158:39 - 158:50] +// CHECK: 158:39: UnexposedExpr=c:2:14 Extent=[158:39 - 158:40] // CHECK: 158:39: DeclRefExpr=c:2:14 Extent=[158:39 - 158:40] // CHECK: 158:44: UnexposedExpr= Extent=[158:44 - 158:50] // CHECK: 158:44: IntegerLiteral= Extent=[158:44 - 158:50] -// CHECK: 159:9: BinaryOperator= Extent=[159:9 - 159:35] -// CHECK: 159:9: BinaryOperator= Extent=[159:9 - 159:20] +// CHECK: 159:8: ParenExpr= Extent=[159:8 - 159:36] +// CHECK: 159:9: BinaryOperator=&& Extent=[159:9 - 159:35] +// CHECK: 159:9: BinaryOperator=>= Extent=[159:9 - 159:20] +// CHECK: 159:9: UnexposedExpr=c:2:14 Extent=[159:9 - 159:10] // CHECK: 159:9: DeclRefExpr=c:2:14 Extent=[159:9 - 159:10] // CHECK: 159:14: UnexposedExpr= Extent=[159:14 - 159:20] // CHECK: 159:14: IntegerLiteral= Extent=[159:14 - 159:20] -// CHECK: 159:24: BinaryOperator= Extent=[159:24 - 159:35] +// CHECK: 159:24: BinaryOperator=<= Extent=[159:24 - 159:35] +// CHECK: 159:24: UnexposedExpr=c:2:14 Extent=[159:24 - 159:25] // CHECK: 159:24: DeclRefExpr=c:2:14 Extent=[159:24 - 159:25] // CHECK: 159:29: UnexposedExpr= Extent=[159:29 - 159:35] // CHECK: 159:29: IntegerLiteral= Extent=[159:29 - 159:35] -// CHECK: 160:8: BinaryOperator= Extent=[160:8 - 160:19] +// CHECK: 160:8: BinaryOperator=== Extent=[160:8 - 160:19] +// CHECK: 160:8: UnexposedExpr=c:2:14 Extent=[160:8 - 160:9] // CHECK: 160:8: DeclRefExpr=c:2:14 Extent=[160:8 - 160:9] // CHECK: 160:13: UnexposedExpr= Extent=[160:13 - 160:19] // CHECK: 160:13: IntegerLiteral= Extent=[160:13 - 160:19] // CHECK: 160:23: ParenExpr= Extent=[160:23 - 160:51] -// CHECK: 160:24: BinaryOperator= Extent=[160:24 - 160:50] -// CHECK: 160:24: BinaryOperator= Extent=[160:24 - 160:35] +// CHECK: 160:24: BinaryOperator=&& Extent=[160:24 - 160:50] +// CHECK: 160:24: BinaryOperator=>= Extent=[160:24 - 160:35] +// CHECK: 160:24: UnexposedExpr=c:2:14 Extent=[160:24 - 160:25] // CHECK: 160:24: DeclRefExpr=c:2:14 Extent=[160:24 - 160:25] // CHECK: 160:29: UnexposedExpr= Extent=[160:29 - 160:35] // CHECK: 160:29: IntegerLiteral= Extent=[160:29 - 160:35] -// CHECK: 160:39: BinaryOperator= Extent=[160:39 - 160:50] +// CHECK: 160:39: BinaryOperator=<= Extent=[160:39 - 160:50] +// CHECK: 160:39: UnexposedExpr=c:2:14 Extent=[160:39 - 160:40] // CHECK: 160:39: DeclRefExpr=c:2:14 Extent=[160:39 - 160:40] // CHECK: 160:44: UnexposedExpr= Extent=[160:44 - 160:50] // CHECK: 160:44: IntegerLiteral= Extent=[160:44 - 160:50] - diff --git a/clang/test/Index/preamble.c b/clang/test/Index/preamble.c index ae8e1aa..08e62ec 100644 --- a/clang/test/Index/preamble.c +++ b/clang/test/Index/preamble.c @@ -14,7 +14,7 @@ void f(int x) { // RUN: env CINDEXTEST_EDITING=1 c-index-test -test-load-source-reparse 5 local -I %S/Inputs -include %t %s -Wunused-macros 2> %t.stderr.txt | FileCheck %s // RUN: FileCheck -check-prefix CHECK-DIAG %s < %t.stderr.txt // CHECK: preamble.h:1:12: FunctionDecl=bar:1:12 (Definition) Extent=[1:1 - 6:2] -// CHECK: preamble.h:4:3: BinaryOperator= Extent=[4:3 - 4:13] +// CHECK: preamble.h:4:3: BinaryOperator== Extent=[4:3 - 4:13] // CHECK: preamble.h:4:3: DeclRefExpr=ptr:2:8 Extent=[4:3 - 4:6] // CHECK: preamble.h:4:9: UnexposedExpr=ptr1:3:10 Extent=[4:9 - 4:13] // CHECK: preamble.h:4:9: DeclRefExpr=ptr1:3:10 Extent=[4:9 - 4:13] diff --git a/clang/test/Index/print-type.c b/clang/test/Index/print-type.c index 1e5a724..7375644 100644 --- a/clang/test/Index/print-type.c +++ b/clang/test/Index/print-type.c @@ -51,8 +51,8 @@ _Atomic(unsigned long) aul; // CHECK: TypeRef=FooType:1:13 [type=FooType] [typekind=Typedef] [canonicaltype=int] [canonicaltypekind=Int] [isPOD=1] // CHECK: DeclRefExpr=z:3:33 [type=FooType] [typekind=Elaborated] [canonicaltype=int] [canonicaltypekind=Int] [isPOD=1] // CHECK: ReturnStmt= [type=] [typekind=Invalid] [isPOD=0] -// CHECK: BinaryOperator= [type=int *] [typekind=Pointer] [isPOD=1] [pointeetype=int] [pointeekind=Int] -// CHECK: BinaryOperator= [type=int *] [typekind=Pointer] [isPOD=1] [pointeetype=int] [pointeekind=Int] +// CHECK: BinaryOperator=+ [type=int *] [typekind=Pointer] [isPOD=1] [pointeetype=int] [pointeekind=Int] +// CHECK: BinaryOperator=+ [type=int *] [typekind=Pointer] [isPOD=1] [pointeetype=int] [pointeekind=Int] // CHECK: DeclRefExpr=p:3:13 [type=int *] [typekind=Pointer] [isPOD=1] [pointeetype=int] [pointeekind=Int] // CHECK: DeclRefExpr=z:3:33 [type=FooType] [typekind=Elaborated] [canonicaltype=int] [canonicaltypekind=Int] [isPOD=1] // CHECK: ArraySubscriptExpr= [type=int] [typekind=Int] [isPOD=1] diff --git a/clang/test/Index/print-type.cpp b/clang/test/Index/print-type.cpp index 8c3d4c2..b64469e 100644 --- a/clang/test/Index/print-type.cpp +++ b/clang/test/Index/print-type.cpp @@ -124,7 +124,7 @@ inline namespace InlineNS {} // CHECK: UnexposedExpr=z:22:35 [type=FooType] [typekind=Elaborated] [canonicaltype=int] [canonicaltypekind=Int] [isPOD=1] // CHECK: DeclRefExpr=z:22:35 [type=FooType] [typekind=Elaborated] [canonicaltype=int] [canonicaltypekind=Int] [isPOD=1] // CHECK: ReturnStmt= [type=] [typekind=Invalid] [isPOD=0] -// CHECK: BinaryOperator= [type=int *] [typekind=Pointer] [isPOD=1] [pointeetype=int] [pointeekind=Int] +// CHECK: BinaryOperator=+ [type=int *] [typekind=Pointer] [isPOD=1] [pointeetype=int] [pointeekind=Int] // CHECK: UnexposedExpr=p:22:15 [type=int *] [typekind=Pointer] [isPOD=1] [pointeetype=int] [pointeekind=Int] // CHECK: DeclRefExpr=p:22:15 [type=int *] [typekind=Pointer] [isPOD=1] [pointeetype=int] [pointeekind=Int] // CHECK: UnexposedExpr=z:22:35 [type=FooType] [typekind=Elaborated] [canonicaltype=int] [canonicaltypekind=Int] [isPOD=1] diff --git a/clang/test/Index/recursive-cxx-member-calls.cpp b/clang/test/Index/recursive-cxx-member-calls.cpp index be908c5..11c011a 100644 --- a/clang/test/Index/recursive-cxx-member-calls.cpp +++ b/clang/test/Index/recursive-cxx-member-calls.cpp @@ -21,7 +21,7 @@ namespace clang { AT_noinline, AT_no_instrument_function, AT_nonnull, AT_noreturn, AT_nothrow, AT_nsobject, AT_objc_exception, AT_override, AT_cf_returns_not_retained, AT_cf_returns_retained, - AT_ns_returns_not_retained, AT_ns_returns_retained, AT_objc_gc, + AT_ns_returns_not_retained, AT_ns_returns_retained, AT_objc_gc, AT_overloadable, AT_ownership_holds, AT_ownership_returns, AT_ownership_takes, AT_packed, AT_pascal, AT_pure, AT_regparm, AT_section, AT_sentinel, AT_stdcall, AT_thiscall, AT_transparent_union, @@ -467,7 +467,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK-tokens: Punctuation: "{" [45:41 - 45:42] CompoundStmt= // CHECK-tokens: Keyword: "return" [45:43 - 45:49] ReturnStmt= // CHECK-tokens: Identifier: "a" [45:50 - 45:51] DeclRefExpr=a:45:28 -// CHECK-tokens: Punctuation: "<" [45:52 - 45:53] BinaryOperator= +// CHECK-tokens: Punctuation: "<" [45:52 - 45:53] BinaryOperator=< // CHECK-tokens: Identifier: "b" [45:54 - 45:55] DeclRefExpr=b:45:38 // CHECK-tokens: Punctuation: "?" [45:56 - 45:57] ConditionalOperator= // CHECK-tokens: Identifier: "a" [45:58 - 45:59] DeclRefExpr=a:45:28 @@ -566,11 +566,11 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK-tokens: Punctuation: "{" [52:43 - 52:44] CompoundStmt= // CHECK-tokens: Keyword: "return" [53:5 - 53:11] ReturnStmt= // CHECK-tokens: Identifier: "Length" [53:12 - 53:18] MemberRefExpr=Length:44:10 -// CHECK-tokens: Punctuation: ">=" [53:19 - 53:21] BinaryOperator= +// CHECK-tokens: Punctuation: ">=" [53:19 - 53:21] BinaryOperator=>= // CHECK-tokens: Identifier: "Prefix" [53:22 - 53:28] DeclRefExpr=Prefix:52:29 // CHECK-tokens: Punctuation: "." [53:28 - 53:29] MemberRefExpr=Length:44:10 // CHECK-tokens: Identifier: "Length" [53:29 - 53:35] MemberRefExpr=Length:44:10 -// CHECK-tokens: Punctuation: "&&" [53:36 - 53:38] BinaryOperator= +// CHECK-tokens: Punctuation: "&&" [53:36 - 53:38] BinaryOperator=&& // CHECK-tokens: Identifier: "memcmp" [54:11 - 54:17] DeclRefExpr=memcmp:7:7 // CHECK-tokens: Punctuation: "(" [54:17 - 54:18] CallExpr=memcmp:7:7 // CHECK-tokens: Identifier: "Data" [54:18 - 54:22] MemberRefExpr=Data:43:15 @@ -583,7 +583,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK-tokens: Punctuation: "." [54:43 - 54:44] MemberRefExpr=Length:44:10 // CHECK-tokens: Identifier: "Length" [54:44 - 54:50] MemberRefExpr=Length:44:10 // CHECK-tokens: Punctuation: ")" [54:50 - 54:51] CallExpr=memcmp:7:7 -// CHECK-tokens: Punctuation: "==" [54:52 - 54:54] BinaryOperator= +// CHECK-tokens: Punctuation: "==" [54:52 - 54:54] BinaryOperator=== // CHECK-tokens: Literal: "0" [54:55 - 54:56] IntegerLiteral= // CHECK-tokens: Punctuation: ";" [54:56 - 54:57] CompoundStmt= // CHECK-tokens: Punctuation: "}" [55:3 - 55:4] CompoundStmt= @@ -597,17 +597,17 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK-tokens: Punctuation: "{" [56:41 - 56:42] CompoundStmt= // CHECK-tokens: Keyword: "return" [57:5 - 57:11] ReturnStmt= // CHECK-tokens: Identifier: "Length" [57:12 - 57:18] MemberRefExpr=Length:44:10 -// CHECK-tokens: Punctuation: ">=" [57:19 - 57:21] BinaryOperator= +// CHECK-tokens: Punctuation: ">=" [57:19 - 57:21] BinaryOperator=>= // CHECK-tokens: Identifier: "Suffix" [57:22 - 57:28] DeclRefExpr=Suffix:56:27 // CHECK-tokens: Punctuation: "." [57:28 - 57:29] MemberRefExpr=Length:44:10 // CHECK-tokens: Identifier: "Length" [57:29 - 57:35] MemberRefExpr=Length:44:10 -// CHECK-tokens: Punctuation: "&&" [57:36 - 57:38] BinaryOperator= +// CHECK-tokens: Punctuation: "&&" [57:36 - 57:38] BinaryOperator=&& // CHECK-tokens: Identifier: "memcmp" [58:7 - 58:13] DeclRefExpr=memcmp:7:7 // CHECK-tokens: Punctuation: "(" [58:13 - 58:14] CallExpr=memcmp:7:7 // CHECK-tokens: Identifier: "end" [58:14 - 58:17] MemberRefExpr=end:50:12 // CHECK-tokens: Punctuation: "(" [58:17 - 58:18] CallExpr=end:50:12 // CHECK-tokens: Punctuation: ")" [58:18 - 58:19] CallExpr=end:50:12 -// CHECK-tokens: Punctuation: "-" [58:20 - 58:21] BinaryOperator= +// CHECK-tokens: Punctuation: "-" [58:20 - 58:21] BinaryOperator=- // CHECK-tokens: Identifier: "Suffix" [58:22 - 58:28] DeclRefExpr=Suffix:56:27 // CHECK-tokens: Punctuation: "." [58:28 - 58:29] MemberRefExpr=Length:44:10 // CHECK-tokens: Identifier: "Length" [58:29 - 58:35] MemberRefExpr=Length:44:10 @@ -620,7 +620,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK-tokens: Punctuation: "." [58:56 - 58:57] MemberRefExpr=Length:44:10 // CHECK-tokens: Identifier: "Length" [58:57 - 58:63] MemberRefExpr=Length:44:10 // CHECK-tokens: Punctuation: ")" [58:63 - 58:64] CallExpr=memcmp:7:7 -// CHECK-tokens: Punctuation: "==" [58:65 - 58:67] BinaryOperator= +// CHECK-tokens: Punctuation: "==" [58:65 - 58:67] BinaryOperator=== // CHECK-tokens: Literal: "0" [58:68 - 58:69] IntegerLiteral= // CHECK-tokens: Punctuation: ";" [58:69 - 58:70] CompoundStmt= // CHECK-tokens: Punctuation: "}" [59:3 - 59:4] CompoundStmt= @@ -641,7 +641,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK-tokens: Identifier: "StringRef" [61:12 - 61:21] TypeRef=class llvm::StringRef:38:7 // CHECK-tokens: Punctuation: "(" [61:21 - 61:22] CallExpr=StringRef:49:3 // CHECK-tokens: Identifier: "Data" [61:22 - 61:26] MemberRefExpr=Data:43:15 -// CHECK-tokens: Punctuation: "+" [61:27 - 61:28] BinaryOperator= +// CHECK-tokens: Punctuation: "+" [61:27 - 61:28] BinaryOperator=+ // CHECK-tokens: Identifier: "Start" [61:29 - 61:34] DeclRefExpr=Start:60:27 // CHECK-tokens: Punctuation: "," [61:34 - 61:35] CallExpr=StringRef:49:3 // CHECK-tokens: Identifier: "min" [61:36 - 61:39] DeclRefExpr=min:45:17 @@ -649,7 +649,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK-tokens: Identifier: "N" [61:40 - 61:41] DeclRefExpr=N:60:41 // CHECK-tokens: Punctuation: "," [61:41 - 61:42] CallExpr=min:45:17 // CHECK-tokens: Identifier: "Length" [61:43 - 61:49] MemberRefExpr=Length:44:10 -// CHECK-tokens: Punctuation: "-" [61:50 - 61:51] BinaryOperator= +// CHECK-tokens: Punctuation: "-" [61:50 - 61:51] BinaryOperator=- // CHECK-tokens: Identifier: "Start" [61:52 - 61:57] DeclRefExpr=Start:60:27 // CHECK-tokens: Punctuation: ")" [61:57 - 61:58] CallExpr=min:45:17 // CHECK-tokens: Punctuation: ")" [61:58 - 61:59] CallExpr=StringRef:49:3 @@ -738,7 +738,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK-tokens: Punctuation: ")" [74:47 - 74:48] ParenExpr= // CHECK-tokens: Punctuation: "->" [74:48 - 74:50] MemberRefExpr=second:4:55 // CHECK-tokens: Identifier: "second" [74:50 - 74:56] MemberRefExpr=second:4:55 -// CHECK-tokens: Punctuation: "-" [74:57 - 74:58] BinaryOperator= +// CHECK-tokens: Punctuation: "-" [74:57 - 74:58] BinaryOperator=- // CHECK-tokens: Literal: "2" [74:59 - 74:60] IntegerLiteral= // CHECK-tokens: Punctuation: ";" [74:60 - 74:61] DeclStmt= // CHECK-tokens: Keyword: "return" [75:5 - 75:11] ReturnStmt= @@ -752,7 +752,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK-tokens: Literal: "0" [75:27 - 75:28] IntegerLiteral= // CHECK-tokens: Punctuation: "]" [75:28 - 75:29] ArraySubscriptExpr= // CHECK-tokens: Punctuation: ")" [75:29 - 75:30] ParenExpr= -// CHECK-tokens: Punctuation: "|" [75:31 - 75:32] BinaryOperator= +// CHECK-tokens: Punctuation: "|" [75:31 - 75:32] BinaryOperator=| // CHECK-tokens: Punctuation: "(" [75:33 - 75:34] ParenExpr= // CHECK-tokens: Punctuation: "(" [75:34 - 75:35] ParenExpr= // CHECK-tokens: Punctuation: "(" [75:35 - 75:36] CStyleCastExpr= @@ -763,11 +763,11 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK-tokens: Literal: "1" [75:48 - 75:49] IntegerLiteral= // CHECK-tokens: Punctuation: "]" [75:49 - 75:50] ArraySubscriptExpr= // CHECK-tokens: Punctuation: ")" [75:50 - 75:51] ParenExpr= -// CHECK-tokens: Punctuation: "<<" [75:52 - 75:54] BinaryOperator= +// CHECK-tokens: Punctuation: "<<" [75:52 - 75:54] BinaryOperator=<< // CHECK-tokens: Literal: "8" [75:55 - 75:56] IntegerLiteral= // CHECK-tokens: Punctuation: ")" [75:56 - 75:57] ParenExpr= // CHECK-tokens: Punctuation: ")" [75:57 - 75:58] ParenExpr= -// CHECK-tokens: Punctuation: "-" [75:59 - 75:60] BinaryOperator= +// CHECK-tokens: Punctuation: "-" [75:59 - 75:60] BinaryOperator=- // CHECK-tokens: Literal: "1" [75:61 - 75:62] IntegerLiteral= // CHECK-tokens: Punctuation: ";" [75:62 - 75:63] CompoundStmt= // CHECK-tokens: Punctuation: "}" [76:3 - 76:4] CompoundStmt= @@ -924,7 +924,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK-tokens: Punctuation: "(" [102:26 - 102:27] CallExpr=startswith:52:8 // CHECK-tokens: Literal: ""__"" [102:27 - 102:31] StringLiteral= // CHECK-tokens: Punctuation: ")" [102:31 - 102:32] CallExpr=startswith:52:8 -// CHECK-tokens: Punctuation: "&&" [102:33 - 102:35] BinaryOperator= +// CHECK-tokens: Punctuation: "&&" [102:33 - 102:35] BinaryOperator=&& // CHECK-tokens: Identifier: "AttrName" [102:36 - 102:44] DeclRefExpr=AttrName:101:19 // CHECK-tokens: Punctuation: "." [102:44 - 102:45] MemberRefExpr=endswith:56:8 // CHECK-tokens: Identifier: "endswith" [102:45 - 102:53] MemberRefExpr=endswith:56:8 @@ -945,7 +945,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK-tokens: Identifier: "size" [103:44 - 103:48] MemberRefExpr=size:51:10 // CHECK-tokens: Punctuation: "(" [103:48 - 103:49] CallExpr=size:51:10 // CHECK-tokens: Punctuation: ")" [103:49 - 103:50] CallExpr=size:51:10 -// CHECK-tokens: Punctuation: "-" [103:51 - 103:52] BinaryOperator= +// CHECK-tokens: Punctuation: "-" [103:51 - 103:52] BinaryOperator=- // CHECK-tokens: Literal: "4" [103:53 - 103:54] IntegerLiteral= // CHECK-tokens: Punctuation: ")" [103:54 - 103:55] CallExpr=substr:60:13 // CHECK-tokens: Punctuation: ";" [103:55 - 103:56] CompoundStmt= @@ -1647,7 +1647,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK: 45:41: CompoundStmt= Extent=[45:41 - 45:66] // CHECK: 45:43: ReturnStmt= Extent=[45:43 - 45:63] // CHECK: 45:50: ConditionalOperator= Extent=[45:50 - 45:63] -// CHECK: 45:50: BinaryOperator= Extent=[45:50 - 45:55] +// CHECK: 45:50: BinaryOperator=< Extent=[45:50 - 45:55] // CHECK: 45:50: DeclRefExpr=a:45:28 Extent=[45:50 - 45:51] // CHECK: 45:54: DeclRefExpr=b:45:38 Extent=[45:54 - 45:55] // CHECK: 45:58: DeclRefExpr=a:45:28 Extent=[45:58 - 45:59] @@ -1695,13 +1695,13 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK: 52:19: TypeRef=class llvm::StringRef:38:7 Extent=[52:19 - 52:28] // CHECK: 52:43: CompoundStmt= Extent=[52:43 - 55:4] // CHECK: 53:5: ReturnStmt= Extent=[53:5 - 54:56] -// CHECK: 53:12: BinaryOperator= Extent=[53:12 - 54:56] -// CHECK: 53:12: BinaryOperator= Extent=[53:12 - 53:35] +// CHECK: 53:12: BinaryOperator=&& Extent=[53:12 - 54:56] +// CHECK: 53:12: BinaryOperator=>= Extent=[53:12 - 53:35] // CHECK: 53:12: UnexposedExpr=Length:44:10 Extent=[53:12 - 53:18] // CHECK: 53:12: MemberRefExpr=Length:44:10 Extent=[53:12 - 53:18] // CHECK: 53:29: MemberRefExpr=Length:44:10 SingleRefName=[53:29 - 53:35] RefName=[53:29 - 53:35] Extent=[53:22 - 53:35] // CHECK: 53:22: DeclRefExpr=Prefix:52:29 Extent=[53:22 - 53:28] -// CHECK: 54:11: BinaryOperator= Extent=[54:11 - 54:56] +// CHECK: 54:11: BinaryOperator=== Extent=[54:11 - 54:56] // CHECK: 54:11: CallExpr=memcmp:7:7 Extent=[54:11 - 54:51] // CHECK: 54:11: UnexposedExpr=memcmp:7:7 Extent=[54:11 - 54:17] // CHECK: 54:11: DeclRefExpr=memcmp:7:7 Extent=[54:11 - 54:17] @@ -1718,18 +1718,18 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK: 56:17: TypeRef=class llvm::StringRef:38:7 Extent=[56:17 - 56:26] // CHECK: 56:41: CompoundStmt= Extent=[56:41 - 59:4] // CHECK: 57:5: ReturnStmt= Extent=[57:5 - 58:69] -// CHECK: 57:12: BinaryOperator= Extent=[57:12 - 58:69] -// CHECK: 57:12: BinaryOperator= Extent=[57:12 - 57:35] +// CHECK: 57:12: BinaryOperator=&& Extent=[57:12 - 58:69] +// CHECK: 57:12: BinaryOperator=>= Extent=[57:12 - 57:35] // CHECK: 57:12: UnexposedExpr=Length:44:10 Extent=[57:12 - 57:18] // CHECK: 57:12: MemberRefExpr=Length:44:10 Extent=[57:12 - 57:18] // CHECK: 57:29: MemberRefExpr=Length:44:10 SingleRefName=[57:29 - 57:35] RefName=[57:29 - 57:35] Extent=[57:22 - 57:35] // CHECK: 57:22: DeclRefExpr=Suffix:56:27 Extent=[57:22 - 57:28] -// CHECK: 58:7: BinaryOperator= Extent=[58:7 - 58:69] +// CHECK: 58:7: BinaryOperator=== Extent=[58:7 - 58:69] // CHECK: 58:7: CallExpr=memcmp:7:7 Extent=[58:7 - 58:64] // CHECK: 58:7: UnexposedExpr=memcmp:7:7 Extent=[58:7 - 58:13] // CHECK: 58:7: DeclRefExpr=memcmp:7:7 Extent=[58:7 - 58:13] // CHECK: 58:14: UnexposedExpr= Extent=[58:14 - 58:35] -// CHECK: 58:14: BinaryOperator= Extent=[58:14 - 58:35] +// CHECK: 58:14: BinaryOperator=- Extent=[58:14 - 58:35] // CHECK: 58:14: CallExpr=end:50:12 Extent=[58:14 - 58:19] // CHECK: 58:14: MemberRefExpr=end:50:12 Extent=[58:14 - 58:17] // CHECK: 58:29: MemberRefExpr=Length:44:10 SingleRefName=[58:29 - 58:35] RefName=[58:29 - 58:35] Extent=[58:22 - 58:35] @@ -1753,7 +1753,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK: 61:12: UnexposedExpr=StringRef:49:3 Extent=[61:12 - 61:59] // CHECK: 61:12: CallExpr=StringRef:49:3 Extent=[61:12 - 61:59] // CHECK: 61:12: TypeRef=class llvm::StringRef:38:7 Extent=[61:12 - 61:21] -// CHECK: 61:22: BinaryOperator= Extent=[61:22 - 61:34] +// CHECK: 61:22: BinaryOperator=+ Extent=[61:22 - 61:34] // CHECK: 61:22: UnexposedExpr=Data:43:15 Extent=[61:22 - 61:26] // CHECK: 61:22: MemberRefExpr=Data:43:15 Extent=[61:22 - 61:26] // CHECK: 61:29: DeclRefExpr=Start:60:27 Extent=[61:29 - 61:34] @@ -1761,7 +1761,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK: 61:36: UnexposedExpr=min:45:17 Extent=[61:36 - 61:39] // CHECK: 61:36: DeclRefExpr=min:45:17 Extent=[61:36 - 61:39] // CHECK: 61:40: DeclRefExpr=N:60:41 Extent=[61:40 - 61:41] -// CHECK: 61:43: BinaryOperator= Extent=[61:43 - 61:57] +// CHECK: 61:43: BinaryOperator=- Extent=[61:43 - 61:57] // CHECK: 61:43: UnexposedExpr=Length:44:10 Extent=[61:43 - 61:49] // CHECK: 61:43: MemberRefExpr=Length:44:10 Extent=[61:43 - 61:49] // CHECK: 61:52: DeclRefExpr=Start:60:27 Extent=[61:52 - 61:57] @@ -1789,7 +1789,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK: 73:25: TypeRef=class clang::IdentifierInfo:66:7 Extent=[73:25 - 73:39] // CHECK: 74:5: DeclStmt= Extent=[74:5 - 74:61] // CHECK: 74:17: VarDecl=p:74:17 (Definition) Extent=[74:5 - 74:60] -// CHECK: 74:21: BinaryOperator= Extent=[74:21 - 74:60] +// CHECK: 74:21: BinaryOperator=- Extent=[74:21 - 74:60] // CHECK: 74:50: UnexposedExpr=second:4:55 Extent=[74:21 - 74:56] // CHECK: 74:50: MemberRefExpr=second:4:55 SingleRefName=[74:50 - 74:56] RefName=[74:50 - 74:56] Extent=[74:21 - 74:56] // CHECK: 74:21: ParenExpr= Extent=[74:21 - 74:48] @@ -1798,9 +1798,9 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK: 74:43: CXXThisExpr= Extent=[74:43 - 74:47] // CHECK: 74:59: IntegerLiteral= Extent=[74:59 - 74:60] // CHECK: 75:5: ReturnStmt= Extent=[75:5 - 75:62] -// CHECK: 75:12: BinaryOperator= Extent=[75:12 - 75:62] +// CHECK: 75:12: BinaryOperator=- Extent=[75:12 - 75:62] // CHECK: 75:12: ParenExpr= Extent=[75:12 - 75:58] -// CHECK: 75:13: BinaryOperator= Extent=[75:13 - 75:57] +// CHECK: 75:13: BinaryOperator=| Extent=[75:13 - 75:57] // CHECK: 75:13: ParenExpr= Extent=[75:13 - 75:30] // CHECK: 75:14: CStyleCastExpr= Extent=[75:14 - 75:29] // CHECK: 75:25: UnexposedExpr= Extent=[75:25 - 75:29] @@ -1809,7 +1809,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK: 75:25: DeclRefExpr=p:74:17 Extent=[75:25 - 75:26] // CHECK: 75:27: IntegerLiteral= Extent=[75:27 - 75:28] // CHECK: 75:33: ParenExpr= Extent=[75:33 - 75:57] -// CHECK: 75:34: BinaryOperator= Extent=[75:34 - 75:56] +// CHECK: 75:34: BinaryOperator=<< Extent=[75:34 - 75:56] // CHECK: 75:34: ParenExpr= Extent=[75:34 - 75:51] // CHECK: 75:35: CStyleCastExpr= Extent=[75:35 - 75:50] // CHECK: 75:46: UnexposedExpr= Extent=[75:46 - 75:50] @@ -1878,7 +1878,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK: 101:36: MemberRefExpr=getName:77:19 SingleRefName=[101:36 - 101:43] RefName=[101:36 - 101:43] Extent=[101:30 - 101:43] // CHECK: 101:30: DeclRefExpr=Name:100:67 Extent=[101:30 - 101:34] // CHECK: 102:3: IfStmt= Extent=[102:3 - 103:55] -// CHECK: 102:7: BinaryOperator= Extent=[102:7 - 102:59] +// CHECK: 102:7: BinaryOperator=&& Extent=[102:7 - 102:59] // CHECK: 102:7: CallExpr=startswith:52:8 Extent=[102:7 - 102:32] // CHECK: 102:16: MemberRefExpr=startswith:52:8 SingleRefName=[102:16 - 102:26] RefName=[102:16 - 102:26] Extent=[102:7 - 102:26] // CHECK: 102:7: UnexposedExpr=AttrName:101:19 Extent=[102:7 - 102:15] @@ -1910,7 +1910,7 @@ AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) { // CHECK: 103:16: DeclRefExpr=AttrName:101:19 Extent=[103:16 - 103:24] // CHECK: 103:32: UnexposedExpr= Extent=[103:32 - 103:33] // CHECK: 103:32: IntegerLiteral= Extent=[103:32 - 103:33] -// CHECK: 103:35: BinaryOperator= Extent=[103:35 - 103:54] +// CHECK: 103:35: BinaryOperator=- Extent=[103:35 - 103:54] // CHECK: 103:35: CallExpr=size:51:10 Extent=[103:35 - 103:50] // CHECK: 103:44: MemberRefExpr=size:51:10 SingleRefName=[103:44 - 103:48] RefName=[103:44 - 103:48] Extent=[103:35 - 103:48] // CHECK: 103:35: UnexposedExpr=AttrName:101:19 Extent=[103:35 - 103:43] diff --git a/clang/test/Index/remap-load.c b/clang/test/Index/remap-load.c index f886cea..581095a 100644 --- a/clang/test/Index/remap-load.c +++ b/clang/test/Index/remap-load.c @@ -4,7 +4,7 @@ // CHECK: remap-load.c:1:13: ParmDecl=parm1:1:13 (Definition) Extent=[1:9 - 1:18] // CHECK: remap-load.c:1:26: ParmDecl=parm2:1:26 (Definition) Extent=[1:20 - 1:31] // CHECK: remap-load.c:2:10: UnexposedExpr= Extent=[2:10 - 2:23] -// CHECK: remap-load.c:2:10: BinaryOperator= Extent=[2:10 - 2:23] +// CHECK: remap-load.c:2:10: BinaryOperator=+ Extent=[2:10 - 2:23] // CHECK: remap-load.c:2:10: UnexposedExpr=parm1:1:13 Extent=[2:10 - 2:15] // CHECK: remap-load.c:2:10: DeclRefExpr=parm1:1:13 Extent=[2:10 - 2:15] // CHECK: remap-load.c:2:18: DeclRefExpr=parm2:1:26 Extent=[2:18 - 2:23] diff --git a/clang/test/Index/usrs.m b/clang/test/Index/usrs.m index 9a1407c..2114b71 100644 --- a/clang/test/Index/usrs.m +++ b/clang/test/Index/usrs.m @@ -182,7 +182,7 @@ int test_multi_declaration(void) { // CHECK-source: usrs.m:3:40: ParmDecl=y:3:40 (Definition) Extent=[3:36 - 3:41] // CHECK-source: usrs.m:3:43: CompoundStmt= Extent=[3:43 - 3:60] // CHECK-source: usrs.m:3:45: ReturnStmt= Extent=[3:45 - 3:57] -// CHECK-source: usrs.m:3:52: BinaryOperator= Extent=[3:52 - 3:57] +// CHECK-source: usrs.m:3:52: BinaryOperator=+ Extent=[3:52 - 3:57] // CHECK-source: usrs.m:3:52: DeclRefExpr=x:3:33 Extent=[3:52 - 3:53] // CHECK-source: usrs.m:3:56: DeclRefExpr=y:3:40 Extent=[3:56 - 3:57] // CHECK-source: usrs.m:5:1: EnumDecl=enum (unnamed at {{.*}}):5:1 (Definition) Extent=[5:1 - 8:2] diff --git a/clang/tools/c-index-test/c-index-test.c b/clang/tools/c-index-test/c-index-test.c index e078e9b..46016c1 100644 --- a/clang/tools/c-index-test/c-index-test.c +++ b/clang/tools/c-index-test/c-index-test.c @@ -1840,6 +1840,22 @@ static enum CXChildVisitResult PrintTypeSize(CXCursor cursor, CXCursor p, return CXChildVisit_Recurse; } +static enum CXChildVisitResult PrintBinOps(CXCursor C, CXCursor p, + CXClientData d) { + enum CXCursorKind ck = clang_getCursorKind(C); + enum CX_BinaryOperatorKind bok; + CXString opstr; + if (ck != CXCursor_BinaryOperator && ck != CXCursor_CompoundAssignOperator) + return CXChildVisit_Recurse; + + PrintCursor(C, NULL); + bok = clang_Cursor_getBinaryOpcode(C); + opstr = clang_Cursor_getBinaryOpcodeStr(bok); + printf(" BinOp=%s %d\n", clang_getCString(opstr), bok); + + return CXChildVisit_Recurse; +} + /******************************************************************************/ /* Mangling testing. */ /******************************************************************************/ @@ -5098,6 +5114,8 @@ int cindextest_main(int argc, const char **argv) { else if (argc > 2 && strcmp(argv[1], "-test-print-bitwidth") == 0) return perform_test_load_source(argc - 2, argv + 2, "all", PrintBitWidth, 0); + else if (argc > 2 && strcmp(argv[1], "-test-print-binops") == 0) + return perform_test_load_source(argc - 2, argv + 2, "all", PrintBinOps, 0); else if (argc > 2 && strcmp(argv[1], "-test-print-mangle") == 0) return perform_test_load_tu(argv[2], "all", NULL, PrintMangledName, NULL); else if (argc > 2 && strcmp(argv[1], "-test-print-manglings") == 0) diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index 35312e3..424c6ee 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/tools/libclang/CIndex.cpp @@ -5225,6 +5225,11 @@ CXString clang_getCursorSpelling(CXCursor C) { return cxstring::createDup(OS.str()); } + if (C.kind == CXCursor_BinaryOperator || + C.kind == CXCursor_CompoundAssignOperator) { + return clang_Cursor_getBinaryOpcodeStr(clang_Cursor_getBinaryOpcode(C)); + } + const Decl *D = getDeclFromExpr(getCursorExpr(C)); if (D) return getDeclSpelling(D); @@ -8955,6 +8960,37 @@ unsigned clang_Cursor_isExternalSymbol(CXCursor C, CXString *language, return 0; } +enum CX_BinaryOperatorKind clang_Cursor_getBinaryOpcode(CXCursor C) { + if (C.kind != CXCursor_BinaryOperator && + C.kind != CXCursor_CompoundAssignOperator) { + return CX_BO_Invalid; + } + + const Expr *D = getCursorExpr(C); + if (const auto *BinOp = dyn_cast<BinaryOperator>(D)) { + switch (BinOp->getOpcode()) { + default: + return CX_BO_Invalid; +#define BINARY_OPERATION(Name, Spelling) \ + case BO_##Name: \ + return CX_BO_##Name; +#include "clang/AST/OperationKinds.def" + } + } + + return CX_BO_Invalid; +} + +CXString clang_Cursor_getBinaryOpcodeStr(enum CX_BinaryOperatorKind Op) { + if (Op > CX_BO_LAST) + return cxstring::createEmpty(); + + return cxstring::createDup( + // BinaryOperator::getOpcodeStr has no case for CX_BO_Invalid, + // so subtract 1 + BinaryOperator::getOpcodeStr(static_cast<BinaryOperatorKind>(Op - 1))); +} + CXSourceRange clang_Cursor_getCommentRange(CXCursor C) { if (!clang_isDeclaration(C.kind)) return clang_getNullRange(); diff --git a/clang/tools/libclang/libclang.map b/clang/tools/libclang/libclang.map index 5676198..91c329b5 100644 --- a/clang/tools/libclang/libclang.map +++ b/clang/tools/libclang/libclang.map @@ -54,6 +54,8 @@ LLVM_13 { clang_Cursor_Evaluate; clang_Cursor_getArgument; clang_Cursor_getBriefCommentText; + clang_Cursor_getBinaryOpcode; + clang_Cursor_getBinaryOpcodeStr; clang_Cursor_getCXXManglings; clang_Cursor_getCommentRange; clang_Cursor_getMangling; |