[cfe-commits] r141200 - in /cfe/trunk: bindings/python/clang/ include/clang-c/ test/Index/ tools/libclang/

Douglas Gregor dgregor at apple.com
Wed Oct 5 12:00:18 PDT 2011


Author: dgregor
Date: Wed Oct  5 14:00:14 2011
New Revision: 141200

URL: http://llvm.org/viewvc/llvm-project?rev=141200&view=rev
Log:
Expose more statement, expression, and declaration kinds in libclang,
from Manuel Holtgrewe!

Modified:
    cfe/trunk/bindings/python/clang/cindex.py
    cfe/trunk/include/clang-c/Index.h
    cfe/trunk/test/Index/TestClassDecl.m
    cfe/trunk/test/Index/TestClassForwardDecl.m
    cfe/trunk/test/Index/annotate-nested-name-specifier.cpp
    cfe/trunk/test/Index/annotate-tokens-cxx0x.cpp
    cfe/trunk/test/Index/annotate-tokens-pp.c
    cfe/trunk/test/Index/annotate-tokens-preamble.c
    cfe/trunk/test/Index/annotate-tokens-with-default-args.cpp
    cfe/trunk/test/Index/annotate-tokens.c
    cfe/trunk/test/Index/annotate-tokens.cpp
    cfe/trunk/test/Index/annotate-tokens.m
    cfe/trunk/test/Index/blocks.c
    cfe/trunk/test/Index/c-index-api-loadTU-test.m
    cfe/trunk/test/Index/c-index-getCursor-test.m
    cfe/trunk/test/Index/cursor-ref-names.cpp
    cfe/trunk/test/Index/index-templates.cpp
    cfe/trunk/test/Index/load-stmts.cpp
    cfe/trunk/test/Index/local-symbols.m
    cfe/trunk/test/Index/nested-binaryoperators.cpp
    cfe/trunk/test/Index/preamble.c
    cfe/trunk/test/Index/preamble_macro_template.cpp
    cfe/trunk/test/Index/print-typekind.c
    cfe/trunk/test/Index/recursive-cxx-member-calls.cpp
    cfe/trunk/test/Index/recursive-member-access.c
    cfe/trunk/test/Index/remap-load.c
    cfe/trunk/test/Index/usrs.m
    cfe/trunk/tools/libclang/CIndex.cpp
    cfe/trunk/tools/libclang/CXCursor.cpp

Modified: cfe/trunk/bindings/python/clang/cindex.py
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/bindings/python/clang/cindex.py?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/bindings/python/clang/cindex.py (original)
+++ cfe/trunk/bindings/python/clang/cindex.py Wed Oct  5 14:00:14 2011
@@ -451,6 +451,19 @@
 # A C++ using declaration
 CursorKind.USING_DECLARATION = CursorKind(35)
 
+# A Type alias decl.
+CursorKind.TYPE_ALIAS_DECL = CursorKind(36)
+
+# A Objective-C synthesize decl
+CursorKind.OBJC_SYNTHESIZE_DECL = CursorKind(37)
+
+# A Objective-C dynamic decl
+CursorKind.OBJC_DYNAMIC_DECL = CursorKind(38)
+
+# A C++ access specifier decl.
+CursorKind.CXX_ACCESS_SPEC_DECL = CursorKind(39)
+
+
 ###
 # Reference Kinds
 
@@ -524,6 +537,154 @@
 # An expression that represents a block literal.
 CursorKind.BLOCK_EXPR = CursorKind(105)
 
+# An integer literal.
+CursorKind.INTEGER_LITERAL = CursorKind(106)
+
+# A floating point number literal.
+CursorKind.FLOATING_LITERAL = CursorKind(107)
+
+# An imaginary number literal.
+CursorKind.IMAGINARY_LITERAL = CursorKind(108)
+
+# A string literal.
+CursorKind.STRING_LITERAL = CursorKind(109)
+
+# A character literal.
+CursorKind.CHARACTER_LITERAL = CursorKind(110)
+
+# A parenthesized expression, e.g. "(1)".
+#
+# This AST node is only formed if full location information is requested.
+CursorKind.PAREN_EXPR = CursorKind(111)
+
+# This represents the unary-expression's (except sizeof and
+# alignof).
+CursorKind.UNARY_OPERATOR = CursorKind(112)
+
+# [C99 6.5.2.1] Array Subscripting.
+CursorKind.ARRAY_SUBSCRIPT_EXPR = CursorKind(113)
+
+# A builtin binary operation expression such as "x + y" or
+# "x <= y".
+CursorKind.BINARY_OPERATOR = CursorKind(114)
+
+# Compound assignment such as "+=".
+CursorKind.COMPOUND_ASSIGNMENT_OPERATOR = CursorKind(115)
+
+# The ?: ternary operator.
+CursorKind.CONDITONAL_OPERATOR = CursorKind(116)
+
+# An explicit cast in C (C99 6.5.4) or a C-style cast in C++
+# (C++ [expr.cast]), which uses the syntax (Type)expr.
+#
+# For example: (int)f.
+CursorKind.CSTYLE_CAST_EXPR = CursorKind(117)
+
+# [C99 6.5.2.5]
+CursorKind.COMPOUND_LITERAL_EXPR = CursorKind(118)
+
+# Describes an C or C++ initializer list.
+CursorKind.INIT_LIST_EXPR = CursorKind(119)
+
+# The GNU address of label extension, representing &&label.
+CursorKind.ADDR_LABEL_EXPR = CursorKind(120)
+
+# This is the GNU Statement Expression extension: ({int X=4; X;})
+CursorKind.StmtExpr = CursorKind(121)
+
+# Represents a C1X generic selection.
+CursorKind.GENERIC_SELECTION_EXPR = CursorKind(122)
+
+# Implements the GNU __null extension, which is a name for a null
+# pointer constant that has integral type (e.g., int or long) and is the same
+# size and alignment as a pointer.
+#
+# The __null extension is typically only used by system headers, which define
+# NULL as __null in C++ rather than using 0 (which is an integer that may not
+# match the size of a pointer).
+CursorKind.GNU_NULL_EXPR = CursorKind(123)
+
+# C++'s static_cast<> expression.
+CursorKind.CXX_STATIC_CAST_EXPR = CursorKind(124)
+
+# C++'s dynamic_cast<> expression.
+CursorKind.CXX_DYNAMIC_CAST_EXPR = CursorKind(125)
+
+# C++'s reinterpret_cast<> expression.
+CursorKind.CXX_REINTERPRET_CAST_EXPR = CursorKind(126)
+
+# C++'s const_cast<> expression.
+CursorKind.CXX_CONST_CAST_EXPR = CursorKind(127)
+
+# Represents an explicit C++ type conversion that uses "functional"
+# notion (C++ [expr.type.conv]).
+#
+# Example:
+# \code
+#   x = int(0.5);
+# \endcode
+CursorKind.CXX_FUNCTIONAL_CAST_EXPR = CursorKind(128)
+
+# A C++ typeid expression (C++ [expr.typeid]).
+CursorKind.CXX_TYPEID_EXPR = CursorKind(129)
+
+# [C++ 2.13.5] C++ Boolean Literal.
+CursorKind.CXX_BOOL_LITERAL_EXPR = CursorKind(130)
+
+# [C++0x 2.14.7] C++ Pointer Literal.
+CursorKind.CXX_NULL_PTR_LITERAL_EXPR = CursorKind(131)
+
+# Represents the "this" expression in C++
+CursorKind.CXX_THIS_EXPR = CursorKind(132)
+
+# [C++ 15] C++ Throw Expression.
+#
+# This handles 'throw' and 'throw' assignment-expression. When
+# assignment-expression isn't present, Op will be null.
+CursorKind.CXX_THROW_EXPR = CursorKind(133)
+
+# A new expression for memory allocation and constructor calls, e.g:
+# "new CXXNewExpr(foo)".
+CursorKind.CXX_NEW_EXPR = CursorKind(134)
+
+# A delete expression for memory deallocation and destructor calls,
+# e.g. "delete[] pArray".
+CursorKind.CXX_DELETE_EXPR = CursorKind(135)
+
+# Represents a unary expression.
+CursorKind.CXX_UNARY_EXPR = CursorKind(136)
+
+# ObjCStringLiteral, used for Objective-C string literals i.e. "foo".
+CursorKind.OBJC_STRING_LITERAL = CursorKind(137)
+
+# ObjCEncodeExpr, used for in Objective-C.
+CursorKind.OBJC_ENCODE_EXPR = CursorKind(138)
+
+# ObjCSelectorExpr used for in Objective-C.
+CursorKind.OBJC_SELECTOR_EXPR = CursorKind(139)
+
+# Objective-C's protocol expression.
+CursorKind.OBJC_PROTOCOL_EXPR = CursorKind(140)
+
+# An Objective-C "bridged" cast expression, which casts between
+# Objective-C pointers and C pointers, transferring ownership in the process.
+#
+# \code
+#   NSString *str = (__bridge_transfer NSString *)CFCreateString();
+# \endcode
+CursorKind.OBJC_BRIDGE_CAST_EXPR = CursorKind(141)
+
+# Represents a C++0x pack expansion that produces a sequence of
+# expressions.
+#
+# A pack expansion expression contains a pattern (which itself is an
+# expression) followed by an ellipsis. For example:
+CursorKind.PACK_EXPANSION_EXPR = CursorKind(142)
+
+# Represents an expression that computes the length of a parameter
+# pack.
+CursorKind.SIZE_OF_PACK_EXPR = CursorKind(143)
+
 # A statement whose specific kind is not exposed via this interface.
 #
 # Unexposed statements have the same operations as any other kind of statement;
@@ -534,6 +695,92 @@
 # A labelled statement in a function.
 CursorKind.LABEL_STMT = CursorKind(201)
 
+# A compound statement
+CursorKind.COMPOUND_STMT = CursorKind(202)
+
+# A case statement.
+CursorKind.CASE_STMT = CursorKind(203)
+
+# A default statement.
+CursorKind.DEFAULT_STMT = CursorKind(204)
+
+# An if statement.
+CursorKind.IF_STMT = CursorKind(205)
+
+# A switch statement.
+CursorKind.SWITCH_STMT = CursorKind(206)
+
+# A while statement.
+CursorKind.WHILE_STMT = CursorKind(207)
+
+# A do statement.
+CursorKind.DO_STMT = CursorKind(208)
+
+# A for statement.
+CursorKind.FOR_STMT = CursorKind(209)
+
+# A goto statement.
+CursorKind.GOTO_STMT = CursorKind(210)
+
+# An indirect goto statement.
+CursorKind.INDIRECT_GOTO_STMT = CursorKind(211)
+
+# A continue statement.
+CursorKind.CONTINUE_STMT = CursorKind(212)
+
+# A break statement.
+CursorKind.BREAK_STMT = CursorKind(213)
+
+# A return statement.
+CursorKind.RETURN_STMT = CursorKind(214)
+
+# A GNU-style inline assembler statement.
+CursorKind.ASM_STMT = CursorKind(215)
+
+# Objective-C's overall @try- at catch-@finally statement.
+CursorKind.OBJC_AT_TRY_STMT = CursorKind(216)
+
+# Objective-C's @catch statement.
+CursorKind.OBJC_AT_CATCH_STMT = CursorKind(217)
+
+# Objective-C's @finally statement.
+CursorKind.OBJC_AT_FINALLY_STMT = CursorKind(218)
+
+# Objective-C's @throw statement.
+CursorKind.OBJC_AT_THROW_STMT = CursorKind(219)
+
+# Objective-C's @synchronized statement.
+CursorKind.OBJC_AT_SYNCHRONIZED_STMT = CursorKind(220)
+
+# Objective-C's autorealease pool statement.
+CursorKind.OBJC_AUTORELEASE_POOL_STMT = CursorKind(221)
+
+# Objective-C's for collection statement.
+CursorKind.OBJC_FOR_COLLECTION_STMT = CursorKind(222)
+
+# C++'s catch statement.
+CursorKind.CXX_CATCH_STMT = CursorKind(223)
+
+# C++'s try statement.
+CursorKind.CXX_TRY_STMT = CursorKind(224)
+
+# C++'s for (* : *) statement.
+CursorKind.CXX_FOR_RANGE_STMT = CursorKind(225)
+
+# Windows Structured Exception Handling's try statement.
+CursorKind.SEH_TRY_STMT = CursorKind(226)
+
+# Windows Structured Exception Handling's except statement.
+CursorKind.SEH_EXCEPT_STMT = CursorKind(227)
+
+# Windows Structured Exception Handling's finally statement.
+CursorKind.SEH_FINALLY_STMT = CursorKind(228)
+
+# The null statement.
+CursorKind.NULL_STMT = CursorKind(230)
+
+# Adaptor class for mixing declarations with statements and expressions.
+CursorKind.DECL_STMT = CursorKind(231)
 
 ###
 # Other Kinds
@@ -616,7 +863,9 @@
             # FIXME: clang_getCursorSpelling should be fixed to not assert on
             # this, for consistency with clang_getCursorUSR.
             return None
-        return Cursor_spelling(self)
+        if not hasattr(self, '_spelling'):
+            self._spelling = Cursor_spelling(self)
+        return self._spelling
 
     @property
     def displayname(self):
@@ -627,7 +876,9 @@
         such as the parameters of a function or template or the arguments of a
         class template specialization.
         """
-        return Cursor_displayname(self)
+        if not hasattr(self, '_displayname'):
+            self._displayname = Cursor_displayname(self)
+        return self._displayname
 
     @property
     def location(self):
@@ -635,7 +886,9 @@
         Return the source location (the starting character) of the entity
         pointed at by the cursor.
         """
-        return Cursor_loc(self)
+        if not hasattr(self, '_loc'):
+            self._loc = Cursor_loc(self)
+        return self._loc
 
     @property
     def extent(self):
@@ -643,7 +896,9 @@
         Return the source range (the range of text) occupied by the entity
         pointed at by the cursor.
         """
-        return Cursor_extent(self)
+        if not hasattr(self, '_extent'):
+            self._extent = Cursor_extent(self)
+        return self._extent
 
     @property
     def type(self):
@@ -651,7 +906,9 @@
         Retrieve the type (if any) of of the entity pointed at by the
         cursor.
         """
-        return Cursor_type(self)
+        if not hasattr(self, '_type'):
+            self._type = Cursor_type(self)
+        return self._type
 
     def get_children(self):
         """Return an iterator for accessing the children of this cursor."""

Modified: cfe/trunk/include/clang-c/Index.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang-c/Index.h?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/include/clang-c/Index.h (original)
+++ cfe/trunk/include/clang-c/Index.h Wed Oct  5 14:00:14 2011
@@ -1311,6 +1311,7 @@
   CXCursor_ObjCDynamicDecl               = 38,
   /** \brief An access specifier. */
   CXCursor_CXXAccessSpecifier            = 39,
+
   CXCursor_FirstDecl                     = CXCursor_UnexposedDecl,
   CXCursor_LastDecl                      = CXCursor_CXXAccessSpecifier,
 
@@ -1451,7 +1452,207 @@
   /** \brief An expression that represents a block literal. */
   CXCursor_BlockExpr                     = 105,
 
-  CXCursor_LastExpr                      = 105,
+  /** \brief An integer literal.
+   */
+  CXCursor_IntegerLiteral                = 106,
+
+  /** \brief A floating point number literal.
+   */
+  CXCursor_FloatingLiteral               = 107,
+
+  /** \brief An imaginary number literal.
+   */
+  CXCursor_ImaginaryLiteral              = 108,
+
+  /** \brief A string literal.
+   */
+  CXCursor_StringLiteral                 = 109,
+
+  /** \brief A character literal.
+   */
+  CXCursor_CharacterLiteral              = 110,
+
+  /** \brief A parenthesized expression, e.g. "(1)".
+   *
+   * This AST node is only formed if full location information is requested.
+   */
+  CXCursor_ParenExpr                     = 111,
+
+  /** \brief This represents the unary-expression's (except sizeof and
+   * alignof).
+   */
+  CXCursor_UnaryOperator                 = 112,
+
+  /** \brief [C99 6.5.2.1] Array Subscripting.
+   */
+  CXCursor_ArraySubscriptExpr            = 113,
+
+  /** \brief A builtin binary operation expression such as "x + y" or
+   * "x <= y".
+   */
+  CXCursor_BinaryOperator                = 114,
+
+  /** \brief Compound assignment such as "+=".
+   */
+  CXCursor_CompoundAssignOperator        = 115,
+
+  /** \brief The ?: ternary operator.
+   */
+  CXCursor_ConditionalOperator           = 116,
+
+  /** \brief An explicit cast in C (C99 6.5.4) or a C-style cast in C++
+   * (C++ [expr.cast]), which uses the syntax (Type)expr.
+   *
+   * For example: (int)f.
+   */
+  CXCursor_CStyleCastExpr                = 117,
+
+  /** \brief [C99 6.5.2.5]
+   */
+  CXCursor_CompoundLiteralExpr           = 118,
+
+  /** \brief Describes an C or C++ initializer list.
+   */
+  CXCursor_InitListExpr                  = 119,
+
+  /** \brief The GNU address of label extension, representing &&label.
+   */
+  CXCursor_AddrLabelExpr                 = 120,
+
+  /** \brief This is the GNU Statement Expression extension: ({int X=4; X;})
+   */
+  CXCursor_StmtExpr                      = 121,
+
+  /** \brief Represents a C1X generic selection.
+   */
+  CXCursor_GenericSelectionExpr          = 122,
+
+  /** \brief Implements the GNU __null extension, which is a name for a null
+   * pointer constant that has integral type (e.g., int or long) and is the same
+   * size and alignment as a pointer.
+   *
+   * The __null extension is typically only used by system headers, which define
+   * NULL as __null in C++ rather than using 0 (which is an integer that may not
+   * match the size of a pointer).
+   */
+  CXCursor_GNUNullExpr                   = 123,
+
+  /** \brief C++'s static_cast<> expression.
+   */
+  CXCursor_CXXStaticCastExpr             = 124,
+
+  /** \brief C++'s dynamic_cast<> expression.
+   */
+  CXCursor_CXXDynamicCastExpr            = 125,
+
+  /** \brief C++'s reinterpret_cast<> expression.
+   */
+  CXCursor_CXXReinterpretCastExpr        = 126,
+
+  /** \brief C++'s const_cast<> expression.
+   */
+  CXCursor_CXXConstCastExpr              = 127,
+
+  /** \brief Represents an explicit C++ type conversion that uses "functional"
+   * notion (C++ [expr.type.conv]).
+   *
+   * Example:
+   * \code
+   *   x = int(0.5);
+   * \endcode
+   */
+  CXCursor_CXXFunctionalCastExpr         = 128,
+
+  /** \brief A C++ typeid expression (C++ [expr.typeid]).
+   */
+  CXCursor_CXXTypeidExpr                 = 129,
+
+  /** \brief [C++ 2.13.5] C++ Boolean Literal.
+   */
+  CXCursor_CXXBoolLiteralExpr            = 130,
+
+  /** \brief [C++0x 2.14.7] C++ Pointer Literal.
+   */
+  CXCursor_CXXNullPtrLiteralExpr         = 131,
+
+  /** \brief Represents the "this" expression in C++
+   */
+  CXCursor_CXXThisExpr                   = 132,
+
+  /** \brief [C++ 15] C++ Throw Expression.
+   *
+   * This handles 'throw' and 'throw' assignment-expression. When
+   * assignment-expression isn't present, Op will be null.
+   */
+  CXCursor_CXXThrowExpr                  = 133,
+
+  /** \brief A new expression for memory allocation and constructor calls, e.g:
+   * "new CXXNewExpr(foo)".
+   */
+  CXCursor_CXXNewExpr                    = 134,
+
+  /** \brief A delete expression for memory deallocation and destructor calls,
+   * e.g. "delete[] pArray".
+   */
+  CXCursor_CXXDeleteExpr                 = 135,
+
+  /** \brief A unary expression.
+   */
+  CXCursor_UnaryExpr                     = 136,
+
+  /** \brief ObjCStringLiteral, used for Objective-C string literals i.e. "foo".
+   */
+  CXCursor_ObjCStringLiteral             = 137,
+
+  /** \brief ObjCEncodeExpr, used for in Objective-C.
+   */
+  CXCursor_ObjCEncodeExpr                = 138,
+
+  /** \brief ObjCSelectorExpr used for in Objective-C.
+   */
+  CXCursor_ObjCSelectorExpr              = 139,
+
+  /** \brief Objective-C's protocol expression.
+   */
+  CXCursor_ObjCProtocolExpr              = 140,
+
+  /** \brief An Objective-C "bridged" cast expression, which casts between
+   * Objective-C pointers and C pointers, transferring ownership in the process.
+   *
+   * \code
+   *   NSString *str = (__bridge_transfer NSString *)CFCreateString();
+   * \endcode
+   */
+  CXCursor_ObjCBridgedCastExpr           = 141,
+
+  /** \brief Represents a C++0x pack expansion that produces a sequence of
+   * expressions.
+   *
+   * A pack expansion expression contains a pattern (which itself is an
+   * expression) followed by an ellipsis. For example:
+   *
+   * \code
+   * template<typename F, typename ...Types>
+   * void forward(F f, Types &&...args) {
+   *  f(static_cast<Types&&>(args)...);
+   * }
+   * \endcode
+   */
+  CXCursor_PackExpansionExpr             = 142,
+
+  /** \brief Represents an expression that computes the length of a parameter
+   * pack.
+   *
+   * \code
+   * template<typename ...Types>
+   * struct count {
+   *   static const unsigned value = sizeof...(Types);
+   * };
+   * \endcode
+   */
+  CXCursor_SizeOfPackExpr                = 143,
+
+  CXCursor_LastExpr                      = CXCursor_SizeOfPackExpr,
 
   /* Statements */
   CXCursor_FirstStmt                     = 200,
@@ -1478,8 +1679,130 @@
    *
    */
   CXCursor_LabelStmt                     = 201,
-  
-  CXCursor_LastStmt                      = CXCursor_LabelStmt,
+
+  /** \brief A group of statements like { stmt stmt }.
+   *
+   * This cursor kind is used to describe compound statements, e.g. function
+   * bodies.
+   */
+  CXCursor_CompoundStmt                  = 202,
+
+  /** \brief A case statment.
+   */
+  CXCursor_CaseStmt                      = 203,
+
+  /** \brief A default statement.
+   */
+  CXCursor_DefaultStmt                   = 204,
+
+  /** \brief An if statement
+   */
+  CXCursor_IfStmt                        = 205,
+
+  /** \brief A switch statement.
+   */
+  CXCursor_SwitchStmt                    = 206,
+
+  /** \brief A while statement.
+   */
+  CXCursor_WhileStmt                     = 207,
+
+  /** \brief A do statement.
+   */
+  CXCursor_DoStmt                        = 208,
+
+  /** \brief A for statement.
+   */
+  CXCursor_ForStmt                       = 209,
+
+  /** \brief A goto statement.
+   */
+  CXCursor_GotoStmt                      = 210,
+
+  /** \brief An indirect goto statement.
+   */
+  CXCursor_IndirectGotoStmt              = 211,
+
+  /** \brief A continue statement.
+   */
+  CXCursor_ContinueStmt                  = 212,
+
+  /** \brief A break statement.
+   */
+  CXCursor_BreakStmt                     = 213,
+
+  /** \brief A return statement.
+   */
+  CXCursor_ReturnStmt                    = 214,
+
+  /** \brief A GNU inline assembly statement extension.
+   */
+  CXCursor_AsmStmt                       = 215,
+
+  /** \brief Objective-C's overall @try- at catc-@finall statement.
+   */
+  CXCursor_ObjCAtTryStmt                 = 216,
+
+  /** \brief Objective-C's @catch statement.
+   */
+  CXCursor_ObjCAtCatchStmt               = 217,
+
+  /** \brief Objective-C's @finally statement.
+   */
+  CXCursor_ObjCAtFinallyStmt             = 218,
+
+  /** \brief Objective-C's @throw statement.
+   */
+  CXCursor_ObjCAtThrowStmt               = 219,
+
+  /** \brief Objective-C's @synchronized statement.
+   */
+  CXCursor_ObjCAtSynchronizedStmt        = 220,
+
+  /** \brief Objective-C's autorelease pool statement.
+   */
+  CXCursor_ObjCAutoreleasePoolStmt       = 221,
+
+  /** \brief Objective-C's collection statement.
+   */
+  CXCursor_ObjCForCollectionStmt         = 222,
+
+  /** \brief C++'s catch statement.
+   */
+  CXCursor_CXXCatchStmt                  = 223,
+
+  /** \brief C++'s try statement.
+   */
+  CXCursor_CXXTryStmt                    = 224,
+
+  /** \brief C++'s for (* : *) statement.
+   */
+  CXCursor_CXXForRangeStmt               = 225,
+
+  /** \brief Windows Structured Exception Handling's try statement.
+   */
+  CXCursor_SEHTryStmt                    = 226,
+
+  /** \brief Windows Structured Exception Handling's except statement.
+   */
+  CXCursor_SEHExceptStmt                 = 227,
+
+  /** \brief Windows Structured Exception Handling's finally statement.
+   */
+  CXCursor_SEHFinallyStmt                = 228,
+
+  /** \brief The null satement ";": C99 6.8.3p3.
+   *
+   * This cursor kind is used to describe the null statement.
+   */
+  CXCursor_NullStmt                      = 230,
+
+  /** \brief Adaptor class for mixing declarations with statements and
+   * expressions.
+   */
+  CXCursor_DeclStmt                      = 231,
+
+  CXCursor_LastStmt                      = CXCursor_DeclStmt,
 
   /**
    * \brief Cursor that represents the translation unit itself.

Modified: cfe/trunk/test/Index/TestClassDecl.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/TestClassDecl.m?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/TestClassDecl.m (original)
+++ cfe/trunk/test/Index/TestClassDecl.m Wed Oct  5 14:00:14 2011
@@ -25,7 +25,7 @@
 // CHECK-scan: [13:15 - 13:18] ObjCClassRef=Foo:10:12
 // CHECK-scan: [13:18 - 13:24] ParmDecl=arg:13:21 (Definition)
 // CHECK-scan: [13:24 - 14:1] FunctionDecl=function:13:6 (Definition)
-// CHECK-scan: [14:1 - 16:2] UnexposedStmt=
+// CHECK-scan: [14:1 - 16:2] CompoundStmt=
 
 // CHECK-load: TestClassDecl.m:10:12: ObjCInterfaceDecl=Foo:10:12 Extent=[10:1 - 11:5]
 // CHECK-load: TestClassDecl.m:13:6: FunctionDecl=function:13:6 (Definition) Extent=[13:1 - 16:2]

Modified: cfe/trunk/test/Index/TestClassForwardDecl.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/TestClassForwardDecl.m?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/TestClassForwardDecl.m (original)
+++ cfe/trunk/test/Index/TestClassForwardDecl.m Wed Oct  5 14:00:14 2011
@@ -20,7 +20,7 @@
 // CHECK-scan: [10:15 - 10:18] ObjCClassRef=Foo:8:8
 // CHECK-scan: [10:18 - 10:24] ParmDecl=arg:10:21 (Definition)
 // CHECK-scan: [10:24 - 11:1] FunctionDecl=function:10:6 (Definition)
-// CHECK-scan: [11:1 - 13:2] UnexposedStmt=
+// CHECK: [11:1 - 13:2] CompundStmt=
 
 
 

Modified: cfe/trunk/test/Index/annotate-nested-name-specifier.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/annotate-nested-name-specifier.cpp?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/annotate-nested-name-specifier.cpp (original)
+++ cfe/trunk/test/Index/annotate-nested-name-specifier.cpp Wed Oct  5 14:00:14 2011
@@ -200,7 +200,7 @@
 // CHECK: Punctuation: "::" [35:30 - 35:32] VarDecl=max_size:35:32 (Definition)
 // CHECK: Identifier: "max_size" [35:32 - 35:40] VarDecl=max_size:35:32 (Definition)
 // CHECK: Punctuation: "=" [35:41 - 35:42] VarDecl=max_size:35:32 (Definition)
-// CHECK: Literal: "17" [35:43 - 35:45] UnexposedExpr=
+// CHECK: Literal: "17" [35:43 - 35:45] IntegerLiteral=
 // CHECK: Punctuation: ";" [35:45 - 35:46]
 
 // CHECK: Keyword: "using" [40:3 - 40:8] UsingDeclaration=iterator:40:46
@@ -250,56 +250,56 @@
 
 // Pseudo-destructor
 // CHECK: Identifier: "t" [57:5 - 57:6] DeclRefExpr=t:56:13
-// CHECK: Punctuation: "->" [57:6 - 57:8] UnexposedExpr=
-// CHECK: Punctuation: "::" [57:8 - 57:10] UnexposedExpr=
+// CHECK: Punctuation: "->" [57:6 - 57:8] MemberRefExpr=
+// CHECK: Punctuation: "::" [57:8 - 57:10] MemberRefExpr=
 // CHECK: Identifier: "outer_alias" [57:10 - 57:21] NamespaceRef=outer_alias:10:11
-// CHECK: Punctuation: "::" [57:21 - 57:23] UnexposedExpr=
+// CHECK: Punctuation: "::" [57:21 - 57:23] MemberRefExpr=
 // CHECK: Identifier: "inner" [57:23 - 57:28] NamespaceRef=inner:45:13
-// CHECK: Punctuation: "::" [57:28 - 57:30] UnexposedExpr=
-// CHECK: Keyword: "template" [57:30 - 57:38] UnexposedExpr=
+// CHECK: Punctuation: "::" [57:28 - 57:30] MemberRefExpr=
+// CHECK: Keyword: "template" [57:30 - 57:38] MemberRefExpr=
 // CHECK: Identifier: "vector" [57:39 - 57:45] TemplateRef=vector:4:12
-// CHECK: Punctuation: "<" [57:45 - 57:46] UnexposedExpr=
+// CHECK: Punctuation: "<" [57:45 - 57:46] MemberRefExpr=
 // CHECK: Identifier: "T" [57:46 - 57:47] TypeRef=T:54:19
-// CHECK: Punctuation: ">" [57:47 - 57:48] UnexposedExpr=
-// CHECK: Punctuation: "::" [57:48 - 57:50] UnexposedExpr=
-// CHECK: Punctuation: "~" [57:50 - 57:51] UnexposedExpr=
+// CHECK: Punctuation: ">" [57:47 - 57:48] MemberRefExpr=
+// CHECK: Punctuation: "::" [57:48 - 57:50] MemberRefExpr=
+// CHECK: Punctuation: "~" [57:50 - 57:51] MemberRefExpr=
 // CHECK: Identifier: "vector" [57:51 - 57:57] TemplateRef=vector:4:12
-// CHECK: Punctuation: "<" [57:57 - 57:58] UnexposedExpr=
+// CHECK: Punctuation: "<" [57:57 - 57:58] MemberRefExpr=
 // CHECK: Identifier: "T" [57:58 - 57:59] TypeRef=T:54:19
 // CHECK: Punctuation: ">" [57:59 - 57:60] CallExpr=
 // CHECK: Punctuation: "(" [57:60 - 57:61] CallExpr=
 // CHECK: Punctuation: ")" [57:61 - 57:62] CallExpr=
 
 // Unresolved member and non-member references
-// CHECK: Punctuation: "::" [75:5 - 75:7] UnexposedExpr=[63:10, 64:10]
+// CHECK: Punctuation: "::" [75:5 - 75:7] DeclRefExpr=[63:10, 64:10]
 // CHECK: Identifier: "outer_alias" [75:7 - 75:18] NamespaceRef=outer_alias:10:11
-// CHECK: Punctuation: "::" [75:18 - 75:20] UnexposedExpr=[63:10, 64:10]
+// CHECK: Punctuation: "::" [75:18 - 75:20] DeclRefExpr=[63:10, 64:10]
 // CHECK: Identifier: "inner" [75:20 - 75:25] NamespaceRef=inner:62:13
-// CHECK: Punctuation: "::" [75:25 - 75:27] UnexposedExpr=[63:10, 64:10]
+// CHECK: Punctuation: "::" [75:25 - 75:27] DeclRefExpr=[63:10, 64:10]
 // CHECK: Identifier: "f" [75:27 - 75:28] OverloadedDeclRef=f[63:10, 64:10]
 // CHECK: Punctuation: "(" [75:28 - 75:29] CallExpr=
 // CHECK: Identifier: "t" [75:29 - 75:30] DeclRefExpr=t:74:12
 // CHECK: Punctuation: ")" [75:30 - 75:31] CallExpr=
-// CHECK: Punctuation: "::" [76:5 - 76:7] UnexposedExpr=[71:8, 72:8]
+// CHECK: Punctuation: "::" [76:5 - 76:7] MemberRefExpr=[71:8, 72:8]
 // CHECK: Identifier: "X4" [76:7 - 76:9] TemplateRef=X4:69:8
-// CHECK: Punctuation: "<" [76:9 - 76:10] UnexposedExpr=[71:8, 72:8]
+// CHECK: Punctuation: "<" [76:9 - 76:10] MemberRefExpr=[71:8, 72:8]
 // CHECK: Identifier: "type" [76:10 - 76:14] TypeRef=type:70:13
-// CHECK: Punctuation: ">" [76:14 - 76:15] UnexposedExpr=[71:8, 72:8]
-// CHECK: Punctuation: "::" [76:15 - 76:17] UnexposedExpr=[71:8, 72:8]
+// CHECK: Punctuation: ">" [76:14 - 76:15] MemberRefExpr=[71:8, 72:8]
+// CHECK: Punctuation: "::" [76:15 - 76:17] MemberRefExpr=[71:8, 72:8]
 // CHECK: Identifier: "g" [76:17 - 76:18] OverloadedDeclRef=g[71:8, 72:8]
 // CHECK: Punctuation: "(" [76:18 - 76:19] CallExpr=
 // CHECK: Identifier: "t" [76:19 - 76:20] DeclRefExpr=t:74:12
 // CHECK: Punctuation: ")" [76:20 - 76:21] CallExpr=
-// CHECK: Punctuation: ";" [76:21 - 76:22] UnexposedStmt=
-// CHECK: Keyword: "this" [77:5 - 77:9] UnexposedExpr=
-// CHECK: Punctuation: "->" [77:9 - 77:11] UnexposedExpr=
-// CHECK: Punctuation: "::" [77:11 - 77:13] UnexposedExpr=
+// CHECK: Punctuation: ";" [76:21 - 76:22] CompoundStmt=
+// CHECK: Keyword: "this" [77:5 - 77:9] CXXThisExpr=
+// CHECK: Punctuation: "->" [77:9 - 77:11] MemberRefExpr=
+// CHECK: Punctuation: "::" [77:11 - 77:13] MemberRefExpr=
 // CHECK: Identifier: "X4" [77:13 - 77:15] TemplateRef=X4:69:8
-// CHECK: Punctuation: "<" [77:15 - 77:16] UnexposedExpr=
+// CHECK: Punctuation: "<" [77:15 - 77:16] MemberRefExpr=
 // CHECK: Identifier: "type" [77:16 - 77:20] TypeRef=type:70:13
-// CHECK: Punctuation: ">" [77:20 - 77:21] UnexposedExpr=
-// CHECK: Punctuation: "::" [77:21 - 77:23] UnexposedExpr=
-// CHECK: Identifier: "g" [77:23 - 77:24] UnexposedExpr=
+// CHECK: Punctuation: ">" [77:20 - 77:21] MemberRefExpr=
+// CHECK: Punctuation: "::" [77:21 - 77:23] MemberRefExpr=
+// CHECK: Identifier: "g" [77:23 - 77:24] MemberRefExpr=
 // CHECK: Punctuation: "(" [77:24 - 77:25] CallExpr=
 // CHECK: Identifier: "t" [77:25 - 77:26] DeclRefExpr=t:74:12
 // CHECK: Punctuation: ")" [77:26 - 77:27] CallExpr=
@@ -314,7 +314,7 @@
 // CHECK: Punctuation: "(" [90:28 - 90:29] CallExpr=f:63:10
 // CHECK: Identifier: "t" [90:29 - 90:30] DeclRefExpr=t:89:15
 // CHECK: Punctuation: ")" [90:30 - 90:31] CallExpr=f:63:10
-// CHECK: Punctuation: ";" [90:31 - 90:32] UnexposedStmt=
+// CHECK: Punctuation: ";" [90:31 - 90:32] CompoundStmt=
 // CHECK: Punctuation: "::" [91:5 - 91:7] MemberRefExpr=g:86:8
 // CHECK: Identifier: "X4" [91:7 - 91:9] TemplateRef=X4:69:8
 // CHECK: Punctuation: "<" [91:9 - 91:10] MemberRefExpr=g:86:8
@@ -325,8 +325,8 @@
 // CHECK: Punctuation: "(" [91:18 - 91:19] CallExpr=g:86:8
 // CHECK: Identifier: "t" [91:19 - 91:20] DeclRefExpr=t:89:15
 // CHECK: Punctuation: ")" [91:20 - 91:21] CallExpr=g:86:8
-// CHECK: Punctuation: ";" [91:21 - 91:22] UnexposedStmt=
-// CHECK: Keyword: "this" [92:5 - 92:9] UnexposedExpr=
+// CHECK: Punctuation: ";" [91:21 - 91:22] CompoundStmt=
+// CHECK: Keyword: "this" [92:5 - 92:9] CXXThisExpr=
 // CHECK: Punctuation: "->" [92:9 - 92:11] MemberRefExpr=g:86:8
 // CHECK: Punctuation: "::" [92:11 - 92:13] MemberRefExpr=g:86:8
 // CHECK: Identifier: "X4" [92:13 - 92:15] TemplateRef=X4:69:8

Modified: cfe/trunk/test/Index/annotate-tokens-cxx0x.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/annotate-tokens-cxx0x.cpp?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/annotate-tokens-cxx0x.cpp (original)
+++ cfe/trunk/test/Index/annotate-tokens-cxx0x.cpp Wed Oct  5 14:00:14 2011
@@ -9,7 +9,7 @@
 }
 
 // RUN: c-index-test -test-annotate-tokens=%s:1:1:5:1 -fno-delayed-template-parsing -std=c++0x %s | FileCheck %s
-// CHECK: Identifier: "args" [3:20 - 3:24] UnexposedExpr=args:2:15
+// CHECK: Identifier: "args" [3:20 - 3:24] SizeOfPackExpr=args:2:15
 // CHECK: Identifier: "Args" [3:38 - 3:42] TypeRef=Args:1:22
 
 // RUN: c-index-test -test-annotate-tokens=%s:8:1:9:1 -std=c++0x %s | FileCheck -check-prefix=CHECK-DECLTYPE %s

Modified: cfe/trunk/test/Index/annotate-tokens-pp.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/annotate-tokens-pp.c?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/annotate-tokens-pp.c (original)
+++ cfe/trunk/test/Index/annotate-tokens-pp.c Wed Oct  5 14:00:14 2011
@@ -104,17 +104,17 @@
 // CHECK: Identifier: "test_macro_args" [13:6 - 13:21] FunctionDecl=test_macro_args:13:6 (Definition)
 // CHECK: Punctuation: "(" [13:21 - 13:22] FunctionDecl=test_macro_args:13:6 (Definition)
 // CHECK: Punctuation: ")" [13:22 - 13:23] FunctionDecl=test_macro_args:13:6 (Definition)
-// CHECK: Punctuation: "{" [13:24 - 13:25] UnexposedStmt=
+// CHECK: Punctuation: "{" [13:24 - 13:25] CompoundStmt=
 // CHECK: Keyword: "int" [14:3 - 14:6] VarDecl=z:14:7 (Definition)
 // CHECK: Identifier: "z" [14:7 - 14:8] VarDecl=z:14:7 (Definition)
 // CHECK: Punctuation: "=" [14:9 - 14:10] VarDecl=z:14:7 (Definition)
-// CHECK: Literal: "1" [14:11 - 14:12] UnexposedExpr=
-// CHECK: Punctuation: ";" [14:12 - 14:13] UnexposedStmt=
+// CHECK: Literal: "1" [14:11 - 14:12] IntegerLiteral=
+// CHECK: Punctuation: ";" [14:12 - 14:13] DeclStmt=
 // CHECK: Keyword: "int" [15:3 - 15:6] VarDecl=t:15:7 (Definition)
 // CHECK: Identifier: "t" [15:7 - 15:8] VarDecl=t:15:7 (Definition)
 // CHECK: Punctuation: "=" [15:9 - 15:10] VarDecl=t:15:7 (Definition)
-// CHECK: Literal: "2" [15:11 - 15:12] UnexposedExpr=
-// CHECK: Punctuation: ";" [15:12 - 15:13] UnexposedStmt=
+// CHECK: Literal: "2" [15:11 - 15:12] IntegerLiteral=
+// CHECK: Punctuation: ";" [15:12 - 15:13] DeclStmt=
 // CHECK: Keyword: "int" [16:3 - 16:6] VarDecl=k:16:7 (Definition)
 // CHECK: Identifier: "k" [16:7 - 16:8] VarDecl=k:16:7 (Definition)
 // CHECK: Punctuation: "=" [16:9 - 16:10] VarDecl=k:16:7 (Definition)
@@ -125,26 +125,26 @@
 // CHECK: Identifier: "z" [16:27 - 16:28] DeclRefExpr=z:14:7
 // FIXME: The token below should really be annotated as "macro expansion=REVERSE_MACRO:10:9"
 // CHECK: Punctuation: ")" [16:28 - 16:29] VarDecl=k:16:7 (Definition)
-// CHECK: Punctuation: ";" [16:29 - 16:30] UnexposedStmt=
+// CHECK: Punctuation: ";" [16:29 - 16:30] DeclStmt=
 // CHECK: Keyword: "int" [17:3 - 17:6] VarDecl=j:17:7 (Definition)
 // CHECK: Identifier: "j" [17:7 - 17:8] VarDecl=j:17:7 (Definition)
 // CHECK: Punctuation: "=" [17:9 - 17:10] VarDecl=j:17:7 (Definition)
 // CHECK: Identifier: "TWICE_MACRO" [17:11 - 17:22] macro expansion=TWICE_MACRO:11:9
 // CHECK: Punctuation: "(" [17:22 - 17:23]
 // CHECK: Identifier: "k" [17:23 - 17:24] DeclRefExpr=k:16:7
-// CHECK: Punctuation: "+" [17:25 - 17:26] UnexposedExpr=
+// CHECK: Punctuation: "+" [17:25 - 17:26] BinaryOperator=
 // CHECK: Identifier: "k" [17:27 - 17:28] DeclRefExpr=k:16:7
 // FIXME: The token below should really be annotated as "macro expansion=TWICE_MACRO:11:9"
 // CHECK: Punctuation: ")" [17:28 - 17:29] VarDecl=j:17:7 (Definition)
-// CHECK: Punctuation: ";" [17:29 - 17:30] UnexposedStmt=
+// CHECK: Punctuation: ";" [17:29 - 17:30] DeclStmt=
 // CHECK: Keyword: "int" [18:3 - 18:6] VarDecl=w:18:7 (Definition)
 // CHECK: Identifier: "w" [18:7 - 18:8] VarDecl=w:18:7 (Definition)
 // CHECK: Punctuation: "=" [18:9 - 18:10] VarDecl=w:18:7 (Definition)
 // CHECK: Identifier: "j" [18:11 - 18:12] DeclRefExpr=j:17:7
-// CHECK: Punctuation: "+" [18:13 - 18:14] UnexposedExpr=
+// CHECK: Punctuation: "+" [18:13 - 18:14] BinaryOperator=
 // CHECK: Identifier: "j" [18:15 - 18:16] DeclRefExpr=j:17:7
-// CHECK: Punctuation: ";" [18:16 - 18:17] UnexposedStmt=
-// CHECK: Punctuation: "}" [19:1 - 19:2] UnexposedStmt=
+// CHECK: Punctuation: ";" [18:16 - 18:17] DeclStmt=
+// CHECK: Punctuation: "}" [19:1 - 19:2] CompoundStmt=
 // CHECK: Punctuation: "#" [21:1 - 21:2] preprocessing directive=
 // CHECK: Identifier: "define" [21:2 - 21:8] preprocessing directive=
 // CHECK: Identifier: "fun_with_macro_bodies" [21:9 - 21:30] macro definition=fun_with_macro_bodies
@@ -169,29 +169,29 @@
 // CHECK: Identifier: "test" [23:6 - 23:10] FunctionDecl=test:23:6 (Definition)
 // CHECK: Punctuation: "(" [23:10 - 23:11] FunctionDecl=test:23:6 (Definition)
 // CHECK: Punctuation: ")" [23:11 - 23:12] FunctionDecl=test:23:6 (Definition)
-// CHECK: Punctuation: "{" [23:13 - 23:14] UnexposedStmt=
+// CHECK: Punctuation: "{" [23:13 - 23:14] CompoundStmt=
 // CHECK: Keyword: "int" [24:3 - 24:6] VarDecl=x:24:7 (Definition)
 // CHECK: Identifier: "x" [24:7 - 24:8] VarDecl=x:24:7 (Definition)
 // CHECK: Punctuation: "=" [24:9 - 24:10] VarDecl=x:24:7 (Definition)
-// CHECK: Literal: "10" [24:11 - 24:13] UnexposedExpr=
-// CHECK: Punctuation: ";" [24:13 - 24:14] UnexposedStmt=
+// CHECK: Literal: "10" [24:11 - 24:13] IntegerLiteral=
+// CHECK: Punctuation: ";" [24:13 - 24:14] DeclStmt=
 // CHECK: Identifier: "fun_with_macro_bodies" [25:3 - 25:24] macro expansion=fun_with_macro_bodies:21:9
-// CHECK: Punctuation: "(" [25:24 - 25:25] UnexposedStmt=
+// CHECK: Punctuation: "(" [25:24 - 25:25] CompoundStmt=
 // CHECK: Identifier: "x" [25:25 - 25:26] DeclRefExpr=x:24:7
 // CHECK: Punctuation: "," [25:26 - 25:27]
-// CHECK: Punctuation: "{" [25:28 - 25:29] UnexposedStmt=
-// CHECK: Keyword: "int" [25:30 - 25:33] UnexposedStmt=
+// CHECK: Punctuation: "{" [25:28 - 25:29] CompoundStmt=
+// CHECK: Keyword: "int" [25:30 - 25:33] DeclStmt=
 // CHECK: Identifier: "z" [25:34 - 25:35] VarDecl=z:25:34 (Definition)
 // CHECK: Punctuation: "=" [25:36 - 25:37] VarDecl=z:25:34 (Definition)
 // CHECK: Identifier: "x" [25:38 - 25:39] DeclRefExpr=x:24:7
-// CHECK: Punctuation: ";" [25:39 - 25:40] UnexposedStmt=
-// CHECK: Punctuation: "++" [25:41 - 25:43] UnexposedExpr=
+// CHECK: Punctuation: ";" [25:39 - 25:40] DeclStmt=
+// CHECK: Punctuation: "++" [25:41 - 25:43] UnaryOperator=
 // CHECK: Identifier: "z" [25:43 - 25:44] DeclRefExpr=z:25:3
-// CHECK: Punctuation: ";" [25:44 - 25:45] UnexposedStmt=
-// CHECK: Punctuation: "}" [25:46 - 25:47] UnexposedStmt=
-// CHECK: Punctuation: ")" [25:47 - 25:48] UnexposedStmt=
-// CHECK: Punctuation: ";" [25:48 - 25:49] UnexposedStmt=
-// CHECK: Punctuation: "}" [26:1 - 26:2] UnexposedStmt=
+// CHECK: Punctuation: ";" [25:44 - 25:45] CompoundStmt=
+// CHECK: Punctuation: "}" [25:46 - 25:47] CompoundStmt=
+// CHECK: Punctuation: ")" [25:47 - 25:48] DoStmt=
+// CHECK: Punctuation: ";" [25:48 - 25:49] CompoundStmt=
+// CHECK: Punctuation: "}" [26:1 - 26:2] CompoundStmt=
 // CHECK: {{28:1.*inclusion directive=pragma-once.h.*multi-include guarded}}
 // CHECK: {{29:1.*inclusion directive=guarded.h.*multi-include guarded}}
 // CHECK: Identifier: "__FILE__" [31:21 - 31:29] macro expansion=__FILE__

Modified: cfe/trunk/test/Index/annotate-tokens-preamble.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/annotate-tokens-preamble.c?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/annotate-tokens-preamble.c (original)
+++ cfe/trunk/test/Index/annotate-tokens-preamble.c Wed Oct  5 14:00:14 2011
@@ -14,7 +14,7 @@
 // CHECK: Punctuation: "*" [3:13 - 3:14] ParmDecl=ptr:3:14 (Definition)
 // CHECK: Identifier: "ptr" [3:14 - 3:17] ParmDecl=ptr:3:14 (Definition)
 // CHECK: Punctuation: ")" [3:17 - 3:18] FunctionDecl=f:3:6 (Definition)
-// CHECK: Punctuation: "{" [3:19 - 3:20] UnexposedStmt=
-// CHECK: Punctuation: "}" [4:1 - 4:2] UnexposedStmt=
+// CHECK: Punctuation: "{" [3:19 - 3:20] CompoundStmt=
+// CHECK: Punctuation: "}" [4:1 - 4:2] CompoundStmt=
 
 

Modified: cfe/trunk/test/Index/annotate-tokens-with-default-args.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/annotate-tokens-with-default-args.cpp?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/annotate-tokens-with-default-args.cpp (original)
+++ cfe/trunk/test/Index/annotate-tokens-with-default-args.cpp Wed Oct  5 14:00:14 2011
@@ -12,5 +12,5 @@
 // CHECK: Punctuation: "*" [3:17 - 3:18] ParmDecl=f:3:18 (Definition)
 // CHECK: Identifier: "f" [3:18 - 3:19] ParmDecl=f:3:18 (Definition)
 // CHECK: Punctuation: ")" [3:19 - 3:20] CXXMethod=m:3:11 (Definition)
-// CHECK: Punctuation: "{" [3:21 - 3:22] UnexposedStmt=
-// CHECK: Punctuation: "}" [3:22 - 3:23] UnexposedStmt=
+// CHECK: Punctuation: "{" [3:21 - 3:22] CompoundStmt=
+// CHECK: Punctuation: "}" [3:22 - 3:23] CompoundStmt=

Modified: cfe/trunk/test/Index/annotate-tokens.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/annotate-tokens.c?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/annotate-tokens.c (original)
+++ cfe/trunk/test/Index/annotate-tokens.c Wed Oct  5 14:00:14 2011
@@ -38,35 +38,32 @@
 // CHECK: Punctuation: "*" [4:4 - 4:5] VarDecl=t_ptr:4:6 (Definition)
 // CHECK: Identifier: "t_ptr" [4:6 - 4:11] VarDecl=t_ptr:4:6 (Definition)
 // CHECK: Punctuation: "=" [4:12 - 4:13] VarDecl=t_ptr:4:6 (Definition)
-// CHECK: Punctuation: "(" [4:14 - 4:15] UnexposedExpr=
+// CHECK: Punctuation: "(" [4:14 - 4:15] CStyleCastExpr=
 // CHECK: Identifier: "T" [4:15 - 4:16] TypeRef=T:1:13
-// CHECK: Punctuation: "*" [4:17 - 4:18] UnexposedExpr=
-// CHECK: Punctuation: ")" [4:18 - 4:19] UnexposedExpr=
 // CHECK: Identifier: "ptr" [4:19 - 4:22] DeclRefExpr=ptr:3:14
-// CHECK: Punctuation: ";" [4:22 - 4:23] UnexposedStmt=
-// CHECK: Punctuation: "(" [5:3 - 5:4] UnexposedExpr=
-// CHECK: Keyword: "void" [5:4 - 5:8] UnexposedExpr=
-// CHECK: Punctuation: ")" [5:8 - 5:9] UnexposedExpr=
+// CHECK: Punctuation: ";" [4:22 - 4:23] DeclStmt=
+// CHECK: Punctuation: "(" [5:3 - 5:4] CStyleCastExpr=
+// CHECK: Keyword: "void" [5:4 - 5:8] CStyleCastExpr=
+// CHECK: Punctuation: ")" [5:8 - 5:9] CStyleCastExpr=
 // CHECK: Keyword: "sizeof" [5:9 - 5:15] UnexposedExpr=
 // CHECK: Punctuation: "(" [5:15 - 5:16] UnexposedExpr=
 // CHECK: Identifier: "T" [5:16 - 5:17] TypeRef=T:1:13
 // CHECK: Punctuation: ")" [5:17 - 5:18] UnexposedExpr=
-// CHECK: Punctuation: ";" [5:18 - 5:19] UnexposedStmt=
-// CHECK: Comment: "/* A comment */" [6:3 - 6:18] UnexposedStmt=
+// CHECK: Punctuation: ";" [5:18 - 5:19] CompoundStmt=
 // CHECK: Keyword: "struct" [7:3 - 7:9] VarDecl=x:7:12 (Definition)
 // CHECK: Identifier: "X" [7:10 - 7:11] TypeRef=struct X:2:8
 // CHECK: Identifier: "x" [7:12 - 7:13] VarDecl=x:7:12 (Definition)
 // CHECK: Punctuation: "=" [7:14 - 7:15] VarDecl=x:7:12 (Definition)
-// CHECK: Punctuation: "(" [7:16 - 7:17] UnexposedExpr=
-// CHECK: Keyword: "struct" [7:17 - 7:23] UnexposedExpr=
+// CHECK: Punctuation: "(" [7:16 - 7:17] CompoundLiteralExpr=
+// CHECK: Keyword: "struct" [7:17 - 7:23] CompoundLiteralExpr=
 // CHECK: Identifier: "X" [7:24 - 7:25] TypeRef=struct X:2:8
-// CHECK: Punctuation: ")" [7:25 - 7:26] UnexposedExpr=
-// CHECK: Punctuation: "{" [7:26 - 7:27] UnexposedExpr=
-// CHECK: Literal: "1" [7:27 - 7:28] UnexposedExpr=
-// CHECK: Punctuation: "," [7:28 - 7:29] UnexposedExpr=
-// CHECK: Literal: "2" [7:30 - 7:31] UnexposedExpr=
-// CHECK: Punctuation: "}" [7:31 - 7:32] UnexposedExpr=
-// CHECK: Punctuation: ";" [7:32 - 7:33] UnexposedStmt=
+// CHECK: Punctuation: ")" [7:25 - 7:26] CompoundLiteralExpr=
+// CHECK: Punctuation: "{" [7:26 - 7:27] InitListExpr=
+// CHECK: Literal: "1" [7:27 - 7:28] IntegerLiteral=
+// CHECK: Punctuation: "," [7:28 - 7:29] InitListExpr=
+// CHECK: Literal: "2" [7:30 - 7:31] IntegerLiteral=
+// CHECK: Punctuation: "}" [7:31 - 7:32] InitListExpr=
+// CHECK: Punctuation: ";" [7:32 - 7:33] DeclStmt=
 // CHECK: Keyword: "void" [8:3 - 8:7] VarDecl=xx:8:9 (Definition)
 // CHECK: Punctuation: "*" [8:8 - 8:9] VarDecl=xx:8:9 (Definition)
 // CHECK: Identifier: "xx" [8:9 - 8:11] VarDecl=xx:8:9 (Definition)
@@ -74,17 +71,17 @@
 // CHECK: Identifier: "ptr" [8:14 - 8:17] DeclRefExpr=ptr:3:14
 // CHECK: Punctuation: "?" [8:18 - 8:19] UnexposedExpr=
 // CHECK: Punctuation: ":" [8:20 - 8:21] UnexposedExpr=
-// CHECK: Punctuation: "&" [8:22 - 8:23] UnexposedExpr=
+// CHECK: Punctuation: "&" [8:22 - 8:23] UnaryOperator=
 // CHECK: Identifier: "x" [8:23 - 8:24] DeclRefExpr=x:7:12
-// CHECK: Punctuation: ";" [8:24 - 8:25] UnexposedStmt=
-// CHECK: Keyword: "const" [9:3 - 9:8] UnexposedStmt=
+// CHECK: Punctuation: ";" [8:24 - 8:25] DeclStmt=
+// CHECK: Keyword: "const" [9:3 - 9:8] DeclStmt=
 // CHECK: Keyword: "char" [9:9 - 9:13] VarDecl=hello:9:16 (Definition)
 // CHECK: Punctuation: "*" [9:14 - 9:15] VarDecl=hello:9:16 (Definition)
 // CHECK: Identifier: "hello" [9:16 - 9:21] VarDecl=hello:9:16 (Definition)
 // CHECK: Punctuation: "=" [9:22 - 9:23] VarDecl=hello:9:16 (Definition)
-// CHECK: Literal: ""Hello"" [9:24 - 9:31] UnexposedExpr=
-// CHECK: Punctuation: ";" [9:31 - 9:32] UnexposedStmt=
-// CHECK: Punctuation: "}" [10:1 - 10:2] UnexposedStmt=
+// CHECK: Literal: ""Hello"" [9:24 - 9:31] StringLiteral=
+// CHECK: Punctuation: ";" [9:31 - 9:32] DeclStmt=
+// CHECK: Punctuation: "}" [10:1 - 10:2] CompoundStmt=
 // CHECK: Keyword: "__builtin_va_arg" [15:9 - 15:25] UnexposedExpr=
 // CHECK: Identifier: "Int" [15:30 - 15:33] TypeRef=Int:12:13
 // CHECK: Keyword: "__builtin_types_compatible_p" [16:9 - 16:37] UnexposedExpr=
@@ -94,15 +91,15 @@
 // CHECK: Keyword: "struct" [18:3 - 18:9] VarDecl=x:18:12 (Definition)
 // CHECK: Identifier: "X" [18:10 - 18:11] TypeRef=struct X:2:8
 // CHECK: Identifier: "x" [18:12 - 18:13] VarDecl=x:18:12 (Definition)
-// CHECK: Keyword: "do" [19:3 - 19:5] UnexposedStmt=
+// CHECK: Keyword: "do" [19:3 - 19:5] DoStmt=
 // CHECK: Identifier: "x" [20:5 - 20:6] DeclRefExpr=x:18:12
 // CHECK: Punctuation: "." [20:6 - 20:7] MemberRefExpr=a:2:16
 // CHECK: Identifier: "a" [20:7 - 20:8] MemberRefExpr=a:2:16
-// CHECK: Punctuation: "++" [20:8 - 20:10] UnexposedExpr=
-// CHECK: Punctuation: ";" [20:10 - 20:11] UnexposedStmt=
-// CHECK: Punctuation: "}" [21:3 - 21:4] UnexposedStmt=
-// CHECK: Keyword: "while" [21:5 - 21:10] UnexposedStmt=
-// CHECK: Punctuation: "(" [21:11 - 21:12] UnexposedStmt=
+// CHECK: Punctuation: "++" [20:8 - 20:10] UnaryOperator=
+// CHECK: Punctuation: ";" [20:10 - 20:11] CompoundStmt=
+// CHECK: Punctuation: "}" [21:3 - 21:4] CompoundStmt=
+// CHECK: Keyword: "while" [21:5 - 21:10] DoStmt=
+// CHECK: Punctuation: "(" [21:11 - 21:12] DoStmt=
 // CHECK: Identifier: "x" [21:12 - 21:13] DeclRefExpr=x:18:12
 // CHECK: Punctuation: "." [21:13 - 21:14] MemberRefExpr=a:2:16
 // CHECK: Identifier: "a" [21:14 - 21:15] MemberRefExpr=a:2:16
@@ -110,30 +107,30 @@
 // CHECK: Keyword: "enum" [23:3 - 23:7] VarDecl=c:23:14 (Definition)
 // CHECK: Identifier: "Color" [23:8 - 23:13] TypeRef=enum Color:11:6
 // CHECK: Identifier: "c" [23:14 - 23:15] VarDecl=c:23:14 (Definition)
-// CHECK: Punctuation: ";" [23:15 - 23:16] UnexposedStmt=
-// CHECK: Keyword: "switch" [24:3 - 24:9] UnexposedStmt=
-// CHECK: Punctuation: "(" [24:10 - 24:11] UnexposedStmt=
+// CHECK: Punctuation: ";" [23:15 - 23:16] DeclStmt=
+// CHECK: Keyword: "switch" [24:3 - 24:9] SwitchStmt=
+// CHECK: Punctuation: "(" [24:10 - 24:11] SwitchStmt=
 // CHECK: Identifier: "c" [24:11 - 24:12] DeclRefExpr=c:23:14
-// CHECK: Punctuation: ")" [24:12 - 24:13] UnexposedStmt=
-// CHECK: Punctuation: "{" [24:14 - 24:15] UnexposedStmt=
-// CHECK: Keyword: "case" [25:3 - 25:7] UnexposedStmt=
+// CHECK: Punctuation: ")" [24:12 - 24:13] SwitchStmt=
+// CHECK: Punctuation: "{" [24:14 - 24:15] CompoundStmt=
+// CHECK: Keyword: "case" [25:3 - 25:7] CaseStmt=
 // CHECK: Identifier: "Red" [25:8 - 25:11] DeclRefExpr=Red:11:14
-// CHECK: Punctuation: ":" [25:11 - 25:12] UnexposedStmt=
-// CHECK: Keyword: "return" [26:5 - 26:11] UnexposedStmt=
+// CHECK: Punctuation: ":" [25:11 - 25:12] CaseStmt=
+// CHECK: Keyword: "return" [26:5 - 26:11] ReturnStmt=
 // CHECK: Identifier: "Green" [26:12 - 26:17] DeclRefExpr=Green:11:19
-// CHECK: Punctuation: ";" [26:17 - 26:18] UnexposedStmt=
-// CHECK: Keyword: "case" [28:3 - 28:7] UnexposedStmt=
+// CHECK: Punctuation: ";" [26:17 - 26:18] CompoundStmt=
+// CHECK: Keyword: "case" [28:3 - 28:7] CaseStmt=
 // CHECK: Identifier: "Green" [28:8 - 28:13] DeclRefExpr=Green:11:19
-// CHECK: Punctuation: ":" [28:13 - 28:14] UnexposedStmt=
-// CHECK: Keyword: "return" [29:5 - 29:11] UnexposedStmt=
+// CHECK: Punctuation: ":" [28:13 - 28:14] CaseStmt=
+// CHECK: Keyword: "return" [29:5 - 29:11] ReturnStmt=
 // CHECK: Identifier: "Blue" [29:12 - 29:16] DeclRefExpr=Blue:11:26
-// CHECK: Punctuation: ";" [29:16 - 29:17] UnexposedStmt=
-// CHECK: Keyword: "case" [31:3 - 31:7] UnexposedStmt=
+// CHECK: Punctuation: ";" [29:16 - 29:17] CompoundStmt=
+// CHECK: Keyword: "case" [31:3 - 31:7] CaseStmt=
 // CHECK: Identifier: "Blue" [31:8 - 31:12] DeclRefExpr=Blue:11:26
-// CHECK: Punctuation: ":" [31:12 - 31:13] UnexposedStmt=
-// CHECK: Keyword: "return" [32:5 - 32:11] UnexposedStmt=
+// CHECK: Punctuation: ":" [31:12 - 31:13] CaseStmt=
+// CHECK: Keyword: "return" [32:5 - 32:11] ReturnStmt=
 // CHECK: Identifier: "Red" [32:12 - 32:15] DeclRefExpr=Red:11:14
-// CHECK: Punctuation: ";" [32:15 - 32:16] UnexposedStmt=
+// CHECK: Punctuation: ";" [32:15 - 32:16] CompoundStmt=
 
 // RUN: c-index-test -test-annotate-tokens=%s:4:1:165:32 %s | FileCheck %s
 // RUN: c-index-test -test-annotate-tokens=%s:4:1:165:38 %s | FileCheck %s

Modified: cfe/trunk/test/Index/annotate-tokens.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/annotate-tokens.cpp?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/annotate-tokens.cpp (original)
+++ cfe/trunk/test/Index/annotate-tokens.cpp Wed Oct  5 14:00:14 2011
@@ -32,19 +32,19 @@
 // CHECK: Identifier: "bonk" [2:11 - 2:15] TypeRef=struct bonk:1:8
 // CHECK: Identifier: "X" [2:16 - 2:17] ParmDecl=X:2:16 (Definition)
 // CHECK: Punctuation: ")" [2:17 - 2:18] FunctionDecl=test:2:6 (Definition)
-// CHECK: Punctuation: "{" [2:19 - 2:20] UnexposedStmt=
+// CHECK: Punctuation: "{" [2:19 - 2:20] CompoundStmt=
 // CHECK: Identifier: "X" [3:5 - 3:6] DeclRefExpr=X:2:16
 // CHECK: Punctuation: "=" [3:7 - 3:8] CallExpr=operator=:1:8
 // CHECK: Identifier: "X" [3:9 - 3:10] DeclRefExpr=X:2:16
-// CHECK: Punctuation: ";" [3:10 - 3:11] UnexposedStmt=
+// CHECK: Punctuation: ";" [3:10 - 3:11] CompoundStmt=
 // CHECK: Keyword: "__is_base_of" [4:5 - 4:17] UnexposedExpr=
 // CHECK: Punctuation: "(" [4:17 - 4:18] UnexposedExpr=
 // CHECK: Identifier: "bonk" [4:18 - 4:22] TypeRef=struct bonk:1:8
 // CHECK: Punctuation: "," [4:22 - 4:23] UnexposedExpr=
 // CHECK: Identifier: "bonk" [4:24 - 4:28] TypeRef=struct bonk:1:8
 // CHECK: Punctuation: ")" [4:28 - 4:29] UnexposedExpr=
-// CHECK: Punctuation: ";" [4:29 - 4:30] UnexposedStmt=
-// CHECK: Punctuation: "}" [5:1 - 5:2] UnexposedStmt=
+// CHECK: Punctuation: ";" [4:29 - 4:30] CompoundStmt=
+// CHECK: Punctuation: "}" [5:1 - 5:2] CompoundStmt=
 // CHECK: Keyword: "struct" [7:1 - 7:7] StructDecl=X:7:8 (Definition)
 // CHECK: Identifier: "X" [7:8 - 7:9] StructDecl=X:7:8 (Definition)
 // CHECK: Punctuation: "{" [7:10 - 7:11] StructDecl=X:7:8 (Definition)
@@ -69,18 +69,18 @@
 // CHECK: Identifier: "X" [11:12 - 11:13] TypeRef=struct X:7:8
 // CHECK: Identifier: "x" [11:14 - 11:15] ParmDecl=x:11:14 (Definition)
 // CHECK: Punctuation: ")" [11:15 - 11:16] FunctionDecl=test2:11:6 (Definition)
-// CHECK: Punctuation: "{" [11:17 - 11:18] UnexposedStmt=
+// CHECK: Punctuation: "{" [11:17 - 11:18] CompoundStmt=
 // CHECK: Punctuation: "++" [12:3 - 12:5] CallExpr=operator++:8:5
-// CHECK: Punctuation: "(" [12:5 - 12:6] UnexposedExpr=
+// CHECK: Punctuation: "(" [12:5 - 12:6] ParenExpr=
 // CHECK: Identifier: "x" [12:6 - 12:7] DeclRefExpr=x:11:14
-// CHECK: Punctuation: ")" [12:7 - 12:8] UnexposedExpr=
-// CHECK: Punctuation: ";" [12:8 - 12:9] UnexposedStmt=
-// CHECK: Punctuation: "(" [13:3 - 13:4] UnexposedExpr=
+// CHECK: Punctuation: ")" [12:7 - 12:8] ParenExpr=
+// CHECK: Punctuation: ";" [12:8 - 12:9] CompoundStmt=
+// CHECK: Punctuation: "(" [13:3 - 13:4] ParenExpr=
 // CHECK: Identifier: "x" [13:4 - 13:5] DeclRefExpr=x:11:14
-// CHECK: Punctuation: ")" [13:5 - 13:6] UnexposedExpr=
+// CHECK: Punctuation: ")" [13:5 - 13:6] ParenExpr=
 // CHECK: Punctuation: "++" [13:6 - 13:8] CallExpr=operator++:9:5
-// CHECK: Punctuation: ";" [13:8 - 13:9] UnexposedStmt=
-// CHECK: Punctuation: "}" [14:1 - 14:2] UnexposedStmt=
+// CHECK: Punctuation: ";" [13:8 - 13:9] CompoundStmt=
+// CHECK: Punctuation: "}" [14:1 - 14:2] CompoundStmt=
 // CHECK: Keyword: "struct" [16:1 - 16:7] StructDecl=S1:16:8 (Definition)
 // CHECK: Identifier: "S1" [16:8 - 16:10] StructDecl=S1:16:8 (Definition)
 // CHECK: Punctuation: "{" [16:11 - 16:12] StructDecl=S1:16:8 (Definition)
@@ -109,14 +109,14 @@
 // CHECK: Identifier: "S2" [18:12 - 18:14] TypeRef=struct S2:17:8
 // CHECK: Identifier: "s2" [18:15 - 18:17] ParmDecl=s2:18:15 (Definition)
 // CHECK: Punctuation: ")" [18:17 - 18:18] FunctionDecl=test3:18:6 (Definition)
-// CHECK: Punctuation: "{" [18:19 - 18:20] UnexposedStmt=
+// CHECK: Punctuation: "{" [18:19 - 18:20] CompoundStmt=
 // CHECK: Identifier: "s2" [19:3 - 19:5] DeclRefExpr=s2:18:15
 // CHECK: Punctuation: "->" [19:5 - 19:7] MemberRefExpr=f:16:18
 // CHECK: Identifier: "f" [19:7 - 19:8] MemberRefExpr=f:16:18
 // CHECK: Punctuation: "(" [19:8 - 19:9] CallExpr=f:16:18
 // CHECK: Punctuation: ")" [19:9 - 19:10] CallExpr=f:16:18
-// CHECK: Punctuation: ";" [19:10 - 19:11] UnexposedStmt=
+// CHECK: Punctuation: ";" [19:10 - 19:11] CompoundStmt=
 // CHECK: Identifier: "X" [20:3 - 20:4] TypeRef=struct X:7:8
 // CHECK: Identifier: "foo" [20:5 - 20:8] VarDecl=foo:20:5 (Definition)
-// CHECK: Punctuation: ";" [20:8 - 20:9] UnexposedStmt=
-// CHECK: Punctuation: "}" [21:1 - 21:2] UnexposedStmt=
+// CHECK: Punctuation: ";" [20:8 - 20:9] DeclStmt=
+// CHECK: Punctuation: "}" [21:1 - 21:2] CompoundStmt=

Modified: cfe/trunk/test/Index/annotate-tokens.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/annotate-tokens.m?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/annotate-tokens.m (original)
+++ cfe/trunk/test/Index/annotate-tokens.m Wed Oct  5 14:00:14 2011
@@ -174,20 +174,20 @@
 // CHECK: Punctuation: "*" [6:20 - 6:21] ParmDecl=other:6:22 (Definition)
 // CHECK: Punctuation: ")" [6:21 - 6:22] ParmDecl=other:6:22 (Definition)
 // CHECK: Identifier: "other" [6:22 - 6:27] ParmDecl=other:6:22 (Definition)
-// CHECK: Punctuation: "{" [6:28 - 6:29] UnexposedStmt=
-// CHECK: Keyword: "return" [7:3 - 7:9] UnexposedStmt=
-// CHECK: Literal: "0" [7:10 - 7:11] UnexposedExpr=
-// CHECK: Punctuation: ";" [7:11 - 7:12] UnexposedStmt=
-// CHECK: Punctuation: "(" [8:3 - 8:4] UnexposedExpr=
-// CHECK: Keyword: "void" [8:4 - 8:8] UnexposedExpr=
-// CHECK: Punctuation: ")" [8:8 - 8:9] UnexposedExpr=
-// CHECK: Punctuation: "@" [8:9 - 8:10] UnexposedExpr=
-// CHECK: Keyword: "encode" [8:10 - 8:16] UnexposedExpr=
-// CHECK: Punctuation: "(" [8:16 - 8:17] UnexposedExpr=
+// CHECK: Punctuation: "{" [6:28 - 6:29] CompoundStmt=
+// CHECK: Keyword: "return" [7:3 - 7:9] ReturnStmt=
+// CHECK: Literal: "0" [7:10 - 7:11] IntegerLiteral=
+// CHECK: Punctuation: ";" [7:11 - 7:12] CompoundStmt=
+// CHECK: Punctuation: "(" [8:3 - 8:4] CStyleCastExpr=
+// CHECK: Keyword: "void" [8:4 - 8:8] CStyleCastExpr=
+// CHECK: Punctuation: ")" [8:8 - 8:9] CStyleCastExpr=
+// CHECK: Punctuation: "@" [8:9 - 8:10] ObjCEncodeExpr=
+// CHECK: Keyword: "encode" [8:10 - 8:16] ObjCEncodeExpr=
+// CHECK: Punctuation: "(" [8:16 - 8:17] ObjCEncodeExpr=
 // CHECK: Identifier: "Foo" [8:17 - 8:20] ObjCClassRef=Foo:1:12
-// CHECK: Punctuation: ")" [8:20 - 8:21] UnexposedExpr=
-// CHECK: Punctuation: ";" [8:21 - 8:22] UnexposedStmt=
-// CHECK: Punctuation: "}" [9:1 - 9:2] UnexposedStmt=
+// CHECK: Punctuation: ")" [8:20 - 8:21] ObjCEncodeExpr=
+// CHECK: Punctuation: ";" [8:21 - 8:22] CompoundStmt=
+// CHECK: Punctuation: "}" [9:1 - 9:2] CompoundStmt=
 // CHECK: Punctuation: "@" [10:1 - 10:2] ObjCImplementationDecl=Foo:5:17 (Definition)
 // CHECK: Keyword: "end" [10:2 - 10:5]
 // CHECK: Keyword: "typedef" [14:1 - 14:8]
@@ -218,13 +218,13 @@
 // CHECK: Keyword: "void" [22:4 - 22:8] ObjCInstanceMethodDecl=method:22:1 (Definition)
 // CHECK: Punctuation: ")" [22:8 - 22:9] ObjCInstanceMethodDecl=method:22:1 (Definition)
 // CHECK: Identifier: "method" [22:10 - 22:16] ObjCInstanceMethodDecl=method:22:1 (Definition)
-// CHECK: Punctuation: "{" [23:1 - 23:2] UnexposedStmt=
+// CHECK: Punctuation: "{" [23:1 - 23:2] CompoundStmt=
 // CHECK: Identifier: "barType" [24:5 - 24:12] TypeRef=barType:14:15
 // CHECK: Identifier: "local" [24:13 - 24:18] VarDecl=local:24:13 (Definition)
 // CHECK: Punctuation: "=" [24:19 - 24:20] VarDecl=local:24:13 (Definition)
 // CHECK: Identifier: "iVar" [24:21 - 24:25] MemberRefExpr=iVar:17:13
-// CHECK: Punctuation: ";" [24:25 - 24:26] UnexposedStmt=
-// CHECK: Punctuation: "}" [25:1 - 25:2] UnexposedStmt=
+// CHECK: Punctuation: ";" [24:25 - 24:26] DeclStmt=
+// CHECK: Punctuation: "}" [25:1 - 25:2] CompoundStmt=
 // CHECK: Punctuation: "@" [26:1 - 26:2] ObjCImplementationDecl=Bar:21:17 (Definition)
 // CHECK: Keyword: "end" [26:2 - 26:5]
 // CHECK: Punctuation: "@" [32:1 - 32:2] ObjCInterfaceDecl=IBActionTests:32:12
@@ -275,19 +275,19 @@
 // CHECK: Identifier: "id" [38:31 - 38:33] TypeRef=id:0:0
 // CHECK: Punctuation: ")" [38:33 - 38:34] ParmDecl=arg:38:34 (Definition)
 // CHECK: Identifier: "arg" [38:34 - 38:37] ParmDecl=arg:38:34 (Definition)
-// CHECK: Punctuation: "{" [39:1 - 39:2] UnexposedStmt=
+// CHECK: Punctuation: "{" [39:1 - 39:2] CompoundStmt=
 // CHECK: Identifier: "ibaction_test" [40:5 - 40:18] DeclRefExpr=ibaction_test:36:12
 // CHECK: Punctuation: "(" [40:18 - 40:19] CallExpr=ibaction_test:36:12
 // CHECK: Punctuation: ")" [40:19 - 40:20] CallExpr=ibaction_test:36:12
-// CHECK: Punctuation: ";" [40:20 - 40:21] UnexposedStmt=
+// CHECK: Punctuation: ";" [40:20 - 40:21] CompoundStmt=
 // CHECK: Punctuation: "[" [41:5 - 41:6] ObjCMessageExpr=foo::34:1
 // CHECK: Identifier: "self" [41:6 - 41:10] DeclRefExpr=self:0:0
 // CHECK: Identifier: "foo" [41:11 - 41:14] ObjCMessageExpr=foo::34:1
 // CHECK: Punctuation: ":" [41:14 - 41:15] ObjCMessageExpr=foo::34:1
-// CHECK: Literal: "0" [41:15 - 41:16] UnexposedExpr=
+// CHECK: Literal: "0" [41:15 - 41:16] IntegerLiteral=
 // CHECK: Punctuation: "]" [41:16 - 41:17] ObjCMessageExpr=foo::34:1
-// CHECK: Punctuation: ";" [41:17 - 41:18] UnexposedStmt=
-// CHECK: Punctuation: "}" [42:1 - 42:2] UnexposedStmt=
+// CHECK: Punctuation: ";" [41:17 - 41:18] CompoundStmt=
+// CHECK: Punctuation: "}" [42:1 - 42:2] CompoundStmt=
 // CHECK: Punctuation: "-" [43:1 - 43:2] ObjCInstanceMethodDecl=foo::43:1 (Definition)
 // CHECK: Punctuation: "(" [43:3 - 43:4] ObjCInstanceMethodDecl=foo::43:1 (Definition)
 // CHECK: Keyword: "void" [43:4 - 43:8] ObjCInstanceMethodDecl=foo::43:1 (Definition)
@@ -298,13 +298,13 @@
 // CHECK: Keyword: "int" [43:15 - 43:18] ParmDecl=x:43:19 (Definition)
 // CHECK: Punctuation: ")" [43:18 - 43:19] ParmDecl=x:43:19 (Definition)
 // CHECK: Identifier: "x" [43:19 - 43:20] ParmDecl=x:43:19 (Definition)
-// CHECK: Punctuation: "{" [44:1 - 44:2] UnexposedStmt=
-// CHECK: Punctuation: "(" [45:3 - 45:4] UnexposedExpr=
-// CHECK: Keyword: "void" [45:4 - 45:8] UnexposedExpr=
-// CHECK: Punctuation: ")" [45:8 - 45:9] UnexposedExpr=
+// CHECK: Punctuation: "{" [44:1 - 44:2] CompoundStmt=
+// CHECK: Punctuation: "(" [45:3 - 45:4] CStyleCastExpr=
+// CHECK: Keyword: "void" [45:4 - 45:8] CStyleCastExpr=
+// CHECK: Punctuation: ")" [45:8 - 45:9] CStyleCastExpr=
 // CHECK: Identifier: "x" [45:10 - 45:11] DeclRefExpr=x:43:19
-// CHECK: Punctuation: ";" [45:11 - 45:12] UnexposedStmt=
-// CHECK: Punctuation: "}" [46:1 - 46:2] UnexposedStmt=
+// CHECK: Punctuation: ";" [45:11 - 45:12] CompoundStmt=
+// CHECK: Punctuation: "}" [46:1 - 46:2] CompoundStmt=
 // CHECK: Punctuation: "@" [47:1 - 47:2] ObjCImplementationDecl=IBActionTests:37:17 (Definition)
 // CHECK: Keyword: "end" [47:2 - 47:5]
 // CHECK: Punctuation: "@" [51:1 - 51:2] ObjCInterfaceDecl=IBOutletTests:51:12
@@ -376,17 +376,17 @@
 // CHECK: Keyword: "int" [71:14 - 71:17] ParmDecl=arg:71:18 (Definition)
 // CHECK: Punctuation: ")" [71:17 - 71:18] ParmDecl=arg:71:18 (Definition)
 // CHECK: Identifier: "arg" [71:18 - 71:21] ParmDecl=arg:71:18 (Definition)
-// CHECK: Punctuation: "{" [71:22 - 71:23] UnexposedStmt=
-// CHECK: Keyword: "return" [72:3 - 72:9] UnexposedStmt=
+// CHECK: Punctuation: "{" [71:22 - 71:23] CompoundStmt=
+// CHECK: Keyword: "return" [72:3 - 72:9] ReturnStmt=
 // CHECK: Identifier: "arg" [72:10 - 72:13] DeclRefExpr=arg:71:18
-// CHECK: Punctuation: ";" [72:13 - 72:14] UnexposedStmt=
-// CHECK: Punctuation: "}" [73:1 - 73:2] UnexposedStmt=
+// CHECK: Punctuation: ";" [72:13 - 72:14] CompoundStmt=
+// CHECK: Punctuation: "}" [73:1 - 73:2] CompoundStmt=
 // CHECK: Punctuation: "-" [74:1 - 74:2] ObjCInstanceMethodDecl=method:74:1 (Definition)
 // CHECK: Punctuation: "(" [74:3 - 74:4] ObjCInstanceMethodDecl=method:74:1 (Definition)
 // CHECK: Keyword: "int" [74:4 - 74:7] ObjCInstanceMethodDecl=method:74:1 (Definition)
 // CHECK: Punctuation: ")" [74:7 - 74:8] ObjCInstanceMethodDecl=method:74:1 (Definition)
 // CHECK: Identifier: "method" [74:9 - 74:15] ObjCInstanceMethodDecl=method:74:1 (Definition)
-// CHECK: Punctuation: "{" [75:1 - 75:2] UnexposedStmt=
+// CHECK: Punctuation: "{" [75:1 - 75:2] CompoundStmt=
 // CHECK: Keyword: "int" [76:5 - 76:8] VarDecl=local:76:9 (Definition)
 // CHECK: Identifier: "local" [76:9 - 76:14] VarDecl=local:76:9 (Definition)
 // CHECK: Punctuation: "=" [76:15 - 76:16] VarDecl=local:76:9 (Definition)
@@ -396,7 +396,7 @@
 // CHECK: Punctuation: ":" [76:26 - 76:27] ObjCMessageExpr=foo::66:1
 // CHECK: Identifier: "VAL" [76:27 - 76:30] macro expansion=VAL:63:9
 // CHECK: Punctuation: "]" [76:30 - 76:31] ObjCMessageExpr=foo::66:1
-// CHECK: Punctuation: ";" [76:31 - 76:32] UnexposedStmt=
+// CHECK: Punctuation: ";" [76:31 - 76:32] DeclStmt=
 // CHECK: Keyword: "int" [77:5 - 77:8] VarDecl=second:77:9 (Definition)
 // CHECK: Identifier: "second" [77:9 - 77:15] VarDecl=second:77:9 (Definition)
 // CHECK: Punctuation: "=" [77:16 - 77:17] VarDecl=second:77:9 (Definition)
@@ -404,13 +404,13 @@
 // CHECK: Identifier: "self" [77:19 - 77:23] DeclRefExpr=self:0:0
 // CHECK: Identifier: "foo" [77:24 - 77:27] ObjCMessageExpr=foo::66:1
 // CHECK: Punctuation: ":" [77:27 - 77:28] ObjCMessageExpr=foo::66:1
-// CHECK: Literal: "0" [77:28 - 77:29] UnexposedExpr=
+// CHECK: Literal: "0" [77:28 - 77:29] IntegerLiteral=
 // CHECK: Punctuation: "]" [77:29 - 77:30] ObjCMessageExpr=foo::66:1
-// CHECK: Punctuation: ";" [77:30 - 77:31] UnexposedStmt=
-// CHECK: Keyword: "return" [78:5 - 78:11] UnexposedStmt=
+// CHECK: Punctuation: ";" [77:30 - 77:31] DeclStmt=
+// CHECK: Keyword: "return" [78:5 - 78:11] ReturnStmt=
 // CHECK: Identifier: "local" [78:12 - 78:17] DeclRefExpr=local:76:9
-// CHECK: Punctuation: ";" [78:17 - 78:18] UnexposedStmt=
-// CHECK: Punctuation: "}" [79:1 - 79:2] UnexposedStmt=
+// CHECK: Punctuation: ";" [78:17 - 78:18] CompoundStmt=
+// CHECK: Punctuation: "}" [79:1 - 79:2] CompoundStmt=
 // CHECK: Punctuation: "-" [80:1 - 80:2] ObjCInstanceMethodDecl=othermethod::80:1 (Definition)
 // CHECK: Punctuation: "(" [80:3 - 80:4] ObjCInstanceMethodDecl=othermethod::80:1 (Definition)
 // CHECK: Keyword: "int" [80:4 - 80:7] ObjCInstanceMethodDecl=othermethod::80:1 (Definition)
@@ -422,14 +422,14 @@
 // CHECK: Punctuation: "*" [80:35 - 80:36] ParmDecl=ibt:80:37 (Definition)
 // CHECK: Punctuation: ")" [80:36 - 80:37] ParmDecl=ibt:80:37 (Definition)
 // CHECK: Identifier: "ibt" [80:37 - 80:40] ParmDecl=ibt:80:37 (Definition)
-// CHECK: Punctuation: "{" [80:41 - 80:42] UnexposedStmt=
-// CHECK: Keyword: "return" [81:3 - 81:9] UnexposedStmt=
-// CHECK: Punctuation: "*" [81:10 - 81:11] UnexposedExpr=
+// CHECK: Punctuation: "{" [80:41 - 80:42] CompoundStmt=
+// CHECK: Keyword: "return" [81:3 - 81:9] ReturnStmt=
+// CHECK: Punctuation: "*" [81:10 - 81:11] UnaryOperator=
 // CHECK: Identifier: "ibt" [81:11 - 81:14] DeclRefExpr=ibt:80:37
 // CHECK: Punctuation: "." [81:14 - 81:15] MemberRefExpr=aPropOutlet:56:26
 // CHECK: Identifier: "aPropOutlet" [81:15 - 81:26] MemberRefExpr=aPropOutlet:56:26
-// CHECK: Punctuation: ";" [81:26 - 81:27] UnexposedStmt=
-// CHECK: Punctuation: "}" [82:1 - 82:2] UnexposedStmt=
+// CHECK: Punctuation: ";" [81:26 - 81:27] CompoundStmt=
+// CHECK: Punctuation: "}" [82:1 - 82:2] CompoundStmt=
 // CHECK: Punctuation: "@" [83:1 - 83:2] ObjCImplementationDecl=R7974151:70:17 (Definition)
 // CHECK: Keyword: "end" [83:2 - 83:5]
 // CHECK: Punctuation: "@" [85:1 - 85:2] ObjCProtocolDecl=Proto:85:11 (Definition)
@@ -441,17 +441,17 @@
 // CHECK: Identifier: "f" [87:6 - 87:7] FunctionDecl=f:87:6 (Definition)
 // CHECK: Punctuation: "(" [87:7 - 87:8] FunctionDecl=f:87:6 (Definition)
 // CHECK: Punctuation: ")" [87:8 - 87:9] FunctionDecl=f:87:6 (Definition)
-// CHECK: Punctuation: "{" [87:10 - 87:11] UnexposedStmt=
-// CHECK: Punctuation: "(" [88:3 - 88:4] UnexposedExpr=
-// CHECK: Keyword: "void" [88:4 - 88:8] UnexposedExpr=
-// CHECK: Punctuation: ")" [88:8 - 88:9] UnexposedExpr=
-// CHECK: Punctuation: "@" [88:9 - 88:10] UnexposedExpr=Proto:85:1
-// CHECK: Keyword: "protocol" [88:10 - 88:18] UnexposedExpr=Proto:85:1
-// CHECK: Punctuation: "(" [88:18 - 88:19] UnexposedExpr=Proto:85:1
-// CHECK: Identifier: "Proto" [88:19 - 88:24] UnexposedExpr=Proto:85:1
-// CHECK: Punctuation: ")" [88:24 - 88:25] UnexposedExpr=Proto:85:1
-// CHECK: Punctuation: ";" [88:25 - 88:26] UnexposedStmt=
-// CHECK: Punctuation: "}" [89:1 - 89:2] UnexposedStmt=
+// CHECK: Punctuation: "{" [87:10 - 87:11] CompoundStmt=
+// CHECK: Punctuation: "(" [88:3 - 88:4] CStyleCastExpr=
+// CHECK: Keyword: "void" [88:4 - 88:8] CStyleCastExpr=
+// CHECK: Punctuation: ")" [88:8 - 88:9] CStyleCastExpr=
+// CHECK: Punctuation: "@" [88:9 - 88:10] ObjCProtocolExpr=Proto:85:1
+// CHECK: Keyword: "protocol" [88:10 - 88:18] ObjCProtocolExpr=Proto:85:1
+// CHECK: Punctuation: "(" [88:18 - 88:19] ObjCProtocolExpr=Proto:85:1
+// CHECK: Identifier: "Proto" [88:19 - 88:24] ObjCProtocolExpr=Proto:85:1
+// CHECK: Punctuation: ")" [88:24 - 88:25] ObjCProtocolExpr=Proto:85:1
+// CHECK: Punctuation: ";" [88:25 - 88:26] CompoundStmt=
+// CHECK: Punctuation: "}" [89:1 - 89:2] CompoundStmt=
 // CHECK: Punctuation: "@" [93:1 - 93:2] UnexposedDecl=[93:8]
 // CHECK: Keyword: "class" [93:2 - 93:7] UnexposedDecl=[93:8]
 // CHECK: Identifier: "Rdar8595462_A" [93:8 - 93:21] ObjCClassRef=Rdar8595462_A:93:8
@@ -469,17 +469,17 @@
 // CHECK: Identifier: "Rdar8595462_aFunction" [98:17 - 98:38] FunctionDecl=Rdar8595462_aFunction:98:17 (Definition)
 // CHECK: Punctuation: "(" [98:38 - 98:39] FunctionDecl=Rdar8595462_aFunction:98:17 (Definition)
 // CHECK: Punctuation: ")" [98:39 - 98:40] FunctionDecl=Rdar8595462_aFunction:98:17 (Definition)
-// CHECK: Punctuation: "{" [98:41 - 98:42] UnexposedStmt=
+// CHECK: Punctuation: "{" [98:41 - 98:42] CompoundStmt=
 // CHECK: Identifier: "Rdar8595462_A" [99:3 - 99:16] ObjCClassRef=Rdar8595462_A:93:8
 // CHECK: Punctuation: "*" [99:17 - 99:18] VarDecl=localVar:99:19 (Definition)
 // CHECK: Identifier: "localVar" [99:19 - 99:27] VarDecl=localVar:99:19 (Definition)
 // CHECK: Punctuation: "=" [99:28 - 99:29] VarDecl=localVar:99:19 (Definition)
-// CHECK: Literal: "0" [99:30 - 99:31] UnexposedExpr=
-// CHECK: Punctuation: ";" [99:31 - 99:32] UnexposedStmt=
-// CHECK: Keyword: "return" [100:3 - 100:9] UnexposedStmt=
+// CHECK: Literal: "0" [99:30 - 99:31] IntegerLiteral=
+// CHECK: Punctuation: ";" [99:31 - 99:32] DeclStmt=
+// CHECK: Keyword: "return" [100:3 - 100:9] ReturnStmt=
 // CHECK: Identifier: "localVar" [100:10 - 100:18] DeclRefExpr=localVar:99:19
-// CHECK: Punctuation: ";" [100:18 - 100:19] UnexposedStmt=
-// CHECK: Punctuation: "}" [101:1 - 101:2] UnexposedStmt=
+// CHECK: Punctuation: ";" [100:18 - 100:19] CompoundStmt=
+// CHECK: Punctuation: "}" [101:1 - 101:2] CompoundStmt=
 // CHECK: Keyword: "static" [102:1 - 102:7] ObjCImplementationDecl=Rdar8595462_B:97:17 (Definition)
 // CHECK: Identifier: "Rdar8595462_A" [102:8 - 102:21] ObjCClassRef=Rdar8595462_A:93:8
 // CHECK: Punctuation: "*" [102:22 - 102:23] VarDecl=Rdar8595462_staticVar:102:24
@@ -521,11 +521,11 @@
 // CHECK-INSIDE_BLOCK: Identifier: "self" [127:19 - 127:23] DeclRefExpr=self:0:0
 // CHECK-INSIDE_BLOCK: Identifier: "blah" [127:24 - 127:28] ObjCMessageExpr=blah::124:1
 // CHECK-INSIDE_BLOCK: Punctuation: ":" [127:28 - 127:29] ObjCMessageExpr=blah::124:1
-// CHECK-INSIDE_BLOCK: Literal: "5" [127:29 - 127:30] UnexposedExpr=
+// CHECK-INSIDE_BLOCK: Literal: "5" [127:29 - 127:30] IntegerLiteral=
 // CHECK-INSIDE_BLOCK: Punctuation: "," [127:30 - 127:31] ObjCMessageExpr=blah::124:1
 // CHECK-INSIDE_BLOCK: Identifier: "x" [127:32 - 127:33] DeclRefExpr=x:125:19
 // CHECK-INSIDE_BLOCK: Punctuation: "]" [127:33 - 127:34] ObjCMessageExpr=blah::124:1
-// CHECK-INSIDE_BLOCK: Punctuation: ";" [127:34 - 127:35] UnexposedStmt=
+// CHECK-INSIDE_BLOCK: Punctuation: ";" [127:34 - 127:35] DeclStmt=
 // CHECK-INSIDE_BLOCK: Identifier: "Rdar8778404" [128:5 - 128:16] ObjCClassRef=Rdar8778404:120:12
 // CHECK-INSIDE_BLOCK: Punctuation: "*" [128:17 - 128:18] VarDecl=a:128:18 (Definition)
 // CHECK-INSIDE_BLOCK: Identifier: "a" [128:18 - 128:19] VarDecl=a:128:18 (Definition)

Modified: cfe/trunk/test/Index/blocks.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/blocks.c?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/blocks.c (original)
+++ cfe/trunk/test/Index/blocks.c Wed Oct  5 14:00:14 2011
@@ -10,25 +10,25 @@
 }
 
 // CHECK: blocks.c:6:6: FunctionDecl=test:6:6 (Definition) Extent=[6:1 - 10:2]
-// CHECK: blocks.c:6:13: UnexposedStmt= Extent=[6:13 - 10:2]
-// CHECK: blocks.c:7:3: UnexposedStmt= Extent=[7:3 - 7:26]
+// CHECK: blocks.c:6:13: CompoundStmt= Extent=[6:13 - 10:2]
+// CHECK: blocks.c:7:3: DeclStmt= Extent=[7:3 - 7:26]
 // CHECK: blocks.c:7:21: VarDecl=_foo:7:21 (Definition) Extent=[7:3 - 7:25]
 // CHECK: blocks.c:7:17: TypeRef=struct foo:4:8 Extent=[7:17 - 7:20]
 // CHECK: blocks.c:8:11: VarDecl=i:8:11 (Definition) Extent=[8:3 - 8:16]
-// CHECK: blocks.c:8:15: UnexposedExpr= Extent=[8:15 - 8:16]
+// CHECK: blocks.c:8:15: IntegerLiteral= Extent=[8:15 - 8:16]
 // CHECK: blocks.c:9:3: CallExpr= Extent=[9:3 - 9:65]
-// CHECK: blocks.c:9:3: UnexposedExpr= Extent=[9:3 - 9:58]
+// CHECK: blocks.c:9:3: BlockExpr= Extent=[9:3 - 9:58]
 // CHECK: blocks.c:9:5: TypeRef=int_t:3:13 Extent=[9:5 - 9:10]
 // CHECK: blocks.c:9:23: ParmDecl=foo:9:23 (Definition) Extent=[9:11 - 9:26]
 // CHECK: blocks.c:9:18: TypeRef=struct foo:4:8 Extent=[9:18 - 9:21]
-// CHECK: blocks.c:9:28: UnexposedStmt= Extent=[9:28 - 9:58]
-// CHECK: blocks.c:9:30: UnexposedStmt= Extent=[9:30 - 9:55]
-// CHECK: blocks.c:9:37: UnexposedExpr= Extent=[9:37 - 9:55]
-// CHECK: blocks.c:9:37: UnexposedExpr= Extent=[9:37 - 9:51]
+// 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: 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]
 // CHECK: blocks.c:9:45: DeclRefExpr=foo:9:23 Extent=[9:45 - 9:48]
 // CHECK: blocks.c:9:54: DeclRefExpr=i:8:11 Extent=[9:54 - 9:55]
-// CHECK: blocks.c:9:59: UnexposedExpr= Extent=[9:59 - 9:64]
+// 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]
 

Modified: cfe/trunk/test/Index/c-index-api-loadTU-test.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/c-index-api-loadTU-test.m?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/c-index-api-loadTU-test.m (original)
+++ cfe/trunk/test/Index/c-index-api-loadTU-test.m Wed Oct  5 14:00:14 2011
@@ -123,7 +123,7 @@
 // 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: UnexposedExpr= 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: DeclRefExpr=c:49:12 Extent=[51:6 - 51:7]
@@ -137,7 +137,7 @@
 // CHECK: c-index-api-loadTU-test.m:54:3: UnexposedExpr=main:46:5 Extent=[54:3 - 54:7]
 // CHECK: c-index-api-loadTU-test.m:54:3: DeclRefExpr=main:46:5 Extent=[54:3 - 54:7]
 // CHECK: c-index-api-loadTU-test.m:54:8: DeclRefExpr=someEnum:43:3 Extent=[54:8 - 54:16]
-// CHECK: c-index-api-loadTU-test.m:54:18: UnexposedExpr= Extent=[54:18 - 54:36]
+// CHECK: c-index-api-loadTU-test.m:54:18: CStyleCastExpr= Extent=[54:18 - 54:36]
 // CHECK: c-index-api-loadTU-test.m:54:33: DeclRefExpr=bee:47:8 Extent=[54:33 - 54:36]
 // CHECK: c-index-api-loadTU-test.m:62:12: ObjCInterfaceDecl=TestAttributes:62:12 Extent=[62:1 - 67:5]
 // CHECK: c-index-api-loadTU-test.m:63:15: ObjCIvarDecl=anOutlet:63:15 (Definition) Extent=[58:18 - 63:23]

Modified: cfe/trunk/test/Index/c-index-getCursor-test.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/c-index-getCursor-test.m?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/c-index-getCursor-test.m (original)
+++ cfe/trunk/test/Index/c-index-getCursor-test.m Wed Oct  5 14:00:14 2011
@@ -111,18 +111,18 @@
 // CHECK: [44:19 - 44:21] FunctionDecl=main:44:5 (Definition)
 // CHECK: [44:21 - 44:40] ParmDecl=argv:44:34 (Definition)
 // CHECK: [44:40 - 44:42] FunctionDecl=main:44:5 (Definition)
-// CHECK: [44:42 - 45:2] UnexposedStmt=
+// CHECK: [44:42 - 45:2] CompoundStmt=
 // CHECK: [45:2 - 45:5] ObjCClassRef=Baz:31:12
 // CHECK: [45:5 - 45:11] VarDecl=bee:45:8 (Definition)
-// CHECK: [45:11 - 45:12] UnexposedStmt=
-// CHECK: [45:12 - 46:2] UnexposedStmt=
+// CHECK: [45:11 - 45:12] DeclStmt=
+// CHECK: [45:12 - 46:2] CompoundStmt=
 // CHECK: [46:2 - 46:4] TypeRef=id:0:0
 // CHECK: [46:4 - 46:9] VarDecl=a:46:5 (Definition)
 // CHECK: [46:9 - 46:10] ObjCMessageExpr=foo:7:1
 // CHECK: [46:10 - 46:13] DeclRefExpr=bee:45:8
 // CHECK: [46:13 - 46:18] ObjCMessageExpr=foo:7:1
-// CHECK: [46:18 - 46:19] UnexposedStmt=
-// CHECK: [46:19 - 47:2] UnexposedStmt=
+// CHECK: [46:18 - 46:19] DeclStmt=
+// CHECK: [46:19 - 47:2] CompoundStmt=
 // CHECK: [47:2 - 47:4] TypeRef=id:0:0
 // CHECK: [47:4 - 47:6] VarDecl=c:47:12 (Definition)
 // CHECK: [47:6 - 47:10] ObjCProtocolRef=SubP:27:1
@@ -130,22 +130,22 @@
 // CHECK: [47:16 - 47:17] ObjCMessageExpr=fooC:8:1
 // CHECK: [47:17 - 47:20] ObjCClassRef=Foo:3:12
 // CHECK: [47:20 - 47:26] ObjCMessageExpr=fooC:8:1
-// CHECK: [47:26 - 47:27] UnexposedStmt=
-// CHECK: [47:27 - 48:2] UnexposedStmt=
+// CHECK: [47:26 - 47:27] DeclStmt=
+// CHECK: [47:27 - 48:2] CompoundStmt=
 // CHECK: [48:2 - 48:4] TypeRef=id:0:0
 // CHECK: [48:4 - 48:6] VarDecl=d:48:13 (Definition)
 // CHECK: [48:6 - 48:11] ObjCProtocolRef=Proto:23:1
 // CHECK: [48:11 - 48:14] VarDecl=d:48:13 (Definition)
-// CHECK: [48:14 - 48:15] UnexposedStmt=
-// CHECK: [48:15 - 49:2] UnexposedStmt=
+// CHECK: [48:14 - 48:15] DeclStmt=
+// CHECK: [48:15 - 49:2] CompoundStmt=
 // CHECK: [49:2 - 49:3] DeclRefExpr=d:48:13
-// CHECK: [49:3 - 49:6] UnexposedExpr=
+// CHECK: [49:3 - 49:6] BinaryOperator=
 // CHECK: [49:6 - 49:7] DeclRefExpr=c:47:12
-// CHECK: [49:7 - 50:2] UnexposedStmt=
+// CHECK: [49:7 - 50:2] CompoundStmt=
 // CHECK: [50:2 - 50:3] ObjCMessageExpr=pMethod:24:1
 // CHECK: [50:3 - 50:4] DeclRefExpr=d:48:13
 // CHECK: [50:4 - 50:13] ObjCMessageExpr=pMethod:24:1
-// CHECK: [50:13 - 51:2] UnexposedStmt=
+// CHECK: [50:13 - 51:2] CompoundStmt=
 // CHECK: [51:2 - 51:3] ObjCMessageExpr=catMethodWithFloat::19:1
 // CHECK: [51:3 - 51:6] DeclRefExpr=bee:45:8
 // CHECK: [51:6 - 51:26] ObjCMessageExpr=catMethodWithFloat::19:1
@@ -153,15 +153,15 @@
 // CHECK: [51:27 - 51:30] DeclRefExpr=bee:45:8
 // CHECK: [51:30 - 51:43] ObjCMessageExpr=floatMethod:20:1
 // CHECK: [51:43 - 51:44] ObjCMessageExpr=catMethodWithFloat::19:1
-// CHECK: [51:44 - 52:3] UnexposedStmt=
+// CHECK: [51:44 - 52:3] CompoundStmt=
 // CHECK: [52:3 - 52:7] DeclRefExpr=main:44:5
 // CHECK: [52:7 - 52:8] CallExpr=main:44:5
 // CHECK: [52:8 - 52:16] DeclRefExpr=someEnum:41:3
 // CHECK: [52:16 - 52:18] CallExpr=main:44:5
-// CHECK: [52:18 - 52:33] UnexposedExpr=
+// CHECK: [52:18 - 52:33] CStyleCastExpr=
 // CHECK: [52:33 - 52:36] DeclRefExpr=bee:45:8
 // CHECK: [52:36 - 52:37] CallExpr=main:44:5
-// CHECK: [52:37 - 53:2] UnexposedStmt=
+// CHECK: [52:37 - 53:2] CompoundStmt=
 // CHECK: [55:9 - 55:26] macro definition=CONCAT
 // CHECK: [57:1 - 57:10] FunctionDecl=f:57:6 (Definition)
 // CHECK: [58:4 - 58:8] VarDecl=my_var:58:8 (Definition)

Modified: cfe/trunk/test/Index/cursor-ref-names.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/cursor-ref-names.cpp?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/cursor-ref-names.cpp (original)
+++ cfe/trunk/test/Index/cursor-ref-names.cpp Wed Oct  5 14:00:14 2011
@@ -26,7 +26,7 @@
 }
 
 // RUN: c-index-test -test-load-source all %s | FileCheck %s
-// CHECK: cursor-ref-names.cpp:17:5: UnexposedStmt= Extent=[17:5 - 17:14]
+// CHECK: cursor-ref-names.cpp:17:5: DeclStmt= Extent=[17:5 - 17:14]
 // CHECK: cursor-ref-names.cpp:17:9: VarDecl=inst:17:9 (Definition) Extent=[17:5 - 17:13]
 // CHECK: cursor-ref-names.cpp:17:5: TypeRef=struct Sub:7:8 Extent=[17:5 - 17:8]
 // CHECK: cursor-ref-names.cpp:17:9: CallExpr=Sub:7:8 Extent=[17:9 - 17:13]

Modified: cfe/trunk/test/Index/index-templates.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/index-templates.cpp?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/index-templates.cpp (original)
+++ cfe/trunk/test/Index/index-templates.cpp Wed Oct  5 14:00:14 2011
@@ -135,7 +135,7 @@
 // CHECK-LOAD: index-templates.cpp:30:21: TypeRef=struct Z2:20:8 Extent=[30:21 - 30:23]
 // CHECK-LOAD: index-templates.cpp:35:16: VarDecl=OneDimension:35:16 (Definition) Extent=[35:1 - 35:32]
 // CHECK-LOAD: index-templates.cpp:35:31: UnexposedExpr= Extent=[35:31 - 35:32]
-// CHECK-LOAD: index-templates.cpp:35:31: UnexposedExpr= Extent=[35:31 - 35:32]
+// CHECK-LOAD: index-templates.cpp:35:31: IntegerLiteral= Extent=[35:31 - 35:32]
 // CHECK-LOAD: index-templates.cpp:37:8: ClassTemplate=array:37:8 (Definition) Extent=[36:1 - 37:17]
 // CHECK-LOAD: index-templates.cpp:36:19: TemplateTypeParameter=T:36:19 (Definition) Extent=[36:10 - 36:20]
 // CHECK-LOAD: index-templates.cpp:36:31: NonTypeTemplateParameter=Dimensions:36:31 (Definition) Extent=[36:22 - 36:56]

Modified: cfe/trunk/test/Index/load-stmts.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/load-stmts.cpp?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/load-stmts.cpp (original)
+++ cfe/trunk/test/Index/load-stmts.cpp Wed Oct  5 14:00:14 2011
@@ -132,17 +132,17 @@
 // CHECK: load-stmts.cpp:4:23: DeclRefExpr=x:3:12 Extent=[4:23 - 4:24]
 // CHECK: load-stmts.cpp:4:19: UnexposedExpr=z:4:19 Extent=[4:19 - 4:20]
 // CHECK: load-stmts.cpp:4:19: DeclRefExpr=z:4:19 Extent=[4:19 - 4:20]
-// CHECK: load-stmts.cpp:4:26: UnexposedExpr= Extent=[4:26 - 4:29]
+// CHECK: load-stmts.cpp:4:26: UnaryOperator= Extent=[4:26 - 4:29]
 // CHECK: load-stmts.cpp:4:28: DeclRefExpr=x:3:12 Extent=[4:28 - 4:29]
 // CHECK: load-stmts.cpp:6:10: VarDecl=z2:6:10 (Definition) Extent=[6:7 - 6:17]
 // CHECK: load-stmts.cpp:6:7: TypeRef=T:1:13 Extent=[6:7 - 6:8]
-// CHECK: load-stmts.cpp:6:15: UnexposedExpr= Extent=[6:15 - 6:17]
+// CHECK: load-stmts.cpp:6:15: UnaryOperator= Extent=[6:15 - 6:17]
 // CHECK: load-stmts.cpp:6:16: DeclRefExpr=x:3:12 Extent=[6:16 - 6:17]
 // CHECK: load-stmts.cpp:6:10: UnexposedExpr=z2:6:10 Extent=[6:10 - 6:12]
 // CHECK: load-stmts.cpp:6:10: DeclRefExpr=z2:6:10 Extent=[6:10 - 6:12]
 // CHECK: load-stmts.cpp:7:13: VarDecl=z3:7:13 (Definition) Extent=[7:10 - 7:20]
 // CHECK: load-stmts.cpp:7:10: TypeRef=T:1:13 Extent=[7:10 - 7:11]
-// CHECK: load-stmts.cpp:7:18: UnexposedExpr= Extent=[7:18 - 7:20]
+// CHECK: load-stmts.cpp:7:18: UnaryOperator= Extent=[7:18 - 7:20]
 // CHECK: load-stmts.cpp:7:19: DeclRefExpr=x:3:12 Extent=[7:19 - 7:20]
 // CHECK: load-stmts.cpp:7:13: UnexposedExpr=z3:7:13 Extent=[7:13 - 7:15]
 // CHECK: load-stmts.cpp:7:13: DeclRefExpr=z3:7:13 Extent=[7:13 - 7:15]
@@ -150,7 +150,7 @@
 // CHECK: load-stmts.cpp:8:11: TypeRef=T:1:13 Extent=[8:11 - 8:12]
 // CHECK: load-stmts.cpp:8:18: DeclRefExpr=x:3:12 Extent=[8:18 - 8:19]
 // CHECK: load-stmts.cpp:8:13: DeclRefExpr=z4:8:13 Extent=[8:13 - 8:15]
-// CHECK: load-stmts.cpp:9:8: UnexposedExpr= Extent=[9:8 - 9:10]
+// CHECK: load-stmts.cpp:9:8: IntegerLiteral= Extent=[9:8 - 9:10]
 // CHECK: load-stmts.cpp:14:7: ClassDecl=A:14:7 (Definition) Extent=[14:1 - 16:2]
 // CHECK: load-stmts.cpp:15:8: CXXMethod=doA:15:8 Extent=[15:3 - 15:13]
 // CHECK: load-stmts.cpp:18:7: ClassDecl=B:18:7 (Definition) Extent=[18:1 - 20:2]
@@ -202,7 +202,7 @@
 // CHECK: load-stmts.cpp:80:21: DeclRefExpr=j:79:44 Extent=[80:21 - 80:22]
 // CHECK: load-stmts.cpp:82:9: TypeRef=Integer:81:15 Extent=[82:9 - 82:16]
 // CHECK: load-stmts.cpp:82:17: DeclRefExpr=i:79:37 Extent=[82:17 - 82:18]
-// CHECK: load-stmts.cpp:83:3: UnexposedExpr= Extent=[83:3 - 83:13]
+// CHECK: load-stmts.cpp:83:3: CStyleCastExpr= Extent=[83:3 - 83:13]
 // CHECK: load-stmts.cpp:83:4: TypeRef=Integer:81:15 Extent=[83:4 - 83:11]
 // CHECK: load-stmts.cpp:83:12: UnexposedExpr=i:79:37 Extent=[83:12 - 83:13]
 // CHECK: load-stmts.cpp:83:12: DeclRefExpr=i:79:37 Extent=[83:12 - 83:13]

Modified: cfe/trunk/test/Index/local-symbols.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/local-symbols.m?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/local-symbols.m (original)
+++ cfe/trunk/test/Index/local-symbols.m Wed Oct  5 14:00:14 2011
@@ -35,7 +35,7 @@
 // CHECK: local-symbols.m:13:1: ObjCInstanceMethodDecl=bar:13:1 (Definition) [Overrides @9:1] Extent=[13:1 - 15:2]
 // CHECK: local-symbols.m:13:4: TypeRef=id:0:0 Extent=[13:4 - 13:6]
 // CHECK: local-symbols.m:14:10: UnexposedExpr= Extent=[14:10 - 14:11]
-// CHECK: local-symbols.m:14:10: UnexposedExpr= Extent=[14:10 - 14:11]
+// CHECK: local-symbols.m:14:10: IntegerLiteral= Extent=[14:10 - 14:11]
 // CHECK: local-symbols.m:20:11: ObjCProtocolDecl=Prot8380046:20:11 (Definition) Extent=[20:1 - 21:5]
 // CHECK: local-symbols.m:23:12: ObjCInterfaceDecl=R8380046:23:12 Extent=[23:1 - 24:5]
 // CHECK: local-symbols.m:26:12: ObjCCategoryDecl=:26:12 Extent=[26:1 - 27:5]

Modified: cfe/trunk/test/Index/nested-binaryoperators.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/nested-binaryoperators.cpp?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/nested-binaryoperators.cpp (original)
+++ cfe/trunk/test/Index/nested-binaryoperators.cpp Wed Oct  5 14:00:14 2011
@@ -165,1818 +165,1819 @@
 // CHECK: 2:5: FunctionDecl=foo:2:5 (Definition) Extent=[2:1 - 161:2]
 // CHECK: 2:14: ParmDecl=c:2:14 (Definition) Extent=[2:9 - 2:15]
 // CHECK: 2:9: TypeRef=uint:1:22 Extent=[2:9 - 2:13]
-// CHECK: 2:17: UnexposedStmt= Extent=[2:17 - 161:2]
-// CHECK: 3:3: UnexposedStmt= Extent=[3:3 - 160:52]
+// CHECK: 2:17: CompoundStmt= Extent=[2:17 - 161:2]
+// CHECK: 3:3: ReturnStmt= Extent=[3:3 - 160:52]
 // CHECK: 3:10: UnexposedExpr= Extent=[3:10 - 160:52]
-// CHECK: 3:10: UnexposedExpr= Extent=[3:10 - 160:52]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 160:51]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 160:19]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 159:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 158:51]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 158:19]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 157:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 156:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 155:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 154:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 153:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 152:51]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 152:19]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 151:51]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 151:19]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 150:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 149:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 148:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 147:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 146:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 145:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 144:51]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 144:19]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 143:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 142:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 141:81]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 141:49]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 141:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 141:19]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 140:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 139:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 138:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 137:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 136:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 135:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 134:81]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 134:49]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 134:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 134:19]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 133:51]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 133:19]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 132:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 131:33]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 130:64]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 130:49]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 130:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 130:19]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 129:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 128:33]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 127:64]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 127:49]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 127:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 127:19]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 126:51]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 126:19]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 125:63]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 125:31]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 125:16]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 124:64]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 124:49]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 124:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 124:19]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 123:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 122:51]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 122:19]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 121:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 120:51]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 120:19]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 119:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 118:36]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 117:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 116:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 115:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 115:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 114:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 114:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 113:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 112:62]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 112:32]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 112:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 111:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 110:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 109:62]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 109:32]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 109:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 108:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 108:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 107:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 106:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 105:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 105:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 104:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 103:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 102:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 101:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 100:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 99:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 98:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 98:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 97:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 96:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 95:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 94:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 93:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 92:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 91:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 90:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 89:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 88:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 87:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 86:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 85:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 84:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 83:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 82:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 82:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 81:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 80:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 79:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 78:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 77:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 76:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 76:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 75:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 74:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 73:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 72:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 71:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 70:62]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 70:32]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 70:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 69:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 68:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 67:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 66:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 65:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 65:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 64:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 63:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 63:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 62:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 61:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 60:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 59:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 58:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 57:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 56:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 55:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 54:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 53:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 52:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 51:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 51:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 50:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 49:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 48:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 47:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 46:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 46:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 45:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 44:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 44:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 43:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 42:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 41:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 40:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 39:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 38:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 37:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 36:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 35:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 35:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 34:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 33:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 32:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 31:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 30:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 29:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 28:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 27:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 26:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 25:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 24:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 23:45]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 23:15]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 22:46]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 22:32]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 22:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 21:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 20:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 19:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 19:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 18:48]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 18:18]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 17:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 16:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 15:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 14:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 13:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 12:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 11:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 10:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 9:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 8:34]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 7:32]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 6:32]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 5:32]
-// CHECK: 3:11: UnexposedExpr= Extent=[3:11 - 4:32]
-// CHECK: 3:12: UnexposedExpr= Extent=[3:12 - 3:34]
-// CHECK: 3:12: UnexposedExpr= Extent=[3:12 - 3:21]
+// 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:12: DeclRefExpr=c:2:14 Extent=[3:12 - 3:13]
 // CHECK: 3:17: UnexposedExpr= Extent=[3:17 - 3:21]
-// CHECK: 3:17: UnexposedExpr= Extent=[3:17 - 3:21]
-// CHECK: 3:25: UnexposedExpr= Extent=[3:25 - 3:34]
+// CHECK: 3:17: IntegerLiteral= Extent=[3:17 - 3:21]
+// CHECK: 3:25: BinaryOperator= Extent=[3:25 - 3:34]
 // CHECK: 3:25: DeclRefExpr=c:2:14 Extent=[3:25 - 3:26]
 // CHECK: 3:30: UnexposedExpr= Extent=[3:30 - 3:34]
-// CHECK: 3:30: UnexposedExpr= Extent=[3:30 - 3:34]
-// CHECK: 4:9: UnexposedExpr= Extent=[4:9 - 4:31]
-// CHECK: 4:9: UnexposedExpr= Extent=[4:9 - 4:18]
+// 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:9: DeclRefExpr=c:2:14 Extent=[4:9 - 4:10]
 // CHECK: 4:14: UnexposedExpr= Extent=[4:14 - 4:18]
-// CHECK: 4:14: UnexposedExpr= Extent=[4:14 - 4:18]
-// CHECK: 4:22: UnexposedExpr= Extent=[4:22 - 4:31]
+// CHECK: 4:14: IntegerLiteral= Extent=[4:14 - 4:18]
+// CHECK: 4:22: BinaryOperator= Extent=[4:22 - 4:31]
 // CHECK: 4:22: DeclRefExpr=c:2:14 Extent=[4:22 - 4:23]
 // CHECK: 4:27: UnexposedExpr= Extent=[4:27 - 4:31]
-// CHECK: 4:27: UnexposedExpr= Extent=[4:27 - 4:31]
-// CHECK: 5:9: UnexposedExpr= Extent=[5:9 - 5:31]
-// CHECK: 5:9: UnexposedExpr= Extent=[5:9 - 5:18]
+// 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: DeclRefExpr=c:2:14 Extent=[5:9 - 5:10]
 // CHECK: 5:14: UnexposedExpr= Extent=[5:14 - 5:18]
-// CHECK: 5:14: UnexposedExpr= Extent=[5:14 - 5:18]
-// CHECK: 5:22: UnexposedExpr= Extent=[5:22 - 5:31]
+// CHECK: 5:14: IntegerLiteral= Extent=[5:14 - 5:18]
+// CHECK: 5:22: BinaryOperator= Extent=[5:22 - 5:31]
 // CHECK: 5:22: DeclRefExpr=c:2:14 Extent=[5:22 - 5:23]
 // CHECK: 5:27: UnexposedExpr= Extent=[5:27 - 5:31]
-// CHECK: 5:27: UnexposedExpr= Extent=[5:27 - 5:31]
-// CHECK: 6:9: UnexposedExpr= Extent=[6:9 - 6:31]
-// CHECK: 6:9: UnexposedExpr= Extent=[6:9 - 6:18]
+// 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:9: DeclRefExpr=c:2:14 Extent=[6:9 - 6:10]
 // CHECK: 6:14: UnexposedExpr= Extent=[6:14 - 6:18]
-// CHECK: 6:14: UnexposedExpr= Extent=[6:14 - 6:18]
-// CHECK: 6:22: UnexposedExpr= Extent=[6:22 - 6:31]
+// CHECK: 6:14: IntegerLiteral= Extent=[6:14 - 6:18]
+// CHECK: 6:22: BinaryOperator= Extent=[6:22 - 6:31]
 // CHECK: 6:22: DeclRefExpr=c:2:14 Extent=[6:22 - 6:23]
 // CHECK: 6:27: UnexposedExpr= Extent=[6:27 - 6:31]
-// CHECK: 6:27: UnexposedExpr= Extent=[6:27 - 6:31]
-// CHECK: 7:9: UnexposedExpr= Extent=[7:9 - 7:31]
-// CHECK: 7:9: UnexposedExpr= Extent=[7:9 - 7:18]
+// 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:9: DeclRefExpr=c:2:14 Extent=[7:9 - 7:10]
 // CHECK: 7:14: UnexposedExpr= Extent=[7:14 - 7:18]
-// CHECK: 7:14: UnexposedExpr= Extent=[7:14 - 7:18]
-// CHECK: 7:22: UnexposedExpr= Extent=[7:22 - 7:31]
+// CHECK: 7:14: IntegerLiteral= Extent=[7:14 - 7:18]
+// CHECK: 7:22: BinaryOperator= Extent=[7:22 - 7:31]
 // CHECK: 7:22: DeclRefExpr=c:2:14 Extent=[7:22 - 7:23]
 // CHECK: 7:27: UnexposedExpr= Extent=[7:27 - 7:31]
-// CHECK: 7:27: UnexposedExpr= Extent=[7:27 - 7:31]
-// CHECK: 8:9: UnexposedExpr= Extent=[8:9 - 8:33]
-// CHECK: 8:9: UnexposedExpr= Extent=[8:9 - 8:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[8:9 - 8:10]
 // CHECK: 8:14: UnexposedExpr= Extent=[8:14 - 8:19]
-// CHECK: 8:14: UnexposedExpr= Extent=[8:14 - 8:19]
-// CHECK: 8:23: UnexposedExpr= Extent=[8:23 - 8:33]
+// CHECK: 8:14: IntegerLiteral= Extent=[8:14 - 8:19]
+// CHECK: 8:23: BinaryOperator= Extent=[8:23 - 8:33]
 // CHECK: 8:23: DeclRefExpr=c:2:14 Extent=[8:23 - 8:24]
 // CHECK: 8:28: UnexposedExpr= Extent=[8:28 - 8:33]
-// CHECK: 8:28: UnexposedExpr= Extent=[8:28 - 8:33]
-// CHECK: 9:9: UnexposedExpr= Extent=[9:9 - 9:33]
-// CHECK: 9:9: UnexposedExpr= Extent=[9:9 - 9:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[9:9 - 9:10]
 // CHECK: 9:14: UnexposedExpr= Extent=[9:14 - 9:19]
-// CHECK: 9:14: UnexposedExpr= Extent=[9:14 - 9:19]
-// CHECK: 9:23: UnexposedExpr= Extent=[9:23 - 9:33]
+// CHECK: 9:14: IntegerLiteral= Extent=[9:14 - 9:19]
+// CHECK: 9:23: BinaryOperator= Extent=[9:23 - 9:33]
 // CHECK: 9:23: DeclRefExpr=c:2:14 Extent=[9:23 - 9:24]
 // CHECK: 9:28: UnexposedExpr= Extent=[9:28 - 9:33]
-// CHECK: 9:28: UnexposedExpr= Extent=[9:28 - 9:33]
-// CHECK: 10:9: UnexposedExpr= Extent=[10:9 - 10:33]
-// CHECK: 10:9: UnexposedExpr= Extent=[10:9 - 10:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[10:9 - 10:10]
 // CHECK: 10:14: UnexposedExpr= Extent=[10:14 - 10:19]
-// CHECK: 10:14: UnexposedExpr= Extent=[10:14 - 10:19]
-// CHECK: 10:23: UnexposedExpr= Extent=[10:23 - 10:33]
+// CHECK: 10:14: IntegerLiteral= Extent=[10:14 - 10:19]
+// CHECK: 10:23: BinaryOperator= Extent=[10:23 - 10:33]
 // CHECK: 10:23: DeclRefExpr=c:2:14 Extent=[10:23 - 10:24]
 // CHECK: 10:28: UnexposedExpr= Extent=[10:28 - 10:33]
-// CHECK: 10:28: UnexposedExpr= Extent=[10:28 - 10:33]
-// CHECK: 11:9: UnexposedExpr= Extent=[11:9 - 11:33]
-// CHECK: 11:9: UnexposedExpr= Extent=[11:9 - 11:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[11:9 - 11:10]
 // CHECK: 11:14: UnexposedExpr= Extent=[11:14 - 11:19]
-// CHECK: 11:14: UnexposedExpr= Extent=[11:14 - 11:19]
-// CHECK: 11:23: UnexposedExpr= Extent=[11:23 - 11:33]
+// CHECK: 11:14: IntegerLiteral= Extent=[11:14 - 11:19]
+// CHECK: 11:23: BinaryOperator= Extent=[11:23 - 11:33]
 // CHECK: 11:23: DeclRefExpr=c:2:14 Extent=[11:23 - 11:24]
 // CHECK: 11:28: UnexposedExpr= Extent=[11:28 - 11:33]
-// CHECK: 11:28: UnexposedExpr= Extent=[11:28 - 11:33]
-// CHECK: 12:9: UnexposedExpr= Extent=[12:9 - 12:33]
-// CHECK: 12:9: UnexposedExpr= Extent=[12:9 - 12:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[12:9 - 12:10]
 // CHECK: 12:14: UnexposedExpr= Extent=[12:14 - 12:19]
-// CHECK: 12:14: UnexposedExpr= Extent=[12:14 - 12:19]
-// CHECK: 12:23: UnexposedExpr= Extent=[12:23 - 12:33]
+// CHECK: 12:14: IntegerLiteral= Extent=[12:14 - 12:19]
+// CHECK: 12:23: BinaryOperator= Extent=[12:23 - 12:33]
 // CHECK: 12:23: DeclRefExpr=c:2:14 Extent=[12:23 - 12:24]
 // CHECK: 12:28: UnexposedExpr= Extent=[12:28 - 12:33]
-// CHECK: 12:28: UnexposedExpr= Extent=[12:28 - 12:33]
-// CHECK: 13:9: UnexposedExpr= Extent=[13:9 - 13:33]
-// CHECK: 13:9: UnexposedExpr= Extent=[13:9 - 13:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[13:9 - 13:10]
 // CHECK: 13:14: UnexposedExpr= Extent=[13:14 - 13:19]
-// CHECK: 13:14: UnexposedExpr= Extent=[13:14 - 13:19]
-// CHECK: 13:23: UnexposedExpr= Extent=[13:23 - 13:33]
+// CHECK: 13:14: IntegerLiteral= Extent=[13:14 - 13:19]
+// CHECK: 13:23: BinaryOperator= Extent=[13:23 - 13:33]
 // CHECK: 13:23: DeclRefExpr=c:2:14 Extent=[13:23 - 13:24]
 // CHECK: 13:28: UnexposedExpr= Extent=[13:28 - 13:33]
-// CHECK: 13:28: UnexposedExpr= Extent=[13:28 - 13:33]
-// CHECK: 14:9: UnexposedExpr= Extent=[14:9 - 14:33]
-// CHECK: 14:9: UnexposedExpr= Extent=[14:9 - 14:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[14:9 - 14:10]
 // CHECK: 14:14: UnexposedExpr= Extent=[14:14 - 14:19]
-// CHECK: 14:14: UnexposedExpr= Extent=[14:14 - 14:19]
-// CHECK: 14:23: UnexposedExpr= Extent=[14:23 - 14:33]
+// CHECK: 14:14: IntegerLiteral= Extent=[14:14 - 14:19]
+// CHECK: 14:23: BinaryOperator= Extent=[14:23 - 14:33]
 // CHECK: 14:23: DeclRefExpr=c:2:14 Extent=[14:23 - 14:24]
 // CHECK: 14:28: UnexposedExpr= Extent=[14:28 - 14:33]
-// CHECK: 14:28: UnexposedExpr= Extent=[14:28 - 14:33]
-// CHECK: 15:9: UnexposedExpr= Extent=[15:9 - 15:33]
-// CHECK: 15:9: UnexposedExpr= Extent=[15:9 - 15:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[15:9 - 15:10]
 // CHECK: 15:14: UnexposedExpr= Extent=[15:14 - 15:19]
-// CHECK: 15:14: UnexposedExpr= Extent=[15:14 - 15:19]
-// CHECK: 15:23: UnexposedExpr= Extent=[15:23 - 15:33]
+// CHECK: 15:14: IntegerLiteral= Extent=[15:14 - 15:19]
+// CHECK: 15:23: BinaryOperator= Extent=[15:23 - 15:33]
 // CHECK: 15:23: DeclRefExpr=c:2:14 Extent=[15:23 - 15:24]
 // CHECK: 15:28: UnexposedExpr= Extent=[15:28 - 15:33]
-// CHECK: 15:28: UnexposedExpr= Extent=[15:28 - 15:33]
-// CHECK: 16:9: UnexposedExpr= Extent=[16:9 - 16:33]
-// CHECK: 16:9: UnexposedExpr= Extent=[16:9 - 16:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[16:9 - 16:10]
 // CHECK: 16:14: UnexposedExpr= Extent=[16:14 - 16:19]
-// CHECK: 16:14: UnexposedExpr= Extent=[16:14 - 16:19]
-// CHECK: 16:23: UnexposedExpr= Extent=[16:23 - 16:33]
+// CHECK: 16:14: IntegerLiteral= Extent=[16:14 - 16:19]
+// CHECK: 16:23: BinaryOperator= Extent=[16:23 - 16:33]
 // CHECK: 16:23: DeclRefExpr=c:2:14 Extent=[16:23 - 16:24]
 // CHECK: 16:28: UnexposedExpr= Extent=[16:28 - 16:33]
-// CHECK: 16:28: UnexposedExpr= Extent=[16:28 - 16:33]
-// CHECK: 17:9: UnexposedExpr= Extent=[17:9 - 17:33]
-// CHECK: 17:9: UnexposedExpr= Extent=[17:9 - 17:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[17:9 - 17:10]
 // CHECK: 17:14: UnexposedExpr= Extent=[17:14 - 17:19]
-// CHECK: 17:14: UnexposedExpr= Extent=[17:14 - 17:19]
-// CHECK: 17:23: UnexposedExpr= Extent=[17:23 - 17:33]
+// CHECK: 17:14: IntegerLiteral= Extent=[17:14 - 17:19]
+// CHECK: 17:23: BinaryOperator= Extent=[17:23 - 17:33]
 // CHECK: 17:23: DeclRefExpr=c:2:14 Extent=[17:23 - 17:24]
 // CHECK: 17:28: UnexposedExpr= Extent=[17:28 - 17:33]
-// CHECK: 17:28: UnexposedExpr= Extent=[17:28 - 17:33]
-// CHECK: 18:8: UnexposedExpr= Extent=[18:8 - 18:18]
+// CHECK: 17:28: IntegerLiteral= Extent=[17:28 - 17:33]
+// CHECK: 18:8: BinaryOperator= Extent=[18:8 - 18:18]
 // CHECK: 18:8: DeclRefExpr=c:2:14 Extent=[18:8 - 18:9]
 // CHECK: 18:13: UnexposedExpr= Extent=[18:13 - 18:18]
-// CHECK: 18:13: UnexposedExpr= Extent=[18:13 - 18:18]
-// CHECK: 18:23: UnexposedExpr= Extent=[18:23 - 18:47]
-// CHECK: 18:23: UnexposedExpr= Extent=[18:23 - 18:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[18:23 - 18:24]
 // CHECK: 18:28: UnexposedExpr= Extent=[18:28 - 18:33]
-// CHECK: 18:28: UnexposedExpr= Extent=[18:28 - 18:33]
-// CHECK: 18:37: UnexposedExpr= Extent=[18:37 - 18:47]
+// CHECK: 18:28: IntegerLiteral= Extent=[18:28 - 18:33]
+// CHECK: 18:37: BinaryOperator= Extent=[18:37 - 18:47]
 // CHECK: 18:37: DeclRefExpr=c:2:14 Extent=[18:37 - 18:38]
 // CHECK: 18:42: UnexposedExpr= Extent=[18:42 - 18:47]
-// CHECK: 18:42: UnexposedExpr= Extent=[18:42 - 18:47]
-// CHECK: 19:8: UnexposedExpr= Extent=[19:8 - 19:18]
+// CHECK: 18:42: IntegerLiteral= Extent=[18:42 - 18:47]
+// CHECK: 19:8: BinaryOperator= Extent=[19:8 - 19:18]
 // CHECK: 19:8: DeclRefExpr=c:2:14 Extent=[19:8 - 19:9]
 // CHECK: 19:13: UnexposedExpr= Extent=[19:13 - 19:18]
-// CHECK: 19:13: UnexposedExpr= Extent=[19:13 - 19:18]
-// CHECK: 19:23: UnexposedExpr= Extent=[19:23 - 19:47]
-// CHECK: 19:23: UnexposedExpr= Extent=[19:23 - 19:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[19:23 - 19:24]
 // CHECK: 19:28: UnexposedExpr= Extent=[19:28 - 19:33]
-// CHECK: 19:28: UnexposedExpr= Extent=[19:28 - 19:33]
-// CHECK: 19:37: UnexposedExpr= Extent=[19:37 - 19:47]
+// CHECK: 19:28: IntegerLiteral= Extent=[19:28 - 19:33]
+// CHECK: 19:37: BinaryOperator= Extent=[19:37 - 19:47]
 // CHECK: 19:37: DeclRefExpr=c:2:14 Extent=[19:37 - 19:38]
 // CHECK: 19:42: UnexposedExpr= Extent=[19:42 - 19:47]
-// CHECK: 19:42: UnexposedExpr= Extent=[19:42 - 19:47]
-// CHECK: 20:9: UnexposedExpr= Extent=[20:9 - 20:33]
-// CHECK: 20:9: UnexposedExpr= Extent=[20:9 - 20:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[20:9 - 20:10]
 // CHECK: 20:14: UnexposedExpr= Extent=[20:14 - 20:19]
-// CHECK: 20:14: UnexposedExpr= Extent=[20:14 - 20:19]
-// CHECK: 20:23: UnexposedExpr= Extent=[20:23 - 20:33]
+// CHECK: 20:14: IntegerLiteral= Extent=[20:14 - 20:19]
+// CHECK: 20:23: BinaryOperator= Extent=[20:23 - 20:33]
 // CHECK: 20:23: DeclRefExpr=c:2:14 Extent=[20:23 - 20:24]
 // CHECK: 20:28: UnexposedExpr= Extent=[20:28 - 20:33]
-// CHECK: 20:28: UnexposedExpr= Extent=[20:28 - 20:33]
-// CHECK: 21:9: UnexposedExpr= Extent=[21:9 - 21:33]
-// CHECK: 21:9: UnexposedExpr= Extent=[21:9 - 21:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[21:9 - 21:10]
 // CHECK: 21:14: UnexposedExpr= Extent=[21:14 - 21:19]
-// CHECK: 21:14: UnexposedExpr= Extent=[21:14 - 21:19]
-// CHECK: 21:23: UnexposedExpr= Extent=[21:23 - 21:33]
+// CHECK: 21:14: IntegerLiteral= Extent=[21:14 - 21:19]
+// CHECK: 21:23: BinaryOperator= Extent=[21:23 - 21:33]
 // CHECK: 21:23: DeclRefExpr=c:2:14 Extent=[21:23 - 21:24]
 // CHECK: 21:28: UnexposedExpr= Extent=[21:28 - 21:33]
-// CHECK: 21:28: UnexposedExpr= Extent=[21:28 - 21:33]
-// CHECK: 22:8: UnexposedExpr= Extent=[22:8 - 22:18]
+// CHECK: 21:28: IntegerLiteral= Extent=[21:28 - 21:33]
+// CHECK: 22:8: BinaryOperator= Extent=[22:8 - 22:18]
 // CHECK: 22:8: DeclRefExpr=c:2:14 Extent=[22:8 - 22:9]
 // CHECK: 22:13: UnexposedExpr= Extent=[22:13 - 22:18]
-// CHECK: 22:13: UnexposedExpr= Extent=[22:13 - 22:18]
-// CHECK: 22:22: UnexposedExpr= Extent=[22:22 - 22:32]
+// CHECK: 22:13: IntegerLiteral= Extent=[22:13 - 22:18]
+// CHECK: 22:22: BinaryOperator= Extent=[22:22 - 22:32]
 // CHECK: 22:22: DeclRefExpr=c:2:14 Extent=[22:22 - 22:23]
 // CHECK: 22:27: UnexposedExpr= Extent=[22:27 - 22:32]
-// CHECK: 22:27: UnexposedExpr= Extent=[22:27 - 22:32]
-// CHECK: 22:36: UnexposedExpr= Extent=[22:36 - 22:46]
+// CHECK: 22:27: IntegerLiteral= Extent=[22:27 - 22:32]
+// CHECK: 22:36: BinaryOperator= Extent=[22:36 - 22:46]
 // CHECK: 22:36: DeclRefExpr=c:2:14 Extent=[22:36 - 22:37]
 // CHECK: 22:41: UnexposedExpr= Extent=[22:41 - 22:46]
-// CHECK: 22:41: UnexposedExpr= Extent=[22:41 - 22:46]
-// CHECK: 23:5: UnexposedExpr= Extent=[23:5 - 23:15]
+// CHECK: 22:41: IntegerLiteral= Extent=[22:41 - 22:46]
+// CHECK: 23:5: BinaryOperator= Extent=[23:5 - 23:15]
 // CHECK: 23:5: DeclRefExpr=c:2:14 Extent=[23:5 - 23:6]
 // CHECK: 23:10: UnexposedExpr= Extent=[23:10 - 23:15]
-// CHECK: 23:10: UnexposedExpr= Extent=[23:10 - 23:15]
-// CHECK: 23:20: UnexposedExpr= Extent=[23:20 - 23:44]
-// CHECK: 23:20: UnexposedExpr= Extent=[23:20 - 23:30]
+// 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:20: DeclRefExpr=c:2:14 Extent=[23:20 - 23:21]
 // CHECK: 23:25: UnexposedExpr= Extent=[23:25 - 23:30]
-// CHECK: 23:25: UnexposedExpr= Extent=[23:25 - 23:30]
-// CHECK: 23:34: UnexposedExpr= Extent=[23:34 - 23:44]
+// CHECK: 23:25: IntegerLiteral= Extent=[23:25 - 23:30]
+// CHECK: 23:34: BinaryOperator= Extent=[23:34 - 23:44]
 // CHECK: 23:34: DeclRefExpr=c:2:14 Extent=[23:34 - 23:35]
 // CHECK: 23:39: UnexposedExpr= Extent=[23:39 - 23:44]
-// CHECK: 23:39: UnexposedExpr= Extent=[23:39 - 23:44]
-// CHECK: 24:9: UnexposedExpr= Extent=[24:9 - 24:33]
-// CHECK: 24:9: UnexposedExpr= Extent=[24:9 - 24:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[24:9 - 24:10]
 // CHECK: 24:14: UnexposedExpr= Extent=[24:14 - 24:19]
-// CHECK: 24:14: UnexposedExpr= Extent=[24:14 - 24:19]
-// CHECK: 24:23: UnexposedExpr= Extent=[24:23 - 24:33]
+// CHECK: 24:14: IntegerLiteral= Extent=[24:14 - 24:19]
+// CHECK: 24:23: BinaryOperator= Extent=[24:23 - 24:33]
 // CHECK: 24:23: DeclRefExpr=c:2:14 Extent=[24:23 - 24:24]
 // CHECK: 24:28: UnexposedExpr= Extent=[24:28 - 24:33]
-// CHECK: 24:28: UnexposedExpr= Extent=[24:28 - 24:33]
-// CHECK: 25:9: UnexposedExpr= Extent=[25:9 - 25:33]
-// CHECK: 25:9: UnexposedExpr= Extent=[25:9 - 25:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[25:9 - 25:10]
 // CHECK: 25:14: UnexposedExpr= Extent=[25:14 - 25:19]
-// CHECK: 25:14: UnexposedExpr= Extent=[25:14 - 25:19]
-// CHECK: 25:23: UnexposedExpr= Extent=[25:23 - 25:33]
+// CHECK: 25:14: IntegerLiteral= Extent=[25:14 - 25:19]
+// CHECK: 25:23: BinaryOperator= Extent=[25:23 - 25:33]
 // CHECK: 25:23: DeclRefExpr=c:2:14 Extent=[25:23 - 25:24]
 // CHECK: 25:28: UnexposedExpr= Extent=[25:28 - 25:33]
-// CHECK: 25:28: UnexposedExpr= Extent=[25:28 - 25:33]
-// CHECK: 26:9: UnexposedExpr= Extent=[26:9 - 26:33]
-// CHECK: 26:9: UnexposedExpr= Extent=[26:9 - 26:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[26:9 - 26:10]
 // CHECK: 26:14: UnexposedExpr= Extent=[26:14 - 26:19]
-// CHECK: 26:14: UnexposedExpr= Extent=[26:14 - 26:19]
-// CHECK: 26:23: UnexposedExpr= Extent=[26:23 - 26:33]
+// CHECK: 26:14: IntegerLiteral= Extent=[26:14 - 26:19]
+// CHECK: 26:23: BinaryOperator= Extent=[26:23 - 26:33]
 // CHECK: 26:23: DeclRefExpr=c:2:14 Extent=[26:23 - 26:24]
 // CHECK: 26:28: UnexposedExpr= Extent=[26:28 - 26:33]
-// CHECK: 26:28: UnexposedExpr= Extent=[26:28 - 26:33]
-// CHECK: 27:9: UnexposedExpr= Extent=[27:9 - 27:33]
-// CHECK: 27:9: UnexposedExpr= Extent=[27:9 - 27:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[27:9 - 27:10]
 // CHECK: 27:14: UnexposedExpr= Extent=[27:14 - 27:19]
-// CHECK: 27:14: UnexposedExpr= Extent=[27:14 - 27:19]
-// CHECK: 27:23: UnexposedExpr= Extent=[27:23 - 27:33]
+// CHECK: 27:14: IntegerLiteral= Extent=[27:14 - 27:19]
+// CHECK: 27:23: BinaryOperator= Extent=[27:23 - 27:33]
 // CHECK: 27:23: DeclRefExpr=c:2:14 Extent=[27:23 - 27:24]
 // CHECK: 27:28: UnexposedExpr= Extent=[27:28 - 27:33]
-// CHECK: 27:28: UnexposedExpr= Extent=[27:28 - 27:33]
-// CHECK: 28:9: UnexposedExpr= Extent=[28:9 - 28:33]
-// CHECK: 28:9: UnexposedExpr= Extent=[28:9 - 28:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[28:9 - 28:10]
 // CHECK: 28:14: UnexposedExpr= Extent=[28:14 - 28:19]
-// CHECK: 28:14: UnexposedExpr= Extent=[28:14 - 28:19]
-// CHECK: 28:23: UnexposedExpr= Extent=[28:23 - 28:33]
+// CHECK: 28:14: IntegerLiteral= Extent=[28:14 - 28:19]
+// CHECK: 28:23: BinaryOperator= Extent=[28:23 - 28:33]
 // CHECK: 28:23: DeclRefExpr=c:2:14 Extent=[28:23 - 28:24]
 // CHECK: 28:28: UnexposedExpr= Extent=[28:28 - 28:33]
-// CHECK: 28:28: UnexposedExpr= Extent=[28:28 - 28:33]
-// CHECK: 29:9: UnexposedExpr= Extent=[29:9 - 29:33]
-// CHECK: 29:9: UnexposedExpr= Extent=[29:9 - 29:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[29:9 - 29:10]
 // CHECK: 29:14: UnexposedExpr= Extent=[29:14 - 29:19]
-// CHECK: 29:14: UnexposedExpr= Extent=[29:14 - 29:19]
-// CHECK: 29:23: UnexposedExpr= Extent=[29:23 - 29:33]
+// CHECK: 29:14: IntegerLiteral= Extent=[29:14 - 29:19]
+// CHECK: 29:23: BinaryOperator= Extent=[29:23 - 29:33]
 // CHECK: 29:23: DeclRefExpr=c:2:14 Extent=[29:23 - 29:24]
 // CHECK: 29:28: UnexposedExpr= Extent=[29:28 - 29:33]
-// CHECK: 29:28: UnexposedExpr= Extent=[29:28 - 29:33]
-// CHECK: 30:9: UnexposedExpr= Extent=[30:9 - 30:33]
-// CHECK: 30:9: UnexposedExpr= Extent=[30:9 - 30:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[30:9 - 30:10]
 // CHECK: 30:14: UnexposedExpr= Extent=[30:14 - 30:19]
-// CHECK: 30:14: UnexposedExpr= Extent=[30:14 - 30:19]
-// CHECK: 30:23: UnexposedExpr= Extent=[30:23 - 30:33]
+// CHECK: 30:14: IntegerLiteral= Extent=[30:14 - 30:19]
+// CHECK: 30:23: BinaryOperator= Extent=[30:23 - 30:33]
 // CHECK: 30:23: DeclRefExpr=c:2:14 Extent=[30:23 - 30:24]
 // CHECK: 30:28: UnexposedExpr= Extent=[30:28 - 30:33]
-// CHECK: 30:28: UnexposedExpr= Extent=[30:28 - 30:33]
-// CHECK: 31:9: UnexposedExpr= Extent=[31:9 - 31:33]
-// CHECK: 31:9: UnexposedExpr= Extent=[31:9 - 31:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[31:9 - 31:10]
 // CHECK: 31:14: UnexposedExpr= Extent=[31:14 - 31:19]
-// CHECK: 31:14: UnexposedExpr= Extent=[31:14 - 31:19]
-// CHECK: 31:23: UnexposedExpr= Extent=[31:23 - 31:33]
+// CHECK: 31:14: IntegerLiteral= Extent=[31:14 - 31:19]
+// CHECK: 31:23: BinaryOperator= Extent=[31:23 - 31:33]
 // CHECK: 31:23: DeclRefExpr=c:2:14 Extent=[31:23 - 31:24]
 // CHECK: 31:28: UnexposedExpr= Extent=[31:28 - 31:33]
-// CHECK: 31:28: UnexposedExpr= Extent=[31:28 - 31:33]
-// CHECK: 32:9: UnexposedExpr= Extent=[32:9 - 32:33]
-// CHECK: 32:9: UnexposedExpr= Extent=[32:9 - 32:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[32:9 - 32:10]
 // CHECK: 32:14: UnexposedExpr= Extent=[32:14 - 32:19]
-// CHECK: 32:14: UnexposedExpr= Extent=[32:14 - 32:19]
-// CHECK: 32:23: UnexposedExpr= Extent=[32:23 - 32:33]
+// CHECK: 32:14: IntegerLiteral= Extent=[32:14 - 32:19]
+// CHECK: 32:23: BinaryOperator= Extent=[32:23 - 32:33]
 // CHECK: 32:23: DeclRefExpr=c:2:14 Extent=[32:23 - 32:24]
 // CHECK: 32:28: UnexposedExpr= Extent=[32:28 - 32:33]
-// CHECK: 32:28: UnexposedExpr= Extent=[32:28 - 32:33]
-// CHECK: 33:9: UnexposedExpr= Extent=[33:9 - 33:33]
-// CHECK: 33:9: UnexposedExpr= Extent=[33:9 - 33:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[33:9 - 33:10]
 // CHECK: 33:14: UnexposedExpr= Extent=[33:14 - 33:19]
-// CHECK: 33:14: UnexposedExpr= Extent=[33:14 - 33:19]
-// CHECK: 33:23: UnexposedExpr= Extent=[33:23 - 33:33]
+// CHECK: 33:14: IntegerLiteral= Extent=[33:14 - 33:19]
+// CHECK: 33:23: BinaryOperator= Extent=[33:23 - 33:33]
 // CHECK: 33:23: DeclRefExpr=c:2:14 Extent=[33:23 - 33:24]
 // CHECK: 33:28: UnexposedExpr= Extent=[33:28 - 33:33]
-// CHECK: 33:28: UnexposedExpr= Extent=[33:28 - 33:33]
-// CHECK: 34:9: UnexposedExpr= Extent=[34:9 - 34:33]
-// CHECK: 34:9: UnexposedExpr= Extent=[34:9 - 34:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[34:9 - 34:10]
 // CHECK: 34:14: UnexposedExpr= Extent=[34:14 - 34:19]
-// CHECK: 34:14: UnexposedExpr= Extent=[34:14 - 34:19]
-// CHECK: 34:23: UnexposedExpr= Extent=[34:23 - 34:33]
+// CHECK: 34:14: IntegerLiteral= Extent=[34:14 - 34:19]
+// CHECK: 34:23: BinaryOperator= Extent=[34:23 - 34:33]
 // CHECK: 34:23: DeclRefExpr=c:2:14 Extent=[34:23 - 34:24]
 // CHECK: 34:28: UnexposedExpr= Extent=[34:28 - 34:33]
-// CHECK: 34:28: UnexposedExpr= Extent=[34:28 - 34:33]
-// CHECK: 35:8: UnexposedExpr= Extent=[35:8 - 35:18]
+// CHECK: 34:28: IntegerLiteral= Extent=[34:28 - 34:33]
+// CHECK: 35:8: BinaryOperator= Extent=[35:8 - 35:18]
 // CHECK: 35:8: DeclRefExpr=c:2:14 Extent=[35:8 - 35:9]
 // CHECK: 35:13: UnexposedExpr= Extent=[35:13 - 35:18]
-// CHECK: 35:13: UnexposedExpr= Extent=[35:13 - 35:18]
-// CHECK: 35:23: UnexposedExpr= Extent=[35:23 - 35:47]
-// CHECK: 35:23: UnexposedExpr= Extent=[35:23 - 35:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[35:23 - 35:24]
 // CHECK: 35:28: UnexposedExpr= Extent=[35:28 - 35:33]
-// CHECK: 35:28: UnexposedExpr= Extent=[35:28 - 35:33]
-// CHECK: 35:37: UnexposedExpr= Extent=[35:37 - 35:47]
+// CHECK: 35:28: IntegerLiteral= Extent=[35:28 - 35:33]
+// CHECK: 35:37: BinaryOperator= Extent=[35:37 - 35:47]
 // CHECK: 35:37: DeclRefExpr=c:2:14 Extent=[35:37 - 35:38]
 // CHECK: 35:42: UnexposedExpr= Extent=[35:42 - 35:47]
-// CHECK: 35:42: UnexposedExpr= Extent=[35:42 - 35:47]
-// CHECK: 36:9: UnexposedExpr= Extent=[36:9 - 36:33]
-// CHECK: 36:9: UnexposedExpr= Extent=[36:9 - 36:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[36:9 - 36:10]
 // CHECK: 36:14: UnexposedExpr= Extent=[36:14 - 36:19]
-// CHECK: 36:14: UnexposedExpr= Extent=[36:14 - 36:19]
-// CHECK: 36:23: UnexposedExpr= Extent=[36:23 - 36:33]
+// CHECK: 36:14: IntegerLiteral= Extent=[36:14 - 36:19]
+// CHECK: 36:23: BinaryOperator= Extent=[36:23 - 36:33]
 // CHECK: 36:23: DeclRefExpr=c:2:14 Extent=[36:23 - 36:24]
 // CHECK: 36:28: UnexposedExpr= Extent=[36:28 - 36:33]
-// CHECK: 36:28: UnexposedExpr= Extent=[36:28 - 36:33]
-// CHECK: 37:9: UnexposedExpr= Extent=[37:9 - 37:33]
-// CHECK: 37:9: UnexposedExpr= Extent=[37:9 - 37:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[37:9 - 37:10]
 // CHECK: 37:14: UnexposedExpr= Extent=[37:14 - 37:19]
-// CHECK: 37:14: UnexposedExpr= Extent=[37:14 - 37:19]
-// CHECK: 37:23: UnexposedExpr= Extent=[37:23 - 37:33]
+// CHECK: 37:14: IntegerLiteral= Extent=[37:14 - 37:19]
+// CHECK: 37:23: BinaryOperator= Extent=[37:23 - 37:33]
 // CHECK: 37:23: DeclRefExpr=c:2:14 Extent=[37:23 - 37:24]
 // CHECK: 37:28: UnexposedExpr= Extent=[37:28 - 37:33]
-// CHECK: 37:28: UnexposedExpr= Extent=[37:28 - 37:33]
-// CHECK: 38:9: UnexposedExpr= Extent=[38:9 - 38:33]
-// CHECK: 38:9: UnexposedExpr= Extent=[38:9 - 38:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[38:9 - 38:10]
 // CHECK: 38:14: UnexposedExpr= Extent=[38:14 - 38:19]
-// CHECK: 38:14: UnexposedExpr= Extent=[38:14 - 38:19]
-// CHECK: 38:23: UnexposedExpr= Extent=[38:23 - 38:33]
+// CHECK: 38:14: IntegerLiteral= Extent=[38:14 - 38:19]
+// CHECK: 38:23: BinaryOperator= Extent=[38:23 - 38:33]
 // CHECK: 38:23: DeclRefExpr=c:2:14 Extent=[38:23 - 38:24]
 // CHECK: 38:28: UnexposedExpr= Extent=[38:28 - 38:33]
-// CHECK: 38:28: UnexposedExpr= Extent=[38:28 - 38:33]
-// CHECK: 39:9: UnexposedExpr= Extent=[39:9 - 39:33]
-// CHECK: 39:9: UnexposedExpr= Extent=[39:9 - 39:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[39:9 - 39:10]
 // CHECK: 39:14: UnexposedExpr= Extent=[39:14 - 39:19]
-// CHECK: 39:14: UnexposedExpr= Extent=[39:14 - 39:19]
-// CHECK: 39:23: UnexposedExpr= Extent=[39:23 - 39:33]
+// CHECK: 39:14: IntegerLiteral= Extent=[39:14 - 39:19]
+// CHECK: 39:23: BinaryOperator= Extent=[39:23 - 39:33]
 // CHECK: 39:23: DeclRefExpr=c:2:14 Extent=[39:23 - 39:24]
 // CHECK: 39:28: UnexposedExpr= Extent=[39:28 - 39:33]
-// CHECK: 39:28: UnexposedExpr= Extent=[39:28 - 39:33]
-// CHECK: 40:9: UnexposedExpr= Extent=[40:9 - 40:33]
-// CHECK: 40:9: UnexposedExpr= Extent=[40:9 - 40:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[40:9 - 40:10]
 // CHECK: 40:14: UnexposedExpr= Extent=[40:14 - 40:19]
-// CHECK: 40:14: UnexposedExpr= Extent=[40:14 - 40:19]
-// CHECK: 40:23: UnexposedExpr= Extent=[40:23 - 40:33]
+// CHECK: 40:14: IntegerLiteral= Extent=[40:14 - 40:19]
+// CHECK: 40:23: BinaryOperator= Extent=[40:23 - 40:33]
 // CHECK: 40:23: DeclRefExpr=c:2:14 Extent=[40:23 - 40:24]
 // CHECK: 40:28: UnexposedExpr= Extent=[40:28 - 40:33]
-// CHECK: 40:28: UnexposedExpr= Extent=[40:28 - 40:33]
-// CHECK: 41:9: UnexposedExpr= Extent=[41:9 - 41:33]
-// CHECK: 41:9: UnexposedExpr= Extent=[41:9 - 41:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[41:9 - 41:10]
 // CHECK: 41:14: UnexposedExpr= Extent=[41:14 - 41:19]
-// CHECK: 41:14: UnexposedExpr= Extent=[41:14 - 41:19]
-// CHECK: 41:23: UnexposedExpr= Extent=[41:23 - 41:33]
+// CHECK: 41:14: IntegerLiteral= Extent=[41:14 - 41:19]
+// CHECK: 41:23: BinaryOperator= Extent=[41:23 - 41:33]
 // CHECK: 41:23: DeclRefExpr=c:2:14 Extent=[41:23 - 41:24]
 // CHECK: 41:28: UnexposedExpr= Extent=[41:28 - 41:33]
-// CHECK: 41:28: UnexposedExpr= Extent=[41:28 - 41:33]
-// CHECK: 42:9: UnexposedExpr= Extent=[42:9 - 42:33]
-// CHECK: 42:9: UnexposedExpr= Extent=[42:9 - 42:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[42:9 - 42:10]
 // CHECK: 42:14: UnexposedExpr= Extent=[42:14 - 42:19]
-// CHECK: 42:14: UnexposedExpr= Extent=[42:14 - 42:19]
-// CHECK: 42:23: UnexposedExpr= Extent=[42:23 - 42:33]
+// CHECK: 42:14: IntegerLiteral= Extent=[42:14 - 42:19]
+// CHECK: 42:23: BinaryOperator= Extent=[42:23 - 42:33]
 // CHECK: 42:23: DeclRefExpr=c:2:14 Extent=[42:23 - 42:24]
 // CHECK: 42:28: UnexposedExpr= Extent=[42:28 - 42:33]
-// CHECK: 42:28: UnexposedExpr= Extent=[42:28 - 42:33]
-// CHECK: 43:9: UnexposedExpr= Extent=[43:9 - 43:33]
-// CHECK: 43:9: UnexposedExpr= Extent=[43:9 - 43:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[43:9 - 43:10]
 // CHECK: 43:14: UnexposedExpr= Extent=[43:14 - 43:19]
-// CHECK: 43:14: UnexposedExpr= Extent=[43:14 - 43:19]
-// CHECK: 43:23: UnexposedExpr= Extent=[43:23 - 43:33]
+// CHECK: 43:14: IntegerLiteral= Extent=[43:14 - 43:19]
+// CHECK: 43:23: BinaryOperator= Extent=[43:23 - 43:33]
 // CHECK: 43:23: DeclRefExpr=c:2:14 Extent=[43:23 - 43:24]
 // CHECK: 43:28: UnexposedExpr= Extent=[43:28 - 43:33]
-// CHECK: 43:28: UnexposedExpr= Extent=[43:28 - 43:33]
-// CHECK: 44:8: UnexposedExpr= Extent=[44:8 - 44:18]
+// CHECK: 43:28: IntegerLiteral= Extent=[43:28 - 43:33]
+// CHECK: 44:8: BinaryOperator= Extent=[44:8 - 44:18]
 // CHECK: 44:8: DeclRefExpr=c:2:14 Extent=[44:8 - 44:9]
 // CHECK: 44:13: UnexposedExpr= Extent=[44:13 - 44:18]
-// CHECK: 44:13: UnexposedExpr= Extent=[44:13 - 44:18]
-// CHECK: 44:23: UnexposedExpr= Extent=[44:23 - 44:47]
-// CHECK: 44:23: UnexposedExpr= Extent=[44:23 - 44:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[44:23 - 44:24]
 // CHECK: 44:28: UnexposedExpr= Extent=[44:28 - 44:33]
-// CHECK: 44:28: UnexposedExpr= Extent=[44:28 - 44:33]
-// CHECK: 44:37: UnexposedExpr= Extent=[44:37 - 44:47]
+// CHECK: 44:28: IntegerLiteral= Extent=[44:28 - 44:33]
+// CHECK: 44:37: BinaryOperator= Extent=[44:37 - 44:47]
 // CHECK: 44:37: DeclRefExpr=c:2:14 Extent=[44:37 - 44:38]
 // CHECK: 44:42: UnexposedExpr= Extent=[44:42 - 44:47]
-// CHECK: 44:42: UnexposedExpr= Extent=[44:42 - 44:47]
-// CHECK: 45:9: UnexposedExpr= Extent=[45:9 - 45:33]
-// CHECK: 45:9: UnexposedExpr= Extent=[45:9 - 45:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[45:9 - 45:10]
 // CHECK: 45:14: UnexposedExpr= Extent=[45:14 - 45:19]
-// CHECK: 45:14: UnexposedExpr= Extent=[45:14 - 45:19]
-// CHECK: 45:23: UnexposedExpr= Extent=[45:23 - 45:33]
+// CHECK: 45:14: IntegerLiteral= Extent=[45:14 - 45:19]
+// CHECK: 45:23: BinaryOperator= Extent=[45:23 - 45:33]
 // CHECK: 45:23: DeclRefExpr=c:2:14 Extent=[45:23 - 45:24]
 // CHECK: 45:28: UnexposedExpr= Extent=[45:28 - 45:33]
-// CHECK: 45:28: UnexposedExpr= Extent=[45:28 - 45:33]
-// CHECK: 46:8: UnexposedExpr= Extent=[46:8 - 46:18]
+// CHECK: 45:28: IntegerLiteral= Extent=[45:28 - 45:33]
+// CHECK: 46:8: BinaryOperator= Extent=[46:8 - 46:18]
 // CHECK: 46:8: DeclRefExpr=c:2:14 Extent=[46:8 - 46:9]
 // CHECK: 46:13: UnexposedExpr= Extent=[46:13 - 46:18]
-// CHECK: 46:13: UnexposedExpr= Extent=[46:13 - 46:18]
-// CHECK: 46:23: UnexposedExpr= Extent=[46:23 - 46:47]
-// CHECK: 46:23: UnexposedExpr= Extent=[46:23 - 46:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[46:23 - 46:24]
 // CHECK: 46:28: UnexposedExpr= Extent=[46:28 - 46:33]
-// CHECK: 46:28: UnexposedExpr= Extent=[46:28 - 46:33]
-// CHECK: 46:37: UnexposedExpr= Extent=[46:37 - 46:47]
+// CHECK: 46:28: IntegerLiteral= Extent=[46:28 - 46:33]
+// CHECK: 46:37: BinaryOperator= Extent=[46:37 - 46:47]
 // CHECK: 46:37: DeclRefExpr=c:2:14 Extent=[46:37 - 46:38]
 // CHECK: 46:42: UnexposedExpr= Extent=[46:42 - 46:47]
-// CHECK: 46:42: UnexposedExpr= Extent=[46:42 - 46:47]
-// CHECK: 47:9: UnexposedExpr= Extent=[47:9 - 47:33]
-// CHECK: 47:9: UnexposedExpr= Extent=[47:9 - 47:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[47:9 - 47:10]
 // CHECK: 47:14: UnexposedExpr= Extent=[47:14 - 47:19]
-// CHECK: 47:14: UnexposedExpr= Extent=[47:14 - 47:19]
-// CHECK: 47:23: UnexposedExpr= Extent=[47:23 - 47:33]
+// CHECK: 47:14: IntegerLiteral= Extent=[47:14 - 47:19]
+// CHECK: 47:23: BinaryOperator= Extent=[47:23 - 47:33]
 // CHECK: 47:23: DeclRefExpr=c:2:14 Extent=[47:23 - 47:24]
 // CHECK: 47:28: UnexposedExpr= Extent=[47:28 - 47:33]
-// CHECK: 47:28: UnexposedExpr= Extent=[47:28 - 47:33]
-// CHECK: 48:9: UnexposedExpr= Extent=[48:9 - 48:33]
-// CHECK: 48:9: UnexposedExpr= Extent=[48:9 - 48:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[48:9 - 48:10]
 // CHECK: 48:14: UnexposedExpr= Extent=[48:14 - 48:19]
-// CHECK: 48:14: UnexposedExpr= Extent=[48:14 - 48:19]
-// CHECK: 48:23: UnexposedExpr= Extent=[48:23 - 48:33]
+// CHECK: 48:14: IntegerLiteral= Extent=[48:14 - 48:19]
+// CHECK: 48:23: BinaryOperator= Extent=[48:23 - 48:33]
 // CHECK: 48:23: DeclRefExpr=c:2:14 Extent=[48:23 - 48:24]
 // CHECK: 48:28: UnexposedExpr= Extent=[48:28 - 48:33]
-// CHECK: 48:28: UnexposedExpr= Extent=[48:28 - 48:33]
-// CHECK: 49:9: UnexposedExpr= Extent=[49:9 - 49:33]
-// CHECK: 49:9: UnexposedExpr= Extent=[49:9 - 49:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[49:9 - 49:10]
 // CHECK: 49:14: UnexposedExpr= Extent=[49:14 - 49:19]
-// CHECK: 49:14: UnexposedExpr= Extent=[49:14 - 49:19]
-// CHECK: 49:23: UnexposedExpr= Extent=[49:23 - 49:33]
+// CHECK: 49:14: IntegerLiteral= Extent=[49:14 - 49:19]
+// CHECK: 49:23: BinaryOperator= Extent=[49:23 - 49:33]
 // CHECK: 49:23: DeclRefExpr=c:2:14 Extent=[49:23 - 49:24]
 // CHECK: 49:28: UnexposedExpr= Extent=[49:28 - 49:33]
-// CHECK: 49:28: UnexposedExpr= Extent=[49:28 - 49:33]
-// CHECK: 50:9: UnexposedExpr= Extent=[50:9 - 50:33]
-// CHECK: 50:9: UnexposedExpr= Extent=[50:9 - 50:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[50:9 - 50:10]
 // CHECK: 50:14: UnexposedExpr= Extent=[50:14 - 50:19]
-// CHECK: 50:14: UnexposedExpr= Extent=[50:14 - 50:19]
-// CHECK: 50:23: UnexposedExpr= Extent=[50:23 - 50:33]
+// CHECK: 50:14: IntegerLiteral= Extent=[50:14 - 50:19]
+// CHECK: 50:23: BinaryOperator= Extent=[50:23 - 50:33]
 // CHECK: 50:23: DeclRefExpr=c:2:14 Extent=[50:23 - 50:24]
 // CHECK: 50:28: UnexposedExpr= Extent=[50:28 - 50:33]
-// CHECK: 50:28: UnexposedExpr= Extent=[50:28 - 50:33]
-// CHECK: 51:8: UnexposedExpr= Extent=[51:8 - 51:18]
+// CHECK: 50:28: IntegerLiteral= Extent=[50:28 - 50:33]
+// CHECK: 51:8: BinaryOperator= Extent=[51:8 - 51:18]
 // CHECK: 51:8: DeclRefExpr=c:2:14 Extent=[51:8 - 51:9]
 // CHECK: 51:13: UnexposedExpr= Extent=[51:13 - 51:18]
-// CHECK: 51:13: UnexposedExpr= Extent=[51:13 - 51:18]
-// CHECK: 51:23: UnexposedExpr= Extent=[51:23 - 51:47]
-// CHECK: 51:23: UnexposedExpr= Extent=[51:23 - 51:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[51:23 - 51:24]
 // CHECK: 51:28: UnexposedExpr= Extent=[51:28 - 51:33]
-// CHECK: 51:28: UnexposedExpr= Extent=[51:28 - 51:33]
-// CHECK: 51:37: UnexposedExpr= Extent=[51:37 - 51:47]
+// CHECK: 51:28: IntegerLiteral= Extent=[51:28 - 51:33]
+// CHECK: 51:37: BinaryOperator= Extent=[51:37 - 51:47]
 // CHECK: 51:37: DeclRefExpr=c:2:14 Extent=[51:37 - 51:38]
 // CHECK: 51:42: UnexposedExpr= Extent=[51:42 - 51:47]
-// CHECK: 51:42: UnexposedExpr= Extent=[51:42 - 51:47]
-// CHECK: 52:9: UnexposedExpr= Extent=[52:9 - 52:33]
-// CHECK: 52:9: UnexposedExpr= Extent=[52:9 - 52:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[52:9 - 52:10]
 // CHECK: 52:14: UnexposedExpr= Extent=[52:14 - 52:19]
-// CHECK: 52:14: UnexposedExpr= Extent=[52:14 - 52:19]
-// CHECK: 52:23: UnexposedExpr= Extent=[52:23 - 52:33]
+// CHECK: 52:14: IntegerLiteral= Extent=[52:14 - 52:19]
+// CHECK: 52:23: BinaryOperator= Extent=[52:23 - 52:33]
 // CHECK: 52:23: DeclRefExpr=c:2:14 Extent=[52:23 - 52:24]
 // CHECK: 52:28: UnexposedExpr= Extent=[52:28 - 52:33]
-// CHECK: 52:28: UnexposedExpr= Extent=[52:28 - 52:33]
-// CHECK: 53:9: UnexposedExpr= Extent=[53:9 - 53:33]
-// CHECK: 53:9: UnexposedExpr= Extent=[53:9 - 53:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[53:9 - 53:10]
 // CHECK: 53:14: UnexposedExpr= Extent=[53:14 - 53:19]
-// CHECK: 53:14: UnexposedExpr= Extent=[53:14 - 53:19]
-// CHECK: 53:23: UnexposedExpr= Extent=[53:23 - 53:33]
+// CHECK: 53:14: IntegerLiteral= Extent=[53:14 - 53:19]
+// CHECK: 53:23: BinaryOperator= Extent=[53:23 - 53:33]
 // CHECK: 53:23: DeclRefExpr=c:2:14 Extent=[53:23 - 53:24]
 // CHECK: 53:28: UnexposedExpr= Extent=[53:28 - 53:33]
-// CHECK: 53:28: UnexposedExpr= Extent=[53:28 - 53:33]
-// CHECK: 54:9: UnexposedExpr= Extent=[54:9 - 54:33]
-// CHECK: 54:9: UnexposedExpr= Extent=[54:9 - 54:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[54:9 - 54:10]
 // CHECK: 54:14: UnexposedExpr= Extent=[54:14 - 54:19]
-// CHECK: 54:14: UnexposedExpr= Extent=[54:14 - 54:19]
-// CHECK: 54:23: UnexposedExpr= Extent=[54:23 - 54:33]
+// CHECK: 54:14: IntegerLiteral= Extent=[54:14 - 54:19]
+// CHECK: 54:23: BinaryOperator= Extent=[54:23 - 54:33]
 // CHECK: 54:23: DeclRefExpr=c:2:14 Extent=[54:23 - 54:24]
 // CHECK: 54:28: UnexposedExpr= Extent=[54:28 - 54:33]
-// CHECK: 54:28: UnexposedExpr= Extent=[54:28 - 54:33]
-// CHECK: 55:9: UnexposedExpr= Extent=[55:9 - 55:33]
-// CHECK: 55:9: UnexposedExpr= Extent=[55:9 - 55:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[55:9 - 55:10]
 // CHECK: 55:14: UnexposedExpr= Extent=[55:14 - 55:19]
-// CHECK: 55:14: UnexposedExpr= Extent=[55:14 - 55:19]
-// CHECK: 55:23: UnexposedExpr= Extent=[55:23 - 55:33]
+// CHECK: 55:14: IntegerLiteral= Extent=[55:14 - 55:19]
+// CHECK: 55:23: BinaryOperator= Extent=[55:23 - 55:33]
 // CHECK: 55:23: DeclRefExpr=c:2:14 Extent=[55:23 - 55:24]
 // CHECK: 55:28: UnexposedExpr= Extent=[55:28 - 55:33]
-// CHECK: 55:28: UnexposedExpr= Extent=[55:28 - 55:33]
-// CHECK: 56:9: UnexposedExpr= Extent=[56:9 - 56:33]
-// CHECK: 56:9: UnexposedExpr= Extent=[56:9 - 56:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[56:9 - 56:10]
 // CHECK: 56:14: UnexposedExpr= Extent=[56:14 - 56:19]
-// CHECK: 56:14: UnexposedExpr= Extent=[56:14 - 56:19]
-// CHECK: 56:23: UnexposedExpr= Extent=[56:23 - 56:33]
+// CHECK: 56:14: IntegerLiteral= Extent=[56:14 - 56:19]
+// CHECK: 56:23: BinaryOperator= Extent=[56:23 - 56:33]
 // CHECK: 56:23: DeclRefExpr=c:2:14 Extent=[56:23 - 56:24]
 // CHECK: 56:28: UnexposedExpr= Extent=[56:28 - 56:33]
-// CHECK: 56:28: UnexposedExpr= Extent=[56:28 - 56:33]
-// CHECK: 57:9: UnexposedExpr= Extent=[57:9 - 57:33]
-// CHECK: 57:9: UnexposedExpr= Extent=[57:9 - 57:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[57:9 - 57:10]
 // CHECK: 57:14: UnexposedExpr= Extent=[57:14 - 57:19]
-// CHECK: 57:14: UnexposedExpr= Extent=[57:14 - 57:19]
-// CHECK: 57:23: UnexposedExpr= Extent=[57:23 - 57:33]
+// CHECK: 57:14: IntegerLiteral= Extent=[57:14 - 57:19]
+// CHECK: 57:23: BinaryOperator= Extent=[57:23 - 57:33]
 // CHECK: 57:23: DeclRefExpr=c:2:14 Extent=[57:23 - 57:24]
 // CHECK: 57:28: UnexposedExpr= Extent=[57:28 - 57:33]
-// CHECK: 57:28: UnexposedExpr= Extent=[57:28 - 57:33]
-// CHECK: 58:9: UnexposedExpr= Extent=[58:9 - 58:33]
-// CHECK: 58:9: UnexposedExpr= Extent=[58:9 - 58:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[58:9 - 58:10]
 // CHECK: 58:14: UnexposedExpr= Extent=[58:14 - 58:19]
-// CHECK: 58:14: UnexposedExpr= Extent=[58:14 - 58:19]
-// CHECK: 58:23: UnexposedExpr= Extent=[58:23 - 58:33]
+// CHECK: 58:14: IntegerLiteral= Extent=[58:14 - 58:19]
+// CHECK: 58:23: BinaryOperator= Extent=[58:23 - 58:33]
 // CHECK: 58:23: DeclRefExpr=c:2:14 Extent=[58:23 - 58:24]
 // CHECK: 58:28: UnexposedExpr= Extent=[58:28 - 58:33]
-// CHECK: 58:28: UnexposedExpr= Extent=[58:28 - 58:33]
-// CHECK: 59:9: UnexposedExpr= Extent=[59:9 - 59:33]
-// CHECK: 59:9: UnexposedExpr= Extent=[59:9 - 59:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[59:9 - 59:10]
 // CHECK: 59:14: UnexposedExpr= Extent=[59:14 - 59:19]
-// CHECK: 59:14: UnexposedExpr= Extent=[59:14 - 59:19]
-// CHECK: 59:23: UnexposedExpr= Extent=[59:23 - 59:33]
+// CHECK: 59:14: IntegerLiteral= Extent=[59:14 - 59:19]
+// CHECK: 59:23: BinaryOperator= Extent=[59:23 - 59:33]
 // CHECK: 59:23: DeclRefExpr=c:2:14 Extent=[59:23 - 59:24]
 // CHECK: 59:28: UnexposedExpr= Extent=[59:28 - 59:33]
-// CHECK: 59:28: UnexposedExpr= Extent=[59:28 - 59:33]
-// CHECK: 60:9: UnexposedExpr= Extent=[60:9 - 60:33]
-// CHECK: 60:9: UnexposedExpr= Extent=[60:9 - 60:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[60:9 - 60:10]
 // CHECK: 60:14: UnexposedExpr= Extent=[60:14 - 60:19]
-// CHECK: 60:14: UnexposedExpr= Extent=[60:14 - 60:19]
-// CHECK: 60:23: UnexposedExpr= Extent=[60:23 - 60:33]
+// CHECK: 60:14: IntegerLiteral= Extent=[60:14 - 60:19]
+// CHECK: 60:23: BinaryOperator= Extent=[60:23 - 60:33]
 // CHECK: 60:23: DeclRefExpr=c:2:14 Extent=[60:23 - 60:24]
 // CHECK: 60:28: UnexposedExpr= Extent=[60:28 - 60:33]
-// CHECK: 60:28: UnexposedExpr= Extent=[60:28 - 60:33]
-// CHECK: 61:9: UnexposedExpr= Extent=[61:9 - 61:33]
-// CHECK: 61:9: UnexposedExpr= Extent=[61:9 - 61:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[61:9 - 61:10]
 // CHECK: 61:14: UnexposedExpr= Extent=[61:14 - 61:19]
-// CHECK: 61:14: UnexposedExpr= Extent=[61:14 - 61:19]
-// CHECK: 61:23: UnexposedExpr= Extent=[61:23 - 61:33]
+// CHECK: 61:14: IntegerLiteral= Extent=[61:14 - 61:19]
+// CHECK: 61:23: BinaryOperator= Extent=[61:23 - 61:33]
 // CHECK: 61:23: DeclRefExpr=c:2:14 Extent=[61:23 - 61:24]
 // CHECK: 61:28: UnexposedExpr= Extent=[61:28 - 61:33]
-// CHECK: 61:28: UnexposedExpr= Extent=[61:28 - 61:33]
-// CHECK: 62:9: UnexposedExpr= Extent=[62:9 - 62:33]
-// CHECK: 62:9: UnexposedExpr= Extent=[62:9 - 62:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[62:9 - 62:10]
 // CHECK: 62:14: UnexposedExpr= Extent=[62:14 - 62:19]
-// CHECK: 62:14: UnexposedExpr= Extent=[62:14 - 62:19]
-// CHECK: 62:23: UnexposedExpr= Extent=[62:23 - 62:33]
+// CHECK: 62:14: IntegerLiteral= Extent=[62:14 - 62:19]
+// CHECK: 62:23: BinaryOperator= Extent=[62:23 - 62:33]
 // CHECK: 62:23: DeclRefExpr=c:2:14 Extent=[62:23 - 62:24]
 // CHECK: 62:28: UnexposedExpr= Extent=[62:28 - 62:33]
-// CHECK: 62:28: UnexposedExpr= Extent=[62:28 - 62:33]
-// CHECK: 63:8: UnexposedExpr= Extent=[63:8 - 63:18]
+// CHECK: 62:28: IntegerLiteral= Extent=[62:28 - 62:33]
+// CHECK: 63:8: BinaryOperator= Extent=[63:8 - 63:18]
 // CHECK: 63:8: DeclRefExpr=c:2:14 Extent=[63:8 - 63:9]
 // CHECK: 63:13: UnexposedExpr= Extent=[63:13 - 63:18]
-// CHECK: 63:13: UnexposedExpr= Extent=[63:13 - 63:18]
-// CHECK: 63:23: UnexposedExpr= Extent=[63:23 - 63:47]
-// CHECK: 63:23: UnexposedExpr= Extent=[63:23 - 63:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[63:23 - 63:24]
 // CHECK: 63:28: UnexposedExpr= Extent=[63:28 - 63:33]
-// CHECK: 63:28: UnexposedExpr= Extent=[63:28 - 63:33]
-// CHECK: 63:37: UnexposedExpr= Extent=[63:37 - 63:47]
+// CHECK: 63:28: IntegerLiteral= Extent=[63:28 - 63:33]
+// CHECK: 63:37: BinaryOperator= Extent=[63:37 - 63:47]
 // CHECK: 63:37: DeclRefExpr=c:2:14 Extent=[63:37 - 63:38]
 // CHECK: 63:42: UnexposedExpr= Extent=[63:42 - 63:47]
-// CHECK: 63:42: UnexposedExpr= Extent=[63:42 - 63:47]
-// CHECK: 64:9: UnexposedExpr= Extent=[64:9 - 64:33]
-// CHECK: 64:9: UnexposedExpr= Extent=[64:9 - 64:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[64:9 - 64:10]
 // CHECK: 64:14: UnexposedExpr= Extent=[64:14 - 64:19]
-// CHECK: 64:14: UnexposedExpr= Extent=[64:14 - 64:19]
-// CHECK: 64:23: UnexposedExpr= Extent=[64:23 - 64:33]
+// CHECK: 64:14: IntegerLiteral= Extent=[64:14 - 64:19]
+// CHECK: 64:23: BinaryOperator= Extent=[64:23 - 64:33]
 // CHECK: 64:23: DeclRefExpr=c:2:14 Extent=[64:23 - 64:24]
 // CHECK: 64:28: UnexposedExpr= Extent=[64:28 - 64:33]
-// CHECK: 64:28: UnexposedExpr= Extent=[64:28 - 64:33]
-// CHECK: 65:8: UnexposedExpr= Extent=[65:8 - 65:18]
+// CHECK: 64:28: IntegerLiteral= Extent=[64:28 - 64:33]
+// CHECK: 65:8: BinaryOperator= Extent=[65:8 - 65:18]
 // CHECK: 65:8: DeclRefExpr=c:2:14 Extent=[65:8 - 65:9]
 // CHECK: 65:13: UnexposedExpr= Extent=[65:13 - 65:18]
-// CHECK: 65:13: UnexposedExpr= Extent=[65:13 - 65:18]
-// CHECK: 65:23: UnexposedExpr= Extent=[65:23 - 65:47]
-// CHECK: 65:23: UnexposedExpr= Extent=[65:23 - 65:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[65:23 - 65:24]
 // CHECK: 65:28: UnexposedExpr= Extent=[65:28 - 65:33]
-// CHECK: 65:28: UnexposedExpr= Extent=[65:28 - 65:33]
-// CHECK: 65:37: UnexposedExpr= Extent=[65:37 - 65:47]
+// CHECK: 65:28: IntegerLiteral= Extent=[65:28 - 65:33]
+// CHECK: 65:37: BinaryOperator= Extent=[65:37 - 65:47]
 // CHECK: 65:37: DeclRefExpr=c:2:14 Extent=[65:37 - 65:38]
 // CHECK: 65:42: UnexposedExpr= Extent=[65:42 - 65:47]
-// CHECK: 65:42: UnexposedExpr= Extent=[65:42 - 65:47]
-// CHECK: 66:9: UnexposedExpr= Extent=[66:9 - 66:33]
-// CHECK: 66:9: UnexposedExpr= Extent=[66:9 - 66:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[66:9 - 66:10]
 // CHECK: 66:14: UnexposedExpr= Extent=[66:14 - 66:19]
-// CHECK: 66:14: UnexposedExpr= Extent=[66:14 - 66:19]
-// CHECK: 66:23: UnexposedExpr= Extent=[66:23 - 66:33]
+// CHECK: 66:14: IntegerLiteral= Extent=[66:14 - 66:19]
+// CHECK: 66:23: BinaryOperator= Extent=[66:23 - 66:33]
 // CHECK: 66:23: DeclRefExpr=c:2:14 Extent=[66:23 - 66:24]
 // CHECK: 66:28: UnexposedExpr= Extent=[66:28 - 66:33]
-// CHECK: 66:28: UnexposedExpr= Extent=[66:28 - 66:33]
-// CHECK: 67:9: UnexposedExpr= Extent=[67:9 - 67:33]
-// CHECK: 67:9: UnexposedExpr= Extent=[67:9 - 67:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[67:9 - 67:10]
 // CHECK: 67:14: UnexposedExpr= Extent=[67:14 - 67:19]
-// CHECK: 67:14: UnexposedExpr= Extent=[67:14 - 67:19]
-// CHECK: 67:23: UnexposedExpr= Extent=[67:23 - 67:33]
+// CHECK: 67:14: IntegerLiteral= Extent=[67:14 - 67:19]
+// CHECK: 67:23: BinaryOperator= Extent=[67:23 - 67:33]
 // CHECK: 67:23: DeclRefExpr=c:2:14 Extent=[67:23 - 67:24]
 // CHECK: 67:28: UnexposedExpr= Extent=[67:28 - 67:33]
-// CHECK: 67:28: UnexposedExpr= Extent=[67:28 - 67:33]
-// CHECK: 68:9: UnexposedExpr= Extent=[68:9 - 68:33]
-// CHECK: 68:9: UnexposedExpr= Extent=[68:9 - 68:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[68:9 - 68:10]
 // CHECK: 68:14: UnexposedExpr= Extent=[68:14 - 68:19]
-// CHECK: 68:14: UnexposedExpr= Extent=[68:14 - 68:19]
-// CHECK: 68:23: UnexposedExpr= Extent=[68:23 - 68:33]
+// CHECK: 68:14: IntegerLiteral= Extent=[68:14 - 68:19]
+// CHECK: 68:23: BinaryOperator= Extent=[68:23 - 68:33]
 // CHECK: 68:23: DeclRefExpr=c:2:14 Extent=[68:23 - 68:24]
 // CHECK: 68:28: UnexposedExpr= Extent=[68:28 - 68:33]
-// CHECK: 68:28: UnexposedExpr= Extent=[68:28 - 68:33]
-// CHECK: 69:9: UnexposedExpr= Extent=[69:9 - 69:33]
-// CHECK: 69:9: UnexposedExpr= Extent=[69:9 - 69:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[69:9 - 69:10]
 // CHECK: 69:14: UnexposedExpr= Extent=[69:14 - 69:19]
-// CHECK: 69:14: UnexposedExpr= Extent=[69:14 - 69:19]
-// CHECK: 69:23: UnexposedExpr= Extent=[69:23 - 69:33]
+// CHECK: 69:14: IntegerLiteral= Extent=[69:14 - 69:19]
+// CHECK: 69:23: BinaryOperator= Extent=[69:23 - 69:33]
 // CHECK: 69:23: DeclRefExpr=c:2:14 Extent=[69:23 - 69:24]
 // CHECK: 69:28: UnexposedExpr= Extent=[69:28 - 69:33]
-// CHECK: 69:28: UnexposedExpr= Extent=[69:28 - 69:33]
-// CHECK: 70:8: UnexposedExpr= Extent=[70:8 - 70:18]
+// CHECK: 69:28: IntegerLiteral= Extent=[69:28 - 69:33]
+// CHECK: 70:8: BinaryOperator= Extent=[70:8 - 70:18]
 // CHECK: 70:8: DeclRefExpr=c:2:14 Extent=[70:8 - 70:9]
 // CHECK: 70:13: UnexposedExpr= Extent=[70:13 - 70:18]
-// CHECK: 70:13: UnexposedExpr= Extent=[70:13 - 70:18]
-// CHECK: 70:22: UnexposedExpr= Extent=[70:22 - 70:32]
+// CHECK: 70:13: IntegerLiteral= Extent=[70:13 - 70:18]
+// CHECK: 70:22: BinaryOperator= Extent=[70:22 - 70:32]
 // CHECK: 70:22: DeclRefExpr=c:2:14 Extent=[70:22 - 70:23]
 // CHECK: 70:27: UnexposedExpr= Extent=[70:27 - 70:32]
-// CHECK: 70:27: UnexposedExpr= Extent=[70:27 - 70:32]
-// CHECK: 70:37: UnexposedExpr= Extent=[70:37 - 70:61]
-// CHECK: 70:37: UnexposedExpr= Extent=[70:37 - 70:47]
+// 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:37: DeclRefExpr=c:2:14 Extent=[70:37 - 70:38]
 // CHECK: 70:42: UnexposedExpr= Extent=[70:42 - 70:47]
-// CHECK: 70:42: UnexposedExpr= Extent=[70:42 - 70:47]
-// CHECK: 70:51: UnexposedExpr= Extent=[70:51 - 70:61]
+// CHECK: 70:42: IntegerLiteral= Extent=[70:42 - 70:47]
+// CHECK: 70:51: BinaryOperator= Extent=[70:51 - 70:61]
 // CHECK: 70:51: DeclRefExpr=c:2:14 Extent=[70:51 - 70:52]
 // CHECK: 70:56: UnexposedExpr= Extent=[70:56 - 70:61]
-// CHECK: 70:56: UnexposedExpr= Extent=[70:56 - 70:61]
-// CHECK: 71:9: UnexposedExpr= Extent=[71:9 - 71:33]
-// CHECK: 71:9: UnexposedExpr= Extent=[71:9 - 71:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[71:9 - 71:10]
 // CHECK: 71:14: UnexposedExpr= Extent=[71:14 - 71:19]
-// CHECK: 71:14: UnexposedExpr= Extent=[71:14 - 71:19]
-// CHECK: 71:23: UnexposedExpr= Extent=[71:23 - 71:33]
+// CHECK: 71:14: IntegerLiteral= Extent=[71:14 - 71:19]
+// CHECK: 71:23: BinaryOperator= Extent=[71:23 - 71:33]
 // CHECK: 71:23: DeclRefExpr=c:2:14 Extent=[71:23 - 71:24]
 // CHECK: 71:28: UnexposedExpr= Extent=[71:28 - 71:33]
-// CHECK: 71:28: UnexposedExpr= Extent=[71:28 - 71:33]
-// CHECK: 72:9: UnexposedExpr= Extent=[72:9 - 72:33]
-// CHECK: 72:9: UnexposedExpr= Extent=[72:9 - 72:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[72:9 - 72:10]
 // CHECK: 72:14: UnexposedExpr= Extent=[72:14 - 72:19]
-// CHECK: 72:14: UnexposedExpr= Extent=[72:14 - 72:19]
-// CHECK: 72:23: UnexposedExpr= Extent=[72:23 - 72:33]
+// CHECK: 72:14: IntegerLiteral= Extent=[72:14 - 72:19]
+// CHECK: 72:23: BinaryOperator= Extent=[72:23 - 72:33]
 // CHECK: 72:23: DeclRefExpr=c:2:14 Extent=[72:23 - 72:24]
 // CHECK: 72:28: UnexposedExpr= Extent=[72:28 - 72:33]
-// CHECK: 72:28: UnexposedExpr= Extent=[72:28 - 72:33]
-// CHECK: 73:9: UnexposedExpr= Extent=[73:9 - 73:33]
-// CHECK: 73:9: UnexposedExpr= Extent=[73:9 - 73:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[73:9 - 73:10]
 // CHECK: 73:14: UnexposedExpr= Extent=[73:14 - 73:19]
-// CHECK: 73:14: UnexposedExpr= Extent=[73:14 - 73:19]
-// CHECK: 73:23: UnexposedExpr= Extent=[73:23 - 73:33]
+// CHECK: 73:14: IntegerLiteral= Extent=[73:14 - 73:19]
+// CHECK: 73:23: BinaryOperator= Extent=[73:23 - 73:33]
 // CHECK: 73:23: DeclRefExpr=c:2:14 Extent=[73:23 - 73:24]
 // CHECK: 73:28: UnexposedExpr= Extent=[73:28 - 73:33]
-// CHECK: 73:28: UnexposedExpr= Extent=[73:28 - 73:33]
-// CHECK: 74:9: UnexposedExpr= Extent=[74:9 - 74:33]
-// CHECK: 74:9: UnexposedExpr= Extent=[74:9 - 74:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[74:9 - 74:10]
 // CHECK: 74:14: UnexposedExpr= Extent=[74:14 - 74:19]
-// CHECK: 74:14: UnexposedExpr= Extent=[74:14 - 74:19]
-// CHECK: 74:23: UnexposedExpr= Extent=[74:23 - 74:33]
+// CHECK: 74:14: IntegerLiteral= Extent=[74:14 - 74:19]
+// CHECK: 74:23: BinaryOperator= Extent=[74:23 - 74:33]
 // CHECK: 74:23: DeclRefExpr=c:2:14 Extent=[74:23 - 74:24]
 // CHECK: 74:28: UnexposedExpr= Extent=[74:28 - 74:33]
-// CHECK: 74:28: UnexposedExpr= Extent=[74:28 - 74:33]
-// CHECK: 75:9: UnexposedExpr= Extent=[75:9 - 75:33]
-// CHECK: 75:9: UnexposedExpr= Extent=[75:9 - 75:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[75:9 - 75:10]
 // CHECK: 75:14: UnexposedExpr= Extent=[75:14 - 75:19]
-// CHECK: 75:14: UnexposedExpr= Extent=[75:14 - 75:19]
-// CHECK: 75:23: UnexposedExpr= Extent=[75:23 - 75:33]
+// CHECK: 75:14: IntegerLiteral= Extent=[75:14 - 75:19]
+// CHECK: 75:23: BinaryOperator= Extent=[75:23 - 75:33]
 // CHECK: 75:23: DeclRefExpr=c:2:14 Extent=[75:23 - 75:24]
 // CHECK: 75:28: UnexposedExpr= Extent=[75:28 - 75:33]
-// CHECK: 75:28: UnexposedExpr= Extent=[75:28 - 75:33]
-// CHECK: 76:8: UnexposedExpr= Extent=[76:8 - 76:18]
+// CHECK: 75:28: IntegerLiteral= Extent=[75:28 - 75:33]
+// CHECK: 76:8: BinaryOperator= Extent=[76:8 - 76:18]
 // CHECK: 76:8: DeclRefExpr=c:2:14 Extent=[76:8 - 76:9]
 // CHECK: 76:13: UnexposedExpr= Extent=[76:13 - 76:18]
-// CHECK: 76:13: UnexposedExpr= Extent=[76:13 - 76:18]
-// CHECK: 76:23: UnexposedExpr= Extent=[76:23 - 76:47]
-// CHECK: 76:23: UnexposedExpr= Extent=[76:23 - 76:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[76:23 - 76:24]
 // CHECK: 76:28: UnexposedExpr= Extent=[76:28 - 76:33]
-// CHECK: 76:28: UnexposedExpr= Extent=[76:28 - 76:33]
-// CHECK: 76:37: UnexposedExpr= Extent=[76:37 - 76:47]
+// CHECK: 76:28: IntegerLiteral= Extent=[76:28 - 76:33]
+// CHECK: 76:37: BinaryOperator= Extent=[76:37 - 76:47]
 // CHECK: 76:37: DeclRefExpr=c:2:14 Extent=[76:37 - 76:38]
 // CHECK: 76:42: UnexposedExpr= Extent=[76:42 - 76:47]
-// CHECK: 76:42: UnexposedExpr= Extent=[76:42 - 76:47]
-// CHECK: 77:9: UnexposedExpr= Extent=[77:9 - 77:33]
-// CHECK: 77:9: UnexposedExpr= Extent=[77:9 - 77:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[77:9 - 77:10]
 // CHECK: 77:14: UnexposedExpr= Extent=[77:14 - 77:19]
-// CHECK: 77:14: UnexposedExpr= Extent=[77:14 - 77:19]
-// CHECK: 77:23: UnexposedExpr= Extent=[77:23 - 77:33]
+// CHECK: 77:14: IntegerLiteral= Extent=[77:14 - 77:19]
+// CHECK: 77:23: BinaryOperator= Extent=[77:23 - 77:33]
 // CHECK: 77:23: DeclRefExpr=c:2:14 Extent=[77:23 - 77:24]
 // CHECK: 77:28: UnexposedExpr= Extent=[77:28 - 77:33]
-// CHECK: 77:28: UnexposedExpr= Extent=[77:28 - 77:33]
-// CHECK: 78:9: UnexposedExpr= Extent=[78:9 - 78:33]
-// CHECK: 78:9: UnexposedExpr= Extent=[78:9 - 78:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[78:9 - 78:10]
 // CHECK: 78:14: UnexposedExpr= Extent=[78:14 - 78:19]
-// CHECK: 78:14: UnexposedExpr= Extent=[78:14 - 78:19]
-// CHECK: 78:23: UnexposedExpr= Extent=[78:23 - 78:33]
+// CHECK: 78:14: IntegerLiteral= Extent=[78:14 - 78:19]
+// CHECK: 78:23: BinaryOperator= Extent=[78:23 - 78:33]
 // CHECK: 78:23: DeclRefExpr=c:2:14 Extent=[78:23 - 78:24]
 // CHECK: 78:28: UnexposedExpr= Extent=[78:28 - 78:33]
-// CHECK: 78:28: UnexposedExpr= Extent=[78:28 - 78:33]
-// CHECK: 79:9: UnexposedExpr= Extent=[79:9 - 79:33]
-// CHECK: 79:9: UnexposedExpr= Extent=[79:9 - 79:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[79:9 - 79:10]
 // CHECK: 79:14: UnexposedExpr= Extent=[79:14 - 79:19]
-// CHECK: 79:14: UnexposedExpr= Extent=[79:14 - 79:19]
-// CHECK: 79:23: UnexposedExpr= Extent=[79:23 - 79:33]
+// CHECK: 79:14: IntegerLiteral= Extent=[79:14 - 79:19]
+// CHECK: 79:23: BinaryOperator= Extent=[79:23 - 79:33]
 // CHECK: 79:23: DeclRefExpr=c:2:14 Extent=[79:23 - 79:24]
 // CHECK: 79:28: UnexposedExpr= Extent=[79:28 - 79:33]
-// CHECK: 79:28: UnexposedExpr= Extent=[79:28 - 79:33]
-// CHECK: 80:9: UnexposedExpr= Extent=[80:9 - 80:33]
-// CHECK: 80:9: UnexposedExpr= Extent=[80:9 - 80:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[80:9 - 80:10]
 // CHECK: 80:14: UnexposedExpr= Extent=[80:14 - 80:19]
-// CHECK: 80:14: UnexposedExpr= Extent=[80:14 - 80:19]
-// CHECK: 80:23: UnexposedExpr= Extent=[80:23 - 80:33]
+// CHECK: 80:14: IntegerLiteral= Extent=[80:14 - 80:19]
+// CHECK: 80:23: BinaryOperator= Extent=[80:23 - 80:33]
 // CHECK: 80:23: DeclRefExpr=c:2:14 Extent=[80:23 - 80:24]
 // CHECK: 80:28: UnexposedExpr= Extent=[80:28 - 80:33]
-// CHECK: 80:28: UnexposedExpr= Extent=[80:28 - 80:33]
-// CHECK: 81:9: UnexposedExpr= Extent=[81:9 - 81:33]
-// CHECK: 81:9: UnexposedExpr= Extent=[81:9 - 81:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[81:9 - 81:10]
 // CHECK: 81:14: UnexposedExpr= Extent=[81:14 - 81:19]
-// CHECK: 81:14: UnexposedExpr= Extent=[81:14 - 81:19]
-// CHECK: 81:23: UnexposedExpr= Extent=[81:23 - 81:33]
+// CHECK: 81:14: IntegerLiteral= Extent=[81:14 - 81:19]
+// CHECK: 81:23: BinaryOperator= Extent=[81:23 - 81:33]
 // CHECK: 81:23: DeclRefExpr=c:2:14 Extent=[81:23 - 81:24]
 // CHECK: 81:28: UnexposedExpr= Extent=[81:28 - 81:33]
-// CHECK: 81:28: UnexposedExpr= Extent=[81:28 - 81:33]
-// CHECK: 82:8: UnexposedExpr= Extent=[82:8 - 82:18]
+// CHECK: 81:28: IntegerLiteral= Extent=[81:28 - 81:33]
+// CHECK: 82:8: BinaryOperator= Extent=[82:8 - 82:18]
 // CHECK: 82:8: DeclRefExpr=c:2:14 Extent=[82:8 - 82:9]
 // CHECK: 82:13: UnexposedExpr= Extent=[82:13 - 82:18]
-// CHECK: 82:13: UnexposedExpr= Extent=[82:13 - 82:18]
-// CHECK: 82:23: UnexposedExpr= Extent=[82:23 - 82:47]
-// CHECK: 82:23: UnexposedExpr= Extent=[82:23 - 82:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[82:23 - 82:24]
 // CHECK: 82:28: UnexposedExpr= Extent=[82:28 - 82:33]
-// CHECK: 82:28: UnexposedExpr= Extent=[82:28 - 82:33]
-// CHECK: 82:37: UnexposedExpr= Extent=[82:37 - 82:47]
+// CHECK: 82:28: IntegerLiteral= Extent=[82:28 - 82:33]
+// CHECK: 82:37: BinaryOperator= Extent=[82:37 - 82:47]
 // CHECK: 82:37: DeclRefExpr=c:2:14 Extent=[82:37 - 82:38]
 // CHECK: 82:42: UnexposedExpr= Extent=[82:42 - 82:47]
-// CHECK: 82:42: UnexposedExpr= Extent=[82:42 - 82:47]
-// CHECK: 83:9: UnexposedExpr= Extent=[83:9 - 83:33]
-// CHECK: 83:9: UnexposedExpr= Extent=[83:9 - 83:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[83:9 - 83:10]
 // CHECK: 83:14: UnexposedExpr= Extent=[83:14 - 83:19]
-// CHECK: 83:14: UnexposedExpr= Extent=[83:14 - 83:19]
-// CHECK: 83:23: UnexposedExpr= Extent=[83:23 - 83:33]
+// CHECK: 83:14: IntegerLiteral= Extent=[83:14 - 83:19]
+// CHECK: 83:23: BinaryOperator= Extent=[83:23 - 83:33]
 // CHECK: 83:23: DeclRefExpr=c:2:14 Extent=[83:23 - 83:24]
 // CHECK: 83:28: UnexposedExpr= Extent=[83:28 - 83:33]
-// CHECK: 83:28: UnexposedExpr= Extent=[83:28 - 83:33]
-// CHECK: 84:9: UnexposedExpr= Extent=[84:9 - 84:33]
-// CHECK: 84:9: UnexposedExpr= Extent=[84:9 - 84:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[84:9 - 84:10]
 // CHECK: 84:14: UnexposedExpr= Extent=[84:14 - 84:19]
-// CHECK: 84:14: UnexposedExpr= Extent=[84:14 - 84:19]
-// CHECK: 84:23: UnexposedExpr= Extent=[84:23 - 84:33]
+// CHECK: 84:14: IntegerLiteral= Extent=[84:14 - 84:19]
+// CHECK: 84:23: BinaryOperator= Extent=[84:23 - 84:33]
 // CHECK: 84:23: DeclRefExpr=c:2:14 Extent=[84:23 - 84:24]
 // CHECK: 84:28: UnexposedExpr= Extent=[84:28 - 84:33]
-// CHECK: 84:28: UnexposedExpr= Extent=[84:28 - 84:33]
-// CHECK: 85:9: UnexposedExpr= Extent=[85:9 - 85:33]
-// CHECK: 85:9: UnexposedExpr= Extent=[85:9 - 85:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[85:9 - 85:10]
 // CHECK: 85:14: UnexposedExpr= Extent=[85:14 - 85:19]
-// CHECK: 85:14: UnexposedExpr= Extent=[85:14 - 85:19]
-// CHECK: 85:23: UnexposedExpr= Extent=[85:23 - 85:33]
+// CHECK: 85:14: IntegerLiteral= Extent=[85:14 - 85:19]
+// CHECK: 85:23: BinaryOperator= Extent=[85:23 - 85:33]
 // CHECK: 85:23: DeclRefExpr=c:2:14 Extent=[85:23 - 85:24]
 // CHECK: 85:28: UnexposedExpr= Extent=[85:28 - 85:33]
-// CHECK: 85:28: UnexposedExpr= Extent=[85:28 - 85:33]
-// CHECK: 86:9: UnexposedExpr= Extent=[86:9 - 86:33]
-// CHECK: 86:9: UnexposedExpr= Extent=[86:9 - 86:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[86:9 - 86:10]
 // CHECK: 86:14: UnexposedExpr= Extent=[86:14 - 86:19]
-// CHECK: 86:14: UnexposedExpr= Extent=[86:14 - 86:19]
-// CHECK: 86:23: UnexposedExpr= Extent=[86:23 - 86:33]
+// CHECK: 86:14: IntegerLiteral= Extent=[86:14 - 86:19]
+// CHECK: 86:23: BinaryOperator= Extent=[86:23 - 86:33]
 // CHECK: 86:23: DeclRefExpr=c:2:14 Extent=[86:23 - 86:24]
 // CHECK: 86:28: UnexposedExpr= Extent=[86:28 - 86:33]
-// CHECK: 86:28: UnexposedExpr= Extent=[86:28 - 86:33]
-// CHECK: 87:9: UnexposedExpr= Extent=[87:9 - 87:33]
-// CHECK: 87:9: UnexposedExpr= Extent=[87:9 - 87:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[87:9 - 87:10]
 // CHECK: 87:14: UnexposedExpr= Extent=[87:14 - 87:19]
-// CHECK: 87:14: UnexposedExpr= Extent=[87:14 - 87:19]
-// CHECK: 87:23: UnexposedExpr= Extent=[87:23 - 87:33]
+// CHECK: 87:14: IntegerLiteral= Extent=[87:14 - 87:19]
+// CHECK: 87:23: BinaryOperator= Extent=[87:23 - 87:33]
 // CHECK: 87:23: DeclRefExpr=c:2:14 Extent=[87:23 - 87:24]
 // CHECK: 87:28: UnexposedExpr= Extent=[87:28 - 87:33]
-// CHECK: 87:28: UnexposedExpr= Extent=[87:28 - 87:33]
-// CHECK: 88:9: UnexposedExpr= Extent=[88:9 - 88:33]
-// CHECK: 88:9: UnexposedExpr= Extent=[88:9 - 88:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[88:9 - 88:10]
 // CHECK: 88:14: UnexposedExpr= Extent=[88:14 - 88:19]
-// CHECK: 88:14: UnexposedExpr= Extent=[88:14 - 88:19]
-// CHECK: 88:23: UnexposedExpr= Extent=[88:23 - 88:33]
+// CHECK: 88:14: IntegerLiteral= Extent=[88:14 - 88:19]
+// CHECK: 88:23: BinaryOperator= Extent=[88:23 - 88:33]
 // CHECK: 88:23: DeclRefExpr=c:2:14 Extent=[88:23 - 88:24]
 // CHECK: 88:28: UnexposedExpr= Extent=[88:28 - 88:33]
-// CHECK: 88:28: UnexposedExpr= Extent=[88:28 - 88:33]
-// CHECK: 89:9: UnexposedExpr= Extent=[89:9 - 89:33]
-// CHECK: 89:9: UnexposedExpr= Extent=[89:9 - 89:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[89:9 - 89:10]
 // CHECK: 89:14: UnexposedExpr= Extent=[89:14 - 89:19]
-// CHECK: 89:14: UnexposedExpr= Extent=[89:14 - 89:19]
-// CHECK: 89:23: UnexposedExpr= Extent=[89:23 - 89:33]
+// CHECK: 89:14: IntegerLiteral= Extent=[89:14 - 89:19]
+// CHECK: 89:23: BinaryOperator= Extent=[89:23 - 89:33]
 // CHECK: 89:23: DeclRefExpr=c:2:14 Extent=[89:23 - 89:24]
 // CHECK: 89:28: UnexposedExpr= Extent=[89:28 - 89:33]
-// CHECK: 89:28: UnexposedExpr= Extent=[89:28 - 89:33]
-// CHECK: 90:9: UnexposedExpr= Extent=[90:9 - 90:33]
-// CHECK: 90:9: UnexposedExpr= Extent=[90:9 - 90:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[90:9 - 90:10]
 // CHECK: 90:14: UnexposedExpr= Extent=[90:14 - 90:19]
-// CHECK: 90:14: UnexposedExpr= Extent=[90:14 - 90:19]
-// CHECK: 90:23: UnexposedExpr= Extent=[90:23 - 90:33]
+// CHECK: 90:14: IntegerLiteral= Extent=[90:14 - 90:19]
+// CHECK: 90:23: BinaryOperator= Extent=[90:23 - 90:33]
 // CHECK: 90:23: DeclRefExpr=c:2:14 Extent=[90:23 - 90:24]
 // CHECK: 90:28: UnexposedExpr= Extent=[90:28 - 90:33]
-// CHECK: 90:28: UnexposedExpr= Extent=[90:28 - 90:33]
-// CHECK: 91:9: UnexposedExpr= Extent=[91:9 - 91:33]
-// CHECK: 91:9: UnexposedExpr= Extent=[91:9 - 91:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[91:9 - 91:10]
 // CHECK: 91:14: UnexposedExpr= Extent=[91:14 - 91:19]
-// CHECK: 91:14: UnexposedExpr= Extent=[91:14 - 91:19]
-// CHECK: 91:23: UnexposedExpr= Extent=[91:23 - 91:33]
+// CHECK: 91:14: IntegerLiteral= Extent=[91:14 - 91:19]
+// CHECK: 91:23: BinaryOperator= Extent=[91:23 - 91:33]
 // CHECK: 91:23: DeclRefExpr=c:2:14 Extent=[91:23 - 91:24]
 // CHECK: 91:28: UnexposedExpr= Extent=[91:28 - 91:33]
-// CHECK: 91:28: UnexposedExpr= Extent=[91:28 - 91:33]
-// CHECK: 92:9: UnexposedExpr= Extent=[92:9 - 92:33]
-// CHECK: 92:9: UnexposedExpr= Extent=[92:9 - 92:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[92:9 - 92:10]
 // CHECK: 92:14: UnexposedExpr= Extent=[92:14 - 92:19]
-// CHECK: 92:14: UnexposedExpr= Extent=[92:14 - 92:19]
-// CHECK: 92:23: UnexposedExpr= Extent=[92:23 - 92:33]
+// CHECK: 92:14: IntegerLiteral= Extent=[92:14 - 92:19]
+// CHECK: 92:23: BinaryOperator= Extent=[92:23 - 92:33]
 // CHECK: 92:23: DeclRefExpr=c:2:14 Extent=[92:23 - 92:24]
 // CHECK: 92:28: UnexposedExpr= Extent=[92:28 - 92:33]
-// CHECK: 92:28: UnexposedExpr= Extent=[92:28 - 92:33]
-// CHECK: 93:9: UnexposedExpr= Extent=[93:9 - 93:33]
-// CHECK: 93:9: UnexposedExpr= Extent=[93:9 - 93:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[93:9 - 93:10]
 // CHECK: 93:14: UnexposedExpr= Extent=[93:14 - 93:19]
-// CHECK: 93:14: UnexposedExpr= Extent=[93:14 - 93:19]
-// CHECK: 93:23: UnexposedExpr= Extent=[93:23 - 93:33]
+// CHECK: 93:14: IntegerLiteral= Extent=[93:14 - 93:19]
+// CHECK: 93:23: BinaryOperator= Extent=[93:23 - 93:33]
 // CHECK: 93:23: DeclRefExpr=c:2:14 Extent=[93:23 - 93:24]
 // CHECK: 93:28: UnexposedExpr= Extent=[93:28 - 93:33]
-// CHECK: 93:28: UnexposedExpr= Extent=[93:28 - 93:33]
-// CHECK: 94:9: UnexposedExpr= Extent=[94:9 - 94:33]
-// CHECK: 94:9: UnexposedExpr= Extent=[94:9 - 94:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[94:9 - 94:10]
 // CHECK: 94:14: UnexposedExpr= Extent=[94:14 - 94:19]
-// CHECK: 94:14: UnexposedExpr= Extent=[94:14 - 94:19]
-// CHECK: 94:23: UnexposedExpr= Extent=[94:23 - 94:33]
+// CHECK: 94:14: IntegerLiteral= Extent=[94:14 - 94:19]
+// CHECK: 94:23: BinaryOperator= Extent=[94:23 - 94:33]
 // CHECK: 94:23: DeclRefExpr=c:2:14 Extent=[94:23 - 94:24]
 // CHECK: 94:28: UnexposedExpr= Extent=[94:28 - 94:33]
-// CHECK: 94:28: UnexposedExpr= Extent=[94:28 - 94:33]
-// CHECK: 95:9: UnexposedExpr= Extent=[95:9 - 95:33]
-// CHECK: 95:9: UnexposedExpr= Extent=[95:9 - 95:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[95:9 - 95:10]
 // CHECK: 95:14: UnexposedExpr= Extent=[95:14 - 95:19]
-// CHECK: 95:14: UnexposedExpr= Extent=[95:14 - 95:19]
-// CHECK: 95:23: UnexposedExpr= Extent=[95:23 - 95:33]
+// CHECK: 95:14: IntegerLiteral= Extent=[95:14 - 95:19]
+// CHECK: 95:23: BinaryOperator= Extent=[95:23 - 95:33]
 // CHECK: 95:23: DeclRefExpr=c:2:14 Extent=[95:23 - 95:24]
 // CHECK: 95:28: UnexposedExpr= Extent=[95:28 - 95:33]
-// CHECK: 95:28: UnexposedExpr= Extent=[95:28 - 95:33]
-// CHECK: 96:9: UnexposedExpr= Extent=[96:9 - 96:33]
-// CHECK: 96:9: UnexposedExpr= Extent=[96:9 - 96:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[96:9 - 96:10]
 // CHECK: 96:14: UnexposedExpr= Extent=[96:14 - 96:19]
-// CHECK: 96:14: UnexposedExpr= Extent=[96:14 - 96:19]
-// CHECK: 96:23: UnexposedExpr= Extent=[96:23 - 96:33]
+// CHECK: 96:14: IntegerLiteral= Extent=[96:14 - 96:19]
+// CHECK: 96:23: BinaryOperator= Extent=[96:23 - 96:33]
 // CHECK: 96:23: DeclRefExpr=c:2:14 Extent=[96:23 - 96:24]
 // CHECK: 96:28: UnexposedExpr= Extent=[96:28 - 96:33]
-// CHECK: 96:28: UnexposedExpr= Extent=[96:28 - 96:33]
-// CHECK: 97:9: UnexposedExpr= Extent=[97:9 - 97:33]
-// CHECK: 97:9: UnexposedExpr= Extent=[97:9 - 97:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[97:9 - 97:10]
 // CHECK: 97:14: UnexposedExpr= Extent=[97:14 - 97:19]
-// CHECK: 97:14: UnexposedExpr= Extent=[97:14 - 97:19]
-// CHECK: 97:23: UnexposedExpr= Extent=[97:23 - 97:33]
+// CHECK: 97:14: IntegerLiteral= Extent=[97:14 - 97:19]
+// CHECK: 97:23: BinaryOperator= Extent=[97:23 - 97:33]
 // CHECK: 97:23: DeclRefExpr=c:2:14 Extent=[97:23 - 97:24]
 // CHECK: 97:28: UnexposedExpr= Extent=[97:28 - 97:33]
-// CHECK: 97:28: UnexposedExpr= Extent=[97:28 - 97:33]
-// CHECK: 98:8: UnexposedExpr= Extent=[98:8 - 98:18]
+// CHECK: 97:28: IntegerLiteral= Extent=[97:28 - 97:33]
+// CHECK: 98:8: BinaryOperator= Extent=[98:8 - 98:18]
 // CHECK: 98:8: DeclRefExpr=c:2:14 Extent=[98:8 - 98:9]
 // CHECK: 98:13: UnexposedExpr= Extent=[98:13 - 98:18]
-// CHECK: 98:13: UnexposedExpr= Extent=[98:13 - 98:18]
-// CHECK: 98:23: UnexposedExpr= Extent=[98:23 - 98:47]
-// CHECK: 98:23: UnexposedExpr= Extent=[98:23 - 98:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[98:23 - 98:24]
 // CHECK: 98:28: UnexposedExpr= Extent=[98:28 - 98:33]
-// CHECK: 98:28: UnexposedExpr= Extent=[98:28 - 98:33]
-// CHECK: 98:37: UnexposedExpr= Extent=[98:37 - 98:47]
+// CHECK: 98:28: IntegerLiteral= Extent=[98:28 - 98:33]
+// CHECK: 98:37: BinaryOperator= Extent=[98:37 - 98:47]
 // CHECK: 98:37: DeclRefExpr=c:2:14 Extent=[98:37 - 98:38]
 // CHECK: 98:42: UnexposedExpr= Extent=[98:42 - 98:47]
-// CHECK: 98:42: UnexposedExpr= Extent=[98:42 - 98:47]
-// CHECK: 99:9: UnexposedExpr= Extent=[99:9 - 99:33]
-// CHECK: 99:9: UnexposedExpr= Extent=[99:9 - 99:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[99:9 - 99:10]
 // CHECK: 99:14: UnexposedExpr= Extent=[99:14 - 99:19]
-// CHECK: 99:14: UnexposedExpr= Extent=[99:14 - 99:19]
-// CHECK: 99:23: UnexposedExpr= Extent=[99:23 - 99:33]
+// CHECK: 99:14: IntegerLiteral= Extent=[99:14 - 99:19]
+// CHECK: 99:23: BinaryOperator= Extent=[99:23 - 99:33]
 // CHECK: 99:23: DeclRefExpr=c:2:14 Extent=[99:23 - 99:24]
 // CHECK: 99:28: UnexposedExpr= Extent=[99:28 - 99:33]
-// CHECK: 99:28: UnexposedExpr= Extent=[99:28 - 99:33]
-// CHECK: 100:9: UnexposedExpr= Extent=[100:9 - 100:33]
-// CHECK: 100:9: UnexposedExpr= Extent=[100:9 - 100:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[100:9 - 100:10]
 // CHECK: 100:14: UnexposedExpr= Extent=[100:14 - 100:19]
-// CHECK: 100:14: UnexposedExpr= Extent=[100:14 - 100:19]
-// CHECK: 100:23: UnexposedExpr= Extent=[100:23 - 100:33]
+// CHECK: 100:14: IntegerLiteral= Extent=[100:14 - 100:19]
+// CHECK: 100:23: BinaryOperator= Extent=[100:23 - 100:33]
 // CHECK: 100:23: DeclRefExpr=c:2:14 Extent=[100:23 - 100:24]
 // CHECK: 100:28: UnexposedExpr= Extent=[100:28 - 100:33]
-// CHECK: 100:28: UnexposedExpr= Extent=[100:28 - 100:33]
-// CHECK: 101:9: UnexposedExpr= Extent=[101:9 - 101:33]
-// CHECK: 101:9: UnexposedExpr= Extent=[101:9 - 101:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[101:9 - 101:10]
 // CHECK: 101:14: UnexposedExpr= Extent=[101:14 - 101:19]
-// CHECK: 101:14: UnexposedExpr= Extent=[101:14 - 101:19]
-// CHECK: 101:23: UnexposedExpr= Extent=[101:23 - 101:33]
+// CHECK: 101:14: IntegerLiteral= Extent=[101:14 - 101:19]
+// CHECK: 101:23: BinaryOperator= Extent=[101:23 - 101:33]
 // CHECK: 101:23: DeclRefExpr=c:2:14 Extent=[101:23 - 101:24]
 // CHECK: 101:28: UnexposedExpr= Extent=[101:28 - 101:33]
-// CHECK: 101:28: UnexposedExpr= Extent=[101:28 - 101:33]
-// CHECK: 102:9: UnexposedExpr= Extent=[102:9 - 102:33]
-// CHECK: 102:9: UnexposedExpr= Extent=[102:9 - 102:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[102:9 - 102:10]
 // CHECK: 102:14: UnexposedExpr= Extent=[102:14 - 102:19]
-// CHECK: 102:14: UnexposedExpr= Extent=[102:14 - 102:19]
-// CHECK: 102:23: UnexposedExpr= Extent=[102:23 - 102:33]
+// CHECK: 102:14: IntegerLiteral= Extent=[102:14 - 102:19]
+// CHECK: 102:23: BinaryOperator= Extent=[102:23 - 102:33]
 // CHECK: 102:23: DeclRefExpr=c:2:14 Extent=[102:23 - 102:24]
 // CHECK: 102:28: UnexposedExpr= Extent=[102:28 - 102:33]
-// CHECK: 102:28: UnexposedExpr= Extent=[102:28 - 102:33]
-// CHECK: 103:9: UnexposedExpr= Extent=[103:9 - 103:33]
-// CHECK: 103:9: UnexposedExpr= Extent=[103:9 - 103:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[103:9 - 103:10]
 // CHECK: 103:14: UnexposedExpr= Extent=[103:14 - 103:19]
-// CHECK: 103:14: UnexposedExpr= Extent=[103:14 - 103:19]
-// CHECK: 103:23: UnexposedExpr= Extent=[103:23 - 103:33]
+// CHECK: 103:14: IntegerLiteral= Extent=[103:14 - 103:19]
+// CHECK: 103:23: BinaryOperator= Extent=[103:23 - 103:33]
 // CHECK: 103:23: DeclRefExpr=c:2:14 Extent=[103:23 - 103:24]
 // CHECK: 103:28: UnexposedExpr= Extent=[103:28 - 103:33]
-// CHECK: 103:28: UnexposedExpr= Extent=[103:28 - 103:33]
-// CHECK: 104:9: UnexposedExpr= Extent=[104:9 - 104:33]
-// CHECK: 104:9: UnexposedExpr= Extent=[104:9 - 104:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[104:9 - 104:10]
 // CHECK: 104:14: UnexposedExpr= Extent=[104:14 - 104:19]
-// CHECK: 104:14: UnexposedExpr= Extent=[104:14 - 104:19]
-// CHECK: 104:23: UnexposedExpr= Extent=[104:23 - 104:33]
+// CHECK: 104:14: IntegerLiteral= Extent=[104:14 - 104:19]
+// CHECK: 104:23: BinaryOperator= Extent=[104:23 - 104:33]
 // CHECK: 104:23: DeclRefExpr=c:2:14 Extent=[104:23 - 104:24]
 // CHECK: 104:28: UnexposedExpr= Extent=[104:28 - 104:33]
-// CHECK: 104:28: UnexposedExpr= Extent=[104:28 - 104:33]
-// CHECK: 105:8: UnexposedExpr= Extent=[105:8 - 105:18]
+// CHECK: 104:28: IntegerLiteral= Extent=[104:28 - 104:33]
+// CHECK: 105:8: BinaryOperator= Extent=[105:8 - 105:18]
 // CHECK: 105:8: DeclRefExpr=c:2:14 Extent=[105:8 - 105:9]
 // CHECK: 105:13: UnexposedExpr= Extent=[105:13 - 105:18]
-// CHECK: 105:13: UnexposedExpr= Extent=[105:13 - 105:18]
-// CHECK: 105:23: UnexposedExpr= Extent=[105:23 - 105:47]
-// CHECK: 105:23: UnexposedExpr= Extent=[105:23 - 105:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[105:23 - 105:24]
 // CHECK: 105:28: UnexposedExpr= Extent=[105:28 - 105:33]
-// CHECK: 105:28: UnexposedExpr= Extent=[105:28 - 105:33]
-// CHECK: 105:37: UnexposedExpr= Extent=[105:37 - 105:47]
+// CHECK: 105:28: IntegerLiteral= Extent=[105:28 - 105:33]
+// CHECK: 105:37: BinaryOperator= Extent=[105:37 - 105:47]
 // CHECK: 105:37: DeclRefExpr=c:2:14 Extent=[105:37 - 105:38]
 // CHECK: 105:42: UnexposedExpr= Extent=[105:42 - 105:47]
-// CHECK: 105:42: UnexposedExpr= Extent=[105:42 - 105:47]
-// CHECK: 106:9: UnexposedExpr= Extent=[106:9 - 106:33]
-// CHECK: 106:9: UnexposedExpr= Extent=[106:9 - 106:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[106:9 - 106:10]
 // CHECK: 106:14: UnexposedExpr= Extent=[106:14 - 106:19]
-// CHECK: 106:14: UnexposedExpr= Extent=[106:14 - 106:19]
-// CHECK: 106:23: UnexposedExpr= Extent=[106:23 - 106:33]
+// CHECK: 106:14: IntegerLiteral= Extent=[106:14 - 106:19]
+// CHECK: 106:23: BinaryOperator= Extent=[106:23 - 106:33]
 // CHECK: 106:23: DeclRefExpr=c:2:14 Extent=[106:23 - 106:24]
 // CHECK: 106:28: UnexposedExpr= Extent=[106:28 - 106:33]
-// CHECK: 106:28: UnexposedExpr= Extent=[106:28 - 106:33]
-// CHECK: 107:9: UnexposedExpr= Extent=[107:9 - 107:33]
-// CHECK: 107:9: UnexposedExpr= Extent=[107:9 - 107:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[107:9 - 107:10]
 // CHECK: 107:14: UnexposedExpr= Extent=[107:14 - 107:19]
-// CHECK: 107:14: UnexposedExpr= Extent=[107:14 - 107:19]
-// CHECK: 107:23: UnexposedExpr= Extent=[107:23 - 107:33]
+// CHECK: 107:14: IntegerLiteral= Extent=[107:14 - 107:19]
+// CHECK: 107:23: BinaryOperator= Extent=[107:23 - 107:33]
 // CHECK: 107:23: DeclRefExpr=c:2:14 Extent=[107:23 - 107:24]
 // CHECK: 107:28: UnexposedExpr= Extent=[107:28 - 107:33]
-// CHECK: 107:28: UnexposedExpr= Extent=[107:28 - 107:33]
-// CHECK: 108:8: UnexposedExpr= Extent=[108:8 - 108:18]
+// CHECK: 107:28: IntegerLiteral= Extent=[107:28 - 107:33]
+// CHECK: 108:8: BinaryOperator= Extent=[108:8 - 108:18]
 // CHECK: 108:8: DeclRefExpr=c:2:14 Extent=[108:8 - 108:9]
 // CHECK: 108:13: UnexposedExpr= Extent=[108:13 - 108:18]
-// CHECK: 108:13: UnexposedExpr= Extent=[108:13 - 108:18]
-// CHECK: 108:23: UnexposedExpr= Extent=[108:23 - 108:47]
-// CHECK: 108:23: UnexposedExpr= Extent=[108:23 - 108:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[108:23 - 108:24]
 // CHECK: 108:28: UnexposedExpr= Extent=[108:28 - 108:33]
-// CHECK: 108:28: UnexposedExpr= Extent=[108:28 - 108:33]
-// CHECK: 108:37: UnexposedExpr= Extent=[108:37 - 108:47]
+// CHECK: 108:28: IntegerLiteral= Extent=[108:28 - 108:33]
+// CHECK: 108:37: BinaryOperator= Extent=[108:37 - 108:47]
 // CHECK: 108:37: DeclRefExpr=c:2:14 Extent=[108:37 - 108:38]
 // CHECK: 108:42: UnexposedExpr= Extent=[108:42 - 108:47]
-// CHECK: 108:42: UnexposedExpr= Extent=[108:42 - 108:47]
-// CHECK: 109:8: UnexposedExpr= Extent=[109:8 - 109:18]
+// CHECK: 108:42: IntegerLiteral= Extent=[108:42 - 108:47]
+// CHECK: 109:8: BinaryOperator= Extent=[109:8 - 109:18]
 // CHECK: 109:8: DeclRefExpr=c:2:14 Extent=[109:8 - 109:9]
 // CHECK: 109:13: UnexposedExpr= Extent=[109:13 - 109:18]
-// CHECK: 109:13: UnexposedExpr= Extent=[109:13 - 109:18]
-// CHECK: 109:22: UnexposedExpr= Extent=[109:22 - 109:32]
+// CHECK: 109:13: IntegerLiteral= Extent=[109:13 - 109:18]
+// CHECK: 109:22: BinaryOperator= Extent=[109:22 - 109:32]
 // CHECK: 109:22: DeclRefExpr=c:2:14 Extent=[109:22 - 109:23]
 // CHECK: 109:27: UnexposedExpr= Extent=[109:27 - 109:32]
-// CHECK: 109:27: UnexposedExpr= Extent=[109:27 - 109:32]
-// CHECK: 109:37: UnexposedExpr= Extent=[109:37 - 109:61]
-// CHECK: 109:37: UnexposedExpr= Extent=[109:37 - 109:47]
+// 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:37: DeclRefExpr=c:2:14 Extent=[109:37 - 109:38]
 // CHECK: 109:42: UnexposedExpr= Extent=[109:42 - 109:47]
-// CHECK: 109:42: UnexposedExpr= Extent=[109:42 - 109:47]
-// CHECK: 109:51: UnexposedExpr= Extent=[109:51 - 109:61]
+// CHECK: 109:42: IntegerLiteral= Extent=[109:42 - 109:47]
+// CHECK: 109:51: BinaryOperator= Extent=[109:51 - 109:61]
 // CHECK: 109:51: DeclRefExpr=c:2:14 Extent=[109:51 - 109:52]
 // CHECK: 109:56: UnexposedExpr= Extent=[109:56 - 109:61]
-// CHECK: 109:56: UnexposedExpr= Extent=[109:56 - 109:61]
-// CHECK: 110:9: UnexposedExpr= Extent=[110:9 - 110:33]
-// CHECK: 110:9: UnexposedExpr= Extent=[110:9 - 110:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[110:9 - 110:10]
 // CHECK: 110:14: UnexposedExpr= Extent=[110:14 - 110:19]
-// CHECK: 110:14: UnexposedExpr= Extent=[110:14 - 110:19]
-// CHECK: 110:23: UnexposedExpr= Extent=[110:23 - 110:33]
+// CHECK: 110:14: IntegerLiteral= Extent=[110:14 - 110:19]
+// CHECK: 110:23: BinaryOperator= Extent=[110:23 - 110:33]
 // CHECK: 110:23: DeclRefExpr=c:2:14 Extent=[110:23 - 110:24]
 // CHECK: 110:28: UnexposedExpr= Extent=[110:28 - 110:33]
-// CHECK: 110:28: UnexposedExpr= Extent=[110:28 - 110:33]
-// CHECK: 111:9: UnexposedExpr= Extent=[111:9 - 111:33]
-// CHECK: 111:9: UnexposedExpr= Extent=[111:9 - 111:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[111:9 - 111:10]
 // CHECK: 111:14: UnexposedExpr= Extent=[111:14 - 111:19]
-// CHECK: 111:14: UnexposedExpr= Extent=[111:14 - 111:19]
-// CHECK: 111:23: UnexposedExpr= Extent=[111:23 - 111:33]
+// CHECK: 111:14: IntegerLiteral= Extent=[111:14 - 111:19]
+// CHECK: 111:23: BinaryOperator= Extent=[111:23 - 111:33]
 // CHECK: 111:23: DeclRefExpr=c:2:14 Extent=[111:23 - 111:24]
 // CHECK: 111:28: UnexposedExpr= Extent=[111:28 - 111:33]
-// CHECK: 111:28: UnexposedExpr= Extent=[111:28 - 111:33]
-// CHECK: 112:8: UnexposedExpr= Extent=[112:8 - 112:18]
+// CHECK: 111:28: IntegerLiteral= Extent=[111:28 - 111:33]
+// CHECK: 112:8: BinaryOperator= Extent=[112:8 - 112:18]
 // CHECK: 112:8: DeclRefExpr=c:2:14 Extent=[112:8 - 112:9]
 // CHECK: 112:13: UnexposedExpr= Extent=[112:13 - 112:18]
-// CHECK: 112:13: UnexposedExpr= Extent=[112:13 - 112:18]
-// CHECK: 112:22: UnexposedExpr= Extent=[112:22 - 112:32]
+// CHECK: 112:13: IntegerLiteral= Extent=[112:13 - 112:18]
+// CHECK: 112:22: BinaryOperator= Extent=[112:22 - 112:32]
 // CHECK: 112:22: DeclRefExpr=c:2:14 Extent=[112:22 - 112:23]
 // CHECK: 112:27: UnexposedExpr= Extent=[112:27 - 112:32]
-// CHECK: 112:27: UnexposedExpr= Extent=[112:27 - 112:32]
-// CHECK: 112:37: UnexposedExpr= Extent=[112:37 - 112:61]
-// CHECK: 112:37: UnexposedExpr= Extent=[112:37 - 112:47]
+// 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:37: DeclRefExpr=c:2:14 Extent=[112:37 - 112:38]
 // CHECK: 112:42: UnexposedExpr= Extent=[112:42 - 112:47]
-// CHECK: 112:42: UnexposedExpr= Extent=[112:42 - 112:47]
-// CHECK: 112:51: UnexposedExpr= Extent=[112:51 - 112:61]
+// CHECK: 112:42: IntegerLiteral= Extent=[112:42 - 112:47]
+// CHECK: 112:51: BinaryOperator= Extent=[112:51 - 112:61]
 // CHECK: 112:51: DeclRefExpr=c:2:14 Extent=[112:51 - 112:52]
 // CHECK: 112:56: UnexposedExpr= Extent=[112:56 - 112:61]
-// CHECK: 112:56: UnexposedExpr= Extent=[112:56 - 112:61]
-// CHECK: 113:9: UnexposedExpr= Extent=[113:9 - 113:33]
-// CHECK: 113:9: UnexposedExpr= Extent=[113:9 - 113:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[113:9 - 113:10]
 // CHECK: 113:14: UnexposedExpr= Extent=[113:14 - 113:19]
-// CHECK: 113:14: UnexposedExpr= Extent=[113:14 - 113:19]
-// CHECK: 113:23: UnexposedExpr= Extent=[113:23 - 113:33]
+// CHECK: 113:14: IntegerLiteral= Extent=[113:14 - 113:19]
+// CHECK: 113:23: BinaryOperator= Extent=[113:23 - 113:33]
 // CHECK: 113:23: DeclRefExpr=c:2:14 Extent=[113:23 - 113:24]
 // CHECK: 113:28: UnexposedExpr= Extent=[113:28 - 113:33]
-// CHECK: 113:28: UnexposedExpr= Extent=[113:28 - 113:33]
-// CHECK: 114:8: UnexposedExpr= Extent=[114:8 - 114:18]
+// CHECK: 113:28: IntegerLiteral= Extent=[113:28 - 113:33]
+// CHECK: 114:8: BinaryOperator= Extent=[114:8 - 114:18]
 // CHECK: 114:8: DeclRefExpr=c:2:14 Extent=[114:8 - 114:9]
 // CHECK: 114:13: UnexposedExpr= Extent=[114:13 - 114:18]
-// CHECK: 114:13: UnexposedExpr= Extent=[114:13 - 114:18]
-// CHECK: 114:23: UnexposedExpr= Extent=[114:23 - 114:47]
-// CHECK: 114:23: UnexposedExpr= Extent=[114:23 - 114:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[114:23 - 114:24]
 // CHECK: 114:28: UnexposedExpr= Extent=[114:28 - 114:33]
-// CHECK: 114:28: UnexposedExpr= Extent=[114:28 - 114:33]
-// CHECK: 114:37: UnexposedExpr= Extent=[114:37 - 114:47]
+// CHECK: 114:28: IntegerLiteral= Extent=[114:28 - 114:33]
+// CHECK: 114:37: BinaryOperator= Extent=[114:37 - 114:47]
 // CHECK: 114:37: DeclRefExpr=c:2:14 Extent=[114:37 - 114:38]
 // CHECK: 114:42: UnexposedExpr= Extent=[114:42 - 114:47]
-// CHECK: 114:42: UnexposedExpr= Extent=[114:42 - 114:47]
-// CHECK: 115:8: UnexposedExpr= Extent=[115:8 - 115:18]
+// CHECK: 114:42: IntegerLiteral= Extent=[114:42 - 114:47]
+// CHECK: 115:8: BinaryOperator= Extent=[115:8 - 115:18]
 // CHECK: 115:8: DeclRefExpr=c:2:14 Extent=[115:8 - 115:9]
 // CHECK: 115:13: UnexposedExpr= Extent=[115:13 - 115:18]
-// CHECK: 115:13: UnexposedExpr= Extent=[115:13 - 115:18]
-// CHECK: 115:23: UnexposedExpr= Extent=[115:23 - 115:47]
-// CHECK: 115:23: UnexposedExpr= Extent=[115:23 - 115:33]
+// 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:23: DeclRefExpr=c:2:14 Extent=[115:23 - 115:24]
 // CHECK: 115:28: UnexposedExpr= Extent=[115:28 - 115:33]
-// CHECK: 115:28: UnexposedExpr= Extent=[115:28 - 115:33]
-// CHECK: 115:37: UnexposedExpr= Extent=[115:37 - 115:47]
+// CHECK: 115:28: IntegerLiteral= Extent=[115:28 - 115:33]
+// CHECK: 115:37: BinaryOperator= Extent=[115:37 - 115:47]
 // CHECK: 115:37: DeclRefExpr=c:2:14 Extent=[115:37 - 115:38]
 // CHECK: 115:42: UnexposedExpr= Extent=[115:42 - 115:47]
-// CHECK: 115:42: UnexposedExpr= Extent=[115:42 - 115:47]
-// CHECK: 116:9: UnexposedExpr= Extent=[116:9 - 116:33]
-// CHECK: 116:9: UnexposedExpr= Extent=[116:9 - 116:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[116:9 - 116:10]
 // CHECK: 116:14: UnexposedExpr= Extent=[116:14 - 116:19]
-// CHECK: 116:14: UnexposedExpr= Extent=[116:14 - 116:19]
-// CHECK: 116:23: UnexposedExpr= Extent=[116:23 - 116:33]
+// CHECK: 116:14: IntegerLiteral= Extent=[116:14 - 116:19]
+// CHECK: 116:23: BinaryOperator= Extent=[116:23 - 116:33]
 // CHECK: 116:23: DeclRefExpr=c:2:14 Extent=[116:23 - 116:24]
 // CHECK: 116:28: UnexposedExpr= Extent=[116:28 - 116:33]
-// CHECK: 116:28: UnexposedExpr= Extent=[116:28 - 116:33]
-// CHECK: 117:9: UnexposedExpr= Extent=[117:9 - 117:33]
-// CHECK: 117:9: UnexposedExpr= Extent=[117:9 - 117:19]
+// 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:9: DeclRefExpr=c:2:14 Extent=[117:9 - 117:10]
 // CHECK: 117:14: UnexposedExpr= Extent=[117:14 - 117:19]
-// CHECK: 117:14: UnexposedExpr= Extent=[117:14 - 117:19]
-// CHECK: 117:23: UnexposedExpr= Extent=[117:23 - 117:33]
+// CHECK: 117:14: IntegerLiteral= Extent=[117:14 - 117:19]
+// CHECK: 117:23: BinaryOperator= Extent=[117:23 - 117:33]
 // CHECK: 117:23: DeclRefExpr=c:2:14 Extent=[117:23 - 117:24]
 // CHECK: 117:28: UnexposedExpr= Extent=[117:28 - 117:33]
-// CHECK: 117:28: UnexposedExpr= Extent=[117:28 - 117:33]
-// CHECK: 118:9: UnexposedExpr= Extent=[118:9 - 118:35]
-// CHECK: 118:9: UnexposedExpr= Extent=[118:9 - 118:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[118:9 - 118:10]
 // CHECK: 118:14: UnexposedExpr= Extent=[118:14 - 118:20]
-// CHECK: 118:14: UnexposedExpr= Extent=[118:14 - 118:20]
-// CHECK: 118:24: UnexposedExpr= Extent=[118:24 - 118:35]
+// CHECK: 118:14: IntegerLiteral= Extent=[118:14 - 118:20]
+// CHECK: 118:24: BinaryOperator= Extent=[118:24 - 118:35]
 // CHECK: 118:24: DeclRefExpr=c:2:14 Extent=[118:24 - 118:25]
 // CHECK: 118:29: UnexposedExpr= Extent=[118:29 - 118:35]
-// CHECK: 118:29: UnexposedExpr= Extent=[118:29 - 118:35]
-// CHECK: 119:9: UnexposedExpr= Extent=[119:9 - 119:35]
-// CHECK: 119:9: UnexposedExpr= Extent=[119:9 - 119:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[119:9 - 119:10]
 // CHECK: 119:14: UnexposedExpr= Extent=[119:14 - 119:20]
-// CHECK: 119:14: UnexposedExpr= Extent=[119:14 - 119:20]
-// CHECK: 119:24: UnexposedExpr= Extent=[119:24 - 119:35]
+// CHECK: 119:14: IntegerLiteral= Extent=[119:14 - 119:20]
+// CHECK: 119:24: BinaryOperator= Extent=[119:24 - 119:35]
 // CHECK: 119:24: DeclRefExpr=c:2:14 Extent=[119:24 - 119:25]
 // CHECK: 119:29: UnexposedExpr= Extent=[119:29 - 119:35]
-// CHECK: 119:29: UnexposedExpr= Extent=[119:29 - 119:35]
-// CHECK: 120:8: UnexposedExpr= Extent=[120:8 - 120:19]
+// CHECK: 119:29: IntegerLiteral= Extent=[119:29 - 119:35]
+// CHECK: 120:8: BinaryOperator= Extent=[120:8 - 120:19]
 // CHECK: 120:8: DeclRefExpr=c:2:14 Extent=[120:8 - 120:9]
 // CHECK: 120:13: UnexposedExpr= Extent=[120:13 - 120:19]
-// CHECK: 120:13: UnexposedExpr= Extent=[120:13 - 120:19]
-// CHECK: 120:24: UnexposedExpr= Extent=[120:24 - 120:50]
-// CHECK: 120:24: UnexposedExpr= Extent=[120:24 - 120:35]
+// 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:24: DeclRefExpr=c:2:14 Extent=[120:24 - 120:25]
 // CHECK: 120:29: UnexposedExpr= Extent=[120:29 - 120:35]
-// CHECK: 120:29: UnexposedExpr= Extent=[120:29 - 120:35]
-// CHECK: 120:39: UnexposedExpr= Extent=[120:39 - 120:50]
+// CHECK: 120:29: IntegerLiteral= Extent=[120:29 - 120:35]
+// CHECK: 120:39: BinaryOperator= Extent=[120:39 - 120:50]
 // CHECK: 120:39: DeclRefExpr=c:2:14 Extent=[120:39 - 120:40]
 // CHECK: 120:44: UnexposedExpr= Extent=[120:44 - 120:50]
-// CHECK: 120:44: UnexposedExpr= Extent=[120:44 - 120:50]
-// CHECK: 121:9: UnexposedExpr= Extent=[121:9 - 121:35]
-// CHECK: 121:9: UnexposedExpr= Extent=[121:9 - 121:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[121:9 - 121:10]
 // CHECK: 121:14: UnexposedExpr= Extent=[121:14 - 121:20]
-// CHECK: 121:14: UnexposedExpr= Extent=[121:14 - 121:20]
-// CHECK: 121:24: UnexposedExpr= Extent=[121:24 - 121:35]
+// CHECK: 121:14: IntegerLiteral= Extent=[121:14 - 121:20]
+// CHECK: 121:24: BinaryOperator= Extent=[121:24 - 121:35]
 // CHECK: 121:24: DeclRefExpr=c:2:14 Extent=[121:24 - 121:25]
 // CHECK: 121:29: UnexposedExpr= Extent=[121:29 - 121:35]
-// CHECK: 121:29: UnexposedExpr= Extent=[121:29 - 121:35]
-// CHECK: 122:8: UnexposedExpr= Extent=[122:8 - 122:19]
+// CHECK: 121:29: IntegerLiteral= Extent=[121:29 - 121:35]
+// CHECK: 122:8: BinaryOperator= Extent=[122:8 - 122:19]
 // CHECK: 122:8: DeclRefExpr=c:2:14 Extent=[122:8 - 122:9]
 // CHECK: 122:13: UnexposedExpr= Extent=[122:13 - 122:19]
-// CHECK: 122:13: UnexposedExpr= Extent=[122:13 - 122:19]
-// CHECK: 122:24: UnexposedExpr= Extent=[122:24 - 122:50]
-// CHECK: 122:24: UnexposedExpr= Extent=[122:24 - 122:35]
+// 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:24: DeclRefExpr=c:2:14 Extent=[122:24 - 122:25]
 // CHECK: 122:29: UnexposedExpr= Extent=[122:29 - 122:35]
-// CHECK: 122:29: UnexposedExpr= Extent=[122:29 - 122:35]
-// CHECK: 122:39: UnexposedExpr= Extent=[122:39 - 122:50]
+// CHECK: 122:29: IntegerLiteral= Extent=[122:29 - 122:35]
+// CHECK: 122:39: BinaryOperator= Extent=[122:39 - 122:50]
 // CHECK: 122:39: DeclRefExpr=c:2:14 Extent=[122:39 - 122:40]
 // CHECK: 122:44: UnexposedExpr= Extent=[122:44 - 122:50]
-// CHECK: 122:44: UnexposedExpr= Extent=[122:44 - 122:50]
-// CHECK: 123:9: UnexposedExpr= Extent=[123:9 - 123:35]
-// CHECK: 123:9: UnexposedExpr= Extent=[123:9 - 123:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[123:9 - 123:10]
 // CHECK: 123:14: UnexposedExpr= Extent=[123:14 - 123:20]
-// CHECK: 123:14: UnexposedExpr= Extent=[123:14 - 123:20]
-// CHECK: 123:24: UnexposedExpr= Extent=[123:24 - 123:35]
+// CHECK: 123:14: IntegerLiteral= Extent=[123:14 - 123:20]
+// CHECK: 123:24: BinaryOperator= Extent=[123:24 - 123:35]
 // CHECK: 123:24: DeclRefExpr=c:2:14 Extent=[123:24 - 123:25]
 // CHECK: 123:29: UnexposedExpr= Extent=[123:29 - 123:35]
-// CHECK: 123:29: UnexposedExpr= Extent=[123:29 - 123:35]
-// CHECK: 124:8: UnexposedExpr= Extent=[124:8 - 124:19]
+// CHECK: 123:29: IntegerLiteral= Extent=[123:29 - 123:35]
+// CHECK: 124:8: BinaryOperator= Extent=[124:8 - 124:19]
 // CHECK: 124:8: DeclRefExpr=c:2:14 Extent=[124:8 - 124:9]
 // CHECK: 124:13: UnexposedExpr= Extent=[124:13 - 124:19]
-// CHECK: 124:13: UnexposedExpr= Extent=[124:13 - 124:19]
-// CHECK: 124:23: UnexposedExpr= Extent=[124:23 - 124:34]
+// CHECK: 124:13: IntegerLiteral= Extent=[124:13 - 124:19]
+// CHECK: 124:23: BinaryOperator= Extent=[124:23 - 124:34]
 // CHECK: 124:23: DeclRefExpr=c:2:14 Extent=[124:23 - 124:24]
 // CHECK: 124:28: UnexposedExpr= Extent=[124:28 - 124:34]
-// CHECK: 124:28: UnexposedExpr= Extent=[124:28 - 124:34]
-// CHECK: 124:38: UnexposedExpr= Extent=[124:38 - 124:49]
+// CHECK: 124:28: IntegerLiteral= Extent=[124:28 - 124:34]
+// CHECK: 124:38: BinaryOperator= Extent=[124:38 - 124:49]
 // CHECK: 124:38: DeclRefExpr=c:2:14 Extent=[124:38 - 124:39]
 // CHECK: 124:43: UnexposedExpr= Extent=[124:43 - 124:49]
-// CHECK: 124:43: UnexposedExpr= Extent=[124:43 - 124:49]
-// CHECK: 124:53: UnexposedExpr= Extent=[124:53 - 124:64]
+// CHECK: 124:43: IntegerLiteral= Extent=[124:43 - 124:49]
+// CHECK: 124:53: BinaryOperator= Extent=[124:53 - 124:64]
 // CHECK: 124:53: DeclRefExpr=c:2:14 Extent=[124:53 - 124:54]
 // CHECK: 124:58: UnexposedExpr= Extent=[124:58 - 124:64]
-// CHECK: 124:58: UnexposedExpr= Extent=[124:58 - 124:64]
-// CHECK: 125:5: UnexposedExpr= Extent=[125:5 - 125:16]
+// CHECK: 124:58: IntegerLiteral= Extent=[124:58 - 124:64]
+// CHECK: 125:5: BinaryOperator= Extent=[125:5 - 125:16]
 // CHECK: 125:5: DeclRefExpr=c:2:14 Extent=[125:5 - 125:6]
 // CHECK: 125:10: UnexposedExpr= Extent=[125:10 - 125:16]
-// CHECK: 125:10: UnexposedExpr= Extent=[125:10 - 125:16]
-// CHECK: 125:20: UnexposedExpr= Extent=[125:20 - 125:31]
+// CHECK: 125:10: IntegerLiteral= Extent=[125:10 - 125:16]
+// CHECK: 125:20: BinaryOperator= Extent=[125:20 - 125:31]
 // CHECK: 125:20: DeclRefExpr=c:2:14 Extent=[125:20 - 125:21]
 // CHECK: 125:25: UnexposedExpr= Extent=[125:25 - 125:31]
-// CHECK: 125:25: UnexposedExpr= Extent=[125:25 - 125:31]
-// CHECK: 125:36: UnexposedExpr= Extent=[125:36 - 125:62]
-// CHECK: 125:36: UnexposedExpr= Extent=[125:36 - 125:47]
+// 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:36: DeclRefExpr=c:2:14 Extent=[125:36 - 125:37]
 // CHECK: 125:41: UnexposedExpr= Extent=[125:41 - 125:47]
-// CHECK: 125:41: UnexposedExpr= Extent=[125:41 - 125:47]
-// CHECK: 125:51: UnexposedExpr= Extent=[125:51 - 125:62]
+// CHECK: 125:41: IntegerLiteral= Extent=[125:41 - 125:47]
+// CHECK: 125:51: BinaryOperator= Extent=[125:51 - 125:62]
 // CHECK: 125:51: DeclRefExpr=c:2:14 Extent=[125:51 - 125:52]
 // CHECK: 125:56: UnexposedExpr= Extent=[125:56 - 125:62]
-// CHECK: 125:56: UnexposedExpr= Extent=[125:56 - 125:62]
-// CHECK: 126:8: UnexposedExpr= Extent=[126:8 - 126:19]
+// CHECK: 125:56: IntegerLiteral= Extent=[125:56 - 125:62]
+// CHECK: 126:8: BinaryOperator= Extent=[126:8 - 126:19]
 // CHECK: 126:8: DeclRefExpr=c:2:14 Extent=[126:8 - 126:9]
 // CHECK: 126:13: UnexposedExpr= Extent=[126:13 - 126:19]
-// CHECK: 126:13: UnexposedExpr= Extent=[126:13 - 126:19]
-// CHECK: 126:24: UnexposedExpr= Extent=[126:24 - 126:50]
-// CHECK: 126:24: UnexposedExpr= Extent=[126:24 - 126:35]
+// 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:24: DeclRefExpr=c:2:14 Extent=[126:24 - 126:25]
 // CHECK: 126:29: UnexposedExpr= Extent=[126:29 - 126:35]
-// CHECK: 126:29: UnexposedExpr= Extent=[126:29 - 126:35]
-// CHECK: 126:39: UnexposedExpr= Extent=[126:39 - 126:50]
+// CHECK: 126:29: IntegerLiteral= Extent=[126:29 - 126:35]
+// CHECK: 126:39: BinaryOperator= Extent=[126:39 - 126:50]
 // CHECK: 126:39: DeclRefExpr=c:2:14 Extent=[126:39 - 126:40]
 // CHECK: 126:44: UnexposedExpr= Extent=[126:44 - 126:50]
-// CHECK: 126:44: UnexposedExpr= Extent=[126:44 - 126:50]
-// CHECK: 127:8: UnexposedExpr= Extent=[127:8 - 127:19]
+// CHECK: 126:44: IntegerLiteral= Extent=[126:44 - 126:50]
+// CHECK: 127:8: BinaryOperator= Extent=[127:8 - 127:19]
 // CHECK: 127:8: DeclRefExpr=c:2:14 Extent=[127:8 - 127:9]
 // CHECK: 127:13: UnexposedExpr= Extent=[127:13 - 127:19]
-// CHECK: 127:13: UnexposedExpr= Extent=[127:13 - 127:19]
-// CHECK: 127:23: UnexposedExpr= Extent=[127:23 - 127:34]
+// CHECK: 127:13: IntegerLiteral= Extent=[127:13 - 127:19]
+// CHECK: 127:23: BinaryOperator= Extent=[127:23 - 127:34]
 // CHECK: 127:23: DeclRefExpr=c:2:14 Extent=[127:23 - 127:24]
 // CHECK: 127:28: UnexposedExpr= Extent=[127:28 - 127:34]
-// CHECK: 127:28: UnexposedExpr= Extent=[127:28 - 127:34]
-// CHECK: 127:38: UnexposedExpr= Extent=[127:38 - 127:49]
+// CHECK: 127:28: IntegerLiteral= Extent=[127:28 - 127:34]
+// CHECK: 127:38: BinaryOperator= Extent=[127:38 - 127:49]
 // CHECK: 127:38: DeclRefExpr=c:2:14 Extent=[127:38 - 127:39]
 // CHECK: 127:43: UnexposedExpr= Extent=[127:43 - 127:49]
-// CHECK: 127:43: UnexposedExpr= Extent=[127:43 - 127:49]
-// CHECK: 127:53: UnexposedExpr= Extent=[127:53 - 127:64]
+// CHECK: 127:43: IntegerLiteral= Extent=[127:43 - 127:49]
+// CHECK: 127:53: BinaryOperator= Extent=[127:53 - 127:64]
 // CHECK: 127:53: DeclRefExpr=c:2:14 Extent=[127:53 - 127:54]
 // CHECK: 127:58: UnexposedExpr= Extent=[127:58 - 127:64]
-// CHECK: 127:58: UnexposedExpr= Extent=[127:58 - 127:64]
-// CHECK: 128:6: UnexposedExpr= Extent=[128:6 - 128:32]
-// CHECK: 128:6: UnexposedExpr= Extent=[128:6 - 128:17]
+// 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:6: DeclRefExpr=c:2:14 Extent=[128:6 - 128:7]
 // CHECK: 128:11: UnexposedExpr= Extent=[128:11 - 128:17]
-// CHECK: 128:11: UnexposedExpr= Extent=[128:11 - 128:17]
-// CHECK: 128:21: UnexposedExpr= Extent=[128:21 - 128:32]
+// CHECK: 128:11: IntegerLiteral= Extent=[128:11 - 128:17]
+// CHECK: 128:21: BinaryOperator= Extent=[128:21 - 128:32]
 // CHECK: 128:21: DeclRefExpr=c:2:14 Extent=[128:21 - 128:22]
 // CHECK: 128:26: UnexposedExpr= Extent=[128:26 - 128:32]
-// CHECK: 128:26: UnexposedExpr= Extent=[128:26 - 128:32]
-// CHECK: 129:9: UnexposedExpr= Extent=[129:9 - 129:35]
-// CHECK: 129:9: UnexposedExpr= Extent=[129:9 - 129:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[129:9 - 129:10]
 // CHECK: 129:14: UnexposedExpr= Extent=[129:14 - 129:20]
-// CHECK: 129:14: UnexposedExpr= Extent=[129:14 - 129:20]
-// CHECK: 129:24: UnexposedExpr= Extent=[129:24 - 129:35]
+// CHECK: 129:14: IntegerLiteral= Extent=[129:14 - 129:20]
+// CHECK: 129:24: BinaryOperator= Extent=[129:24 - 129:35]
 // CHECK: 129:24: DeclRefExpr=c:2:14 Extent=[129:24 - 129:25]
 // CHECK: 129:29: UnexposedExpr= Extent=[129:29 - 129:35]
-// CHECK: 129:29: UnexposedExpr= Extent=[129:29 - 129:35]
-// CHECK: 130:8: UnexposedExpr= Extent=[130:8 - 130:19]
+// CHECK: 129:29: IntegerLiteral= Extent=[129:29 - 129:35]
+// CHECK: 130:8: BinaryOperator= Extent=[130:8 - 130:19]
 // CHECK: 130:8: DeclRefExpr=c:2:14 Extent=[130:8 - 130:9]
 // CHECK: 130:13: UnexposedExpr= Extent=[130:13 - 130:19]
-// CHECK: 130:13: UnexposedExpr= Extent=[130:13 - 130:19]
-// CHECK: 130:23: UnexposedExpr= Extent=[130:23 - 130:34]
+// CHECK: 130:13: IntegerLiteral= Extent=[130:13 - 130:19]
+// CHECK: 130:23: BinaryOperator= Extent=[130:23 - 130:34]
 // CHECK: 130:23: DeclRefExpr=c:2:14 Extent=[130:23 - 130:24]
 // CHECK: 130:28: UnexposedExpr= Extent=[130:28 - 130:34]
-// CHECK: 130:28: UnexposedExpr= Extent=[130:28 - 130:34]
-// CHECK: 130:38: UnexposedExpr= Extent=[130:38 - 130:49]
+// CHECK: 130:28: IntegerLiteral= Extent=[130:28 - 130:34]
+// CHECK: 130:38: BinaryOperator= Extent=[130:38 - 130:49]
 // CHECK: 130:38: DeclRefExpr=c:2:14 Extent=[130:38 - 130:39]
 // CHECK: 130:43: UnexposedExpr= Extent=[130:43 - 130:49]
-// CHECK: 130:43: UnexposedExpr= Extent=[130:43 - 130:49]
-// CHECK: 130:53: UnexposedExpr= Extent=[130:53 - 130:64]
+// CHECK: 130:43: IntegerLiteral= Extent=[130:43 - 130:49]
+// CHECK: 130:53: BinaryOperator= Extent=[130:53 - 130:64]
 // CHECK: 130:53: DeclRefExpr=c:2:14 Extent=[130:53 - 130:54]
 // CHECK: 130:58: UnexposedExpr= Extent=[130:58 - 130:64]
-// CHECK: 130:58: UnexposedExpr= Extent=[130:58 - 130:64]
-// CHECK: 131:6: UnexposedExpr= Extent=[131:6 - 131:32]
-// CHECK: 131:6: UnexposedExpr= Extent=[131:6 - 131:17]
+// 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:6: DeclRefExpr=c:2:14 Extent=[131:6 - 131:7]
 // CHECK: 131:11: UnexposedExpr= Extent=[131:11 - 131:17]
-// CHECK: 131:11: UnexposedExpr= Extent=[131:11 - 131:17]
-// CHECK: 131:21: UnexposedExpr= Extent=[131:21 - 131:32]
+// CHECK: 131:11: IntegerLiteral= Extent=[131:11 - 131:17]
+// CHECK: 131:21: BinaryOperator= Extent=[131:21 - 131:32]
 // CHECK: 131:21: DeclRefExpr=c:2:14 Extent=[131:21 - 131:22]
 // CHECK: 131:26: UnexposedExpr= Extent=[131:26 - 131:32]
-// CHECK: 131:26: UnexposedExpr= Extent=[131:26 - 131:32]
-// CHECK: 132:9: UnexposedExpr= Extent=[132:9 - 132:35]
-// CHECK: 132:9: UnexposedExpr= Extent=[132:9 - 132:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[132:9 - 132:10]
 // CHECK: 132:14: UnexposedExpr= Extent=[132:14 - 132:20]
-// CHECK: 132:14: UnexposedExpr= Extent=[132:14 - 132:20]
-// CHECK: 132:24: UnexposedExpr= Extent=[132:24 - 132:35]
+// CHECK: 132:14: IntegerLiteral= Extent=[132:14 - 132:20]
+// CHECK: 132:24: BinaryOperator= Extent=[132:24 - 132:35]
 // CHECK: 132:24: DeclRefExpr=c:2:14 Extent=[132:24 - 132:25]
 // CHECK: 132:29: UnexposedExpr= Extent=[132:29 - 132:35]
-// CHECK: 132:29: UnexposedExpr= Extent=[132:29 - 132:35]
-// CHECK: 133:8: UnexposedExpr= Extent=[133:8 - 133:19]
+// CHECK: 132:29: IntegerLiteral= Extent=[132:29 - 132:35]
+// CHECK: 133:8: BinaryOperator= Extent=[133:8 - 133:19]
 // CHECK: 133:8: DeclRefExpr=c:2:14 Extent=[133:8 - 133:9]
 // CHECK: 133:13: UnexposedExpr= Extent=[133:13 - 133:19]
-// CHECK: 133:13: UnexposedExpr= Extent=[133:13 - 133:19]
-// CHECK: 133:24: UnexposedExpr= Extent=[133:24 - 133:50]
-// CHECK: 133:24: UnexposedExpr= Extent=[133:24 - 133:35]
+// 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:24: DeclRefExpr=c:2:14 Extent=[133:24 - 133:25]
 // CHECK: 133:29: UnexposedExpr= Extent=[133:29 - 133:35]
-// CHECK: 133:29: UnexposedExpr= Extent=[133:29 - 133:35]
-// CHECK: 133:39: UnexposedExpr= Extent=[133:39 - 133:50]
+// CHECK: 133:29: IntegerLiteral= Extent=[133:29 - 133:35]
+// CHECK: 133:39: BinaryOperator= Extent=[133:39 - 133:50]
 // CHECK: 133:39: DeclRefExpr=c:2:14 Extent=[133:39 - 133:40]
 // CHECK: 133:44: UnexposedExpr= Extent=[133:44 - 133:50]
-// CHECK: 133:44: UnexposedExpr= Extent=[133:44 - 133:50]
-// CHECK: 134:8: UnexposedExpr= Extent=[134:8 - 134:19]
+// CHECK: 133:44: IntegerLiteral= Extent=[133:44 - 133:50]
+// CHECK: 134:8: BinaryOperator= Extent=[134:8 - 134:19]
 // CHECK: 134:8: DeclRefExpr=c:2:14 Extent=[134:8 - 134:9]
 // CHECK: 134:13: UnexposedExpr= Extent=[134:13 - 134:19]
-// CHECK: 134:13: UnexposedExpr= Extent=[134:13 - 134:19]
-// CHECK: 134:23: UnexposedExpr= Extent=[134:23 - 134:34]
+// CHECK: 134:13: IntegerLiteral= Extent=[134:13 - 134:19]
+// CHECK: 134:23: BinaryOperator= Extent=[134:23 - 134:34]
 // CHECK: 134:23: DeclRefExpr=c:2:14 Extent=[134:23 - 134:24]
 // CHECK: 134:28: UnexposedExpr= Extent=[134:28 - 134:34]
-// CHECK: 134:28: UnexposedExpr= Extent=[134:28 - 134:34]
-// CHECK: 134:38: UnexposedExpr= Extent=[134:38 - 134:49]
+// CHECK: 134:28: IntegerLiteral= Extent=[134:28 - 134:34]
+// CHECK: 134:38: BinaryOperator= Extent=[134:38 - 134:49]
 // CHECK: 134:38: DeclRefExpr=c:2:14 Extent=[134:38 - 134:39]
 // CHECK: 134:43: UnexposedExpr= Extent=[134:43 - 134:49]
-// CHECK: 134:43: UnexposedExpr= Extent=[134:43 - 134:49]
-// CHECK: 134:54: UnexposedExpr= Extent=[134:54 - 134:80]
-// CHECK: 134:54: UnexposedExpr= Extent=[134:54 - 134:65]
+// 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:54: DeclRefExpr=c:2:14 Extent=[134:54 - 134:55]
 // CHECK: 134:59: UnexposedExpr= Extent=[134:59 - 134:65]
-// CHECK: 134:59: UnexposedExpr= Extent=[134:59 - 134:65]
-// CHECK: 134:69: UnexposedExpr= Extent=[134:69 - 134:80]
+// CHECK: 134:59: IntegerLiteral= Extent=[134:59 - 134:65]
+// CHECK: 134:69: BinaryOperator= Extent=[134:69 - 134:80]
 // CHECK: 134:69: DeclRefExpr=c:2:14 Extent=[134:69 - 134:70]
 // CHECK: 134:74: UnexposedExpr= Extent=[134:74 - 134:80]
-// CHECK: 134:74: UnexposedExpr= Extent=[134:74 - 134:80]
-// CHECK: 135:9: UnexposedExpr= Extent=[135:9 - 135:35]
-// CHECK: 135:9: UnexposedExpr= Extent=[135:9 - 135:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[135:9 - 135:10]
 // CHECK: 135:14: UnexposedExpr= Extent=[135:14 - 135:20]
-// CHECK: 135:14: UnexposedExpr= Extent=[135:14 - 135:20]
-// CHECK: 135:24: UnexposedExpr= Extent=[135:24 - 135:35]
+// CHECK: 135:14: IntegerLiteral= Extent=[135:14 - 135:20]
+// CHECK: 135:24: BinaryOperator= Extent=[135:24 - 135:35]
 // CHECK: 135:24: DeclRefExpr=c:2:14 Extent=[135:24 - 135:25]
 // CHECK: 135:29: UnexposedExpr= Extent=[135:29 - 135:35]
-// CHECK: 135:29: UnexposedExpr= Extent=[135:29 - 135:35]
-// CHECK: 136:9: UnexposedExpr= Extent=[136:9 - 136:35]
-// CHECK: 136:9: UnexposedExpr= Extent=[136:9 - 136:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[136:9 - 136:10]
 // CHECK: 136:14: UnexposedExpr= Extent=[136:14 - 136:20]
-// CHECK: 136:14: UnexposedExpr= Extent=[136:14 - 136:20]
-// CHECK: 136:24: UnexposedExpr= Extent=[136:24 - 136:35]
+// CHECK: 136:14: IntegerLiteral= Extent=[136:14 - 136:20]
+// CHECK: 136:24: BinaryOperator= Extent=[136:24 - 136:35]
 // CHECK: 136:24: DeclRefExpr=c:2:14 Extent=[136:24 - 136:25]
 // CHECK: 136:29: UnexposedExpr= Extent=[136:29 - 136:35]
-// CHECK: 136:29: UnexposedExpr= Extent=[136:29 - 136:35]
-// CHECK: 137:9: UnexposedExpr= Extent=[137:9 - 137:35]
-// CHECK: 137:9: UnexposedExpr= Extent=[137:9 - 137:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[137:9 - 137:10]
 // CHECK: 137:14: UnexposedExpr= Extent=[137:14 - 137:20]
-// CHECK: 137:14: UnexposedExpr= Extent=[137:14 - 137:20]
-// CHECK: 137:24: UnexposedExpr= Extent=[137:24 - 137:35]
+// CHECK: 137:14: IntegerLiteral= Extent=[137:14 - 137:20]
+// CHECK: 137:24: BinaryOperator= Extent=[137:24 - 137:35]
 // CHECK: 137:24: DeclRefExpr=c:2:14 Extent=[137:24 - 137:25]
 // CHECK: 137:29: UnexposedExpr= Extent=[137:29 - 137:35]
-// CHECK: 137:29: UnexposedExpr= Extent=[137:29 - 137:35]
-// CHECK: 138:9: UnexposedExpr= Extent=[138:9 - 138:35]
-// CHECK: 138:9: UnexposedExpr= Extent=[138:9 - 138:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[138:9 - 138:10]
 // CHECK: 138:14: UnexposedExpr= Extent=[138:14 - 138:20]
-// CHECK: 138:14: UnexposedExpr= Extent=[138:14 - 138:20]
-// CHECK: 138:24: UnexposedExpr= Extent=[138:24 - 138:35]
+// CHECK: 138:14: IntegerLiteral= Extent=[138:14 - 138:20]
+// CHECK: 138:24: BinaryOperator= Extent=[138:24 - 138:35]
 // CHECK: 138:24: DeclRefExpr=c:2:14 Extent=[138:24 - 138:25]
 // CHECK: 138:29: UnexposedExpr= Extent=[138:29 - 138:35]
-// CHECK: 138:29: UnexposedExpr= Extent=[138:29 - 138:35]
-// CHECK: 139:9: UnexposedExpr= Extent=[139:9 - 139:35]
-// CHECK: 139:9: UnexposedExpr= Extent=[139:9 - 139:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[139:9 - 139:10]
 // CHECK: 139:14: UnexposedExpr= Extent=[139:14 - 139:20]
-// CHECK: 139:14: UnexposedExpr= Extent=[139:14 - 139:20]
-// CHECK: 139:24: UnexposedExpr= Extent=[139:24 - 139:35]
+// CHECK: 139:14: IntegerLiteral= Extent=[139:14 - 139:20]
+// CHECK: 139:24: BinaryOperator= Extent=[139:24 - 139:35]
 // CHECK: 139:24: DeclRefExpr=c:2:14 Extent=[139:24 - 139:25]
 // CHECK: 139:29: UnexposedExpr= Extent=[139:29 - 139:35]
-// CHECK: 139:29: UnexposedExpr= Extent=[139:29 - 139:35]
-// CHECK: 140:9: UnexposedExpr= Extent=[140:9 - 140:35]
-// CHECK: 140:9: UnexposedExpr= Extent=[140:9 - 140:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[140:9 - 140:10]
 // CHECK: 140:14: UnexposedExpr= Extent=[140:14 - 140:20]
-// CHECK: 140:14: UnexposedExpr= Extent=[140:14 - 140:20]
-// CHECK: 140:24: UnexposedExpr= Extent=[140:24 - 140:35]
+// CHECK: 140:14: IntegerLiteral= Extent=[140:14 - 140:20]
+// CHECK: 140:24: BinaryOperator= Extent=[140:24 - 140:35]
 // CHECK: 140:24: DeclRefExpr=c:2:14 Extent=[140:24 - 140:25]
 // CHECK: 140:29: UnexposedExpr= Extent=[140:29 - 140:35]
-// CHECK: 140:29: UnexposedExpr= Extent=[140:29 - 140:35]
-// CHECK: 141:8: UnexposedExpr= Extent=[141:8 - 141:19]
+// CHECK: 140:29: IntegerLiteral= Extent=[140:29 - 140:35]
+// CHECK: 141:8: BinaryOperator= Extent=[141:8 - 141:19]
 // CHECK: 141:8: DeclRefExpr=c:2:14 Extent=[141:8 - 141:9]
 // CHECK: 141:13: UnexposedExpr= Extent=[141:13 - 141:19]
-// CHECK: 141:13: UnexposedExpr= Extent=[141:13 - 141:19]
-// CHECK: 141:23: UnexposedExpr= Extent=[141:23 - 141:34]
+// CHECK: 141:13: IntegerLiteral= Extent=[141:13 - 141:19]
+// CHECK: 141:23: BinaryOperator= Extent=[141:23 - 141:34]
 // CHECK: 141:23: DeclRefExpr=c:2:14 Extent=[141:23 - 141:24]
 // CHECK: 141:28: UnexposedExpr= Extent=[141:28 - 141:34]
-// CHECK: 141:28: UnexposedExpr= Extent=[141:28 - 141:34]
-// CHECK: 141:38: UnexposedExpr= Extent=[141:38 - 141:49]
+// CHECK: 141:28: IntegerLiteral= Extent=[141:28 - 141:34]
+// CHECK: 141:38: BinaryOperator= Extent=[141:38 - 141:49]
 // CHECK: 141:38: DeclRefExpr=c:2:14 Extent=[141:38 - 141:39]
 // CHECK: 141:43: UnexposedExpr= Extent=[141:43 - 141:49]
-// CHECK: 141:43: UnexposedExpr= Extent=[141:43 - 141:49]
-// CHECK: 141:54: UnexposedExpr= Extent=[141:54 - 141:80]
-// CHECK: 141:54: UnexposedExpr= Extent=[141:54 - 141:65]
+// 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:54: DeclRefExpr=c:2:14 Extent=[141:54 - 141:55]
 // CHECK: 141:59: UnexposedExpr= Extent=[141:59 - 141:65]
-// CHECK: 141:59: UnexposedExpr= Extent=[141:59 - 141:65]
-// CHECK: 141:69: UnexposedExpr= Extent=[141:69 - 141:80]
+// CHECK: 141:59: IntegerLiteral= Extent=[141:59 - 141:65]
+// CHECK: 141:69: BinaryOperator= Extent=[141:69 - 141:80]
 // CHECK: 141:69: DeclRefExpr=c:2:14 Extent=[141:69 - 141:70]
 // CHECK: 141:74: UnexposedExpr= Extent=[141:74 - 141:80]
-// CHECK: 141:74: UnexposedExpr= Extent=[141:74 - 141:80]
-// CHECK: 142:9: UnexposedExpr= Extent=[142:9 - 142:35]
-// CHECK: 142:9: UnexposedExpr= Extent=[142:9 - 142:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[142:9 - 142:10]
 // CHECK: 142:14: UnexposedExpr= Extent=[142:14 - 142:20]
-// CHECK: 142:14: UnexposedExpr= Extent=[142:14 - 142:20]
-// CHECK: 142:24: UnexposedExpr= Extent=[142:24 - 142:35]
+// CHECK: 142:14: IntegerLiteral= Extent=[142:14 - 142:20]
+// CHECK: 142:24: BinaryOperator= Extent=[142:24 - 142:35]
 // CHECK: 142:24: DeclRefExpr=c:2:14 Extent=[142:24 - 142:25]
 // CHECK: 142:29: UnexposedExpr= Extent=[142:29 - 142:35]
-// CHECK: 142:29: UnexposedExpr= Extent=[142:29 - 142:35]
-// CHECK: 143:9: UnexposedExpr= Extent=[143:9 - 143:35]
-// CHECK: 143:9: UnexposedExpr= Extent=[143:9 - 143:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[143:9 - 143:10]
 // CHECK: 143:14: UnexposedExpr= Extent=[143:14 - 143:20]
-// CHECK: 143:14: UnexposedExpr= Extent=[143:14 - 143:20]
-// CHECK: 143:24: UnexposedExpr= Extent=[143:24 - 143:35]
+// CHECK: 143:14: IntegerLiteral= Extent=[143:14 - 143:20]
+// CHECK: 143:24: BinaryOperator= Extent=[143:24 - 143:35]
 // CHECK: 143:24: DeclRefExpr=c:2:14 Extent=[143:24 - 143:25]
 // CHECK: 143:29: UnexposedExpr= Extent=[143:29 - 143:35]
-// CHECK: 143:29: UnexposedExpr= Extent=[143:29 - 143:35]
-// CHECK: 144:8: UnexposedExpr= Extent=[144:8 - 144:19]
+// CHECK: 143:29: IntegerLiteral= Extent=[143:29 - 143:35]
+// CHECK: 144:8: BinaryOperator= Extent=[144:8 - 144:19]
 // CHECK: 144:8: DeclRefExpr=c:2:14 Extent=[144:8 - 144:9]
 // CHECK: 144:13: UnexposedExpr= Extent=[144:13 - 144:19]
-// CHECK: 144:13: UnexposedExpr= Extent=[144:13 - 144:19]
-// CHECK: 144:24: UnexposedExpr= Extent=[144:24 - 144:50]
-// CHECK: 144:24: UnexposedExpr= Extent=[144:24 - 144:35]
+// 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:24: DeclRefExpr=c:2:14 Extent=[144:24 - 144:25]
 // CHECK: 144:29: UnexposedExpr= Extent=[144:29 - 144:35]
-// CHECK: 144:29: UnexposedExpr= Extent=[144:29 - 144:35]
-// CHECK: 144:39: UnexposedExpr= Extent=[144:39 - 144:50]
+// CHECK: 144:29: IntegerLiteral= Extent=[144:29 - 144:35]
+// CHECK: 144:39: BinaryOperator= Extent=[144:39 - 144:50]
 // CHECK: 144:39: DeclRefExpr=c:2:14 Extent=[144:39 - 144:40]
 // CHECK: 144:44: UnexposedExpr= Extent=[144:44 - 144:50]
-// CHECK: 144:44: UnexposedExpr= Extent=[144:44 - 144:50]
-// CHECK: 145:9: UnexposedExpr= Extent=[145:9 - 145:35]
-// CHECK: 145:9: UnexposedExpr= Extent=[145:9 - 145:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[145:9 - 145:10]
 // CHECK: 145:14: UnexposedExpr= Extent=[145:14 - 145:20]
-// CHECK: 145:14: UnexposedExpr= Extent=[145:14 - 145:20]
-// CHECK: 145:24: UnexposedExpr= Extent=[145:24 - 145:35]
+// CHECK: 145:14: IntegerLiteral= Extent=[145:14 - 145:20]
+// CHECK: 145:24: BinaryOperator= Extent=[145:24 - 145:35]
 // CHECK: 145:24: DeclRefExpr=c:2:14 Extent=[145:24 - 145:25]
 // CHECK: 145:29: UnexposedExpr= Extent=[145:29 - 145:35]
-// CHECK: 145:29: UnexposedExpr= Extent=[145:29 - 145:35]
-// CHECK: 146:9: UnexposedExpr= Extent=[146:9 - 146:35]
-// CHECK: 146:9: UnexposedExpr= Extent=[146:9 - 146:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[146:9 - 146:10]
 // CHECK: 146:14: UnexposedExpr= Extent=[146:14 - 146:20]
-// CHECK: 146:14: UnexposedExpr= Extent=[146:14 - 146:20]
-// CHECK: 146:24: UnexposedExpr= Extent=[146:24 - 146:35]
+// CHECK: 146:14: IntegerLiteral= Extent=[146:14 - 146:20]
+// CHECK: 146:24: BinaryOperator= Extent=[146:24 - 146:35]
 // CHECK: 146:24: DeclRefExpr=c:2:14 Extent=[146:24 - 146:25]
 // CHECK: 146:29: UnexposedExpr= Extent=[146:29 - 146:35]
-// CHECK: 146:29: UnexposedExpr= Extent=[146:29 - 146:35]
-// CHECK: 147:9: UnexposedExpr= Extent=[147:9 - 147:35]
-// CHECK: 147:9: UnexposedExpr= Extent=[147:9 - 147:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[147:9 - 147:10]
 // CHECK: 147:14: UnexposedExpr= Extent=[147:14 - 147:20]
-// CHECK: 147:14: UnexposedExpr= Extent=[147:14 - 147:20]
-// CHECK: 147:24: UnexposedExpr= Extent=[147:24 - 147:35]
+// CHECK: 147:14: IntegerLiteral= Extent=[147:14 - 147:20]
+// CHECK: 147:24: BinaryOperator= Extent=[147:24 - 147:35]
 // CHECK: 147:24: DeclRefExpr=c:2:14 Extent=[147:24 - 147:25]
 // CHECK: 147:29: UnexposedExpr= Extent=[147:29 - 147:35]
-// CHECK: 147:29: UnexposedExpr= Extent=[147:29 - 147:35]
-// CHECK: 148:9: UnexposedExpr= Extent=[148:9 - 148:35]
-// CHECK: 148:9: UnexposedExpr= Extent=[148:9 - 148:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[148:9 - 148:10]
 // CHECK: 148:14: UnexposedExpr= Extent=[148:14 - 148:20]
-// CHECK: 148:14: UnexposedExpr= Extent=[148:14 - 148:20]
-// CHECK: 148:24: UnexposedExpr= Extent=[148:24 - 148:35]
+// CHECK: 148:14: IntegerLiteral= Extent=[148:14 - 148:20]
+// CHECK: 148:24: BinaryOperator= Extent=[148:24 - 148:35]
 // CHECK: 148:24: DeclRefExpr=c:2:14 Extent=[148:24 - 148:25]
 // CHECK: 148:29: UnexposedExpr= Extent=[148:29 - 148:35]
-// CHECK: 148:29: UnexposedExpr= Extent=[148:29 - 148:35]
-// CHECK: 149:9: UnexposedExpr= Extent=[149:9 - 149:35]
-// CHECK: 149:9: UnexposedExpr= Extent=[149:9 - 149:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[149:9 - 149:10]
 // CHECK: 149:14: UnexposedExpr= Extent=[149:14 - 149:20]
-// CHECK: 149:14: UnexposedExpr= Extent=[149:14 - 149:20]
-// CHECK: 149:24: UnexposedExpr= Extent=[149:24 - 149:35]
+// CHECK: 149:14: IntegerLiteral= Extent=[149:14 - 149:20]
+// CHECK: 149:24: BinaryOperator= Extent=[149:24 - 149:35]
 // CHECK: 149:24: DeclRefExpr=c:2:14 Extent=[149:24 - 149:25]
 // CHECK: 149:29: UnexposedExpr= Extent=[149:29 - 149:35]
-// CHECK: 149:29: UnexposedExpr= Extent=[149:29 - 149:35]
-// CHECK: 150:9: UnexposedExpr= Extent=[150:9 - 150:35]
-// CHECK: 150:9: UnexposedExpr= Extent=[150:9 - 150:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[150:9 - 150:10]
 // CHECK: 150:14: UnexposedExpr= Extent=[150:14 - 150:20]
-// CHECK: 150:14: UnexposedExpr= Extent=[150:14 - 150:20]
-// CHECK: 150:24: UnexposedExpr= Extent=[150:24 - 150:35]
+// CHECK: 150:14: IntegerLiteral= Extent=[150:14 - 150:20]
+// CHECK: 150:24: BinaryOperator= Extent=[150:24 - 150:35]
 // CHECK: 150:24: DeclRefExpr=c:2:14 Extent=[150:24 - 150:25]
 // CHECK: 150:29: UnexposedExpr= Extent=[150:29 - 150:35]
-// CHECK: 150:29: UnexposedExpr= Extent=[150:29 - 150:35]
-// CHECK: 151:8: UnexposedExpr= Extent=[151:8 - 151:19]
+// CHECK: 150:29: IntegerLiteral= Extent=[150:29 - 150:35]
+// CHECK: 151:8: BinaryOperator= Extent=[151:8 - 151:19]
 // CHECK: 151:8: DeclRefExpr=c:2:14 Extent=[151:8 - 151:9]
 // CHECK: 151:13: UnexposedExpr= Extent=[151:13 - 151:19]
-// CHECK: 151:13: UnexposedExpr= Extent=[151:13 - 151:19]
-// CHECK: 151:24: UnexposedExpr= Extent=[151:24 - 151:50]
-// CHECK: 151:24: UnexposedExpr= Extent=[151:24 - 151:35]
+// 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:24: DeclRefExpr=c:2:14 Extent=[151:24 - 151:25]
 // CHECK: 151:29: UnexposedExpr= Extent=[151:29 - 151:35]
-// CHECK: 151:29: UnexposedExpr= Extent=[151:29 - 151:35]
-// CHECK: 151:39: UnexposedExpr= Extent=[151:39 - 151:50]
+// CHECK: 151:29: IntegerLiteral= Extent=[151:29 - 151:35]
+// CHECK: 151:39: BinaryOperator= Extent=[151:39 - 151:50]
 // CHECK: 151:39: DeclRefExpr=c:2:14 Extent=[151:39 - 151:40]
 // CHECK: 151:44: UnexposedExpr= Extent=[151:44 - 151:50]
-// CHECK: 151:44: UnexposedExpr= Extent=[151:44 - 151:50]
-// CHECK: 152:8: UnexposedExpr= Extent=[152:8 - 152:19]
+// CHECK: 151:44: IntegerLiteral= Extent=[151:44 - 151:50]
+// CHECK: 152:8: BinaryOperator= Extent=[152:8 - 152:19]
 // CHECK: 152:8: DeclRefExpr=c:2:14 Extent=[152:8 - 152:9]
 // CHECK: 152:13: UnexposedExpr= Extent=[152:13 - 152:19]
-// CHECK: 152:13: UnexposedExpr= Extent=[152:13 - 152:19]
-// CHECK: 152:24: UnexposedExpr= Extent=[152:24 - 152:50]
-// CHECK: 152:24: UnexposedExpr= Extent=[152:24 - 152:35]
+// 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:24: DeclRefExpr=c:2:14 Extent=[152:24 - 152:25]
 // CHECK: 152:29: UnexposedExpr= Extent=[152:29 - 152:35]
-// CHECK: 152:29: UnexposedExpr= Extent=[152:29 - 152:35]
-// CHECK: 152:39: UnexposedExpr= Extent=[152:39 - 152:50]
+// CHECK: 152:29: IntegerLiteral= Extent=[152:29 - 152:35]
+// CHECK: 152:39: BinaryOperator= Extent=[152:39 - 152:50]
 // CHECK: 152:39: DeclRefExpr=c:2:14 Extent=[152:39 - 152:40]
 // CHECK: 152:44: UnexposedExpr= Extent=[152:44 - 152:50]
-// CHECK: 152:44: UnexposedExpr= Extent=[152:44 - 152:50]
-// CHECK: 153:9: UnexposedExpr= Extent=[153:9 - 153:35]
-// CHECK: 153:9: UnexposedExpr= Extent=[153:9 - 153:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[153:9 - 153:10]
 // CHECK: 153:14: UnexposedExpr= Extent=[153:14 - 153:20]
-// CHECK: 153:14: UnexposedExpr= Extent=[153:14 - 153:20]
-// CHECK: 153:24: UnexposedExpr= Extent=[153:24 - 153:35]
+// CHECK: 153:14: IntegerLiteral= Extent=[153:14 - 153:20]
+// CHECK: 153:24: BinaryOperator= Extent=[153:24 - 153:35]
 // CHECK: 153:24: DeclRefExpr=c:2:14 Extent=[153:24 - 153:25]
 // CHECK: 153:29: UnexposedExpr= Extent=[153:29 - 153:35]
-// CHECK: 153:29: UnexposedExpr= Extent=[153:29 - 153:35]
-// CHECK: 154:9: UnexposedExpr= Extent=[154:9 - 154:35]
-// CHECK: 154:9: UnexposedExpr= Extent=[154:9 - 154:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[154:9 - 154:10]
 // CHECK: 154:14: UnexposedExpr= Extent=[154:14 - 154:20]
-// CHECK: 154:14: UnexposedExpr= Extent=[154:14 - 154:20]
-// CHECK: 154:24: UnexposedExpr= Extent=[154:24 - 154:35]
+// CHECK: 154:14: IntegerLiteral= Extent=[154:14 - 154:20]
+// CHECK: 154:24: BinaryOperator= Extent=[154:24 - 154:35]
 // CHECK: 154:24: DeclRefExpr=c:2:14 Extent=[154:24 - 154:25]
 // CHECK: 154:29: UnexposedExpr= Extent=[154:29 - 154:35]
-// CHECK: 154:29: UnexposedExpr= Extent=[154:29 - 154:35]
-// CHECK: 155:9: UnexposedExpr= Extent=[155:9 - 155:35]
-// CHECK: 155:9: UnexposedExpr= Extent=[155:9 - 155:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[155:9 - 155:10]
 // CHECK: 155:14: UnexposedExpr= Extent=[155:14 - 155:20]
-// CHECK: 155:14: UnexposedExpr= Extent=[155:14 - 155:20]
-// CHECK: 155:24: UnexposedExpr= Extent=[155:24 - 155:35]
+// CHECK: 155:14: IntegerLiteral= Extent=[155:14 - 155:20]
+// CHECK: 155:24: BinaryOperator= Extent=[155:24 - 155:35]
 // CHECK: 155:24: DeclRefExpr=c:2:14 Extent=[155:24 - 155:25]
 // CHECK: 155:29: UnexposedExpr= Extent=[155:29 - 155:35]
-// CHECK: 155:29: UnexposedExpr= Extent=[155:29 - 155:35]
-// CHECK: 156:9: UnexposedExpr= Extent=[156:9 - 156:35]
-// CHECK: 156:9: UnexposedExpr= Extent=[156:9 - 156:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[156:9 - 156:10]
 // CHECK: 156:14: UnexposedExpr= Extent=[156:14 - 156:20]
-// CHECK: 156:14: UnexposedExpr= Extent=[156:14 - 156:20]
-// CHECK: 156:24: UnexposedExpr= Extent=[156:24 - 156:35]
+// CHECK: 156:14: IntegerLiteral= Extent=[156:14 - 156:20]
+// CHECK: 156:24: BinaryOperator= Extent=[156:24 - 156:35]
 // CHECK: 156:24: DeclRefExpr=c:2:14 Extent=[156:24 - 156:25]
 // CHECK: 156:29: UnexposedExpr= Extent=[156:29 - 156:35]
-// CHECK: 156:29: UnexposedExpr= Extent=[156:29 - 156:35]
-// CHECK: 157:9: UnexposedExpr= Extent=[157:9 - 157:35]
-// CHECK: 157:9: UnexposedExpr= Extent=[157:9 - 157:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[157:9 - 157:10]
 // CHECK: 157:14: UnexposedExpr= Extent=[157:14 - 157:20]
-// CHECK: 157:14: UnexposedExpr= Extent=[157:14 - 157:20]
-// CHECK: 157:24: UnexposedExpr= Extent=[157:24 - 157:35]
+// CHECK: 157:14: IntegerLiteral= Extent=[157:14 - 157:20]
+// CHECK: 157:24: BinaryOperator= Extent=[157:24 - 157:35]
 // CHECK: 157:24: DeclRefExpr=c:2:14 Extent=[157:24 - 157:25]
 // CHECK: 157:29: UnexposedExpr= Extent=[157:29 - 157:35]
-// CHECK: 157:29: UnexposedExpr= Extent=[157:29 - 157:35]
-// CHECK: 158:8: UnexposedExpr= Extent=[158:8 - 158:19]
+// CHECK: 157:29: IntegerLiteral= Extent=[157:29 - 157:35]
+// CHECK: 158:8: BinaryOperator= Extent=[158:8 - 158:19]
 // CHECK: 158:8: DeclRefExpr=c:2:14 Extent=[158:8 - 158:9]
 // CHECK: 158:13: UnexposedExpr= Extent=[158:13 - 158:19]
-// CHECK: 158:13: UnexposedExpr= Extent=[158:13 - 158:19]
-// CHECK: 158:24: UnexposedExpr= Extent=[158:24 - 158:50]
-// CHECK: 158:24: UnexposedExpr= Extent=[158:24 - 158:35]
+// 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:24: DeclRefExpr=c:2:14 Extent=[158:24 - 158:25]
 // CHECK: 158:29: UnexposedExpr= Extent=[158:29 - 158:35]
-// CHECK: 158:29: UnexposedExpr= Extent=[158:29 - 158:35]
-// CHECK: 158:39: UnexposedExpr= Extent=[158:39 - 158:50]
+// CHECK: 158:29: IntegerLiteral= Extent=[158:29 - 158:35]
+// CHECK: 158:39: BinaryOperator= Extent=[158:39 - 158:50]
 // CHECK: 158:39: DeclRefExpr=c:2:14 Extent=[158:39 - 158:40]
 // CHECK: 158:44: UnexposedExpr= Extent=[158:44 - 158:50]
-// CHECK: 158:44: UnexposedExpr= Extent=[158:44 - 158:50]
-// CHECK: 159:9: UnexposedExpr= Extent=[159:9 - 159:35]
-// CHECK: 159:9: UnexposedExpr= Extent=[159:9 - 159:20]
+// 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:9: DeclRefExpr=c:2:14 Extent=[159:9 - 159:10]
 // CHECK: 159:14: UnexposedExpr= Extent=[159:14 - 159:20]
-// CHECK: 159:14: UnexposedExpr= Extent=[159:14 - 159:20]
-// CHECK: 159:24: UnexposedExpr= Extent=[159:24 - 159:35]
+// CHECK: 159:14: IntegerLiteral= Extent=[159:14 - 159:20]
+// CHECK: 159:24: BinaryOperator= Extent=[159:24 - 159:35]
 // CHECK: 159:24: DeclRefExpr=c:2:14 Extent=[159:24 - 159:25]
 // CHECK: 159:29: UnexposedExpr= Extent=[159:29 - 159:35]
-// CHECK: 159:29: UnexposedExpr= Extent=[159:29 - 159:35]
-// CHECK: 160:8: UnexposedExpr= Extent=[160:8 - 160:19]
+// CHECK: 159:29: IntegerLiteral= Extent=[159:29 - 159:35]
+// CHECK: 160:8: BinaryOperator= Extent=[160:8 - 160:19]
 // CHECK: 160:8: DeclRefExpr=c:2:14 Extent=[160:8 - 160:9]
 // CHECK: 160:13: UnexposedExpr= Extent=[160:13 - 160:19]
-// CHECK: 160:13: UnexposedExpr= Extent=[160:13 - 160:19]
-// CHECK: 160:23: UnexposedExpr= Extent=[160:23 - 160:51]
-// CHECK: 160:24: UnexposedExpr= Extent=[160:24 - 160:50]
-// CHECK: 160:24: UnexposedExpr= Extent=[160:24 - 160:35]
+// 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: DeclRefExpr=c:2:14 Extent=[160:24 - 160:25]
 // CHECK: 160:29: UnexposedExpr= Extent=[160:29 - 160:35]
-// CHECK: 160:29: UnexposedExpr= Extent=[160:29 - 160:35]
-// CHECK: 160:39: UnexposedExpr= Extent=[160:39 - 160:50]
+// CHECK: 160:29: IntegerLiteral= Extent=[160:29 - 160:35]
+// CHECK: 160:39: BinaryOperator= Extent=[160:39 - 160:50]
 // CHECK: 160:39: DeclRefExpr=c:2:14 Extent=[160:39 - 160:40]
 // CHECK: 160:44: UnexposedExpr= Extent=[160:44 - 160:50]
-// CHECK: 160:44: UnexposedExpr= Extent=[160:44 - 160:50]
+// CHECK: 160:44: IntegerLiteral= Extent=[160:44 - 160:50]
 

Modified: cfe/trunk/test/Index/preamble.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/preamble.c?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/preamble.c (original)
+++ cfe/trunk/test/Index/preamble.c Wed Oct  5 14:00:14 2011
@@ -9,11 +9,11 @@
 // RUN: env CINDEXTEST_EDITING=1 c-index-test -test-load-source-reparse 5 local -I %S/Inputs -include %t %s 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: UnexposedExpr= 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]
-// CHECK: preamble.h:5:10: UnexposedExpr= Extent=[5:10 - 5:11]
+// CHECK: preamble.h:5:10: IntegerLiteral= Extent=[5:10 - 5:11]
 // CHECK: preamble.c:3:5: FunctionDecl=wibble:3:5 Extent=[3:1 - 3:16]
 // CHECK: preamble.c:3:15: ParmDecl=:3:15 (Definition) Extent=[3:12 - 3:16]
 // CHECK-DIAG: preamble.h:4:7:{4:9-4:13}: warning: incompatible pointer types assigning to 'int *' from 'float *'

Modified: cfe/trunk/test/Index/preamble_macro_template.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/preamble_macro_template.cpp?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/preamble_macro_template.cpp (original)
+++ cfe/trunk/test/Index/preamble_macro_template.cpp Wed Oct  5 14:00:14 2011
@@ -6,10 +6,10 @@
 // RUN: env CINDEXTEST_EDITING=1 c-index-test -test-load-source-reparse 5 local -fno-delayed-template-parsing -I %S/Inputs -include %t %s | FileCheck %s
 // CHECK: preamble_macro_template.h:4:6: FunctionDecl=foo:4:6 (Definition) [Specialization of foo:4:6] Extent=[4:1 - 6:2]
 // CHECK: preamble_macro_template.h:4:13: ParmDecl=p:4:13 (Definition) Extent=[4:10 - 4:14]
-// CHECK: preamble_macro_template.h:4:16: UnexposedStmt= Extent=[4:16 - 6:2]
-// CHECK: preamble_macro_template.h:5:3: UnexposedExpr= Extent=[5:3 - 5:27]
-// CHECK: preamble_macro_template.h:1:21: UnexposedExpr= Extent=[1:21 - 5:27]
-// CHECK: preamble_macro_template.h:5:25: UnexposedExpr= Extent=[5:25 - 5:26]
+// CHECK: preamble_macro_template.h:4:16: CompoundStmt= Extent=[4:16 - 6:2]
+// CHECK: preamble_macro_template.h:5:3: CStyleCastExpr= Extent=[5:3 - 5:27]
+// CHECK: preamble_macro_template.h:1:21: CXXStaticCastExpr= Extent=[1:21 - 5:27]
 // CHECK: preamble_macro_template.h:5:25: UnexposedExpr= Extent=[5:25 - 5:26]
+// CHECK: preamble_macro_template.h:5:25: IntegerLiteral= Extent=[5:25 - 5:26]
 // CHECK: preamble_macro_template.cpp:3:5: FunctionDecl=main:3:5 (Definition) Extent=[3:1 - 3:15]
-// CHECK: preamble_macro_template.cpp:3:12: UnexposedStmt= Extent=[3:12 - 3:15]
+// CHECK: preamble_macro_template.cpp:3:12: CompoundStmt= Extent=[3:12 - 3:15]

Modified: cfe/trunk/test/Index/print-typekind.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/print-typekind.c?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/print-typekind.c (original)
+++ cfe/trunk/test/Index/print-typekind.c Wed Oct  5 14:00:14 2011
@@ -15,13 +15,13 @@
 // CHECK: ParmDecl=x:3:22 (Definition) typekind=Pointer [isPOD=1]
 // CHECK: ParmDecl=z:3:33 (Definition) typekind=Typedef [canonical=Int] [isPOD=1]
 // CHECK: TypeRef=FooType:1:13 typekind=Typedef [canonical=Int] [isPOD=1]
-// CHECK: UnexposedStmt= typekind=Invalid [isPOD=0]
-// CHECK: UnexposedStmt= typekind=Invalid [isPOD=0]
+// CHECK: CompoundStmt= typekind=Invalid [isPOD=0]
+// CHECK: DeclStmt= typekind=Invalid [isPOD=0]
 // CHECK: VarDecl=w:4:17 (Definition) typekind=Typedef const [canonical=Int] [isPOD=1]
 // CHECK: TypeRef=FooType:1:13 typekind=Typedef [canonical=Int] [isPOD=1]
 // CHECK: DeclRefExpr=z:3:33 typekind=Typedef [canonical=Int] [isPOD=1]
-// CHECK: UnexposedStmt= typekind=Invalid [isPOD=0]
-// CHECK: UnexposedExpr= typekind=Pointer [isPOD=1]
+// CHECK: ReturnStmt= typekind=Invalid [isPOD=0]
+// CHECK: BinaryOperator= typekind=Pointer [isPOD=1]
 // CHECK: DeclRefExpr=p:3:13 typekind=Pointer [isPOD=1]
 // CHECK: DeclRefExpr=z:3:33 typekind=Typedef [canonical=Int] [isPOD=1]
 // CHECK: TypedefDecl=OtherType:7:16 (Definition) typekind=Typedef [canonical=Double] [isPOD=1]

Modified: cfe/trunk/test/Index/recursive-cxx-member-calls.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/recursive-cxx-member-calls.cpp?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/recursive-cxx-member-calls.cpp (original)
+++ cfe/trunk/test/Index/recursive-cxx-member-calls.cpp Wed Oct  5 14:00:14 2011
@@ -438,11 +438,11 @@
 // CHECK-tokens: Identifier: "size_t" [41:16 - 41:22] TypeRef=size_t:2:25
 // CHECK-tokens: Identifier: "npos" [41:23 - 41:27] VarDecl=npos:41:23
 // CHECK-tokens: Punctuation: "=" [41:28 - 41:29] VarDecl=npos:41:23
-// CHECK-tokens: Punctuation: "~" [41:30 - 41:31] UnexposedExpr=
+// CHECK-tokens: Punctuation: "~" [41:30 - 41:31] UnaryOperator=
 // CHECK-tokens: Identifier: "size_t" [41:31 - 41:37] TypeRef=size_t:2:25
-// CHECK-tokens: Punctuation: "(" [41:37 - 41:38] UnexposedExpr=
-// CHECK-tokens: Literal: "0" [41:38 - 41:39] UnexposedExpr=
-// CHECK-tokens: Punctuation: ")" [41:39 - 41:40] UnexposedExpr=
+// CHECK-tokens: Punctuation: "(" [41:37 - 41:38] CXXFunctionalCastExpr=
+// CHECK-tokens: Literal: "0" [41:38 - 41:39] IntegerLiteral=
+// CHECK-tokens: Punctuation: ")" [41:39 - 41:40] CXXFunctionalCastExpr
 // CHECK-tokens: Punctuation: ";" [41:40 - 41:41] ClassDecl=StringRef:38:7 (Definition)
 // CHECK-tokens: Keyword: "private" [42:1 - 42:8] CXXAccessSpecifier=:42:1 (Definition)
 // CHECK-tokens: Punctuation: ":" [42:8 - 42:9] CXXAccessSpecifier=:42:1 (Definition)
@@ -464,17 +464,17 @@
 // CHECK-tokens: Identifier: "size_t" [45:31 - 45:37] TypeRef=size_t:2:25
 // CHECK-tokens: Identifier: "b" [45:38 - 45:39] ParmDecl=b:45:38 (Definition)
 // CHECK-tokens: Punctuation: ")" [45:39 - 45:40] CXXMethod=min:45:17 (Definition) (static)
-// CHECK-tokens: Punctuation: "{" [45:41 - 45:42] UnexposedStmt=
-// CHECK-tokens: Keyword: "return" [45:43 - 45:49] UnexposedStmt=
+// 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] UnexposedExpr=
+// 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] UnexposedExpr=
+// CHECK-tokens: Punctuation: "?" [45:56 - 45:57] ConditionalOperator=
 // CHECK-tokens: Identifier: "a" [45:58 - 45:59] DeclRefExpr=a:45:28
-// CHECK-tokens: Punctuation: ":" [45:60 - 45:61] UnexposedExpr=
+// CHECK-tokens: Punctuation: ":" [45:60 - 45:61] ConditionalOperator
 // CHECK-tokens: Identifier: "b" [45:62 - 45:63] DeclRefExpr=b:45:38
-// CHECK-tokens: Punctuation: ";" [45:63 - 45:64] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [45:65 - 45:66] UnexposedStmt=
+// CHECK-tokens: Punctuation: ";" [45:63 - 45:64] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [45:65 - 45:66] CompoundStmt=
 // CHECK-tokens: Keyword: "public" [46:1 - 46:7] CXXAccessSpecifier=:46:1 (Definition)
 // CHECK-tokens: Punctuation: ":" [46:7 - 46:8] CXXAccessSpecifier=:46:1 (Definition)
 // CHECK-tokens: Identifier: "StringRef" [47:3 - 47:12] CXXConstructor=StringRef:47:3 (Definition)
@@ -483,15 +483,15 @@
 // CHECK-tokens: Punctuation: ":" [47:14 - 47:15] CXXConstructor=StringRef:47:3 (Definition)
 // CHECK-tokens: Identifier: "Data" [47:16 - 47:20] MemberRef=Data:43:15
 // CHECK-tokens: Punctuation: "(" [47:20 - 47:21] CXXConstructor=StringRef:47:3 (Definition)
-// CHECK-tokens: Literal: "0" [47:21 - 47:22] UnexposedExpr=
+// CHECK-tokens: Literal: "0" [47:21 - 47:22] IntegerLiteral=
 // CHECK-tokens: Punctuation: ")" [47:22 - 47:23] CXXConstructor=StringRef:47:3 (Definition)
 // CHECK-tokens: Punctuation: "," [47:23 - 47:24] CXXConstructor=StringRef:47:3 (Definition)
 // CHECK-tokens: Identifier: "Length" [47:25 - 47:31] MemberRef=Length:44:10
 // CHECK-tokens: Punctuation: "(" [47:31 - 47:32] CXXConstructor=StringRef:47:3 (Definition)
-// CHECK-tokens: Literal: "0" [47:32 - 47:33] UnexposedExpr=
+// CHECK-tokens: Literal: "0" [47:32 - 47:33] IntegerLiteral=
 // CHECK-tokens: Punctuation: ")" [47:33 - 47:34] CXXConstructor=StringRef:47:3 (Definition)
-// CHECK-tokens: Punctuation: "{" [47:35 - 47:36] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [47:36 - 47:37] UnexposedStmt=
+// CHECK-tokens: Punctuation: "{" [47:35 - 47:36] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [47:36 - 47:37] CompoundStmt=
 // CHECK-tokens: Identifier: "StringRef" [48:3 - 48:12] CXXConstructor=StringRef:48:3 (Definition)
 // CHECK-tokens: Punctuation: "(" [48:12 - 48:13] CXXConstructor=StringRef:48:3 (Definition)
 // CHECK-tokens: Keyword: "const" [48:13 - 48:18] CXXConstructor=StringRef:48:3 (Definition)
@@ -512,8 +512,8 @@
 // CHECK-tokens: Identifier: "Str" [48:63 - 48:66] DeclRefExpr=Str:48:25
 // CHECK-tokens: Punctuation: ")" [48:66 - 48:67] CallExpr=magic_length:36:8
 // CHECK-tokens: Punctuation: ")" [48:67 - 48:68] CXXConstructor=StringRef:48:3 (Definition)
-// CHECK-tokens: Punctuation: "{" [48:69 - 48:70] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [48:70 - 48:71] UnexposedStmt=
+// CHECK-tokens: Punctuation: "{" [48:69 - 48:70] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [48:70 - 48:71] CompoundStmt=
 // CHECK-tokens: Identifier: "StringRef" [49:3 - 49:12] CXXConstructor=StringRef:49:3 (Definition)
 // CHECK-tokens: Punctuation: "(" [49:12 - 49:13] CXXConstructor=StringRef:49:3 (Definition)
 // CHECK-tokens: Keyword: "const" [49:13 - 49:18] CXXConstructor=StringRef:49:3 (Definition)
@@ -534,28 +534,28 @@
 // CHECK-tokens: Punctuation: "(" [49:66 - 49:67] CXXConstructor=StringRef:49:3 (Definition)
 // CHECK-tokens: Identifier: "length" [49:67 - 49:73] DeclRefExpr=length:49:38
 // CHECK-tokens: Punctuation: ")" [49:73 - 49:74] CXXConstructor=StringRef:49:3 (Definition)
-// CHECK-tokens: Punctuation: "{" [49:75 - 49:76] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [49:76 - 49:77] UnexposedStmt=
+// CHECK-tokens: Punctuation: "{" [49:75 - 49:76] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [49:76 - 49:77] CompoundStmt=
 // CHECK-tokens: Identifier: "iterator" [50:3 - 50:11] TypeRef=iterator:40:23
 // CHECK-tokens: Identifier: "end" [50:12 - 50:15] CXXMethod=end:50:12 (Definition)
 // CHECK-tokens: Punctuation: "(" [50:15 - 50:16] CXXMethod=end:50:12 (Definition)
 // CHECK-tokens: Punctuation: ")" [50:16 - 50:17] CXXMethod=end:50:12 (Definition)
 // CHECK-tokens: Keyword: "const" [50:18 - 50:23] CXXMethod=end:50:12 (Definition)
-// CHECK-tokens: Punctuation: "{" [50:24 - 50:25] UnexposedStmt=
-// CHECK-tokens: Keyword: "return" [50:26 - 50:32] UnexposedStmt=
+// CHECK-tokens: Punctuation: "{" [50:24 - 50:25] CompoundStmt=
+// CHECK-tokens: Keyword: "return" [50:26 - 50:32] ReturnStmt=
 // CHECK-tokens: Identifier: "Data" [50:33 - 50:37]  MemberRefExpr=Data:43:15
-// CHECK-tokens: Punctuation: ";" [50:37 - 50:38] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [50:39 - 50:40] UnexposedStmt=
+// CHECK-tokens: Punctuation: ";" [50:37 - 50:38] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [50:39 - 50:40] CompoundStmt=
 // CHECK-tokens: Identifier: "size_t" [51:3 - 51:9] TypeRef=size_t:2:25
 // CHECK-tokens: Identifier: "size" [51:10 - 51:14] CXXMethod=size:51:10 (Definition)
 // CHECK-tokens: Punctuation: "(" [51:14 - 51:15] CXXMethod=size:51:10 (Definition)
 // CHECK-tokens: Punctuation: ")" [51:15 - 51:16] CXXMethod=size:51:10 (Definition)
 // CHECK-tokens: Keyword: "const" [51:17 - 51:22] CXXMethod=size:51:10 (Definition)
-// CHECK-tokens: Punctuation: "{" [51:23 - 51:24] UnexposedStmt=
-// CHECK-tokens: Keyword: "return" [51:25 - 51:31] UnexposedStmt=
+// CHECK-tokens: Punctuation: "{" [51:23 - 51:24] CompoundStmt=
+// CHECK-tokens: Keyword: "return" [51:25 - 51:31] ReturnStmt=
 // CHECK-tokens: Identifier: "Length" [51:32 - 51:38] MemberRefExpr=Length:44:10
-// CHECK-tokens: Punctuation: ";" [51:38 - 51:39] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [51:40 - 51:41] UnexposedStmt=
+// CHECK-tokens: Punctuation: ";" [51:38 - 51:39] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [51:40 - 51:41] CompoundStmt=
 // CHECK-tokens: Keyword: "bool" [52:3 - 52:7] CXXMethod=startswith:52:8 (Definition)
 // CHECK-tokens: Identifier: "startswith" [52:8 - 52:18] CXXMethod=startswith:52:8 (Definition)
 // CHECK-tokens: Punctuation: "(" [52:18 - 52:19] CXXMethod=startswith:52:8 (Definition)
@@ -563,14 +563,14 @@
 // CHECK-tokens: Identifier: "Prefix" [52:29 - 52:35] ParmDecl=Prefix:52:29 (Definition)
 // CHECK-tokens: Punctuation: ")" [52:35 - 52:36] CXXMethod=startswith:52:8 (Definition)
 // CHECK-tokens: Keyword: "const" [52:37 - 52:42] CXXMethod=startswith:52:8 (Definition)
-// CHECK-tokens: Punctuation: "{" [52:43 - 52:44] UnexposedStmt=
-// CHECK-tokens: Keyword: "return" [53:5 - 53:11] UnexposedStmt=
+// 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] UnexposedExpr=
+// 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] UnexposedExpr=
+// 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,10 +583,10 @@
 // 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] UnexposedExpr=
-// CHECK-tokens: Literal: "0" [54:55 - 54:56] UnexposedExpr=
-// CHECK-tokens: Punctuation: ";" [54:56 - 54:57] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [55:3 - 55:4] UnexposedStmt=
+// 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=
 // CHECK-tokens: Keyword: "bool" [56:3 - 56:7] CXXMethod=endswith:56:8 (Definition)
 // CHECK-tokens: Identifier: "endswith" [56:8 - 56:16] CXXMethod=endswith:56:8 (Definition)
 // CHECK-tokens: Punctuation: "(" [56:16 - 56:17] CXXMethod=endswith:56:8 (Definition)
@@ -594,20 +594,20 @@
 // CHECK-tokens: Identifier: "Suffix" [56:27 - 56:33] ParmDecl=Suffix:56:27 (Definition)
 // CHECK-tokens: Punctuation: ")" [56:33 - 56:34] CXXMethod=endswith:56:8 (Definition)
 // CHECK-tokens: Keyword: "const" [56:35 - 56:40] CXXMethod=endswith:56:8 (Definition)
-// CHECK-tokens: Punctuation: "{" [56:41 - 56:42] UnexposedStmt=
-// CHECK-tokens: Keyword: "return" [57:5 - 57:11] UnexposedStmt=
+// 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] UnexposedExpr=
+// 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] UnexposedExpr=
+// 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] UnexposedExpr=
+// 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,10 +620,10 @@
 // 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] UnexposedExpr=
-// CHECK-tokens: Literal: "0" [58:68 - 58:69] UnexposedExpr=
-// CHECK-tokens: Punctuation: ";" [58:69 - 58:70] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [59:3 - 59:4] UnexposedStmt=
+// 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=
 // CHECK-tokens: Identifier: "StringRef" [60:3 - 60:12] TypeRef=class llvm::StringRef:38:7
 // CHECK-tokens: Identifier: "substr" [60:13 - 60:19] CXXMethod=substr:60:13 (Definition)
 // CHECK-tokens: Punctuation: "(" [60:19 - 60:20] CXXMethod=substr:60:13 (Definition)
@@ -636,12 +636,12 @@
 // CHECK-tokens: Identifier: "npos" [60:45 - 60:49] DeclRefExpr=npos:41:23
 // CHECK-tokens: Punctuation: ")" [60:49 - 60:50] CXXMethod=substr:60:13 (Definition)
 // CHECK-tokens: Keyword: "const" [60:51 - 60:56] CXXMethod=substr:60:13 (Definition)
-// CHECK-tokens: Punctuation: "{" [60:57 - 60:58] UnexposedStmt=
-// CHECK-tokens: Keyword: "return" [61:5 - 61:11] UnexposedStmt=
+// CHECK-tokens: Punctuation: "{" [60:57 - 60:58] CompoundStmt=
+// CHECK-tokens: Keyword: "return" [61:5 - 61:11] ReturnStmt=
 // 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] UnexposedExpr=
+// 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,12 +649,12 @@
 // 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] UnexposedExpr=
+// 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
-// CHECK-tokens: Punctuation: ";" [61:59 - 61:60] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [62:3 - 62:4] UnexposedStmt=
+// CHECK-tokens: Punctuation: ";" [61:59 - 61:60] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [62:3 - 62:4] CompoundStmt=
 // CHECK-tokens: Punctuation: "}" [63:1 - 63:2] ClassDecl=StringRef:38:7 (Definition)
 // CHECK-tokens: Punctuation: ";" [63:2 - 63:3] Namespace=llvm:37:11 (Definition)
 // CHECK-tokens: Punctuation: "}" [64:1 - 64:2] Namespace=llvm:37:11 (Definition)
@@ -677,8 +677,8 @@
 // CHECK-tokens: Punctuation: "(" [68:27 - 68:28] CXXMethod=getNameStart:68:15 (Definition)
 // CHECK-tokens: Punctuation: ")" [68:28 - 68:29] CXXMethod=getNameStart:68:15 (Definition)
 // CHECK-tokens: Keyword: "const" [68:30 - 68:35] CXXMethod=getNameStart:68:15 (Definition)
-// CHECK-tokens: Punctuation: "{" [68:36 - 68:37] UnexposedStmt=
-// CHECK-tokens: Keyword: "typedef" [69:5 - 69:12] UnexposedStmt=
+// CHECK-tokens: Punctuation: "{" [68:36 - 68:37] CompoundStmt=
+// CHECK-tokens: Keyword: "typedef" [69:5 - 69:12] DeclStmt=
 // CHECK-tokens: Identifier: "std" [69:13 - 69:16] NamespaceRef=std:3:11
 // CHECK-tokens: Punctuation: "::" [69:16 - 69:18] TypedefDecl=actualtype:69:54 (Definition)
 // CHECK-tokens: Identifier: "pair" [69:18 - 69:22] TemplateRef=pair:4:44
@@ -690,27 +690,27 @@
 // CHECK-tokens: Punctuation: "*" [69:52 - 69:53] TypedefDecl=actualtype:69:54 (Definition)
 // CHECK-tokens: Punctuation: ">" [69:53 - 69:54] TypedefDecl=actualtype:69:54 (Definition)
 // CHECK-tokens: Identifier: "actualtype" [69:54 - 69:64] TypedefDecl=actualtype:69:54 (Definition)
-// CHECK-tokens: Punctuation: ";" [69:64 - 69:65] UnexposedStmt=
-// CHECK-tokens: Keyword: "return" [70:5 - 70:11] UnexposedStmt=
-// CHECK-tokens: Punctuation: "(" [70:12 - 70:13] UnexposedExpr=
-// CHECK-tokens: Punctuation: "(" [70:13 - 70:14] UnexposedExpr=
-// CHECK-tokens: Keyword: "const" [70:14 - 70:19] UnexposedExpr=
+// CHECK-tokens: Punctuation: ";" [69:64 - 69:65] DeclStmt=
+// CHECK-tokens: Keyword: "return" [70:5 - 70:11] ReturnStmt=
+// CHECK-tokens: Punctuation: "(" [70:12 - 70:13] ParenExpr=
+// CHECK-tokens: Punctuation: "(" [70:13 - 70:14] CStyleCastExpr=
+// CHECK-tokens: Keyword: "const" [70:14 - 70:19] CStyleCastExpr=
 // CHECK-tokens: Identifier: "actualtype" [70:20 - 70:30] TypeRef=actualtype:69:54
-// CHECK-tokens: Punctuation: "*" [70:31 - 70:32] UnexposedExpr=
-// CHECK-tokens: Punctuation: ")" [70:32 - 70:33] UnexposedExpr=
-// CHECK-tokens: Keyword: "this" [70:34 - 70:38] UnexposedExpr=
-// CHECK-tokens: Punctuation: ")" [70:38 - 70:39] UnexposedExpr=
+// CHECK-tokens: Punctuation: "*" [70:31 - 70:32] CStyleCastExpr=
+// CHECK-tokens: Punctuation: ")" [70:32 - 70:33] CStyleCastExpr=
+// CHECK-tokens: Keyword: "this" [70:34 - 70:38] CXXThisExpr=
+// CHECK-tokens: Punctuation: ")" [70:38 - 70:39] ParenExpr=
 // CHECK-tokens: Punctuation: "->" [70:39 - 70:41] MemberRefExpr=second:4:55
 // CHECK-tokens: Identifier: "second" [70:41 - 70:47] MemberRefExpr=second:4:55
-// CHECK-tokens: Punctuation: ";" [70:47 - 70:48] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [71:3 - 71:4] UnexposedStmt=
+// CHECK-tokens: Punctuation: ";" [70:47 - 70:48] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [71:3 - 71:4] CompoundStmt=
 // CHECK-tokens: Keyword: "unsigned" [72:3 - 72:11] CXXMethod=getLength:72:12 (Definition)
 // CHECK-tokens: Identifier: "getLength" [72:12 - 72:21] CXXMethod=getLength:72:12 (Definition)
 // CHECK-tokens: Punctuation: "(" [72:21 - 72:22] CXXMethod=getLength:72:12 (Definition)
 // CHECK-tokens: Punctuation: ")" [72:22 - 72:23] CXXMethod=getLength:72:12 (Definition)
 // CHECK-tokens: Keyword: "const" [72:24 - 72:29] CXXMethod=getLength:72:12 (Definition)
-// CHECK-tokens: Punctuation: "{" [72:30 - 72:31] UnexposedStmt=
-// CHECK-tokens: Keyword: "typedef" [73:5 - 73:12] UnexposedStmt=
+// CHECK-tokens: Punctuation: "{" [72:30 - 72:31] CompoundStmt=
+// CHECK-tokens: Keyword: "typedef" [73:5 - 73:12] DeclStmt=
 // CHECK-tokens: Identifier: "std" [73:13 - 73:16] NamespaceRef=std:3:11
 // CHECK-tokens: Punctuation: "::" [73:16 - 73:18] TypedefDecl=actualtype:73:54 (Definition)
 // CHECK-tokens: Identifier: "pair" [73:18 - 73:22] TemplateRef=pair:4:44
@@ -722,55 +722,55 @@
 // CHECK-tokens: Punctuation: "*" [73:52 - 73:53] TypedefDecl=actualtype:73:54 (Definition)
 // CHECK-tokens: Punctuation: ">" [73:53 - 73:54] TypedefDecl=actualtype:73:54 (Definition)
 // CHECK-tokens: Identifier: "actualtype" [73:54 - 73:64] TypedefDecl=actualtype:73:54 (Definition)
-// CHECK-tokens: Punctuation: ";" [73:64 - 73:65] UnexposedStmt=
-// CHECK-tokens: Keyword: "const" [74:5 - 74:10] UnexposedStmt=
+// CHECK-tokens: Punctuation: ";" [73:64 - 73:65] DeclStmt=
+// CHECK-tokens: Keyword: "const" [74:5 - 74:10] DeclStmt=
 // CHECK-tokens: Keyword: "char" [74:11 - 74:15] VarDecl=p:74:17 (Definition)
 // CHECK-tokens: Punctuation: "*" [74:16 - 74:17] VarDecl=p:74:17 (Definition)
 // CHECK-tokens: Identifier: "p" [74:17 - 74:18] VarDecl=p:74:17 (Definition)
 // CHECK-tokens: Punctuation: "=" [74:19 - 74:20] VarDecl=p:74:17 (Definition)
-// CHECK-tokens: Punctuation: "(" [74:21 - 74:22] UnexposedExpr=
-// CHECK-tokens: Punctuation: "(" [74:22 - 74:23] UnexposedExpr=
-// CHECK-tokens: Keyword: "const" [74:23 - 74:28] UnexposedExpr=
+// CHECK-tokens: Punctuation: "(" [74:21 - 74:22] ParenExpr=
+// CHECK-tokens: Punctuation: "(" [74:22 - 74:23] CStyleCastExpr=
+// CHECK-tokens: Keyword: "const" [74:23 - 74:28] CStyleCastExpr=
 // CHECK-tokens: Identifier: "actualtype" [74:29 - 74:39] TypeRef=actualtype:73:54
-// CHECK-tokens: Punctuation: "*" [74:40 - 74:41] UnexposedExpr=
-// CHECK-tokens: Punctuation: ")" [74:41 - 74:42] UnexposedExpr=
-// CHECK-tokens: Keyword: "this" [74:43 - 74:47] UnexposedExpr=
-// CHECK-tokens: Punctuation: ")" [74:47 - 74:48] UnexposedExpr=
+// CHECK-tokens: Punctuation: "*" [74:40 - 74:41] CStyleCastExpr=
+// CHECK-tokens: Punctuation: ")" [74:41 - 74:42] CStyleCastExpr=
+// CHECK-tokens: Keyword: "this" [74:43 - 74:47] CXXThisExpr=
+// 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] UnexposedExpr=
-// CHECK-tokens: Literal: "2" [74:59 - 74:60] UnexposedExpr=
-// CHECK-tokens: Punctuation: ";" [74:60 - 74:61] UnexposedStmt=
-// CHECK-tokens: Keyword: "return" [75:5 - 75:11] UnexposedStmt=
-// CHECK-tokens: Punctuation: "(" [75:12 - 75:13] UnexposedExpr=
-// CHECK-tokens: Punctuation: "(" [75:13 - 75:14] UnexposedExpr=
-// CHECK-tokens: Punctuation: "(" [75:14 - 75:15] UnexposedExpr=
-// CHECK-tokens: Keyword: "unsigned" [75:15 - 75:23] UnexposedExpr=
-// CHECK-tokens: Punctuation: ")" [75:23 - 75:24] UnexposedExpr=
+// 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=
+// CHECK-tokens: Punctuation: "(" [75:12 - 75:13] ParenExpr=
+// CHECK-tokens: Punctuation: "(" [75:13 - 75:14] ParenExpr=
+// CHECK-tokens: Punctuation: "(" [75:14 - 75:15] CStyleCastExpr=
+// CHECK-tokens: Keyword: "unsigned" [75:15 - 75:23] CStyleCastExpr=
+// CHECK-tokens: Punctuation: ")" [75:23 - 75:24] CStyleCastExpr=
 // CHECK-tokens: Identifier: "p" [75:25 - 75:26] DeclRefExpr=p:74:17
-// CHECK-tokens: Punctuation: "[" [75:26 - 75:27] UnexposedExpr=
-// CHECK-tokens: Literal: "0" [75:27 - 75:28] UnexposedExpr=
-// CHECK-tokens: Punctuation: "]" [75:28 - 75:29] UnexposedExpr=
-// CHECK-tokens: Punctuation: ")" [75:29 - 75:30] UnexposedExpr=
-// CHECK-tokens: Punctuation: "|" [75:31 - 75:32] UnexposedExpr=
-// CHECK-tokens: Punctuation: "(" [75:33 - 75:34] UnexposedExpr=
-// CHECK-tokens: Punctuation: "(" [75:34 - 75:35] UnexposedExpr=
-// CHECK-tokens: Punctuation: "(" [75:35 - 75:36] UnexposedExpr=
-// CHECK-tokens: Keyword: "unsigned" [75:36 - 75:44] UnexposedExpr=
-// CHECK-tokens: Punctuation: ")" [75:44 - 75:45] UnexposedExpr=
+// CHECK-tokens: Punctuation: "[" [75:26 - 75:27] ArraySubscriptExpr=
+// 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:33 - 75:34] ParenExpr=
+// CHECK-tokens: Punctuation: "(" [75:34 - 75:35] ParenExpr=
+// CHECK-tokens: Punctuation: "(" [75:35 - 75:36] CStyleCastExpr=
+// CHECK-tokens: Keyword: "unsigned" [75:36 - 75:44] CStyleCastExpr=
+// CHECK-tokens: Punctuation: ")" [75:44 - 75:45] CStyleCastExpr=
 // CHECK-tokens: Identifier: "p" [75:46 - 75:47] DeclRefExpr=p:74:17
-// CHECK-tokens: Punctuation: "[" [75:47 - 75:48] UnexposedExpr=
-// CHECK-tokens: Literal: "1" [75:48 - 75:49] UnexposedExpr=
-// CHECK-tokens: Punctuation: "]" [75:49 - 75:50] UnexposedExpr=
-// CHECK-tokens: Punctuation: ")" [75:50 - 75:51] UnexposedExpr=
-// CHECK-tokens: Punctuation: "<<" [75:52 - 75:54] UnexposedExpr=
-// CHECK-tokens: Literal: "8" [75:55 - 75:56] UnexposedExpr=
-// CHECK-tokens: Punctuation: ")" [75:56 - 75:57] UnexposedExpr=
-// CHECK-tokens: Punctuation: ")" [75:57 - 75:58] UnexposedExpr=
-// CHECK-tokens: Punctuation: "-" [75:59 - 75:60] UnexposedExpr=
-// CHECK-tokens: Literal: "1" [75:61 - 75:62] UnexposedExpr=
-// CHECK-tokens: Punctuation: ";" [75:62 - 75:63] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [76:3 - 76:4] UnexposedStmt=
+// CHECK-tokens: Punctuation: "[" [75:47 - 75:48] ArraySubscriptExpr=
+// 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: 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: Literal: "1" [75:61 - 75:62] IntegerLiteral=
+// CHECK-tokens: Punctuation: ";" [75:62 - 75:63] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [76:3 - 76:4] CompoundStmt=
 // CHECK-tokens: Identifier: "llvm" [77:3 - 77:7] NamespaceRef=llvm:37:11
 // CHECK-tokens: Punctuation: "::" [77:7 - 77:9] CXXMethod=getName:77:19 (Definition)
 // CHECK-tokens: Identifier: "StringRef" [77:9 - 77:18] TypeRef=class llvm::StringRef:38:7
@@ -778,8 +778,8 @@
 // CHECK-tokens: Punctuation: "(" [77:26 - 77:27] CXXMethod=getName:77:19 (Definition)
 // CHECK-tokens: Punctuation: ")" [77:27 - 77:28] CXXMethod=getName:77:19 (Definition)
 // CHECK-tokens: Keyword: "const" [77:29 - 77:34] CXXMethod=getName:77:19 (Definition)
-// CHECK-tokens: Punctuation: "{" [77:35 - 77:36] UnexposedStmt=
-// CHECK-tokens: Keyword: "return" [78:5 - 78:11] UnexposedStmt=
+// CHECK-tokens: Punctuation: "{" [77:35 - 77:36] CompoundStmt=
+// CHECK-tokens: Keyword: "return" [78:5 - 78:11] ReturnStmt=
 // CHECK-tokens: Identifier: "llvm" [78:12 - 78:16] NamespaceRef=llvm:37:11
 // CHECK-tokens: Punctuation: "::" [78:16 - 78:18] CallExpr=StringRef:49:3
 // CHECK-tokens: Identifier: "StringRef" [78:18 - 78:27] TypeRef=class llvm::StringRef:38:7
@@ -792,8 +792,8 @@
 // CHECK-tokens: Punctuation: "(" [78:53 - 78:54] CallExpr=getLength:72:12
 // CHECK-tokens: Punctuation: ")" [78:54 - 78:55] CallExpr=getLength:72:12
 // CHECK-tokens: Punctuation: ")" [78:55 - 78:56] CallExpr=StringRef:49:3
-// CHECK-tokens: Punctuation: ";" [78:56 - 78:57] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [79:3 - 79:4] UnexposedStmt=
+// CHECK-tokens: Punctuation: ";" [78:56 - 78:57] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [79:3 - 79:4] CompoundStmt=
 // CHECK-tokens: Punctuation: "}" [80:1 - 80:2] ClassDecl=IdentifierInfo:66:7 (Definition)
 // CHECK-tokens: Punctuation: ";" [80:2 - 80:3] Namespace=clang:65:11 (Definition)
 // CHECK-tokens: Punctuation: "}" [81:1 - 81:2] Namespace=clang:65:11 (Definition)
@@ -837,10 +837,10 @@
 // CHECK-tokens: Punctuation: "," [87:50 - 87:51] CXXConstructor=StringSwitch<T, R>:87:12 (Definition)
 // CHECK-tokens: Identifier: "Result" [87:52 - 87:58] MemberRef=Result:85:12
 // CHECK-tokens: Punctuation: "(" [87:58 - 87:59] UnexposedExpr=
-// CHECK-tokens: Literal: "0" [87:59 - 87:60] UnexposedExpr=
+// CHECK-tokens: Literal: "0" [87:59 - 87:60] IntegerLiteral=
 // CHECK-tokens: Punctuation: ")" [87:60 - 87:61] UnexposedExpr=
-// CHECK-tokens: Punctuation: "{" [87:62 - 87:63] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [87:63 - 87:64] UnexposedStmt=
+// CHECK-tokens: Punctuation: "{" [87:62 - 87:63] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [87:63 - 87:64] CompoundStmt=
 // CHECK-tokens: Keyword: "template" [88:3 - 88:11] FunctionTemplate=Case:88:42 (Definition)
 // CHECK-tokens: Punctuation: "<" [88:12 - 88:13] FunctionTemplate=Case:88:42 (Definition)
 // CHECK-tokens: Keyword: "unsigned" [88:14 - 88:22] NonTypeTemplateParameter=N:88:23 (Definition)
@@ -865,12 +865,12 @@
 // CHECK-tokens: Punctuation: "&" [89:55 - 89:56] ParmDecl=Value:89:57 (Definition)
 // CHECK-tokens: Identifier: "Value" [89:57 - 89:62] ParmDecl=Value:89:57 (Definition)
 // CHECK-tokens: Punctuation: ")" [89:62 - 89:63] FunctionTemplate=Case:88:42 (Definition)
-// CHECK-tokens: Punctuation: "{" [89:64 - 89:65] UnexposedStmt=
-// CHECK-tokens: Keyword: "return" [90:5 - 90:11] UnexposedStmt=
-// CHECK-tokens: Punctuation: "*" [90:12 - 90:13] UnexposedExpr=
-// CHECK-tokens: Keyword: "this" [90:13 - 90:17] UnexposedExpr=
-// CHECK-tokens: Punctuation: ";" [90:17 - 90:18] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [91:3 - 91:4] UnexposedStmt=
+// CHECK-tokens: Punctuation: "{" [89:64 - 89:65] CompoundStmt=
+// CHECK-tokens: Keyword: "return" [90:5 - 90:11] ReturnStmt=
+// CHECK-tokens: Punctuation: "*" [90:12 - 90:13] UnaryOperator=
+// CHECK-tokens: Keyword: "this" [90:13 - 90:17] CXXThisExpr=
+// CHECK-tokens: Punctuation: ";" [90:17 - 90:18] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [91:3 - 91:4] CompoundStmt=
 // CHECK-tokens: Identifier: "R" [92:3 - 92:4] TypeRef=R:83:33
 // CHECK-tokens: Identifier: "Default" [92:5 - 92:12] CXXMethod=Default:92:5 (Definition)
 // CHECK-tokens: Punctuation: "(" [92:12 - 92:13] CXXMethod=Default:92:5 (Definition)
@@ -880,11 +880,11 @@
 // CHECK-tokens: Identifier: "Value" [92:23 - 92:28] ParmDecl=Value:92:23 (Definition)
 // CHECK-tokens: Punctuation: ")" [92:28 - 92:29] CXXMethod=Default:92:5 (Definition)
 // CHECK-tokens: Keyword: "const" [92:30 - 92:35] CXXMethod=Default:92:5 (Definition)
-// CHECK-tokens: Punctuation: "{" [92:36 - 92:37] UnexposedStmt=
-// CHECK-tokens: Keyword: "return" [93:5 - 93:11] UnexposedStmt=
+// CHECK-tokens: Punctuation: "{" [92:36 - 92:37] CompoundStmt=
+// CHECK-tokens: Keyword: "return" [93:5 - 93:11] ReturnStmt=
 // CHECK-tokens: Identifier: "Value" [93:12 - 93:17] DeclRefExpr=Value:92:23
-// CHECK-tokens: Punctuation: ";" [93:17 - 93:18] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [94:3 - 94:4] UnexposedStmt=
+// CHECK-tokens: Punctuation: ";" [93:17 - 93:18] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [94:3 - 94:4] CompoundStmt=
 // CHECK-tokens: Punctuation: "}" [95:1 - 95:2] ClassTemplate=StringSwitch:83:47 (Definition)
 // CHECK-tokens: Punctuation: ";" [95:2 - 95:3] Namespace=llvm:82:11 (Definition)
 // CHECK-tokens: Punctuation: "}" [96:1 - 96:2] Namespace=llvm:82:11 (Definition)
@@ -904,7 +904,7 @@
 // CHECK-tokens: Punctuation: "*" [100:65 - 100:66] ParmDecl=Name:100:67 (Definition)
 // CHECK-tokens: Identifier: "Name" [100:67 - 100:71] ParmDecl=Name:100:67 (Definition)
 // CHECK-tokens: Punctuation: ")" [100:71 - 100:72] CXXMethod=getKind:100:36 (Definition) (static)
-// CHECK-tokens: Punctuation: "{" [100:73 - 100:74] UnexposedStmt=
+// CHECK-tokens: Punctuation: "{" [100:73 - 100:74] CompoundStmt=
 // CHECK-tokens: Identifier: "llvm" [101:3 - 101:7] NamespaceRef=llvm:82:11
 // CHECK-tokens: Punctuation: "::" [101:7 - 101:9] VarDecl=AttrName:101:19 (Definition)
 // CHECK-tokens: Identifier: "StringRef" [101:9 - 101:18] TypeRef=class llvm::StringRef:38:7
@@ -915,603 +915,603 @@
 // CHECK-tokens: Identifier: "getName" [101:36 - 101:43] MemberRefExpr=getName:77:19
 // CHECK-tokens: Punctuation: "(" [101:43 - 101:44] CallExpr=getName:77:19
 // CHECK-tokens: Punctuation: ")" [101:44 - 101:45] CallExpr=getName:77:19
-// CHECK-tokens: Punctuation: ";" [101:45 - 101:46] UnexposedStmt=
-// CHECK-tokens: Keyword: "if" [102:3 - 102:5] UnexposedStmt=
-// CHECK-tokens: Punctuation: "(" [102:6 - 102:7] UnexposedStmt=
+// CHECK-tokens: Punctuation: ";" [101:45 - 101:46] DeclStmt=
+// CHECK-tokens: Keyword: "if" [102:3 - 102:5] IfStmt=
+// CHECK-tokens: Punctuation: "(" [102:6 - 102:7] IfStmt=
 // CHECK-tokens: Identifier: "AttrName" [102:7 - 102:15] DeclRefExpr=AttrName:101:19
 // CHECK-tokens: Punctuation: "." [102:15 - 102:16] MemberRefExpr=startswith:52:8
 // CHECK-tokens: Identifier: "startswith" [102:16 - 102:26] MemberRefExpr=startswith:52:8
 // CHECK-tokens: Punctuation: "(" [102:26 - 102:27] CallExpr=startswith:52:8
-// CHECK-tokens: Literal: ""__"" [102:27 - 102:31] UnexposedExpr=
+// 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] UnexposedExpr=
+// 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
 // CHECK-tokens: Punctuation: "(" [102:53 - 102:54] CallExpr=endswith:56:8
-// CHECK-tokens: Literal: ""__"" [102:54 - 102:58] UnexposedExpr=
+// CHECK-tokens: Literal: ""__"" [102:54 - 102:58] StringLiteral=
 // CHECK-tokens: Punctuation: ")" [102:58 - 102:59] CallExpr=endswith:56:8
-// CHECK-tokens: Punctuation: ")" [102:59 - 102:60] UnexposedStmt=
+// CHECK-tokens: Punctuation: ")" [102:59 - 102:60] IfStmt=
 // CHECK-tokens: Identifier: "AttrName" [103:5 - 103:13] DeclRefExpr=AttrName:101:19
 // CHECK-tokens: Punctuation: "=" [103:14 - 103:15] CallExpr=operator=:38:7
 // CHECK-tokens: Identifier: "AttrName" [103:16 - 103:24] DeclRefExpr=AttrName:101:19
 // CHECK-tokens: Punctuation: "." [103:24 - 103:25] MemberRefExpr=substr:60:13
 // CHECK-tokens: Identifier: "substr" [103:25 - 103:31] MemberRefExpr=substr:60:13
 // CHECK-tokens: Punctuation: "(" [103:31 - 103:32] CallExpr=substr:60:13
-// CHECK-tokens: Literal: "2" [103:32 - 103:33] UnexposedExpr=
+// CHECK-tokens: Literal: "2" [103:32 - 103:33] IntegerLiteral=
 // CHECK-tokens: Punctuation: "," [103:33 - 103:34] CallExpr=substr:60:13
 // CHECK-tokens: Identifier: "AttrName" [103:35 - 103:43] DeclRefExpr=AttrName:101:19
 // CHECK-tokens: Punctuation: "." [103:43 - 103:44] MemberRefExpr=size:51:10
 // 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] UnexposedExpr=
-// CHECK-tokens: Literal: "4" [103:53 - 103:54] UnexposedExpr=
+// 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] UnexposedStmt=
-// CHECK-tokens: Keyword: "return" [105:3 - 105:9] UnexposedStmt=
+// CHECK-tokens: Punctuation: ";" [103:55 - 103:56] CompoundStmt=
+// CHECK-tokens: Keyword: "return" [105:3 - 105:9] ReturnStmt=
 // FIXME: Missing "llvm" namespace reference below
 // CHECK-tokens: Identifier: "llvm" [105:10 - 105:14] NamespaceRef=llvm:82:11
-// CHECK-tokens: Punctuation: "::" [105:14 - 105:16] UnexposedExpr=
+// CHECK-tokens: Punctuation: "::" [105:14 - 105:16] CXXFunctionalCastExpr=
 // CHECK-tokens: Identifier: "StringSwitch" [105:16 - 105:28] TemplateRef=StringSwitch:83:47
-// CHECK-tokens: Punctuation: "<" [105:29 - 105:30] UnexposedExpr=
+// CHECK-tokens: Punctuation: "<" [105:29 - 105:30] CXXFunctionalCastExpr=
 // CHECK-tokens: Identifier: "AttributeList" [105:31 - 105:44] TypeRef=class clang::AttributeList:12:9
-// CHECK-tokens: Punctuation: "::" [105:44 - 105:46] UnexposedExpr=
+// CHECK-tokens: Punctuation: "::" [105:44 - 105:46] CXXFunctionalCastExpr=
 // CHECK-tokens: Identifier: "Kind" [105:46 - 105:50] TypeRef=enum clang::AttributeList::Kind:13:10
 // CHECK-tokens: Punctuation: ">" [105:51 - 105:52] CallExpr=StringSwitch:87:12
 // CHECK-tokens: Punctuation: "(" [105:53 - 105:54] CallExpr=StringSwitch:87:12
 // CHECK-tokens: Identifier: "AttrName" [105:54 - 105:62] DeclRefExpr=AttrName:101:19
-// CHECK-tokens: Punctuation: ")" [105:62 - 105:63] UnexposedExpr=
+// CHECK-tokens: Punctuation: ")" [105:62 - 105:63] CXXFunctionalCastExpr=
 // CHECK-tokens: Punctuation: "." [106:5 - 106:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [106:6 - 106:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [106:10 - 106:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""weak"" [106:11 - 106:17] UnexposedExpr=
+// CHECK-tokens: Literal: ""weak"" [106:11 - 106:17] StringLiteral=
 // CHECK-tokens: Punctuation: "," [106:17 - 106:18] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_weak" [106:19 - 106:26] DeclRefExpr=AT_weak:29:45
 // CHECK-tokens: Punctuation: ")" [106:26 - 106:27] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [107:5 - 107:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [107:6 - 107:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [107:10 - 107:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""weakref"" [107:11 - 107:20] UnexposedExpr=
+// CHECK-tokens: Literal: ""weakref"" [107:11 - 107:20] StringLiteral=
 // CHECK-tokens: Punctuation: "," [107:20 - 107:21] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_weakref" [107:22 - 107:32] DeclRefExpr=AT_weakref:29:54
 // CHECK-tokens: Punctuation: ")" [107:32 - 107:33] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [108:5 - 108:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [108:6 - 108:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [108:10 - 108:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""pure"" [108:11 - 108:17] UnexposedExpr=
+// CHECK-tokens: Literal: ""pure"" [108:11 - 108:17] StringLiteral=
 // CHECK-tokens: Punctuation: "," [108:17 - 108:18] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_pure" [108:19 - 108:26] DeclRefExpr=AT_pure:26:49
 // CHECK-tokens: Punctuation: ")" [108:26 - 108:27] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [109:5 - 109:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [109:6 - 109:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [109:10 - 109:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""mode"" [109:11 - 109:17] UnexposedExpr=
+// CHECK-tokens: Literal: ""mode"" [109:11 - 109:17] StringLiteral=
 // CHECK-tokens: Punctuation: "," [109:17 - 109:18] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_mode" [109:19 - 109:26] DeclRefExpr=AT_mode:20:44
 // CHECK-tokens: Punctuation: ")" [109:26 - 109:27] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [110:5 - 110:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [110:6 - 110:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [110:10 - 110:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""used"" [110:11 - 110:17] UnexposedExpr=
+// CHECK-tokens: Literal: ""used"" [110:11 - 110:17] StringLiteral=
 // CHECK-tokens: Punctuation: "," [110:17 - 110:18] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_used" [110:19 - 110:26] DeclRefExpr=AT_used:28:34
 // CHECK-tokens: Punctuation: ")" [110:26 - 110:27] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [111:5 - 111:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [111:6 - 111:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [111:10 - 111:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""alias"" [111:11 - 111:18] UnexposedExpr=
+// CHECK-tokens: Literal: ""alias"" [111:11 - 111:18] StringLiteral=
 // CHECK-tokens: Punctuation: "," [111:18 - 111:19] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_alias" [111:20 - 111:28] DeclRefExpr=AT_alias:15:25
 // CHECK-tokens: Punctuation: ")" [111:28 - 111:29] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [112:5 - 112:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [112:6 - 112:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [112:10 - 112:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""align"" [112:11 - 112:18] UnexposedExpr=
+// CHECK-tokens: Literal: ""align"" [112:11 - 112:18] StringLiteral=
 // CHECK-tokens: Punctuation: "," [112:18 - 112:19] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_aligned" [112:20 - 112:30] DeclRefExpr=AT_aligned:15:35
 // CHECK-tokens: Punctuation: ")" [112:30 - 112:31] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [113:5 - 113:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [113:6 - 113:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [113:10 - 113:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""final"" [113:11 - 113:18] UnexposedExpr=
+// CHECK-tokens: Literal: ""final"" [113:11 - 113:18] StringLiteral=
 // CHECK-tokens: Punctuation: "," [113:18 - 113:19] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_final" [113:20 - 113:28] DeclRefExpr=AT_final:19:40
 // CHECK-tokens: Punctuation: ")" [113:28 - 113:29] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [114:5 - 114:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [114:6 - 114:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [114:10 - 114:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""cdecl"" [114:11 - 114:18] UnexposedExpr=
+// CHECK-tokens: Literal: ""cdecl"" [114:11 - 114:18] StringLiteral=
 // CHECK-tokens: Punctuation: "," [114:18 - 114:19] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_cdecl" [114:20 - 114:28] DeclRefExpr=AT_cdecl:17:30
 // CHECK-tokens: Punctuation: ")" [114:28 - 114:29] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [115:5 - 115:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [115:6 - 115:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [115:10 - 115:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""const"" [115:11 - 115:18] UnexposedExpr=
+// CHECK-tokens: Literal: ""const"" [115:11 - 115:18] StringLiteral=
 // CHECK-tokens: Punctuation: "," [115:18 - 115:19] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_const" [115:20 - 115:28] DeclRefExpr=AT_const:17:52
 // CHECK-tokens: Punctuation: ")" [115:28 - 115:29] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [116:5 - 116:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [116:6 - 116:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [116:10 - 116:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""__const"" [116:11 - 116:20] UnexposedExpr=
+// CHECK-tokens: Literal: ""__const"" [116:11 - 116:20] StringLiteral=
 // CHECK-tokens: Punctuation: "," [116:20 - 116:21] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_const" [116:22 - 116:30] DeclRefExpr=AT_const:17:52
 // CHECK-tokens: Punctuation: ")" [116:30 - 116:31] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [117:5 - 117:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [117:6 - 117:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [117:10 - 117:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""blocks"" [117:11 - 117:19] UnexposedExpr=
+// CHECK-tokens: Literal: ""blocks"" [117:11 - 117:19] StringLiteral=
 // CHECK-tokens: Punctuation: "," [117:19 - 117:20] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_blocks" [117:21 - 117:30] DeclRefExpr=AT_blocks:16:57
 // CHECK-tokens: Punctuation: ")" [117:30 - 117:31] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [118:5 - 118:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [118:6 - 118:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [118:10 - 118:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""format"" [118:11 - 118:19] UnexposedExpr=
+// CHECK-tokens: Literal: ""format"" [118:11 - 118:19] StringLiteral=
 // CHECK-tokens: Punctuation: "," [118:19 - 118:20] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_format" [118:21 - 118:30] DeclRefExpr=AT_format:19:50
 // CHECK-tokens: Punctuation: ")" [118:30 - 118:31] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [119:5 - 119:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [119:6 - 119:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [119:10 - 119:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""hiding"" [119:11 - 119:19] UnexposedExpr=
+// CHECK-tokens: Literal: ""hiding"" [119:11 - 119:19] StringLiteral=
 // CHECK-tokens: Punctuation: "," [119:19 - 119:20] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_hiding" [119:21 - 119:30] DeclRefExpr=AT_hiding:20:22
 // CHECK-tokens: Punctuation: ")" [119:30 - 119:31] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [120:5 - 120:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [120:6 - 120:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [120:10 - 120:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""malloc"" [120:11 - 120:19] UnexposedExpr=
+// CHECK-tokens: Literal: ""malloc"" [120:11 - 120:19] StringLiteral=
 // CHECK-tokens: Punctuation: "," [120:19 - 120:20] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_malloc" [120:21 - 120:30] DeclRefExpr=AT_malloc:20:33
 // CHECK-tokens: Punctuation: ")" [120:30 - 120:31] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [121:5 - 121:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [121:6 - 121:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [121:10 - 121:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""packed"" [121:11 - 121:19] UnexposedExpr=
+// CHECK-tokens: Literal: ""packed"" [121:11 - 121:19] StringLiteral=
 // CHECK-tokens: Punctuation: "," [121:19 - 121:20] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_packed" [121:21 - 121:30] DeclRefExpr=AT_packed:26:27
 // CHECK-tokens: Punctuation: ")" [121:30 - 121:31] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [122:5 - 122:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [122:6 - 122:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [122:10 - 122:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""unused"" [122:11 - 122:19] UnexposedExpr=
+// CHECK-tokens: Literal: ""unused"" [122:11 - 122:19] StringLiteral=
 // CHECK-tokens: Punctuation: "," [122:19 - 122:20] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_unused" [122:21 - 122:30] DeclRefExpr=AT_unused:28:23
 // CHECK-tokens: Punctuation: ")" [122:30 - 122:31] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [123:5 - 123:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [123:6 - 123:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [123:10 - 123:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""aligned"" [123:11 - 123:20] UnexposedExpr=
+// CHECK-tokens: Literal: ""aligned"" [123:11 - 123:20] StringLiteral=
 // CHECK-tokens: Punctuation: "," [123:20 - 123:21] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_aligned" [123:22 - 123:32] DeclRefExpr=AT_aligned:15:35
 // CHECK-tokens: Punctuation: ")" [123:32 - 123:33] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [124:5 - 124:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [124:6 - 124:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [124:10 - 124:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""cleanup"" [124:11 - 124:20] UnexposedExpr=
+// CHECK-tokens: Literal: ""cleanup"" [124:11 - 124:20] StringLiteral=
 // CHECK-tokens: Punctuation: "," [124:20 - 124:21] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_cleanup" [124:22 - 124:32] DeclRefExpr=AT_cleanup:17:40
 // CHECK-tokens: Punctuation: ")" [124:32 - 124:33] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [125:5 - 125:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [125:6 - 125:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [125:10 - 125:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""naked"" [125:11 - 125:18] UnexposedExpr=
+// CHECK-tokens: Literal: ""naked"" [125:11 - 125:18] StringLiteral=
 // CHECK-tokens: Punctuation: "," [125:18 - 125:19] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_naked" [125:20 - 125:28] DeclRefExpr=AT_naked:20:53
 // CHECK-tokens: Punctuation: ")" [125:28 - 125:29] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [126:5 - 126:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [126:6 - 126:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [126:10 - 126:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""nodebug"" [126:11 - 126:20] UnexposedExpr=
+// CHECK-tokens: Literal: ""nodebug"" [126:11 - 126:20] StringLiteral=
 // CHECK-tokens: Punctuation: "," [126:20 - 126:21] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_nodebug" [126:22 - 126:32] DeclRefExpr=AT_nodebug:20:63
 // CHECK-tokens: Punctuation: ")" [126:32 - 126:33] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [127:5 - 127:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [127:6 - 127:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [127:10 - 127:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""nonnull"" [127:11 - 127:20] UnexposedExpr=
+// CHECK-tokens: Literal: ""nonnull"" [127:11 - 127:20] StringLiteral=
 // CHECK-tokens: Punctuation: "," [127:20 - 127:21] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_nonnull" [127:22 - 127:32] DeclRefExpr=AT_nonnull:21:47
 // CHECK-tokens: Punctuation: ")" [127:32 - 127:33] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [128:5 - 128:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [128:6 - 128:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [128:10 - 128:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""nothrow"" [128:11 - 128:20] UnexposedExpr=
+// CHECK-tokens: Literal: ""nothrow"" [128:11 - 128:20] StringLiteral=
 // CHECK-tokens: Punctuation: "," [128:20 - 128:21] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_nothrow" [128:22 - 128:32] DeclRefExpr=AT_nothrow:22:7
 // CHECK-tokens: Punctuation: ")" [128:32 - 128:33] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [129:5 - 129:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [129:6 - 129:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [129:10 - 129:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""objc_gc"" [129:11 - 129:20] UnexposedExpr=
+// CHECK-tokens: Literal: ""objc_gc"" [129:11 - 129:20] StringLiteral=
 // CHECK-tokens: Punctuation: "," [129:20 - 129:21] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_objc_gc" [129:22 - 129:32] DeclRefExpr=AT_objc_gc:24:59
 // CHECK-tokens: Punctuation: ")" [129:32 - 129:33] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [130:5 - 130:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [130:6 - 130:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [130:10 - 130:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""regparm"" [130:11 - 130:20] UnexposedExpr=
+// CHECK-tokens: Literal: ""regparm"" [130:11 - 130:20] StringLiteral=
 // CHECK-tokens: Punctuation: "," [130:20 - 130:21] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_regparm" [130:22 - 130:32] DeclRefExpr=AT_regparm:26:58
 // CHECK-tokens: Punctuation: ")" [130:32 - 130:33] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [131:5 - 131:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [131:6 - 131:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [131:10 - 131:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""section"" [131:11 - 131:20] UnexposedExpr=
+// CHECK-tokens: Literal: ""section"" [131:11 - 131:20] StringLiteral=
 // CHECK-tokens: Punctuation: "," [131:20 - 131:21] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_section" [131:22 - 131:32] DeclRefExpr=AT_section:27:7
 // CHECK-tokens: Punctuation: ")" [131:32 - 131:33] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [132:5 - 132:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [132:6 - 132:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [132:10 - 132:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""stdcall"" [132:11 - 132:20] UnexposedExpr=
+// CHECK-tokens: Literal: ""stdcall"" [132:11 - 132:20] StringLiteral=
 // CHECK-tokens: Punctuation: "," [132:20 - 132:21] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_stdcall" [132:22 - 132:32] DeclRefExpr=AT_stdcall:27:32
 // CHECK-tokens: Punctuation: ")" [132:32 - 132:33] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [133:5 - 133:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [133:6 - 133:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [133:10 - 133:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""annotate"" [133:11 - 133:21] UnexposedExpr=
+// CHECK-tokens: Literal: ""annotate"" [133:11 - 133:21] StringLiteral=
 // CHECK-tokens: Punctuation: "," [133:21 - 133:22] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_annotate" [133:23 - 133:34] DeclRefExpr=AT_annotate:16:29
 // CHECK-tokens: Punctuation: ")" [133:34 - 133:35] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [134:5 - 134:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [134:6 - 134:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [134:10 - 134:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""fastcall"" [134:11 - 134:21] UnexposedExpr=
+// CHECK-tokens: Literal: ""fastcall"" [134:11 - 134:21] StringLiteral=
 // CHECK-tokens: Punctuation: "," [134:21 - 134:22] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_fastcall" [134:23 - 134:34] DeclRefExpr=AT_fastcall:19:27
 // CHECK-tokens: Punctuation: ")" [134:34 - 134:35] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [135:5 - 135:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [135:6 - 135:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [135:10 - 135:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""ibaction"" [135:11 - 135:21] UnexposedExpr=
+// CHECK-tokens: Literal: ""ibaction"" [135:11 - 135:21] StringLiteral=
 // CHECK-tokens: Punctuation: "," [135:21 - 135:22] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_IBAction" [135:23 - 135:34] DeclRefExpr=AT_IBAction:14:7
 // CHECK-tokens: Punctuation: ")" [135:34 - 135:35] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [136:5 - 136:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [136:6 - 136:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [136:10 - 136:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""iboutlet"" [136:11 - 136:21] UnexposedExpr=
+// CHECK-tokens: Literal: ""iboutlet"" [136:11 - 136:21] StringLiteral=
 // CHECK-tokens: Punctuation: "," [136:21 - 136:22] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_IBOutlet" [136:23 - 136:34] DeclRefExpr=AT_IBOutlet:14:20
 // CHECK-tokens: Punctuation: ")" [136:34 - 136:35] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [137:5 - 137:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [137:6 - 137:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [137:10 - 137:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""iboutletcollection"" [137:11 - 137:31] UnexposedExpr=
+// CHECK-tokens: Literal: ""iboutletcollection"" [137:11 - 137:31] StringLiteral=
 // CHECK-tokens: Punctuation: "," [137:31 - 137:32] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_IBOutletCollection" [137:33 - 137:54] DeclRefExpr=AT_IBOutletCollection:14:33
 // CHECK-tokens: Punctuation: ")" [137:54 - 137:55] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [138:5 - 138:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [138:6 - 138:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [138:10 - 138:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""noreturn"" [138:11 - 138:21] UnexposedExpr=
+// CHECK-tokens: Literal: ""noreturn"" [138:11 - 138:21] StringLiteral=
 // CHECK-tokens: Punctuation: "," [138:21 - 138:22] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_noreturn" [138:23 - 138:34] DeclRefExpr=AT_noreturn:21:59
 // CHECK-tokens: Punctuation: ")" [138:34 - 138:35] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [139:5 - 139:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [139:6 - 139:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [139:10 - 139:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""noinline"" [139:11 - 139:21] UnexposedExpr=
+// CHECK-tokens: Literal: ""noinline"" [139:11 - 139:21] StringLiteral=
 // CHECK-tokens: Punctuation: "," [139:21 - 139:22] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_noinline" [139:23 - 139:34] DeclRefExpr=AT_noinline:21:7
 // CHECK-tokens: Punctuation: ")" [139:34 - 139:35] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [140:5 - 140:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [140:6 - 140:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [140:10 - 140:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""override"" [140:11 - 140:21] UnexposedExpr=
+// CHECK-tokens: Literal: ""override"" [140:11 - 140:21] StringLiteral=
 // CHECK-tokens: Punctuation: "," [140:21 - 140:22] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_override" [140:23 - 140:34] DeclRefExpr=AT_override:22:51
 // CHECK-tokens: Punctuation: ")" [140:34 - 140:35] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [141:5 - 141:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [141:6 - 141:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [141:10 - 141:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""sentinel"" [141:11 - 141:21] UnexposedExpr=
+// CHECK-tokens: Literal: ""sentinel"" [141:11 - 141:21] StringLiteral=
 // CHECK-tokens: Punctuation: "," [141:21 - 141:22] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_sentinel" [141:23 - 141:34] DeclRefExpr=AT_sentinel:27:19
 // CHECK-tokens: Punctuation: ")" [141:34 - 141:35] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [142:5 - 142:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [142:6 - 142:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [142:10 - 142:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""NSObject"" [142:11 - 142:21] UnexposedExpr=
+// CHECK-tokens: Literal: ""NSObject"" [142:11 - 142:21] StringLiteral=
 // CHECK-tokens: Punctuation: "," [142:21 - 142:22] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_nsobject" [142:23 - 142:34] DeclRefExpr=AT_nsobject:22:19
 // CHECK-tokens: Punctuation: ")" [142:34 - 142:35] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [143:5 - 143:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [143:6 - 143:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [143:10 - 143:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""dllimport"" [143:11 - 143:22] UnexposedExpr=
+// CHECK-tokens: Literal: ""dllimport"" [143:11 - 143:22] StringLiteral=
 // CHECK-tokens: Punctuation: "," [143:22 - 143:23] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_dllimport" [143:24 - 143:36] DeclRefExpr=AT_dllimport:18:51
 // CHECK-tokens: Punctuation: ")" [143:36 - 143:37] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [144:5 - 144:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [144:6 - 144:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [144:10 - 144:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""dllexport"" [144:11 - 144:22] UnexposedExpr=
+// CHECK-tokens: Literal: ""dllexport"" [144:11 - 144:22] StringLiteral=
 // CHECK-tokens: Punctuation: "," [144:22 - 144:23] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_dllexport" [144:24 - 144:36] DeclRefExpr=AT_dllexport:18:37
 // CHECK-tokens: Punctuation: ")" [144:36 - 144:37] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [145:5 - 145:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [145:6 - 145:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [145:10 - 145:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""may_alias"" [145:11 - 145:22] UnexposedExpr=
+// CHECK-tokens: Literal: ""may_alias"" [145:11 - 145:22] StringLiteral=
 // CHECK-tokens: Punctuation: "," [145:22 - 145:23] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "IgnoredAttribute" [145:24 - 145:40] DeclRefExpr=IgnoredAttribute:31:25
 // CHECK-tokens: Punctuation: ")" [145:40 - 145:41] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [146:5 - 146:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [146:6 - 146:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [146:10 - 146:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""base_check"" [146:11 - 146:23] UnexposedExpr=
+// CHECK-tokens: Literal: ""base_check"" [146:11 - 146:23] StringLiteral=
 // CHECK-tokens: Punctuation: "," [146:23 - 146:24] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_base_check" [146:25 - 146:38] DeclRefExpr=AT_base_check:16:42
 // CHECK-tokens: Punctuation: ")" [146:38 - 146:39] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [147:5 - 147:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [147:6 - 147:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [147:10 - 147:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""deprecated"" [147:11 - 147:23] UnexposedExpr=
+// CHECK-tokens: Literal: ""deprecated"" [147:11 - 147:23] StringLiteral=
 // CHECK-tokens: Punctuation: "," [147:23 - 147:24] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_deprecated" [147:25 - 147:38] DeclRefExpr=AT_deprecated:18:7
 // CHECK-tokens: Punctuation: ")" [147:38 - 147:39] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [148:5 - 148:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [148:6 - 148:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [148:10 - 148:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""visibility"" [148:11 - 148:23] UnexposedExpr=
+// CHECK-tokens: Literal: ""visibility"" [148:11 - 148:23] StringLiteral=
 // CHECK-tokens: Punctuation: "," [148:23 - 148:24] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_visibility" [148:25 - 148:38] DeclRefExpr=AT_visibility:29:7
 // CHECK-tokens: Punctuation: ")" [148:38 - 148:39] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [149:5 - 149:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [149:6 - 149:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [149:10 - 149:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""destructor"" [149:11 - 149:23] UnexposedExpr=
+// CHECK-tokens: Literal: ""destructor"" [149:11 - 149:23] StringLiteral=
 // CHECK-tokens: Punctuation: "," [149:23 - 149:24] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_destructor" [149:25 - 149:38] DeclRefExpr=AT_destructor:18:22
 // CHECK-tokens: Punctuation: ")" [149:38 - 149:39] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [150:5 - 150:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [150:6 - 150:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [150:10 - 150:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""format_arg"" [150:11 - 150:23] UnexposedExpr=
+// CHECK-tokens: Literal: ""format_arg"" [150:11 - 150:23] StringLiteral=
 // CHECK-tokens: Punctuation: "," [150:23 - 150:24] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_format_arg" [150:25 - 150:38] DeclRefExpr=AT_format_arg:19:61
 // CHECK-tokens: Punctuation: ")" [150:38 - 150:39] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [151:5 - 151:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [151:6 - 151:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [151:10 - 151:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""gnu_inline"" [151:11 - 151:23] UnexposedExpr=
+// CHECK-tokens: Literal: ""gnu_inline"" [151:11 - 151:23] StringLiteral=
 // CHECK-tokens: Punctuation: "," [151:23 - 151:24] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_gnu_inline" [151:25 - 151:38] DeclRefExpr=AT_gnu_inline:20:7
 // CHECK-tokens: Punctuation: ")" [151:38 - 151:39] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [152:5 - 152:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [152:6 - 152:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [152:10 - 152:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""weak_import"" [152:11 - 152:24] UnexposedExpr=
+// CHECK-tokens: Literal: ""weak_import"" [152:11 - 152:24] StringLiteral=
 // CHECK-tokens: Punctuation: "," [152:24 - 152:25] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_weak_import" [152:26 - 152:40] DeclRefExpr=AT_weak_import:30:7
 // CHECK-tokens: Punctuation: ")" [152:40 - 152:41] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [153:5 - 153:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [153:6 - 153:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [153:10 - 153:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""vecreturn"" [153:11 - 153:22] UnexposedExpr=
+// CHECK-tokens: Literal: ""vecreturn"" [153:11 - 153:22] StringLiteral=
 // CHECK-tokens: Punctuation: "," [153:22 - 153:23] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_vecreturn" [153:24 - 153:36] DeclRefExpr=AT_vecreturn:28:43
 // CHECK-tokens: Punctuation: ")" [153:36 - 153:37] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [154:5 - 154:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [154:6 - 154:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [154:10 - 154:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""vector_size"" [154:11 - 154:24] UnexposedExpr=
+// CHECK-tokens: Literal: ""vector_size"" [154:11 - 154:24] StringLiteral=
 // CHECK-tokens: Punctuation: "," [154:24 - 154:25] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_vector_size" [154:26 - 154:40] DeclRefExpr=AT_vector_size:28:57
 // CHECK-tokens: Punctuation: ")" [154:40 - 154:41] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [155:5 - 155:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [155:6 - 155:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [155:10 - 155:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""constructor"" [155:11 - 155:24] UnexposedExpr=
+// CHECK-tokens: Literal: ""constructor"" [155:11 - 155:24] StringLiteral=
 // CHECK-tokens: Punctuation: "," [155:24 - 155:25] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_constructor" [155:26 - 155:40] DeclRefExpr=AT_constructor:17:62
 // CHECK-tokens: Punctuation: ")" [155:40 - 155:41] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [156:5 - 156:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [156:6 - 156:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [156:10 - 156:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""unavailable"" [156:11 - 156:24] UnexposedExpr=
+// CHECK-tokens: Literal: ""unavailable"" [156:11 - 156:24] StringLiteral=
 // CHECK-tokens: Punctuation: "," [156:24 - 156:25] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_unavailable" [156:26 - 156:40] DeclRefExpr=AT_unavailable:28:7
 // CHECK-tokens: Punctuation: ")" [156:40 - 156:41] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [157:5 - 157:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [157:6 - 157:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [157:10 - 157:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""overloadable"" [157:11 - 157:25] UnexposedExpr=
+// CHECK-tokens: Literal: ""overloadable"" [157:11 - 157:25] StringLiteral=
 // CHECK-tokens: Punctuation: "," [157:25 - 157:26] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_overloadable" [157:27 - 157:42] DeclRefExpr=AT_overloadable:25:7
 // CHECK-tokens: Punctuation: ")" [157:42 - 157:43] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [158:5 - 158:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [158:6 - 158:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [158:10 - 158:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""address_space"" [158:11 - 158:26] UnexposedExpr=
+// CHECK-tokens: Literal: ""address_space"" [158:11 - 158:26] StringLiteral=
 // CHECK-tokens: Punctuation: "," [158:26 - 158:27] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_address_space" [158:28 - 158:44] DeclRefExpr=AT_address_space:15:7
 // CHECK-tokens: Punctuation: ")" [158:44 - 158:45] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [159:5 - 159:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [159:6 - 159:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [159:10 - 159:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""always_inline"" [159:11 - 159:26] UnexposedExpr=
+// CHECK-tokens: Literal: ""always_inline"" [159:11 - 159:26] StringLiteral=
 // CHECK-tokens: Punctuation: "," [159:26 - 159:27] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_always_inline" [159:28 - 159:44] DeclRefExpr=AT_always_inline:15:47
 // CHECK-tokens: Punctuation: ")" [159:44 - 159:45] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [160:5 - 160:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [160:6 - 160:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [160:10 - 160:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""returns_twice"" [160:11 - 160:26] UnexposedExpr=
+// CHECK-tokens: Literal: ""returns_twice"" [160:11 - 160:26] StringLiteral=
 // CHECK-tokens: Punctuation: "," [160:26 - 160:27] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_returns_twice" [160:28 - 160:44] DeclRefExpr=AT_returns_twice:31:7
 // CHECK-tokens: Punctuation: ")" [160:44 - 160:45] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [161:5 - 161:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [161:6 - 161:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [161:10 - 161:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""vec_type_hint"" [161:11 - 161:26] UnexposedExpr=
+// CHECK-tokens: Literal: ""vec_type_hint"" [161:11 - 161:26] StringLiteral=
 // CHECK-tokens: Punctuation: "," [161:26 - 161:27] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "IgnoredAttribute" [161:28 - 161:44] DeclRefExpr=IgnoredAttribute:31:25
 // CHECK-tokens: Punctuation: ")" [161:44 - 161:45] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [162:5 - 162:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [162:6 - 162:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [162:10 - 162:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""objc_exception"" [162:11 - 162:27] UnexposedExpr=
+// CHECK-tokens: Literal: ""objc_exception"" [162:11 - 162:27] StringLiteral=
 // CHECK-tokens: Punctuation: "," [162:27 - 162:28] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_objc_exception" [162:29 - 162:46] DeclRefExpr=AT_objc_exception:22:32
 // CHECK-tokens: Punctuation: ")" [162:46 - 162:47] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [163:5 - 163:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [163:6 - 163:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [163:10 - 163:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""ext_vector_type"" [163:11 - 163:28] UnexposedExpr=
+// CHECK-tokens: Literal: ""ext_vector_type"" [163:11 - 163:28] StringLiteral=
 // CHECK-tokens: Punctuation: "," [163:28 - 163:29] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_ext_vector_type" [163:30 - 163:48] DeclRefExpr=AT_ext_vector_type:19:7
 // CHECK-tokens: Punctuation: ")" [163:48 - 163:49] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [164:5 - 164:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [164:6 - 164:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [164:10 - 164:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""transparent_union"" [164:11 - 164:30] UnexposedExpr=
+// CHECK-tokens: Literal: ""transparent_union"" [164:11 - 164:30] StringLiteral=
 // CHECK-tokens: Punctuation: "," [164:30 - 164:31] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_transparent_union" [164:32 - 164:52] DeclRefExpr=AT_transparent_union:27:57
 // CHECK-tokens: Punctuation: ")" [164:52 - 164:53] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [165:5 - 165:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [165:6 - 165:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [165:10 - 165:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""analyzer_noreturn"" [165:11 - 165:30] UnexposedExpr=
+// CHECK-tokens: Literal: ""analyzer_noreturn"" [165:11 - 165:30] StringLiteral=
 // CHECK-tokens: Punctuation: "," [165:30 - 165:31] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_analyzer_noreturn" [165:32 - 165:52] DeclRefExpr=AT_analyzer_noreturn:16:7
 // CHECK-tokens: Punctuation: ")" [165:52 - 165:53] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [166:5 - 166:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [166:6 - 166:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [166:10 - 166:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""warn_unused_result"" [166:11 - 166:31] UnexposedExpr=
+// CHECK-tokens: Literal: ""warn_unused_result"" [166:11 - 166:31] StringLiteral=
 // CHECK-tokens: Punctuation: "," [166:31 - 166:32] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_warn_unused_result" [166:33 - 166:54] DeclRefExpr=AT_warn_unused_result:29:22
 // CHECK-tokens: Punctuation: ")" [166:54 - 166:55] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [167:5 - 167:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [167:6 - 167:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [167:10 - 167:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""carries_dependency"" [167:11 - 167:31] UnexposedExpr=
+// CHECK-tokens: Literal: ""carries_dependency"" [167:11 - 167:31] StringLiteral=
 // CHECK-tokens: Punctuation: "," [167:31 - 167:32] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_carries_dependency" [167:33 - 167:54] DeclRefExpr=AT_carries_dependency:17:7
 // CHECK-tokens: Punctuation: ")" [167:54 - 167:55] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [168:5 - 168:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [168:6 - 168:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [168:10 - 168:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""ns_returns_not_retained"" [168:11 - 168:36] UnexposedExpr=
+// CHECK-tokens: Literal: ""ns_returns_not_retained"" [168:11 - 168:36] StringLiteral=
 // CHECK-tokens: Punctuation: "," [168:36 - 168:37] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_ns_returns_not_retained" [168:38 - 168:64] DeclRefExpr=AT_ns_returns_not_retained:24:7
 // CHECK-tokens: Punctuation: ")" [168:64 - 168:65] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [169:5 - 169:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [169:6 - 169:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [169:10 - 169:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""ns_returns_retained"" [169:11 - 169:32] UnexposedExpr=
+// CHECK-tokens: Literal: ""ns_returns_retained"" [169:11 - 169:32] StringLiteral=
 // CHECK-tokens: Punctuation: "," [169:32 - 169:33] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_ns_returns_retained" [169:34 - 169:56] DeclRefExpr=AT_ns_returns_retained:24:35
 // CHECK-tokens: Punctuation: ")" [169:56 - 169:57] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [170:5 - 170:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [170:6 - 170:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [170:10 - 170:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""cf_returns_not_retained"" [170:11 - 170:36] UnexposedExpr=
+// CHECK-tokens: Literal: ""cf_returns_not_retained"" [170:11 - 170:36] StringLiteral=
 // CHECK-tokens: Punctuation: "," [170:36 - 170:37] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_cf_returns_not_retained" [170:38 - 170:64] DeclRefExpr=AT_cf_returns_not_retained:23:7
 // CHECK-tokens: Punctuation: ")" [170:64 - 170:65] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [171:5 - 171:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [171:6 - 171:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [171:10 - 171:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""cf_returns_retained"" [171:11 - 171:32] UnexposedExpr=
+// CHECK-tokens: Literal: ""cf_returns_retained"" [171:11 - 171:32] StringLiteral=
 // CHECK-tokens: Punctuation: "," [171:32 - 171:33] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_cf_returns_retained" [171:34 - 171:56] DeclRefExpr=AT_cf_returns_retained:23:35
 // CHECK-tokens: Punctuation: ")" [171:56 - 171:57] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [172:5 - 172:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [172:6 - 172:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [172:10 - 172:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""ownership_returns"" [172:11 - 172:30] UnexposedExpr=
+// CHECK-tokens: Literal: ""ownership_returns"" [172:11 - 172:30] StringLiteral=
 // CHECK-tokens: Punctuation: "," [172:30 - 172:31] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_ownership_returns" [172:32 - 172:52] DeclRefExpr=AT_ownership_returns:25:44
 // CHECK-tokens: Punctuation: ")" [172:52 - 172:53] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [173:5 - 173:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [173:6 - 173:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [173:10 - 173:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""ownership_holds"" [173:11 - 173:28] UnexposedExpr=
+// CHECK-tokens: Literal: ""ownership_holds"" [173:11 - 173:28] StringLiteral=
 // CHECK-tokens: Punctuation: "," [173:28 - 173:29] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_ownership_holds" [173:30 - 173:48] DeclRefExpr=AT_ownership_holds:25:24
 // CHECK-tokens: Punctuation: ")" [173:48 - 173:49] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [174:5 - 174:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [174:6 - 174:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [174:10 - 174:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""ownership_takes"" [174:11 - 174:28] UnexposedExpr=
+// CHECK-tokens: Literal: ""ownership_takes"" [174:11 - 174:28] StringLiteral=
 // CHECK-tokens: Punctuation: "," [174:28 - 174:29] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_ownership_takes" [174:30 - 174:48] DeclRefExpr=AT_ownership_takes:26:7
 // CHECK-tokens: Punctuation: ")" [174:48 - 174:49] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [175:5 - 175:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [175:6 - 175:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [175:10 - 175:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""reqd_work_group_size"" [175:11 - 175:33] UnexposedExpr=
+// CHECK-tokens: Literal: ""reqd_work_group_size"" [175:11 - 175:33] StringLiteral=
 // CHECK-tokens: Punctuation: "," [175:33 - 175:34] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_reqd_wg_size" [175:35 - 175:50] DeclRefExpr=AT_reqd_wg_size:30:23
 // CHECK-tokens: Punctuation: ")" [175:50 - 175:51] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [176:5 - 176:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [176:6 - 176:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [176:10 - 176:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""init_priority"" [176:11 - 176:26] UnexposedExpr=
+// CHECK-tokens: Literal: ""init_priority"" [176:11 - 176:26] StringLiteral=
 // CHECK-tokens: Punctuation: "," [176:26 - 176:27] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_init_priority" [176:28 - 176:44] DeclRefExpr=AT_init_priority:30:40
 // CHECK-tokens: Punctuation: ")" [176:44 - 176:45] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [177:5 - 177:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [177:6 - 177:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [177:10 - 177:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""no_instrument_function"" [177:11 - 177:35] UnexposedExpr=
+// CHECK-tokens: Literal: ""no_instrument_function"" [177:11 - 177:35] StringLiteral=
 // CHECK-tokens: Punctuation: "," [177:35 - 177:36] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_no_instrument_function" [177:37 - 177:62] DeclRefExpr=AT_no_instrument_function:21:20
 // CHECK-tokens: Punctuation: ")" [177:62 - 177:63] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [178:5 - 178:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [178:6 - 178:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [178:10 - 178:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""thiscall"" [178:11 - 178:21] UnexposedExpr=
+// CHECK-tokens: Literal: ""thiscall"" [178:11 - 178:21] StringLiteral=
 // CHECK-tokens: Punctuation: "," [178:21 - 178:22] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_thiscall" [178:23 - 178:34] DeclRefExpr=AT_thiscall:27:44
 // CHECK-tokens: Punctuation: ")" [178:34 - 178:35] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [179:5 - 179:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [179:6 - 179:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [179:10 - 179:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""pascal"" [179:11 - 179:19] UnexposedExpr=
+// CHECK-tokens: Literal: ""pascal"" [179:11 - 179:19] StringLiteral=
 // CHECK-tokens: Punctuation: "," [179:19 - 179:20] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_pascal" [179:21 - 179:30] DeclRefExpr=AT_pascal:26:38
 // CHECK-tokens: Punctuation: ")" [179:30 - 179:31] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [180:5 - 180:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [180:6 - 180:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [180:10 - 180:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""__cdecl"" [180:11 - 180:20] UnexposedExpr=
+// CHECK-tokens: Literal: ""__cdecl"" [180:11 - 180:20] StringLiteral=
 // CHECK-tokens: Punctuation: "," [180:20 - 180:21] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_cdecl" [180:22 - 180:30] DeclRefExpr=AT_cdecl:17:30
 // CHECK-tokens: Punctuation: ")" [180:30 - 180:31] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [181:5 - 181:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [181:6 - 181:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [181:10 - 181:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""__stdcall"" [181:11 - 181:22] UnexposedExpr=
+// CHECK-tokens: Literal: ""__stdcall"" [181:11 - 181:22] StringLiteral=
 // CHECK-tokens: Punctuation: "," [181:22 - 181:23] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_stdcall" [181:24 - 181:34] DeclRefExpr=AT_stdcall:27:32
 // CHECK-tokens: Punctuation: ")" [181:34 - 181:35] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [182:5 - 182:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [182:6 - 182:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [182:10 - 182:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""__fastcall"" [182:11 - 182:23] UnexposedExpr=
+// CHECK-tokens: Literal: ""__fastcall"" [182:11 - 182:23] StringLiteral=
 // CHECK-tokens: Punctuation: "," [182:23 - 182:24] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_fastcall" [182:25 - 182:36] DeclRefExpr=AT_fastcall:19:27
 // CHECK-tokens: Punctuation: ")" [182:36 - 182:37] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [183:5 - 183:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [183:6 - 183:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [183:10 - 183:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""__thiscall"" [183:11 - 183:23] UnexposedExpr=
+// CHECK-tokens: Literal: ""__thiscall"" [183:11 - 183:23] StringLiteral=
 // CHECK-tokens: Punctuation: "," [183:23 - 183:24] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_thiscall" [183:25 - 183:36] DeclRefExpr=AT_thiscall:27:44
 // CHECK-tokens: Punctuation: ")" [183:36 - 183:37] CallExpr=Case:88:42
 // CHECK-tokens: Punctuation: "." [184:5 - 184:6] MemberRefExpr=Case:88:42
 // CHECK-tokens: Identifier: "Case" [184:6 - 184:10] MemberRefExpr=Case:88:42
 // CHECK-tokens: Punctuation: "(" [184:10 - 184:11] CallExpr=Case:88:42
-// CHECK-tokens: Literal: ""__pascal"" [184:11 - 184:21] UnexposedExpr=
+// CHECK-tokens: Literal: ""__pascal"" [184:11 - 184:21] StringLiteral=
 // CHECK-tokens: Punctuation: "," [184:21 - 184:22] CallExpr=Case:88:42
 // CHECK-tokens: Identifier: "AT_pascal" [184:23 - 184:32] DeclRefExpr=AT_pascal:26:38
 // CHECK-tokens: Punctuation: ")" [184:32 - 184:33] CallExpr=Case:88:42
@@ -1520,8 +1520,8 @@
 // CHECK-tokens: Punctuation: "(" [185:13 - 185:14] CallExpr=Default:92:5
 // CHECK-tokens: Identifier: "UnknownAttribute" [185:14 - 185:30] DeclRefExpr=UnknownAttribute:31:43
 // CHECK-tokens: Punctuation: ")" [185:30 - 185:31] CallExpr=Default:92:5
-// CHECK-tokens: Punctuation: ";" [185:31 - 185:32] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [186:1 - 186:2] UnexposedStmt=
+// CHECK-tokens: Punctuation: ";" [185:31 - 185:32] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [186:1 - 186:2] CompoundStmt=
 
 // RUN: c-index-test -test-load-source all %s 2>&1 | FileCheck %s
 // CHECK: 1:27: TypedefDecl=__darwin_size_t:1:27 (Definition) Extent=[1:1 - 1:42]
@@ -1629,11 +1629,11 @@
 // CHECK: 40:23: TypedefDecl=iterator:40:23 (Definition) Extent=[40:3 - 40:31]
 // CHECK: 41:23: VarDecl=npos:41:23 Extent=[41:3 - 41:40]
 // CHECK: 41:16: TypeRef=size_t:2:25 Extent=[41:16 - 41:22]
-// CHECK: 41:30: UnexposedExpr= Extent=[41:30 - 41:40]
-// CHECK: 41:31: UnexposedExpr= Extent=[41:31 - 41:40]
+// CHECK: 41:30: UnaryOperator= Extent=[41:30 - 41:40]
+// CHECK: 41:31: CXXFunctionalCastExpr= Extent=[41:31 - 41:40]
 // CHECK: 41:31: TypeRef=size_t:2:25 Extent=[41:31 - 41:37]
 // CHECK: 41:38: UnexposedExpr= Extent=[41:38 - 41:39]
-// CHECK: 41:38: UnexposedExpr= Extent=[41:38 - 41:39]
+// CHECK: 41:38: IntegerLiteral= Extent=[41:38 - 41:39]
 // CHECK: 42:1: CXXAccessSpecifier=:42:1 (Definition) Extent=[42:1 - 42:9]
 // CHECK: 43:15: FieldDecl=Data:43:15 (Definition) Extent=[43:3 - 43:19]
 // CHECK: 44:10: FieldDecl=Length:44:10 (Definition) Extent=[44:3 - 44:16]
@@ -1644,10 +1644,10 @@
 // CHECK: 45:21: TypeRef=size_t:2:25 Extent=[45:21 - 45:27]
 // CHECK: 45:38: ParmDecl=b:45:38 (Definition) Extent=[45:31 - 45:39]
 // CHECK: 45:31: TypeRef=size_t:2:25 Extent=[45:31 - 45:37]
-// CHECK: 45:41: UnexposedStmt= Extent=[45:41 - 45:66]
-// CHECK: 45:43: UnexposedStmt= Extent=[45:43 - 45:63]
-// CHECK: 45:50: UnexposedExpr= Extent=[45:50 - 45:63]
-// CHECK: 45:50: UnexposedExpr= Extent=[45:50 - 45:55]
+// 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: 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]
@@ -1656,11 +1656,11 @@
 // CHECK: 47:3: CXXConstructor=StringRef:47:3 (Definition) Extent=[47:3 - 47:37]
 // CHECK: 47:16: MemberRef=Data:43:15 Extent=[47:16 - 47:20]
 // CHECK: 47:21: UnexposedExpr= Extent=[47:21 - 47:22]
-// CHECK: 47:21: UnexposedExpr= Extent=[47:21 - 47:22]
+// CHECK: 47:21: IntegerLiteral= Extent=[47:21 - 47:22]
 // CHECK: 47:25: MemberRef=Length:44:10 Extent=[47:25 - 47:31]
 // CHECK: 47:32: UnexposedExpr= Extent=[47:32 - 47:33]
-// CHECK: 47:32: UnexposedExpr= Extent=[47:32 - 47:33]
-// CHECK: 47:35: UnexposedStmt= Extent=[47:35 - 47:37]
+// CHECK: 47:32: IntegerLiteral= Extent=[47:32 - 47:33]
+// CHECK: 47:35: CompoundStmt= Extent=[47:35 - 47:37]
 // CHECK: 48:3: CXXConstructor=StringRef:48:3 (Definition) Extent=[48:3 - 48:71]
 // CHECK: 48:25: ParmDecl=Str:48:25 (Definition) Extent=[48:13 - 48:28]
 // CHECK: 48:32: MemberRef=Data:43:15 Extent=[48:32 - 48:36]
@@ -1670,7 +1670,7 @@
 // CHECK: 48:50: UnexposedExpr=magic_length:36:8 Extent=[48:50 - 48:62]
 // CHECK: 48:50: DeclRefExpr=magic_length:36:8 Extent=[48:50 - 48:62]
 // CHECK: 48:63: DeclRefExpr=Str:48:25 Extent=[48:63 - 48:66]
-// CHECK: 48:69: UnexposedStmt= Extent=[48:69 - 48:71]
+// CHECK: 48:69: CompoundStmt= Extent=[48:69 - 48:71]
 // CHECK: 49:3: CXXConstructor=StringRef:49:3 (Definition) Extent=[49:3 - 49:77]
 // CHECK: 49:25: ParmDecl=data:49:25 (Definition) Extent=[49:13 - 49:29]
 // CHECK: 49:38: ParmDecl=length:49:38 (Definition) Extent=[49:31 - 49:44]
@@ -1679,29 +1679,29 @@
 // CHECK: 49:53: DeclRefExpr=data:49:25 Extent=[49:53 - 49:57]
 // CHECK: 49:60: MemberRef=Length:44:10 Extent=[49:60 - 49:66]
 // CHECK: 49:67: DeclRefExpr=length:49:38 Extent=[49:67 - 49:73]
-// CHECK: 49:75: UnexposedStmt= Extent=[49:75 - 49:77]
+// CHECK: 49:75: CompoundStmt= Extent=[49:75 - 49:77]
 // CHECK: 50:12: CXXMethod=end:50:12 (Definition) Extent=[50:3 - 50:40]
 // CHECK: 50:3: TypeRef=iterator:40:23 Extent=[50:3 - 50:11]
-// CHECK: 50:24: UnexposedStmt= Extent=[50:24 - 50:40]
-// CHECK: 50:26: UnexposedStmt= Extent=[50:26 - 50:37]
+// CHECK: 50:24: CompoundStmt= Extent=[50:24 - 50:40]
+// CHECK: 50:26: ReturnStmt= Extent=[50:26 - 50:37]
 // CHECK: 50:33: MemberRefExpr=Data:43:15 Extent=[50:33 - 50:37]
 // CHECK: 51:10: CXXMethod=size:51:10 (Definition) Extent=[51:3 - 51:41]
 // CHECK: 51:3: TypeRef=size_t:2:25 Extent=[51:3 - 51:9]
-// CHECK: 51:23: UnexposedStmt= Extent=[51:23 - 51:41]
-// CHECK: 51:25: UnexposedStmt= Extent=[51:25 - 51:38]
+// CHECK: 51:23: CompoundStmt= Extent=[51:23 - 51:41]
+// CHECK: 51:25: ReturnStmt= Extent=[51:25 - 51:38]
 // CHECK: 51:32: MemberRefExpr=Length:44:10 Extent=[51:32 - 51:38]
 // CHECK: 52:8: CXXMethod=startswith:52:8 (Definition) Extent=[52:3 - 55:4]
 // CHECK: 52:29: ParmDecl=Prefix:52:29 (Definition) Extent=[52:19 - 52:35]
 // CHECK: 52:19: TypeRef=class llvm::StringRef:38:7 Extent=[52:19 - 52:28]
-// CHECK: 52:43: UnexposedStmt= Extent=[52:43 - 55:4]
-// CHECK: 53:5: UnexposedStmt= Extent=[53:5 - 54:56]
-// CHECK: 53:12: UnexposedExpr= Extent=[53:12 - 54:56]
-// CHECK: 53:12: UnexposedExpr= Extent=[53:12 - 53:35]
+// 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: 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: UnexposedExpr= 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]
@@ -1712,24 +1712,24 @@
 // CHECK: 54:24: DeclRefExpr=Prefix:52:29 Extent=[54:24 - 54:30]
 // CHECK: 54:44: MemberRefExpr=Length:44:10 SingleRefName=[54:44 - 54:50] RefName=[54:44 - 54:50] Extent=[54:37 - 54:50]
 // CHECK: 54:37: DeclRefExpr=Prefix:52:29 Extent=[54:37 - 54:43]
-// CHECK: 54:55: UnexposedExpr= Extent=[54:55 - 54:56]
+// CHECK: 54:55: IntegerLiteral= Extent=[54:55 - 54:56]
 // CHECK: 56:8: CXXMethod=endswith:56:8 (Definition) Extent=[56:3 - 59:4]
 // CHECK: 56:27: ParmDecl=Suffix:56:27 (Definition) Extent=[56:17 - 56:33]
 // CHECK: 56:17: TypeRef=class llvm::StringRef:38:7 Extent=[56:17 - 56:26]
-// CHECK: 56:41: UnexposedStmt= Extent=[56:41 - 59:4]
-// CHECK: 57:5: UnexposedStmt= Extent=[57:5 - 58:69]
-// CHECK: 57:12: UnexposedExpr= Extent=[57:12 - 58:69]
-// CHECK: 57:12: UnexposedExpr= Extent=[57:12 - 57:35]
+// 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: 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: UnexposedExpr= 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: UnexposedExpr= 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]
@@ -1739,7 +1739,7 @@
 // CHECK: 58:37: DeclRefExpr=Suffix:56:27 Extent=[58:37 - 58:43]
 // CHECK: 58:57: MemberRefExpr=Length:44:10 SingleRefName=[58:57 - 58:63] RefName=[58:57 - 58:63] Extent=[58:50 - 58:63]
 // CHECK: 58:50: DeclRefExpr=Suffix:56:27 Extent=[58:50 - 58:56]
-// CHECK: 58:68: UnexposedExpr= Extent=[58:68 - 58:69]
+// CHECK: 58:68: IntegerLiteral= Extent=[58:68 - 58:69]
 // CHECK: 60:13: CXXMethod=substr:60:13 (Definition) Extent=[60:3 - 62:4]
 // CHECK: 60:3: TypeRef=class llvm::StringRef:38:7 Extent=[60:3 - 60:12]
 // CHECK: 60:27: ParmDecl=Start:60:27 (Definition) Extent=[60:20 - 60:32]
@@ -1747,13 +1747,13 @@
 // CHECK: 60:41: ParmDecl=N:60:41 (Definition) Extent=[60:34 - 60:49]
 // CHECK: 60:34: TypeRef=size_t:2:25 Extent=[60:34 - 60:40]
 // CHECK: 60:45: DeclRefExpr=npos:41:23 Extent=[60:45 - 60:49]
-// CHECK: 60:57: UnexposedStmt= Extent=[60:57 - 62:4]
-// CHECK: 61:5: UnexposedStmt= Extent=[61:5 - 61:59]
+// CHECK: 60:57: CompoundStmt= Extent=[60:57 - 62:4]
+// CHECK: 61:5: ReturnStmt= Extent=[61:5 - 61:59]
 // CHECK: 61:12: CallExpr= Extent=[61:12 - 61:59]
 // 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: UnexposedExpr= 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 @@
 // 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: UnexposedExpr= 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]
@@ -1770,59 +1770,59 @@
 // CHECK: 67:1: CXXAccessSpecifier=:67:1 (Definition) Extent=[67:1 - 67:8]
 // CHECK: 67:8: CXXConstructor=IdentifierInfo:67:8 Extent=[67:8 - 67:24]
 // CHECK: 68:15: CXXMethod=getNameStart:68:15 (Definition) Extent=[68:3 - 71:4]
-// CHECK: 68:36: UnexposedStmt= Extent=[68:36 - 71:4]
-// CHECK: 69:5: UnexposedStmt= Extent=[69:5 - 69:65]
+// CHECK: 68:36: CompoundStmt= Extent=[68:36 - 71:4]
+// CHECK: 69:5: DeclStmt= Extent=[69:5 - 69:65]
 // CHECK: 69:54: TypedefDecl=actualtype:69:54 (Definition) Extent=[69:5 - 69:64]
 // CHECK: 69:18: TemplateRef=pair:4:44 Extent=[69:18 - 69:22]
 // CHECK: 69:25: TypeRef=class clang::IdentifierInfo:66:7 Extent=[69:25 - 69:39]
-// CHECK: 70:5: UnexposedStmt= Extent=[70:5 - 70:47]
+// CHECK: 70:5: ReturnStmt= Extent=[70:5 - 70:47]
 // CHECK: 70:41: MemberRefExpr=second:4:55 SingleRefName=[70:41 - 70:47] RefName=[70:41 - 70:47] Extent=[70:12 - 70:47]
-// CHECK: 70:12: UnexposedExpr= Extent=[70:12 - 70:39]
-// CHECK: 70:13: UnexposedExpr= Extent=[70:13 - 70:38]
+// CHECK: 70:12: ParenExpr= Extent=[70:12 - 70:39]
+// CHECK: 70:13: CStyleCastExpr= Extent=[70:13 - 70:38]
 // CHECK: 70:20: TypeRef=actualtype:69:54 Extent=[70:20 - 70:30]
-// CHECK: 70:34: UnexposedExpr= Extent=[70:34 - 70:38]
+// CHECK: 70:34: CXXThisExpr= Extent=[70:34 - 70:38]
 // CHECK: 72:12: CXXMethod=getLength:72:12 (Definition) Extent=[72:3 - 76:4]
-// CHECK: 72:30: UnexposedStmt= Extent=[72:30 - 76:4]
-// CHECK: 73:5: UnexposedStmt= Extent=[73:5 - 73:65]
+// CHECK: 72:30: CompoundStmt= Extent=[72:30 - 76:4]
+// CHECK: 73:5: DeclStmt= Extent=[73:5 - 73:65]
 // CHECK: 73:54: TypedefDecl=actualtype:73:54 (Definition) Extent=[73:5 - 73:64]
 // CHECK: 73:18: TemplateRef=pair:4:44 Extent=[73:18 - 73:22]
 // CHECK: 73:25: TypeRef=class clang::IdentifierInfo:66:7 Extent=[73:25 - 73:39]
-// CHECK: 74:5: UnexposedStmt= Extent=[74:5 - 74:61]
+// 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: UnexposedExpr= 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: UnexposedExpr= Extent=[74:21 - 74:48]
-// CHECK: 74:22: UnexposedExpr= Extent=[74:22 - 74:47]
+// CHECK: 74:21: ParenExpr= Extent=[74:21 - 74:48]
+// CHECK: 74:22: CStyleCastExpr= Extent=[74:22 - 74:47]
 // CHECK: 74:29: TypeRef=actualtype:73:54 Extent=[74:29 - 74:39]
-// CHECK: 74:43: UnexposedExpr= Extent=[74:43 - 74:47]
-// CHECK: 74:59: UnexposedExpr= Extent=[74:59 - 74:60]
-// CHECK: 75:5: UnexposedStmt= Extent=[75:5 - 75:62]
-// CHECK: 75:12: UnexposedExpr= Extent=[75:12 - 75:62]
-// CHECK: 75:12: UnexposedExpr= Extent=[75:12 - 75:58]
-// CHECK: 75:13: UnexposedExpr= Extent=[75:13 - 75:57]
-// CHECK: 75:13: UnexposedExpr= Extent=[75:13 - 75:30]
-// CHECK: 75:14: UnexposedExpr= Extent=[75:14 - 75:29]
-// CHECK: 75:25: UnexposedExpr= Extent=[75:25 - 75:29]
+// 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: ParenExpr= Extent=[75:12 - 75:58]
+// 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]
 // CHECK: 75:25: UnexposedExpr= Extent=[75:25 - 75:29]
+// CHECK: 75:25: ArraySubscriptExpr= Extent=[75:25 - 75:29]
 // CHECK: 75:25: DeclRefExpr=p:74:17 Extent=[75:25 - 75:26]
-// CHECK: 75:27: UnexposedExpr= Extent=[75:27 - 75:28]
-// CHECK: 75:33: UnexposedExpr= Extent=[75:33 - 75:57]
-// CHECK: 75:34: UnexposedExpr= Extent=[75:34 - 75:56]
-// CHECK: 75:34: UnexposedExpr= Extent=[75:34 - 75:51]
-// CHECK: 75:35: UnexposedExpr= Extent=[75:35 - 75:50]
-// CHECK: 75:46: UnexposedExpr= Extent=[75:46 - 75:50]
+// 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: ParenExpr= Extent=[75:34 - 75:51]
+// CHECK: 75:35: CStyleCastExpr= Extent=[75:35 - 75:50]
 // CHECK: 75:46: UnexposedExpr= Extent=[75:46 - 75:50]
 // CHECK: 75:46: UnexposedExpr= Extent=[75:46 - 75:50]
+// CHECK: 75:46: ArraySubscriptExpr= Extent=[75:46 - 75:50]
 // CHECK: 75:46: DeclRefExpr=p:74:17 Extent=[75:46 - 75:47]
-// CHECK: 75:48: UnexposedExpr= Extent=[75:48 - 75:49]
-// CHECK: 75:55: UnexposedExpr= Extent=[75:55 - 75:56]
-// CHECK: 75:61: UnexposedExpr= Extent=[75:61 - 75:62]
+// CHECK: 75:48: IntegerLiteral= Extent=[75:48 - 75:49]
+// CHECK: 75:55: IntegerLiteral= Extent=[75:55 - 75:56]
 // CHECK: 75:61: UnexposedExpr= Extent=[75:61 - 75:62]
+// CHECK: 75:61: IntegerLiteral= Extent=[75:61 - 75:62]
 // CHECK: 77:19: CXXMethod=getName:77:19 (Definition) Extent=[77:3 - 79:4]
-// CHECK: 77:35: UnexposedStmt= Extent=[77:35 - 79:4]
-// CHECK: 78:5: UnexposedStmt= Extent=[78:5 - 78:56]
+// CHECK: 77:35: CompoundStmt= Extent=[77:35 - 79:4]
+// CHECK: 78:5: ReturnStmt= Extent=[78:5 - 78:56]
 // CHECK: 78:12: CallExpr= Extent=[78:12 - 78:56]
 // CHECK: 78:12: UnexposedExpr=StringRef:49:3 Extent=[78:12 - 78:56]
 // CHECK: 78:12: CallExpr=StringRef:49:3 Extent=[78:12 - 78:56]
@@ -1847,21 +1847,21 @@
 // CHECK: 87:46: DeclRefExpr=Str:87:35 Extent=[87:46 - 87:49]
 // CHECK: 87:52: MemberRef=Result:85:12 Extent=[87:52 - 87:58]
 // CHECK: 87:58: UnexposedExpr= Extent=[87:58 - 87:61]
-// CHECK: 87:59: UnexposedExpr= Extent=[87:59 - 87:60]
-// CHECK: 87:62: UnexposedStmt= Extent=[87:62 - 87:64]
+// CHECK: 87:59: IntegerLiteral= Extent=[87:59 - 87:60]
+// CHECK: 87:62: CompoundStmt= Extent=[87:62 - 87:64]
 // CHECK: 88:42: FunctionTemplate=Case:88:42 (Definition) Extent=[88:3 - 91:4]
 // CHECK: 88:23: NonTypeTemplateParameter=N:88:23 (Definition) Extent=[88:14 - 88:24]
 // CHECK: 88:60: ParmDecl=S:88:60 (Definition) Extent=[88:47 - 88:65]
 // CHECK: 88:63: DeclRefExpr=N:88:23 Extent=[88:63 - 88:64]
 // CHECK: 89:57: ParmDecl=Value:89:57 (Definition) Extent=[89:47 - 89:62]
-// CHECK: 89:64: UnexposedStmt= Extent=[89:64 - 91:4]
-// CHECK: 90:5: UnexposedStmt= Extent=[90:5 - 90:17]
-// CHECK: 90:12: UnexposedExpr= Extent=[90:12 - 90:17]
-// CHECK: 90:13: UnexposedExpr= Extent=[90:13 - 90:17]
+// CHECK: 89:64: CompoundStmt= Extent=[89:64 - 91:4]
+// CHECK: 90:5: ReturnStmt= Extent=[90:5 - 90:17]
+// CHECK: 90:12: UnaryOperator= Extent=[90:12 - 90:17]
+// CHECK: 90:13: CXXThisExpr= Extent=[90:13 - 90:17]
 // CHECK: 92:5: CXXMethod=Default:92:5 (Definition) Extent=[92:3 - 94:4]
 // CHECK: 92:23: ParmDecl=Value:92:23 (Definition) Extent=[92:13 - 92:28]
-// CHECK: 92:36: UnexposedStmt= Extent=[92:36 - 94:4]
-// CHECK: 93:5: UnexposedStmt= Extent=[93:5 - 93:17]
+// CHECK: 92:36: CompoundStmt= Extent=[92:36 - 94:4]
+// CHECK: 93:5: ReturnStmt= Extent=[93:5 - 93:17]
 // CHECK: 93:12: DeclRefExpr=Value:92:23 Extent=[93:12 - 93:17]
 // CHECK: 98:17: UsingDirective=:98:17 Extent=[98:1 - 98:22]
 // CHECK: 98:17: NamespaceRef=clang:10:17 Extent=[98:17 - 98:22]
@@ -1869,16 +1869,16 @@
 // CHECK: 100:21: TypeRef=class clang::AttributeList:12:9 Extent=[100:21 - 100:34]
 // CHECK: 100:67: ParmDecl=Name:100:67 (Definition) Extent=[100:44 - 100:71]
 // CHECK: 100:50: TypeRef=class clang::IdentifierInfo:66:7 Extent=[100:50 - 100:64]
-// CHECK: 100:73: UnexposedStmt= Extent=[100:73 - 186:2]
-// CHECK: 101:3: UnexposedStmt= Extent=[101:3 - 101:46]
+// CHECK: 100:73: CompoundStmt= Extent=[100:73 - 186:2]
+// CHECK: 101:3: DeclStmt= Extent=[101:3 - 101:46]
 // CHECK: 101:19: VarDecl=AttrName:101:19 (Definition) Extent=[101:3 - 101:45]
 // CHECK: 101:30: CallExpr= Extent=[101:30 - 101:45]
 // CHECK: 101:30: UnexposedExpr=getName:77:19 Extent=[101:30 - 101:45]
 // CHECK: 101:30: CallExpr=getName:77:19 Extent=[101:30 - 101:45]
 // 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: UnexposedStmt= Extent=[102:3 - 103:55]
-// CHECK: 102:7: UnexposedExpr= Extent=[102:7 - 102:59]
+// CHECK: 102:3: IfStmt= Extent=[102:3 - 103:55]
+// 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]
@@ -1888,7 +1888,7 @@
 // CHECK: 102:27: UnexposedExpr=StringRef:48:3 Extent=[102:27 - 102:31]
 // CHECK: 102:27: CallExpr=StringRef:48:3 Extent=[102:27 - 102:31]
 // CHECK: 102:27: UnexposedExpr= Extent=[102:27 - 102:31]
-// CHECK: 102:27: UnexposedExpr= Extent=[102:27 - 102:31]
+// CHECK: 102:27: StringLiteral= Extent=[102:27 - 102:31]
 // CHECK: 102:36: CallExpr=endswith:56:8 Extent=[102:36 - 102:59]
 // CHECK: 102:45: MemberRefExpr=endswith:56:8 SingleRefName=[102:45 - 102:53] RefName=[102:45 - 102:53] Extent=[102:36 - 102:53]
 // CHECK: 102:36: UnexposedExpr=AttrName:101:19 Extent=[102:36 - 102:44]
@@ -1898,7 +1898,7 @@
 // CHECK: 102:54: UnexposedExpr=StringRef:48:3 Extent=[102:54 - 102:58]
 // CHECK: 102:54: CallExpr=StringRef:48:3 Extent=[102:54 - 102:58]
 // CHECK: 102:54: UnexposedExpr= Extent=[102:54 - 102:58]
-// CHECK: 102:54: UnexposedExpr= Extent=[102:54 - 102:58]
+// CHECK: 102:54: StringLiteral= Extent=[102:54 - 102:58]
 // CHECK: 103:5: CallExpr=operator=:38:7 Extent=[103:5 - 103:55]
 // CHECK: 103:5: DeclRefExpr=AttrName:101:19 Extent=[103:5 - 103:13]
 // CHECK: 103:14: UnexposedExpr=operator=:38:7
@@ -1909,15 +1909,15 @@
 // CHECK: 103:16: UnexposedExpr=AttrName:101:19 Extent=[103:16 - 103:24]
 // CHECK: 103:16: DeclRefExpr=AttrName:101:19 Extent=[103:16 - 103:24]
 // CHECK: 103:32: UnexposedExpr= Extent=[103:32 - 103:33]
-// CHECK: 103:32: UnexposedExpr= Extent=[103:32 - 103:33]
-// CHECK: 103:35: UnexposedExpr= Extent=[103:35 - 103:54]
+// CHECK: 103:32: IntegerLiteral= Extent=[103:32 - 103:33]
+// 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]
 // CHECK: 103:35: DeclRefExpr=AttrName:101:19 Extent=[103:35 - 103:43]
 // CHECK: 103:53: UnexposedExpr= Extent=[103:53 - 103:54]
-// CHECK: 103:53: UnexposedExpr= Extent=[103:53 - 103:54]
-// CHECK: 105:3: UnexposedStmt= Extent=[105:3 - 185:31]
+// CHECK: 103:53: IntegerLiteral= Extent=[103:53 - 103:54]
+// CHECK: 105:3: ReturnStmt= Extent=[105:3 - 185:31]
 // CHECK: 105:10: CallExpr=Default:92:5 Extent=[105:10 - 185:31]
 // CHECK: 185:6: MemberRefExpr=Default:92:5 SingleRefName=[185:6 - 185:13] RefName=[185:6 - 185:13] Extent=[105:10 - 185:13]
 // CHECK: 105:10: UnexposedExpr=Case:88:42 Extent=[105:10 - 184:33]
@@ -2079,169 +2079,165 @@
 // CHECK: 107:6: MemberRefExpr=Case:88:42 SingleRefName=[107:6 - 107:10] RefName=[107:6 - 107:10] Extent=[105:10 - 107:10]
 // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 106:27]
 // CHECK: 106:6: MemberRefExpr=Case:88:42 SingleRefName=[106:6 - 106:10] RefName=[106:6 - 106:10] Extent=[105:10 - 106:10]
-// CHECK: 105:10: UnexposedExpr= Extent=[105:10 - 105:63]
+// CHECK: 105:10: CXXFunctionalCastExpr= Extent=[105:10 - 105:63]
 // CHECK: 105:16: TemplateRef=StringSwitch:83:47 Extent=[105:16 - 105:28]
 // CHECK: 105:10: CallExpr=StringSwitch:87:12 Extent=[105:10 - 105:62]
 // CHECK: 105:54: CallExpr=StringRef:38:7 Extent=[105:54 - 105:62]
 // CHECK: 105:54: UnexposedExpr=AttrName:101:19 Extent=[105:54 - 105:62]
 // CHECK: 105:54: DeclRefExpr=AttrName:101:19 Extent=[105:54 - 105:62]
-// CHECK: 106:11: UnexposedExpr= Extent=[106:11 - 106:17]
+// CHECK: 106:11: StringLiteral= Extent=[106:11 - 106:17]
 // CHECK: 106:19: DeclRefExpr=AT_weak:29:45 Extent=[106:19 - 106:26]
-// CHECK: 107:11: UnexposedExpr= Extent=[107:11 - 107:20]
+// CHECK: 107:11: StringLiteral= Extent=[107:11 - 107:20]
 // CHECK: 107:22: DeclRefExpr=AT_weakref:29:54 Extent=[107:22 - 107:32]
-// CHECK: 108:11: UnexposedExpr= Extent=[108:11 - 108:17]
+// CHECK: 108:11: StringLiteral= Extent=[108:11 - 108:17]
 // CHECK: 108:19: DeclRefExpr=AT_pure:26:49 Extent=[108:19 - 108:26]
-// CHECK: 109:11: UnexposedExpr= Extent=[109:11 - 109:17]
+// CHECK: 109:11: StringLiteral= Extent=[109:11 - 109:17]
 // CHECK: 109:19: DeclRefExpr=AT_mode:20:44 Extent=[109:19 - 109:26]
-// CHECK: 110:11: UnexposedExpr= Extent=[110:11 - 110:17]
+// CHECK: 110:11: StringLiteral= Extent=[110:11 - 110:17]
 // CHECK: 110:19: DeclRefExpr=AT_used:28:34 Extent=[110:19 - 110:26]
-// CHECK: 111:11: UnexposedExpr= Extent=[111:11 - 111:18]
+// CHECK: 111:11: StringLiteral= Extent=[111:11 - 111:18]
 // CHECK: 111:20: DeclRefExpr=AT_alias:15:25 Extent=[111:20 - 111:28]
-// CHECK: 112:11: UnexposedExpr= Extent=[112:11 - 112:18]
+// CHECK: 112:11: StringLiteral= Extent=[112:11 - 112:18]
 // CHECK: 112:20: DeclRefExpr=AT_aligned:15:35 Extent=[112:20 - 112:30]
-// CHECK: 113:11: UnexposedExpr= Extent=[113:11 - 113:18]
+// CHECK: 113:11: StringLiteral= Extent=[113:11 - 113:18]
 // CHECK: 113:20: DeclRefExpr=AT_final:19:40 Extent=[113:20 - 113:28]
-// CHECK: 114:11: UnexposedExpr= Extent=[114:11 - 114:18]
+// CHECK: 114:11: StringLiteral= Extent=[114:11 - 114:18]
 // CHECK: 114:20: DeclRefExpr=AT_cdecl:17:30 Extent=[114:20 - 114:28]
-// CHECK: 115:11: UnexposedExpr= Extent=[115:11 - 115:18]
+// CHECK: 115:11: StringLiteral= Extent=[115:11 - 115:18]
 // CHECK: 115:20: DeclRefExpr=AT_const:17:52 Extent=[115:20 - 115:28]
-// CHECK: 116:11: UnexposedExpr= Extent=[116:11 - 116:20]
+// CHECK: 116:11: StringLiteral= Extent=[116:11 - 116:20]
 // CHECK: 116:22: DeclRefExpr=AT_const:17:52 Extent=[116:22 - 116:30]
-// CHECK: 117:11: UnexposedExpr= Extent=[117:11 - 117:19]
+// CHECK: 117:11: StringLiteral= Extent=[117:11 - 117:19]
 // CHECK: 117:21: DeclRefExpr=AT_blocks:16:57 Extent=[117:21 - 117:30]
-// CHECK: 118:11: UnexposedExpr= Extent=[118:11 - 118:19]
+// CHECK: 118:11: StringLiteral= Extent=[118:11 - 118:19]
 // CHECK: 118:21: DeclRefExpr=AT_format:19:50 Extent=[118:21 - 118:30]
-// CHECK: 119:11: UnexposedExpr= Extent=[119:11 - 119:19]
+// CHECK: 119:11: StringLiteral= Extent=[119:11 - 119:19]
 // CHECK: 119:21: DeclRefExpr=AT_hiding:20:22 Extent=[119:21 - 119:30]
-// CHECK: 120:11: UnexposedExpr= Extent=[120:11 - 120:19]
+// CHECK: 120:11: StringLiteral= Extent=[120:11 - 120:19]
 // CHECK: 120:21: DeclRefExpr=AT_malloc:20:33 Extent=[120:21 - 120:30]
-// CHECK: 121:11: UnexposedExpr= Extent=[121:11 - 121:19]
+// CHECK: 121:11: StringLiteral= Extent=[121:11 - 121:19]
 // CHECK: 121:21: DeclRefExpr=AT_packed:26:27 Extent=[121:21 - 121:30]
-// CHECK: 122:11: UnexposedExpr= Extent=[122:11 - 122:19]
+// CHECK: 122:11: StringLiteral= Extent=[122:11 - 122:19]
 // CHECK: 122:21: DeclRefExpr=AT_unused:28:23 Extent=[122:21 - 122:30]
-// CHECK: 123:11: UnexposedExpr= Extent=[123:11 - 123:20]
+// CHECK: 123:11: StringLiteral= Extent=[123:11 - 123:20]
 // CHECK: 123:22: DeclRefExpr=AT_aligned:15:35 Extent=[123:22 - 123:32]
-// CHECK: 124:11: UnexposedExpr= Extent=[124:11 - 124:20]
+// CHECK: 124:11: StringLiteral= Extent=[124:11 - 124:20]
 // CHECK: 124:22: DeclRefExpr=AT_cleanup:17:40 Extent=[124:22 - 124:32]
-// CHECK: 125:11: UnexposedExpr= Extent=[125:11 - 125:18]
+// CHECK: 125:11: StringLiteral= Extent=[125:11 - 125:18]
 // CHECK: 125:20: DeclRefExpr=AT_naked:20:53 Extent=[125:20 - 125:28]
-// CHECK: 126:11: UnexposedExpr= Extent=[126:11 - 126:20]
+// CHECK: 126:11: StringLiteral= Extent=[126:11 - 126:20]
 // CHECK: 126:22: DeclRefExpr=AT_nodebug:20:63 Extent=[126:22 - 126:32]
-// CHECK: 127:11: UnexposedExpr= Extent=[127:11 - 127:20]
+// CHECK: 127:11: StringLiteral= Extent=[127:11 - 127:20]
 // CHECK: 127:22: DeclRefExpr=AT_nonnull:21:47 Extent=[127:22 - 127:32]
-// CHECK: 128:11: UnexposedExpr= Extent=[128:11 - 128:20]
+// CHECK: 128:11: StringLiteral= Extent=[128:11 - 128:20]
 // CHECK: 128:22: DeclRefExpr=AT_nothrow:22:7 Extent=[128:22 - 128:32]
-// CHECK: 129:11: UnexposedExpr= Extent=[129:11 - 129:20]
+// CHECK: 129:11: StringLiteral= Extent=[129:11 - 129:20]
 // CHECK: 129:22: DeclRefExpr=AT_objc_gc:24:59 Extent=[129:22 - 129:32]
-// CHECK: 130:11: UnexposedExpr= Extent=[130:11 - 130:20]
+// CHECK: 130:11: StringLiteral= Extent=[130:11 - 130:20]
 // CHECK: 130:22: DeclRefExpr=AT_regparm:26:58 Extent=[130:22 - 130:32]
-// CHECK: 131:11: UnexposedExpr= Extent=[131:11 - 131:20]
+// CHECK: 131:11: StringLiteral= Extent=[131:11 - 131:20]
 // CHECK: 131:22: DeclRefExpr=AT_section:27:7 Extent=[131:22 - 131:32]
-// CHECK: 132:11: UnexposedExpr= Extent=[132:11 - 132:20]
+// CHECK: 132:11: StringLiteral= Extent=[132:11 - 132:20]
 // CHECK: 132:22: DeclRefExpr=AT_stdcall:27:32 Extent=[132:22 - 132:32]
-// CHECK: 133:11: UnexposedExpr= Extent=[133:11 - 133:21]
+// CHECK: 133:11: StringLiteral= Extent=[133:11 - 133:21]
 // CHECK: 133:23: DeclRefExpr=AT_annotate:16:29 Extent=[133:23 - 133:34]
-// CHECK: 134:11: UnexposedExpr= Extent=[134:11 - 134:21]
+// CHECK: 134:11: StringLiteral= Extent=[134:11 - 134:21]
 // CHECK: 134:23: DeclRefExpr=AT_fastcall:19:27 Extent=[134:23 - 134:34]
-// CHECK: 135:11: UnexposedExpr= Extent=[135:11 - 135:21]
+// CHECK: 135:11: StringLiteral= Extent=[135:11 - 135:21]
 // CHECK: 135:23: DeclRefExpr=AT_IBAction:14:7 Extent=[135:23 - 135:34]
-// CHECK: 136:11: UnexposedExpr= Extent=[136:11 - 136:21]
+// CHECK: 136:11: StringLiteral= Extent=[136:11 - 136:21]
 // CHECK: 136:23: DeclRefExpr=AT_IBOutlet:14:20 Extent=[136:23 - 136:34]
-// CHECK: 137:11: UnexposedExpr= Extent=[137:11 - 137:31]
+// CHECK: 137:11: StringLiteral= Extent=[137:11 - 137:31]
 // CHECK: 137:33: DeclRefExpr=AT_IBOutletCollection:14:33 Extent=[137:33 - 137:54]
-// CHECK: 138:11: UnexposedExpr= Extent=[138:11 - 138:21]
+// CHECK: 138:11: StringLiteral= Extent=[138:11 - 138:21]
 // CHECK: 138:23: DeclRefExpr=AT_noreturn:21:59 Extent=[138:23 - 138:34]
-// CHECK: 139:11: UnexposedExpr= Extent=[139:11 - 139:21]
+// CHECK: 139:11: StringLiteral= Extent=[139:11 - 139:21]
 // CHECK: 139:23: DeclRefExpr=AT_noinline:21:7 Extent=[139:23 - 139:34]
-// CHECK: 140:11: UnexposedExpr= Extent=[140:11 - 140:21]
+// CHECK: 140:11: StringLiteral= Extent=[140:11 - 140:21]
 // CHECK: 140:23: DeclRefExpr=AT_override:22:51 Extent=[140:23 - 140:34]
-// CHECK: 141:11: UnexposedExpr= Extent=[141:11 - 141:21]
+// CHECK: 141:11: StringLiteral= Extent=[141:11 - 141:21]
 // CHECK: 141:23: DeclRefExpr=AT_sentinel:27:19 Extent=[141:23 - 141:34]
-// CHECK: 142:11: UnexposedExpr= Extent=[142:11 - 142:21]
+// CHECK: 142:11: StringLiteral= Extent=[142:11 - 142:21]
 // CHECK: 142:23: DeclRefExpr=AT_nsobject:22:19 Extent=[142:23 - 142:34]
-// CHECK: 143:11: UnexposedExpr= Extent=[143:11 - 143:22]
+// CHECK: 143:11: StringLiteral= Extent=[143:11 - 143:22]
 // CHECK: 143:24: DeclRefExpr=AT_dllimport:18:51 Extent=[143:24 - 143:36]
-// CHECK: 144:11: UnexposedExpr= Extent=[144:11 - 144:22]
+// CHECK: 144:11: StringLiteral= Extent=[144:11 - 144:22]
 // CHECK: 144:24: DeclRefExpr=AT_dllexport:18:37 Extent=[144:24 - 144:36]
-// CHECK: 145:11: UnexposedExpr= Extent=[145:11 - 145:22]
-// CHECK: 145:24: UnexposedStmt= Extent=[145:24 - 145:40]
-// CHECK: 146:11: UnexposedExpr= Extent=[146:11 - 146:23]
+// CHECK: 145:11: StringLiteral= Extent=[145:11 - 145:22]
+// CHECK: 146:11: StringLiteral= Extent=[146:11 - 146:23]
 // CHECK: 146:25: DeclRefExpr=AT_base_check:16:42 Extent=[146:25 - 146:38]
-// CHECK: 147:11: UnexposedExpr= Extent=[147:11 - 147:23]
+// CHECK: 147:11: StringLiteral= Extent=[147:11 - 147:23]
 // CHECK: 147:25: DeclRefExpr=AT_deprecated:18:7 Extent=[147:25 - 147:38]
-// CHECK: 148:11: UnexposedExpr= Extent=[148:11 - 148:23]
+// CHECK: 148:11: StringLiteral= Extent=[148:11 - 148:23]
 // CHECK: 148:25: DeclRefExpr=AT_visibility:29:7 Extent=[148:25 - 148:38]
-// CHECK: 149:11: UnexposedExpr= Extent=[149:11 - 149:23]
+// CHECK: 149:11: StringLiteral= Extent=[149:11 - 149:23]
 // CHECK: 149:25: DeclRefExpr=AT_destructor:18:22 Extent=[149:25 - 149:38]
-// CHECK: 150:11: UnexposedExpr= Extent=[150:11 - 150:23]
+// CHECK: 150:11: StringLiteral= Extent=[150:11 - 150:23]
 // CHECK: 150:25: DeclRefExpr=AT_format_arg:19:61 Extent=[150:25 - 150:38]
-// CHECK: 151:11: UnexposedExpr= Extent=[151:11 - 151:23]
+// CHECK: 151:11: StringLiteral= Extent=[151:11 - 151:23]
 // CHECK: 151:25: DeclRefExpr=AT_gnu_inline:20:7 Extent=[151:25 - 151:38]
-// CHECK: 152:11: UnexposedExpr= Extent=[152:11 - 152:24]
+// CHECK: 152:11: StringLiteral= Extent=[152:11 - 152:24]
 // CHECK: 152:26: DeclRefExpr=AT_weak_import:30:7 Extent=[152:26 - 152:40]
-// CHECK: 153:11: UnexposedExpr= Extent=[153:11 - 153:22]
+// CHECK: 153:11: StringLiteral= Extent=[153:11 - 153:22]
 // CHECK: 153:24: DeclRefExpr=AT_vecreturn:28:43 Extent=[153:24 - 153:36]
-// CHECK: 154:11: UnexposedExpr= Extent=[154:11 - 154:24]
+// CHECK: 154:11: StringLiteral= Extent=[154:11 - 154:24]
 // CHECK: 154:26: DeclRefExpr=AT_vector_size:28:57 Extent=[154:26 - 154:40]
-// CHECK: 155:11: UnexposedExpr= Extent=[155:11 - 155:24]
+// CHECK: 155:11: StringLiteral= Extent=[155:11 - 155:24]
 // CHECK: 155:26: DeclRefExpr=AT_constructor:17:62 Extent=[155:26 - 155:40]
-// CHECK: 156:11: UnexposedExpr= Extent=[156:11 - 156:24]
+// CHECK: 156:11: StringLiteral= Extent=[156:11 - 156:24]
 // CHECK: 156:26: DeclRefExpr=AT_unavailable:28:7 Extent=[156:26 - 156:40]
-// CHECK: 157:11: UnexposedExpr= Extent=[157:11 - 157:25]
+// CHECK: 157:11: StringLiteral= Extent=[157:11 - 157:25]
 // CHECK: 157:27: DeclRefExpr=AT_overloadable:25:7 Extent=[157:27 - 157:42]
-// CHECK: 158:11: UnexposedExpr= Extent=[158:11 - 158:26]
+// CHECK: 158:11: StringLiteral= Extent=[158:11 - 158:26]
 // CHECK: 158:28: DeclRefExpr=AT_address_space:15:7 Extent=[158:28 - 158:44]
-// CHECK: 159:11: UnexposedExpr= Extent=[159:11 - 159:26]
+// CHECK: 159:11: StringLiteral= Extent=[159:11 - 159:26]
 // CHECK: 159:28: DeclRefExpr=AT_always_inline:15:47 Extent=[159:28 - 159:44]
-// CHECK: 160:11: UnexposedExpr= Extent=[160:11 - 160:26]
-// CHECK: 160:28: UnexposedStmt= Extent=[160:28 - 160:44]
-// CHECK: 161:11: UnexposedExpr= Extent=[161:11 - 161:26]
-// CHECK: 161:28: UnexposedStmt= Extent=[161:28 - 161:44]
-// CHECK: 162:11: UnexposedExpr= Extent=[162:11 - 162:27]
+// CHECK: 160:11: StringLiteral= Extent=[160:11 - 160:26]
+// CHECK: 161:11: StringLiteral= Extent=[161:11 - 161:26]
+// CHECK: 162:11: StringLiteral= Extent=[162:11 - 162:27]
 // CHECK: 162:29: DeclRefExpr=AT_objc_exception:22:32 Extent=[162:29 - 162:46]
-// CHECK: 163:11: UnexposedExpr= Extent=[163:11 - 163:28]
+// CHECK: 163:11: StringLiteral= Extent=[163:11 - 163:28]
 // CHECK: 163:30: DeclRefExpr=AT_ext_vector_type:19:7 Extent=[163:30 - 163:48]
-// CHECK: 164:11: UnexposedExpr= Extent=[164:11 - 164:30]
+// CHECK: 164:11: StringLiteral= Extent=[164:11 - 164:30]
 // CHECK: 164:32: DeclRefExpr=AT_transparent_union:27:57 Extent=[164:32 - 164:52]
-// CHECK: 165:11: UnexposedExpr= Extent=[165:11 - 165:30]
+// CHECK: 165:11: StringLiteral= Extent=[165:11 - 165:30]
 // CHECK: 165:32: DeclRefExpr=AT_analyzer_noreturn:16:7 Extent=[165:32 - 165:52]
-// CHECK: 166:11: UnexposedExpr= Extent=[166:11 - 166:31]
+// CHECK: 166:11: StringLiteral= Extent=[166:11 - 166:31]
 // CHECK: 166:33: DeclRefExpr=AT_warn_unused_result:29:22 Extent=[166:33 - 166:54]
-// CHECK: 167:11: UnexposedExpr= Extent=[167:11 - 167:31]
+// CHECK: 167:11: StringLiteral= Extent=[167:11 - 167:31]
 // CHECK: 167:33: DeclRefExpr=AT_carries_dependency:17:7 Extent=[167:33 - 167:54]
-// CHECK: 168:11: UnexposedExpr= Extent=[168:11 - 168:36]
+// CHECK: 168:11: StringLiteral= Extent=[168:11 - 168:36]
 // CHECK: 168:38: DeclRefExpr=AT_ns_returns_not_retained:24:7 Extent=[168:38 - 168:64]
-// CHECK: 169:11: UnexposedExpr= Extent=[169:11 - 169:32]
+// CHECK: 169:11: StringLiteral= Extent=[169:11 - 169:32]
 // CHECK: 169:34: DeclRefExpr=AT_ns_returns_retained:24:35 Extent=[169:34 - 169:56]
-// CHECK: 170:11: UnexposedExpr= Extent=[170:11 - 170:36]
+// CHECK: 170:11: StringLiteral= Extent=[170:11 - 170:36]
 // CHECK: 170:38: DeclRefExpr=AT_cf_returns_not_retained:23:7 Extent=[170:38 - 170:64]
-// CHECK: 171:11: UnexposedExpr= Extent=[171:11 - 171:32]
+// CHECK: 171:11: StringLiteral= Extent=[171:11 - 171:32]
 // CHECK: 171:34: DeclRefExpr=AT_cf_returns_retained:23:35 Extent=[171:34 - 171:56]
-// CHECK: 172:11: UnexposedExpr= Extent=[172:11 - 172:30]
+// CHECK: 172:11: StringLiteral= Extent=[172:11 - 172:30]
 // CHECK: 172:32: DeclRefExpr=AT_ownership_returns:25:44 Extent=[172:32 - 172:52]
-// CHECK: 173:11: UnexposedExpr= Extent=[173:11 - 173:28]
+// CHECK: 173:11: StringLiteral= Extent=[173:11 - 173:28]
 // CHECK: 173:30: DeclRefExpr=AT_ownership_holds:25:24 Extent=[173:30 - 173:48]
-// CHECK: 174:11: UnexposedExpr= Extent=[174:11 - 174:28]
+// CHECK: 174:11: StringLiteral= Extent=[174:11 - 174:28]
 // CHECK: 174:30: DeclRefExpr=AT_ownership_takes:26:7 Extent=[174:30 - 174:48]
-// CHECK: 175:11: UnexposedExpr= Extent=[175:11 - 175:33]
+// CHECK: 175:11: StringLiteral= Extent=[175:11 - 175:33]
 // CHECK: 175:35: DeclRefExpr=AT_reqd_wg_size:30:23 Extent=[175:35 - 175:50]
-// CHECK: 176:11: UnexposedExpr= Extent=[176:11 - 176:26]
+// CHECK: 176:11: StringLiteral= Extent=[176:11 - 176:26]
 // CHECK: 176:28: DeclRefExpr=AT_init_priority:30:40 Extent=[176:28 - 176:44]
-// CHECK: 177:11: UnexposedExpr= Extent=[177:11 - 177:35]
+// CHECK: 177:11: StringLiteral= Extent=[177:11 - 177:35]
 // CHECK: 177:37: DeclRefExpr=AT_no_instrument_function:21:20 Extent=[177:37 - 177:62]
-// CHECK: 178:11: UnexposedExpr= Extent=[178:11 - 178:21]
+// CHECK: 178:11: StringLiteral= Extent=[178:11 - 178:21]
 // CHECK: 178:23: DeclRefExpr=AT_thiscall:27:44 Extent=[178:23 - 178:34]
-// CHECK: 179:11: UnexposedExpr= Extent=[179:11 - 179:19]
+// CHECK: 179:11: StringLiteral= Extent=[179:11 - 179:19]
 // CHECK: 179:21: DeclRefExpr=AT_pascal:26:38 Extent=[179:21 - 179:30]
-// CHECK: 180:11: UnexposedExpr= Extent=[180:11 - 180:20]
+// CHECK: 180:11: StringLiteral= Extent=[180:11 - 180:20]
 // CHECK: 180:22: DeclRefExpr=AT_cdecl:17:30 Extent=[180:22 - 180:30]
-// CHECK: 181:11: UnexposedExpr= Extent=[181:11 - 181:22]
+// CHECK: 181:11: StringLiteral= Extent=[181:11 - 181:22]
 // CHECK: 181:24: DeclRefExpr=AT_stdcall:27:32 Extent=[181:24 - 181:34]
-// CHECK: 182:11: UnexposedExpr= Extent=[182:11 - 182:23]
+// CHECK: 182:11: StringLiteral= Extent=[182:11 - 182:23]
 // CHECK: 182:25: DeclRefExpr=AT_fastcall:19:27 Extent=[182:25 - 182:36]
-// CHECK: 183:11: UnexposedExpr= Extent=[183:11 - 183:23]
+// CHECK: 183:11: StringLiteral= Extent=[183:11 - 183:23]
 // CHECK: 183:25: DeclRefExpr=AT_thiscall:27:44 Extent=[183:25 - 183:36]
-// CHECK: 184:11: UnexposedExpr= Extent=[184:11 - 184:21]
+// CHECK: 184:11: StringLiteral= Extent=[184:11 - 184:21]
 // CHECK: 184:23: DeclRefExpr=AT_pascal:26:38 Extent=[184:23 - 184:32]
-// CHECK: 185:14: UnexposedStmt= Extent=[185:14 - 185:30]
 

Modified: cfe/trunk/test/Index/recursive-member-access.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/recursive-member-access.c?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/recursive-member-access.c (original)
+++ cfe/trunk/test/Index/recursive-member-access.c Wed Oct  5 14:00:14 2011
@@ -131,8 +131,8 @@
 // CHECK: 6:5: FunctionDecl=test_rdar8650865:6:5 (Definition) Extent=[6:1 - 124:2]
 // CHECK: 6:42: ParmDecl=s:6:42 (Definition) Extent=[6:22 - 6:43]
 // CHECK: 6:29: TypeRef=struct rdar8650865:1:8 Extent=[6:29 - 6:40]
-// CHECK: 6:45: UnexposedStmt= Extent=[6:45 - 124:2]
-// CHECK: 7:3: UnexposedStmt= Extent=[7:3 - 123:8]
+// CHECK: 6:45: CompoundStmt= Extent=[6:45 - 124:2]
+// CHECK: 7:3: ReturnStmt= Extent=[7:3 - 123:8]
 // CHECK: 123:7: MemberRefExpr=x:3:7 SingleRefName=[123:7 - 123:8] RefName=[123:7 - 123:8] Extent=[7:10 - 123:8]
 // CHECK: 122:7: MemberRefExpr=first:2:23 SingleRefName=[122:7 - 122:12] RefName=[122:7 - 122:12] Extent=[7:10 - 122:12]
 // CHECK: 121:7: MemberRefExpr=first:2:23 SingleRefName=[121:7 - 121:12] RefName=[121:7 - 121:12] Extent=[7:10 - 121:12]
@@ -275,33 +275,33 @@
 // CHECK-tokens: Punctuation: "*" [6:41 - 6:42] ParmDecl=s:6:42 (Definition)
 // CHECK-tokens: Identifier: "s" [6:42 - 6:43] ParmDecl=s:6:42 (Definition)
 // CHECK-tokens: Punctuation: ")" [6:43 - 6:44] FunctionDecl=test_rdar8650865:6:5 (Definition)
-// CHECK-tokens: Punctuation: "{" [6:45 - 6:46] UnexposedStmt=
-// CHECK-tokens: Keyword: "return" [7:3 - 7:9] UnexposedStmt=
-// CHECK-tokens: Punctuation: "(" [7:10 - 7:11] UnexposedExpr=
-// CHECK-tokens: Punctuation: "(" [7:11 - 7:12] UnexposedExpr=
-// CHECK-tokens: Punctuation: "(" [7:12 - 7:13] UnexposedExpr=
-// CHECK-tokens: Punctuation: "(" [7:13 - 7:14] UnexposedExpr=
-// CHECK-tokens: Punctuation: "(" [7:14 - 7:15] UnexposedExpr=
-// CHECK-tokens: Punctuation: "(" [7:15 - 7:16] UnexposedExpr=
+// CHECK-tokens: Punctuation: "{" [6:45 - 6:46] CompoundStmt=
+// CHECK-tokens: Keyword: "return" [7:3 - 7:9] ReturnStmt=
+// CHECK-tokens: Punctuation: "(" [7:10 - 7:11] ParenExpr=
+// CHECK-tokens: Punctuation: "(" [7:11 - 7:12] ParenExpr=
+// CHECK-tokens: Punctuation: "(" [7:12 - 7:13] ParenExpr=
+// CHECK-tokens: Punctuation: "(" [7:13 - 7:14] ParenExpr=
+// CHECK-tokens: Punctuation: "(" [7:14 - 7:15] ParenExpr=
+// CHECK-tokens: Punctuation: "(" [7:15 - 7:16] ParenExpr=
 // CHECK-tokens: Identifier: "s" [7:16 - 7:17] DeclRefExpr=s:6:42
 // CHECK-tokens: Punctuation: "->" [7:17 - 7:19] MemberRefExpr=first:2:23
 // CHECK-tokens: Identifier: "first" [7:19 - 7:24] MemberRefExpr=first:2:23
-// CHECK-tokens: Punctuation: ")" [7:24 - 7:25] UnexposedExpr=
+// CHECK-tokens: Punctuation: ")" [7:24 - 7:25] ParenExpr=
 // CHECK-tokens: Punctuation: "->" [7:25 - 7:27] MemberRefExpr=first:2:23
 // CHECK-tokens: Identifier: "first" [7:27 - 7:32] MemberRefExpr=first:2:23
-// CHECK-tokens: Punctuation: ")" [7:32 - 7:33] UnexposedExpr=
+// CHECK-tokens: Punctuation: ")" [7:32 - 7:33] ParenExpr=
 // CHECK-tokens: Punctuation: "->" [8:5 - 8:7] MemberRefExpr=first:2:23
 // CHECK-tokens: Identifier: "first" [8:7 - 8:12] MemberRefExpr=first:2:23
-// CHECK-tokens: Punctuation: ")" [8:12 - 8:13] UnexposedExpr=
+// CHECK-tokens: Punctuation: ")" [8:12 - 8:13] ParenExpr=
 // CHECK-tokens: Punctuation: "->" [9:5 - 9:7] MemberRefExpr=first:2:23
 // CHECK-tokens: Identifier: "first" [9:7 - 9:12] MemberRefExpr=first:2:23
-// CHECK-tokens: Punctuation: ")" [9:12 - 9:13] UnexposedExpr=
+// CHECK-tokens: Punctuation: ")" [9:12 - 9:13] ParenExpr=
 // CHECK-tokens: Punctuation: "->" [10:5 - 10:7] MemberRefExpr=first:2:23
 // CHECK-tokens: Identifier: "first" [10:7 - 10:12] MemberRefExpr=first:2:23
-// CHECK-tokens: Punctuation: ")" [10:12 - 10:13] UnexposedExpr=
+// CHECK-tokens: Punctuation: ")" [10:12 - 10:13] ParenExpr=
 // CHECK-tokens: Punctuation: "->" [11:5 - 11:7] MemberRefExpr=first:2:23
 // CHECK-tokens: Identifier: "first" [11:7 - 11:12] MemberRefExpr=first:2:23
-// CHECK-tokens: Punctuation: ")" [11:12 - 11:13] UnexposedExpr=
+// CHECK-tokens: Punctuation: ")" [11:12 - 11:13] ParenExpr=
 // CHECK-tokens: Punctuation: "->" [12:5 - 12:7] MemberRefExpr=first:2:23
 // CHECK-tokens: Identifier: "first" [12:7 - 12:12] MemberRefExpr=first:2:23
 // CHECK-tokens: Punctuation: "->" [13:5 - 13:7] MemberRefExpr=first:2:23
@@ -526,7 +526,7 @@
 // CHECK-tokens: Identifier: "first" [122:7 - 122:12] MemberRefExpr=first:2:23
 // CHECK-tokens: Punctuation: "->" [123:5 - 123:7] MemberRefExpr=x:3:7
 // CHECK-tokens: Identifier: "x" [123:7 - 123:8] MemberRefExpr=x:3:7
-// CHECK-tokens: Punctuation: ";" [123:8 - 123:9] UnexposedStmt=
-// CHECK-tokens: Punctuation: "}" [124:1 - 124:2] UnexposedStmt=
+// CHECK-tokens: Punctuation: ";" [123:8 - 123:9] CompoundStmt=
+// CHECK-tokens: Punctuation: "}" [124:1 - 124:2] CompoundStmt=
 
 

Modified: cfe/trunk/test/Index/remap-load.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/remap-load.c?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/remap-load.c (original)
+++ cfe/trunk/test/Index/remap-load.c Wed Oct  5 14:00:14 2011
@@ -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: UnexposedExpr= 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]

Modified: cfe/trunk/test/Index/usrs.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/usrs.m?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/test/Index/usrs.m (original)
+++ cfe/trunk/test/Index/usrs.m Wed Oct  5 14:00:14 2011
@@ -142,9 +142,9 @@
 // CHECK-source: usrs.m:3:19: FunctionDecl=my_helper:3:19 (Definition) Extent=[3:1 - 3:60]
 // CHECK-source: usrs.m:3:33: ParmDecl=x:3:33 (Definition) Extent=[3:29 - 3:34]
 // CHECK-source: usrs.m:3:40: ParmDecl=y:3:40 (Definition) Extent=[3:36 - 3:41]
-// CHECK-source: usrs.m:3:43: UnexposedStmt= Extent=[3:43 - 3:60]
-// CHECK-source: usrs.m:3:45: UnexposedStmt= Extent=[3:45 - 3:57]
-// CHECK-source: usrs.m:3:52: UnexposedExpr= Extent=[3:52 - 3:57]
+// 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: 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=:5:1 (Definition) Extent=[5:1 - 8:2]
@@ -176,30 +176,30 @@
 // CHECK-source: usrs.m:34:17: ObjCImplementationDecl=Foo:34:17 (Definition) Extent=[34:1 - 45:2]
 // CHECK-source: usrs.m:35:1: ObjCInstanceMethodDecl=godzilla:35:1 (Definition) [Overrides @29:1] Extent=[35:1 - 39:2]
 // CHECK-source: usrs.m:35:4: TypeRef=id:0:0 Extent=[35:4 - 35:6]
-// CHECK-source: usrs.m:35:17: UnexposedStmt= Extent=[35:17 - 39:2]
-// CHECK-source: usrs.m:36:3: UnexposedStmt= Extent=[36:3 - 36:20]
+// CHECK-source: usrs.m:35:17: CompoundStmt= Extent=[35:17 - 39:2]
+// CHECK-source: usrs.m:36:3: DeclStmt= Extent=[36:3 - 36:20]
 // CHECK-source: usrs.m:36:14: VarDecl=a:36:14 (Definition) Extent=[36:3 - 36:19]
-// CHECK-source: usrs.m:36:18: UnexposedExpr= Extent=[36:18 - 36:19]
-// CHECK-source: usrs.m:37:3: UnexposedStmt= Extent=[37:3 - 37:16]
+// CHECK-source: usrs.m:36:18: IntegerLiteral= Extent=[36:18 - 36:19]
+// CHECK-source: usrs.m:37:3: DeclStmt= Extent=[37:3 - 37:16]
 // CHECK-source: usrs.m:37:14: VarDecl=z:37:14 Extent=[37:3 - 37:15]
-// CHECK-source: usrs.m:38:3: UnexposedStmt= Extent=[38:3 - 38:11]
-// CHECK-source: usrs.m:38:10: UnexposedExpr= Extent=[38:10 - 38:11]
+// CHECK-source: usrs.m:38:3: ReturnStmt= Extent=[38:3 - 38:11]
 // CHECK-source: usrs.m:38:10: UnexposedExpr= Extent=[38:10 - 38:11]
+// CHECK-source: usrs.m:38:10: IntegerLiteral= Extent=[38:10 - 38:11]
 // CHECK-source: usrs.m:40:1: ObjCClassMethodDecl=kingkong:40:1 (Definition) [Overrides @30:1] Extent=[40:1 - 43:2]
 // CHECK-source: usrs.m:40:4: TypeRef=id:0:0 Extent=[40:4 - 40:6]
-// CHECK-source: usrs.m:40:17: UnexposedStmt= Extent=[40:17 - 43:2]
-// CHECK-source: usrs.m:41:3: UnexposedStmt= Extent=[41:3 - 41:17]
+// CHECK-source: usrs.m:40:17: CompoundStmt= Extent=[40:17 - 43:2]
+// CHECK-source: usrs.m:41:3: DeclStmt= Extent=[41:3 - 41:17]
 // CHECK-source: usrs.m:41:7: VarDecl=local_var:41:7 (Definition) Extent=[41:3 - 41:16]
-// CHECK-source: usrs.m:42:3: UnexposedStmt= Extent=[42:3 - 42:11]
-// CHECK-source: usrs.m:42:10: UnexposedExpr= Extent=[42:10 - 42:11]
+// CHECK-source: usrs.m:42:3: ReturnStmt= Extent=[42:3 - 42:11]
 // CHECK-source: usrs.m:42:10: UnexposedExpr= Extent=[42:10 - 42:11]
+// CHECK-source: usrs.m:42:10: IntegerLiteral= Extent=[42:10 - 42:11]
 // CHECK-source: usrs.m:44:13: ObjCIvarDecl=d1:44:13 (Definition) Extent=[44:13 - 44:15]
 // CHECK-source: usrs.m:44:13: ObjCSynthesizeDecl=d1:31:15 (Definition) Extent=[44:1 - 44:15]
 // CHECK-source: usrs.m:47:5: VarDecl=z:47:5 Extent=[47:1 - 47:6]
 // CHECK-source: usrs.m:49:12: FunctionDecl=local_func:49:12 (Definition) Extent=[49:1 - 49:43]
 // CHECK-source: usrs.m:49:27: ParmDecl=x:49:27 (Definition) Extent=[49:23 - 49:28]
-// CHECK-source: usrs.m:49:30: UnexposedStmt= Extent=[49:30 - 49:43]
-// CHECK-source: usrs.m:49:32: UnexposedStmt= Extent=[49:32 - 49:40]
+// CHECK-source: usrs.m:49:30: CompoundStmt= Extent=[49:30 - 49:43]
+// CHECK-source: usrs.m:49:32: ReturnStmt= Extent=[49:32 - 49:40]
 // CHECK-source: usrs.m:49:39: DeclRefExpr=x:49:27 Extent=[49:39 - 49:40]
 // CHECK-source: usrs.m:51:12: ObjCInterfaceDecl=CWithExt:51:12 Extent=[51:1 - 53:5]
 // CHECK-source: usrs.m:52:1: ObjCInstanceMethodDecl=meth1:52:1 Extent=[52:1 - 52:14]
@@ -219,51 +219,51 @@
 // CHECK-source: usrs.m:63:17: ObjCImplementationDecl=CWithExt:63:17 (Definition) Extent=[63:1 - 67:2]
 // CHECK-source: usrs.m:64:1: ObjCInstanceMethodDecl=meth1:64:1 (Definition) [Overrides @52:1] Extent=[64:1 - 64:27]
 // CHECK-source: usrs.m:64:4: TypeRef=id:0:0 Extent=[64:4 - 64:6]
-// CHECK-source: usrs.m:64:14: UnexposedStmt= Extent=[64:14 - 64:27]
-// CHECK-source: usrs.m:64:16: UnexposedStmt= Extent=[64:16 - 64:24]
-// CHECK-source: usrs.m:64:23: UnexposedExpr= Extent=[64:23 - 64:24]
+// CHECK-source: usrs.m:64:14: CompoundStmt= Extent=[64:14 - 64:27]
+// CHECK-source: usrs.m:64:16: ReturnStmt= Extent=[64:16 - 64:24]
 // CHECK-source: usrs.m:64:23: UnexposedExpr= Extent=[64:23 - 64:24]
+// CHECK-source: usrs.m:64:23: IntegerLiteral= Extent=[64:23 - 64:24]
 // CHECK-source: usrs.m:65:1: ObjCInstanceMethodDecl=meth2:65:1 (Definition) [Overrides @55:1] Extent=[65:1 - 65:27]
 // CHECK-source: usrs.m:65:4: TypeRef=id:0:0 Extent=[65:4 - 65:6]
-// CHECK-source: usrs.m:65:14: UnexposedStmt= Extent=[65:14 - 65:27]
-// CHECK-source: usrs.m:65:16: UnexposedStmt= Extent=[65:16 - 65:24]
-// CHECK-source: usrs.m:65:23: UnexposedExpr= Extent=[65:23 - 65:24]
+// CHECK-source: usrs.m:65:14: CompoundStmt= Extent=[65:14 - 65:27]
+// CHECK-source: usrs.m:65:16: ReturnStmt= Extent=[65:16 - 65:24]
 // CHECK-source: usrs.m:65:23: UnexposedExpr= Extent=[65:23 - 65:24]
+// CHECK-source: usrs.m:65:23: IntegerLiteral= Extent=[65:23 - 65:24]
 // CHECK-source: usrs.m:66:1: ObjCInstanceMethodDecl=meth3:66:1 (Definition) [Overrides @58:1] Extent=[66:1 - 66:27]
 // CHECK-source: usrs.m:66:4: TypeRef=id:0:0 Extent=[66:4 - 66:6]
-// CHECK-source: usrs.m:66:14: UnexposedStmt= Extent=[66:14 - 66:27]
-// CHECK-source: usrs.m:66:16: UnexposedStmt= Extent=[66:16 - 66:24]
-// CHECK-source: usrs.m:66:23: UnexposedExpr= Extent=[66:23 - 66:24]
+// CHECK-source: usrs.m:66:14: CompoundStmt= Extent=[66:14 - 66:27]
+// CHECK-source: usrs.m:66:16: ReturnStmt= Extent=[66:16 - 66:24]
 // CHECK-source: usrs.m:66:23: UnexposedExpr= Extent=[66:23 - 66:24]
+// CHECK-source: usrs.m:66:23: IntegerLiteral= Extent=[66:23 - 66:24]
 // CHECK-source: usrs.m:68:17: ObjCCategoryImplDecl=Bar:68:17 (Definition) Extent=[68:1 - 70:2]
 // CHECK-source: usrs.m:68:17: ObjCClassRef=CWithExt:51:12 Extent=[68:17 - 68:25]
 // CHECK-source: usrs.m:69:1: ObjCInstanceMethodDecl=meth4:69:1 (Definition) [Overrides @61:1] Extent=[69:1 - 69:27]
 // CHECK-source: usrs.m:69:4: TypeRef=id:0:0 Extent=[69:4 - 69:6]
-// CHECK-source: usrs.m:69:14: UnexposedStmt= Extent=[69:14 - 69:27]
-// CHECK-source: usrs.m:69:16: UnexposedStmt= Extent=[69:16 - 69:24]
-// CHECK-source: usrs.m:69:23: UnexposedExpr= Extent=[69:23 - 69:24]
+// CHECK-source: usrs.m:69:14: CompoundStmt= Extent=[69:14 - 69:27]
+// CHECK-source: usrs.m:69:16: ReturnStmt= Extent=[69:16 - 69:24]
 // CHECK-source: usrs.m:69:23: UnexposedExpr= Extent=[69:23 - 69:24]
+// CHECK-source: usrs.m:69:23: IntegerLiteral= Extent=[69:23 - 69:24]
 // CHECK-source: usrs.m:72:6: FunctionDecl=aux_1:72:6 Extent=[72:1 - 72:26]
 // CHECK-source: usrs.m:72:15: ParmDecl=:72:15 (Definition) Extent=[72:12 - 72:16]
 // CHECK-source: usrs.m:72:20: ParmDecl=:72:20 (Definition) Extent=[72:17 - 72:21]
 // CHECK-source: usrs.m:72:25: ParmDecl=:72:25 (Definition) Extent=[72:22 - 72:26]
 // CHECK-source: usrs.m:73:5: FunctionDecl=test_multi_declaration:73:5 (Definition) Extent=[73:1 - 77:2]
-// CHECK-source: usrs.m:73:34: UnexposedStmt= Extent=[73:34 - 77:2]
-// CHECK-source: usrs.m:74:3: UnexposedStmt= Extent=[74:3 - 74:33]
+// CHECK-source: usrs.m:73:34: CompoundStmt= Extent=[73:34 - 77:2]
+// CHECK-source: usrs.m:74:3: DeclStmt= Extent=[74:3 - 74:33]
 // CHECK-source: usrs.m:74:7: VarDecl=foo:74:7 (Definition) Extent=[74:3 - 74:14]
-// CHECK-source: usrs.m:74:13: UnexposedExpr= Extent=[74:13 - 74:14]
+// CHECK-source: usrs.m:74:13: IntegerLiteral= Extent=[74:13 - 74:14]
 // CHECK-source: usrs.m:74:16: VarDecl=bar:74:16 Extent=[74:16 - 74:23]
-// CHECK-source: usrs.m:74:22: UnexposedExpr= Extent=[74:22 - 74:23]
+// CHECK-source: usrs.m:74:22: IntegerLiteral= Extent=[74:22 - 74:23]
 // CHECK-source: usrs.m:74:25: VarDecl=baz:74:25 Extent=[74:25 - 74:32]
-// CHECK-source: usrs.m:74:31: UnexposedExpr= Extent=[74:31 - 74:32]
+// CHECK-source: usrs.m:74:31: IntegerLiteral= Extent=[74:31 - 74:32]
 // CHECK-source: usrs.m:75:3: CallExpr=aux_1:72:6 Extent=[75:3 - 75:23]
 // CHECK-source: usrs.m:75:3: UnexposedExpr=aux_1:72:6 Extent=[75:3 - 75:8]
 // CHECK-source: usrs.m:75:3: DeclRefExpr=aux_1:72:6 Extent=[75:3 - 75:8]
 // CHECK-source: usrs.m:75:9: DeclRefExpr=foo:74:7 Extent=[75:9 - 75:12]
 // CHECK-source: usrs.m:75:14: DeclRefExpr=bar:74:16 Extent=[75:14 - 75:17]
 // CHECK-source: usrs.m:75:19: DeclRefExpr=baz:74:25 Extent=[75:19 - 75:22]
-// CHECK-source: usrs.m:76:3: UnexposedStmt= Extent=[76:3 - 76:11]
-// CHECK-source: usrs.m:76:10: UnexposedExpr= Extent=[76:10 - 76:11]
+// CHECK-source: usrs.m:76:3: ReturnStmt= Extent=[76:3 - 76:11]
+// CHECK-source: usrs.m:76:10: IntegerLiteral= Extent=[76:10 - 76:11]
 // CHECK-source: usrs.m:79:11: ObjCProtocolDecl=P1:79:11 (Definition) Extent=[79:1 - 81:5]
 // CHECK-source: usrs.m:80:1: ObjCInstanceMethodDecl=method:80:1 Extent=[80:1 - 80:16]
 

Modified: cfe/trunk/tools/libclang/CIndex.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndex.cpp?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/tools/libclang/CIndex.cpp (original)
+++ cfe/trunk/tools/libclang/CIndex.cpp Wed Oct  5 14:00:14 2011
@@ -3342,10 +3342,86 @@
     return createCXString("LabelRef");
   case CXCursor_OverloadedDeclRef:
     return createCXString("OverloadedDeclRef");
-  case CXCursor_UnexposedExpr:
-      return createCXString("UnexposedExpr");
+  case CXCursor_IntegerLiteral:
+      return createCXString("IntegerLiteral");
+  case CXCursor_FloatingLiteral:
+      return createCXString("FloatingLiteral");
+  case CXCursor_ImaginaryLiteral:
+      return createCXString("ImaginaryLiteral");
+  case CXCursor_StringLiteral:
+      return createCXString("StringLiteral");
+  case CXCursor_CharacterLiteral:
+      return createCXString("CharacterLiteral");
+  case CXCursor_ParenExpr:
+      return createCXString("ParenExpr");
+  case CXCursor_UnaryOperator:
+      return createCXString("UnaryOperator");
+  case CXCursor_ArraySubscriptExpr:
+      return createCXString("ArraySubscriptExpr");
+  case CXCursor_BinaryOperator:
+      return createCXString("BinaryOperator");
+  case CXCursor_CompoundAssignOperator:
+      return createCXString("CompoundAssignOperator");
+  case CXCursor_ConditionalOperator:
+      return createCXString("ConditionalOperator");
+  case CXCursor_CStyleCastExpr:
+      return createCXString("CStyleCastExpr");
+  case CXCursor_CompoundLiteralExpr:
+      return createCXString("CompoundLiteralExpr");
+  case CXCursor_InitListExpr:
+      return createCXString("InitListExpr");
+  case CXCursor_AddrLabelExpr:
+      return createCXString("AddrLabelExpr");
+  case CXCursor_StmtExpr:
+      return createCXString("StmtExpr");
+  case CXCursor_GenericSelectionExpr:
+      return createCXString("GenericSelectionExpr");
+  case CXCursor_GNUNullExpr:
+      return createCXString("GNUNullExpr");
+  case CXCursor_CXXStaticCastExpr:
+      return createCXString("CXXStaticCastExpr");
+  case CXCursor_CXXDynamicCastExpr:
+      return createCXString("CXXDynamicCastExpr");
+  case CXCursor_CXXReinterpretCastExpr:
+      return createCXString("CXXReinterpretCastExpr");
+  case CXCursor_CXXConstCastExpr:
+      return createCXString("CXXConstCastExpr");
+  case CXCursor_CXXFunctionalCastExpr:
+      return createCXString("CXXFunctionalCastExpr");
+  case CXCursor_CXXTypeidExpr:
+      return createCXString("CXXTypeidExpr");
+  case CXCursor_CXXBoolLiteralExpr:
+      return createCXString("CXXBoolLiteralExpr");
+  case CXCursor_CXXNullPtrLiteralExpr:
+      return createCXString("CXXNullPtrLiteralExpr");
+  case CXCursor_CXXThisExpr:
+      return createCXString("CXXThisExpr");
+  case CXCursor_CXXThrowExpr:
+      return createCXString("CXXThrowExpr");
+  case CXCursor_CXXNewExpr:
+      return createCXString("CXXNewExpr");
+  case CXCursor_CXXDeleteExpr:
+      return createCXString("CXXDeleteExpr");
+  case CXCursor_UnaryExpr:
+      return createCXString("UnaryExpr");
+  case CXCursor_ObjCStringLiteral:
+      return createCXString("ObjCStringLiteral");
+  case CXCursor_ObjCEncodeExpr:
+      return createCXString("ObjCEncodeExpr");
+  case CXCursor_ObjCSelectorExpr:
+      return createCXString("ObjCSelectorExpr");
+  case CXCursor_ObjCProtocolExpr:
+      return createCXString("ObjCProtocolExpr");
+  case CXCursor_ObjCBridgedCastExpr:
+      return createCXString("ObjCBridgedCastExpr");
   case CXCursor_BlockExpr:
       return createCXString("BlockExpr");
+  case CXCursor_PackExpansionExpr:
+      return createCXString("PackExpansionExpr");
+  case CXCursor_SizeOfPackExpr:
+      return createCXString("SizeOfPackExpr");
+  case CXCursor_UnexposedExpr:
+      return createCXString("UnexposedExpr");
   case CXCursor_DeclRefExpr:
       return createCXString("DeclRefExpr");
   case CXCursor_MemberRefExpr:
@@ -3356,8 +3432,66 @@
       return createCXString("ObjCMessageExpr");
   case CXCursor_UnexposedStmt:
       return createCXString("UnexposedStmt");
+  case CXCursor_DeclStmt:
+      return createCXString("DeclStmt");
   case CXCursor_LabelStmt:
       return createCXString("LabelStmt");
+  case CXCursor_CompoundStmt:
+      return createCXString("CompoundStmt");
+  case CXCursor_CaseStmt:
+      return createCXString("CaseStmt");
+  case CXCursor_DefaultStmt:
+      return createCXString("DefaultStmt");
+  case CXCursor_IfStmt:
+      return createCXString("IfStmt");
+  case CXCursor_SwitchStmt:
+      return createCXString("SwitchStmt");
+  case CXCursor_WhileStmt:
+      return createCXString("WhileStmt");
+  case CXCursor_DoStmt:
+      return createCXString("DoStmt");
+  case CXCursor_ForStmt:
+      return createCXString("ForStmt");
+  case CXCursor_GotoStmt:
+      return createCXString("GotoStmt");
+  case CXCursor_IndirectGotoStmt:
+      return createCXString("IndirectGotoStmt");
+  case CXCursor_ContinueStmt:
+      return createCXString("ContinueStmt");
+  case CXCursor_BreakStmt:
+      return createCXString("BreakStmt");
+  case CXCursor_ReturnStmt:
+      return createCXString("ReturnStmt");
+  case CXCursor_AsmStmt:
+      return createCXString("AsmStmt");
+  case CXCursor_ObjCAtTryStmt:
+      return createCXString("ObjCAtTryStmt");
+  case CXCursor_ObjCAtCatchStmt:
+      return createCXString("ObjCAtCatchStmt");
+  case CXCursor_ObjCAtFinallyStmt:
+      return createCXString("ObjCAtFinallyStmt");
+  case CXCursor_ObjCAtThrowStmt:
+      return createCXString("ObjCAtThrowStmt");
+  case CXCursor_ObjCAtSynchronizedStmt:
+      return createCXString("ObjCAtSynchronizedStmt");
+  case CXCursor_ObjCAutoreleasePoolStmt:
+      return createCXString("ObjCAutoreleasePoolStmt");
+  case CXCursor_ObjCForCollectionStmt:
+      return createCXString("ObjCForCollectionStmt");
+  case CXCursor_CXXCatchStmt:
+      return createCXString("CXXCatchStmt");
+  case CXCursor_CXXTryStmt:
+      return createCXString("CXXTryStmt");
+  case CXCursor_CXXForRangeStmt:
+      return createCXString("CXXForRangeStmt");
+  case CXCursor_SEHTryStmt:
+      return createCXString("SEHTryStmt");
+  case CXCursor_SEHExceptStmt:
+      return createCXString("SEHExceptStmt");
+  case CXCursor_SEHFinallyStmt:
+      return createCXString("SEHFinallyStmt");
+  case CXCursor_NullStmt:
+      return createCXString("NullStmt");
   case CXCursor_InvalidFile:
       return createCXString("InvalidFile");
   case CXCursor_InvalidCode:

Modified: cfe/trunk/tools/libclang/CXCursor.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CXCursor.cpp?rev=141200&r1=141199&r2=141200&view=diff
==============================================================================
--- cfe/trunk/tools/libclang/CXCursor.cpp (original)
+++ cfe/trunk/tools/libclang/CXCursor.cpp Wed Oct  5 14:00:14 2011
@@ -72,131 +72,327 @@
   switch (S->getStmtClass()) {
   case Stmt::NoStmtClass:
     break;
-      
-  case Stmt::NullStmtClass:
-  case Stmt::CompoundStmtClass:
+  
   case Stmt::CaseStmtClass:
+    K = CXCursor_CaseStmt;
+    break;
+  
   case Stmt::DefaultStmtClass:
-  case Stmt::IfStmtClass:          
-  case Stmt::SwitchStmtClass:      
-  case Stmt::WhileStmtClass:       
-  case Stmt::DoStmtClass:          
-  case Stmt::ForStmtClass:        
-  case Stmt::GotoStmtClass:        
+    K = CXCursor_DefaultStmt;
+    break;
+  
+  case Stmt::IfStmtClass:
+    K = CXCursor_IfStmt;
+    break;
+  
+  case Stmt::SwitchStmtClass:
+    K = CXCursor_SwitchStmt;
+    break;
+  
+  case Stmt::WhileStmtClass:
+    K = CXCursor_WhileStmt;
+    break;
+  
+  case Stmt::DoStmtClass:
+    K = CXCursor_DoStmt;
+    break;
+  
+  case Stmt::ForStmtClass:
+    K = CXCursor_ForStmt;
+    break;
+  
+  case Stmt::GotoStmtClass:
+    K = CXCursor_GotoStmt;
+    break;
+  
   case Stmt::IndirectGotoStmtClass:
-  case Stmt::ContinueStmtClass:    
-  case Stmt::BreakStmtClass:       
-  case Stmt::ReturnStmtClass:      
-  case Stmt::DeclStmtClass:        
-  case Stmt::AsmStmtClass:         
-  case Stmt::ObjCAtTryStmtClass:        
-  case Stmt::ObjCAtCatchStmtClass:      
-  case Stmt::ObjCAtFinallyStmtClass:    
-  case Stmt::ObjCAtThrowStmtClass:      
-  case Stmt::ObjCAtSynchronizedStmtClass: 
-  case Stmt::ObjCAutoreleasePoolStmtClass:    
+    K = CXCursor_IndirectGotoStmt;
+    break;
+  
+  case Stmt::ContinueStmtClass:
+    K = CXCursor_ContinueStmt;
+    break;
+  
+  case Stmt::BreakStmtClass:
+    K = CXCursor_BreakStmt;
+    break;
+  
+  case Stmt::ReturnStmtClass:
+    K = CXCursor_ReturnStmt;
+    break;
+  
+  case Stmt::AsmStmtClass:
+    K = CXCursor_AsmStmt;
+    break;
+  
+  case Stmt::ObjCAtTryStmtClass:
+    K = CXCursor_ObjCAtTryStmt;
+    break;
+  
+  case Stmt::ObjCAtCatchStmtClass:
+    K = CXCursor_ObjCAtCatchStmt;
+    break;
+  
+  case Stmt::ObjCAtFinallyStmtClass:
+    K = CXCursor_ObjCAtFinallyStmt;
+    break;
+  
+  case Stmt::ObjCAtThrowStmtClass:
+    K = CXCursor_ObjCAtThrowStmt;
+    break;
+  
+  case Stmt::ObjCAtSynchronizedStmtClass:
+    K = CXCursor_ObjCAtSynchronizedStmt;
+    break;
+  
+  case Stmt::ObjCAutoreleasePoolStmtClass:
+    K = CXCursor_ObjCAutoreleasePoolStmt;
+    break;
+  
   case Stmt::ObjCForCollectionStmtClass:
+    K = CXCursor_ObjCForCollectionStmt;
+    break;
+  
   case Stmt::CXXCatchStmtClass:
-  case Stmt::CXXTryStmtClass:  
-  case Stmt::CXXForRangeStmtClass:        
+    K = CXCursor_CXXCatchStmt;
+    break;
+  
+  case Stmt::CXXTryStmtClass:
+    K = CXCursor_CXXTryStmt;
+    break;
+  
+  case Stmt::CXXForRangeStmtClass:
+    K = CXCursor_CXXForRangeStmt;
+    break;
+  
   case Stmt::SEHTryStmtClass:
+    K = CXCursor_SEHTryStmt;
+    break;
+  
   case Stmt::SEHExceptStmtClass:
+    K = CXCursor_SEHExceptStmt;
+    break;
+  
   case Stmt::SEHFinallyStmtClass:
+    K = CXCursor_SEHFinallyStmt;
+    break;
+  
+  case Stmt::ArrayTypeTraitExprClass:
+  case Stmt::AsTypeExprClass:
+  case Stmt::BinaryConditionalOperatorClass:
+  case Stmt::BinaryTypeTraitExprClass:
+  case Stmt::CXXBindTemporaryExprClass:
+  case Stmt::CXXDefaultArgExprClass:
+  case Stmt::CXXScalarValueInitExprClass:
+  case Stmt::CXXUuidofExprClass:
+  case Stmt::ChooseExprClass:
+  case Stmt::DesignatedInitExprClass:
+  case Stmt::ExprWithCleanupsClass:
+  case Stmt::ExpressionTraitExprClass:
+  case Stmt::ExtVectorElementExprClass:
+  case Stmt::ImplicitCastExprClass:
+  case Stmt::ImplicitValueInitExprClass:
   case Stmt::MaterializeTemporaryExprClass:
-    K = CXCursor_UnexposedStmt;
+  case Stmt::ObjCIndirectCopyRestoreExprClass:
+  case Stmt::OffsetOfExprClass:
+  case Stmt::OpaqueValueExprClass:
+  case Stmt::ParenListExprClass:
+  case Stmt::PredefinedExprClass:
+  case Stmt::ShuffleVectorExprClass:
+  case Stmt::UnaryExprOrTypeTraitExprClass:
+  case Stmt::UnaryTypeTraitExprClass:
+  case Stmt::VAArgExprClass:
+    K = CXCursor_UnexposedExpr;
+    break;
+
+  case Stmt::CompoundStmtClass:
+    K = CXCursor_CompoundStmt;
     break;
       
-  case Stmt::LabelStmtClass:       
-    K = CXCursor_LabelStmt;
+  case Stmt::NullStmtClass:
+    K = CXCursor_NullStmt;
     break;
       
-  case Stmt::PredefinedExprClass:        
-  case Stmt::IntegerLiteralClass:        
-  case Stmt::FloatingLiteralClass:       
-  case Stmt::ImaginaryLiteralClass:      
-  case Stmt::StringLiteralClass:         
-  case Stmt::CharacterLiteralClass:      
-  case Stmt::ParenExprClass:             
+  case Stmt::LabelStmtClass:
+    K = CXCursor_LabelStmt;
+    break;
+  
+  case Stmt::DeclStmtClass:
+    K = CXCursor_DeclStmt;
+    break;
+ 
+  case Stmt::IntegerLiteralClass:
+    K = CXCursor_IntegerLiteral;
+    break;
+
+  case Stmt::FloatingLiteralClass:
+    K = CXCursor_FloatingLiteral;
+    break;
+
+  case Stmt::ImaginaryLiteralClass:
+    K = CXCursor_ImaginaryLiteral;
+    break;
+
+  case Stmt::StringLiteralClass:
+    K = CXCursor_StringLiteral;
+    break;
+
+  case Stmt::CharacterLiteralClass:
+    K = CXCursor_CharacterLiteral;
+    break;
+
+  case Stmt::ParenExprClass:
+    K = CXCursor_ParenExpr;
+    break;
+
   case Stmt::UnaryOperatorClass:
-  case Stmt::OffsetOfExprClass:         
-  case Stmt::UnaryExprOrTypeTraitExprClass:     
-  case Stmt::ArraySubscriptExprClass:    
-  case Stmt::BinaryOperatorClass:        
+    K = CXCursor_UnaryOperator;
+    break;
+  
+  case Stmt::CXXNoexceptExprClass:
+    K = CXCursor_UnaryExpr;
+    break;
+
+  case Stmt::ArraySubscriptExprClass:
+    K = CXCursor_ArraySubscriptExpr;
+    break;
+
+  case Stmt::BinaryOperatorClass:
+    K = CXCursor_BinaryOperator;
+    break;
+
   case Stmt::CompoundAssignOperatorClass:
-  case Stmt::ConditionalOperatorClass:   
-  case Stmt::BinaryConditionalOperatorClass:
-  case Stmt::ImplicitCastExprClass:
+    K = CXCursor_CompoundAssignOperator;
+    break;
+
+  case Stmt::ConditionalOperatorClass:
+    K = CXCursor_ConditionalOperator;
+    break;
+
   case Stmt::CStyleCastExprClass:
-  case Stmt::CompoundLiteralExprClass:   
-  case Stmt::ExtVectorElementExprClass:  
-  case Stmt::InitListExprClass:          
-  case Stmt::DesignatedInitExprClass:    
-  case Stmt::ImplicitValueInitExprClass: 
-  case Stmt::ParenListExprClass:         
-  case Stmt::VAArgExprClass:             
-  case Stmt::AddrLabelExprClass:        
-  case Stmt::StmtExprClass:             
-  case Stmt::ChooseExprClass:           
+    K = CXCursor_CStyleCastExpr;
+    break;
+
+  case Stmt::CompoundLiteralExprClass:
+    K = CXCursor_CompoundLiteralExpr;
+    break;
+
+  case Stmt::InitListExprClass:
+    K = CXCursor_InitListExpr;
+    break;
+
+  case Stmt::AddrLabelExprClass:
+    K = CXCursor_AddrLabelExpr;
+    break;
+
+  case Stmt::StmtExprClass:
+    K = CXCursor_StmtExpr;
+    break;
+
   case Stmt::GenericSelectionExprClass:
-  case Stmt::GNUNullExprClass:          
-  case Stmt::CXXStaticCastExprClass:      
-  case Stmt::CXXDynamicCastExprClass:     
-  case Stmt::CXXReinterpretCastExprClass: 
-  case Stmt::CXXConstCastExprClass:       
+    K = CXCursor_GenericSelectionExpr;
+    break;
+
+  case Stmt::GNUNullExprClass:
+    K = CXCursor_GNUNullExpr;
+    break;
+
+  case Stmt::CXXStaticCastExprClass:
+    K = CXCursor_CXXStaticCastExpr;
+    break;
+
+  case Stmt::CXXDynamicCastExprClass:
+    K = CXCursor_CXXDynamicCastExpr;
+    break;
+
+  case Stmt::CXXReinterpretCastExprClass:
+    K = CXCursor_CXXReinterpretCastExpr;
+    break;
+
+  case Stmt::CXXConstCastExprClass:
+    K = CXCursor_CXXConstCastExpr;
+    break;
+
   case Stmt::CXXFunctionalCastExprClass:
-  case Stmt::CXXTypeidExprClass:          
-  case Stmt::CXXUuidofExprClass:          
-  case Stmt::CXXBoolLiteralExprClass:     
-  case Stmt::CXXNullPtrLiteralExprClass:  
-  case Stmt::CXXThisExprClass:            
-  case Stmt::CXXThrowExprClass:           
-  case Stmt::CXXDefaultArgExprClass:      
-  case Stmt::CXXScalarValueInitExprClass:   
-  case Stmt::CXXNewExprClass:             
-  case Stmt::CXXDeleteExprClass:          
-  case Stmt::CXXPseudoDestructorExprClass:
-  case Stmt::UnresolvedLookupExprClass:   
-  case Stmt::UnaryTypeTraitExprClass:     
-  case Stmt::BinaryTypeTraitExprClass:     
-  case Stmt::ArrayTypeTraitExprClass:
-  case Stmt::ExpressionTraitExprClass:     
-  case Stmt::DependentScopeDeclRefExprClass:  
-  case Stmt::CXXBindTemporaryExprClass:   
-  case Stmt::ExprWithCleanupsClass: 
-  case Stmt::CXXUnresolvedConstructExprClass:
-  case Stmt::CXXDependentScopeMemberExprClass:
-  case Stmt::UnresolvedMemberExprClass:   
-  case Stmt::CXXNoexceptExprClass:
-  case Stmt::ObjCStringLiteralClass:    
-  case Stmt::ObjCEncodeExprClass:       
-  case Stmt::ObjCSelectorExprClass:   
-  case Stmt::ObjCProtocolExprClass:   
-  case Stmt::ObjCIsaExprClass:   
-  case Stmt::ObjCIndirectCopyRestoreExprClass:
+    K = CXCursor_CXXFunctionalCastExpr;
+    break;
+
+  case Stmt::CXXTypeidExprClass:
+    K = CXCursor_CXXTypeidExpr;
+    break;
+
+  case Stmt::CXXBoolLiteralExprClass:
+    K = CXCursor_CXXBoolLiteralExpr;
+    break;
+
+  case Stmt::CXXNullPtrLiteralExprClass:
+    K = CXCursor_CXXNullPtrLiteralExpr;
+    break;
+
+  case Stmt::CXXThisExprClass:
+    K = CXCursor_CXXThisExpr;
+    break;
+
+  case Stmt::CXXThrowExprClass:
+    K = CXCursor_CXXThrowExpr;
+    break;
+
+  case Stmt::CXXNewExprClass:
+    K = CXCursor_CXXNewExpr;
+    break;
+
+  case Stmt::CXXDeleteExprClass:
+    K = CXCursor_CXXDeleteExpr;
+    break;
+
+  case Stmt::ObjCStringLiteralClass:
+    K = CXCursor_ObjCStringLiteral;
+    break;
+
+  case Stmt::ObjCEncodeExprClass:
+    K = CXCursor_ObjCEncodeExpr;
+    break;
+
+  case Stmt::ObjCSelectorExprClass:
+    K = CXCursor_ObjCSelectorExpr;
+    break;
+
+  case Stmt::ObjCProtocolExprClass:
+    K = CXCursor_ObjCProtocolExpr;
+    break;
+
   case Stmt::ObjCBridgedCastExprClass:
-  case Stmt::ShuffleVectorExprClass: 
-  case Stmt::BlockExprClass:  
-  case Stmt::OpaqueValueExprClass:
+    K = CXCursor_ObjCBridgedCastExpr;
+    break;
+
+  case Stmt::BlockExprClass:
+    K = CXCursor_BlockExpr;
+    break;
+
   case Stmt::PackExpansionExprClass:
+    K = CXCursor_PackExpansionExpr;
+    break;
+
   case Stmt::SizeOfPackExprClass:
-  case Stmt::AsTypeExprClass:
-    K = CXCursor_UnexposedExpr;
+    K = CXCursor_SizeOfPackExpr;
     break;
-      
-  case Stmt::DeclRefExprClass:           
+
   case Stmt::BlockDeclRefExprClass:
+  case Stmt::DeclRefExprClass:           
+  case Stmt::DependentScopeDeclRefExprClass:
   case Stmt::SubstNonTypeTemplateParmExprClass:
   case Stmt::SubstNonTypeTemplateParmPackExprClass:
-    // FIXME: UnresolvedLookupExpr?
-    // FIXME: DependentScopeDeclRefExpr?
+  case Stmt::UnresolvedLookupExprClass:
     K = CXCursor_DeclRefExpr;
     break;
       
+  case Stmt::CXXDependentScopeMemberExprClass:
+  case Stmt::CXXPseudoDestructorExprClass:
   case Stmt::MemberExprClass:            
+  case Stmt::ObjCIsaExprClass:
   case Stmt::ObjCIvarRefExprClass:    
   case Stmt::ObjCPropertyRefExprClass: 
-    // FIXME: UnresolvedMemberExpr?
-    // FIXME: CXXDependentScopeMemberExpr?
+  case Stmt::UnresolvedMemberExprClass:
     K = CXCursor_MemberRefExpr;
     break;
       
@@ -206,7 +402,7 @@
   case Stmt::CUDAKernelCallExprClass:
   case Stmt::CXXConstructExprClass:  
   case Stmt::CXXTemporaryObjectExprClass:
-    // FIXME: CXXUnresolvedConstructExpr
+  case Stmt::CXXUnresolvedConstructExprClass:
     K = CXCursor_CallExpr;
     break;
       





More information about the cfe-commits mailing list