aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-11-08 21:14:15 +0000
committerTed Kremenek <kremenek@apple.com>2010-11-08 21:14:15 +0000
commit04c450c44d01169de287b64bc256d723007010da (patch)
tree99c9044e88a4db451895b3c7dc8a5534b3dbf05a
parentda892649f9a0b6dd92eecb97c7959dc3f968241f (diff)
Add CursorVisitor::VisitBinaryOperator() to explicitly handle the case where we can blow out the stack due
to deeply nested BinaryOperators. This is done by turning the explicit recursion into being data recursive. Fixes: <rdar://problem/8289205> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118444 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/Index/nested-binaryoperators.cpp1982
-rw-r--r--tools/libclang/CIndex.cpp90
2 files changed, 2072 insertions, 0 deletions
diff --git a/test/Index/nested-binaryoperators.cpp b/test/Index/nested-binaryoperators.cpp
new file mode 100644
index 0000000000..d263b9ddbc
--- /dev/null
+++ b/test/Index/nested-binaryoperators.cpp
@@ -0,0 +1,1982 @@
+typedef unsigned int uint;
+int foo(uint c) {
+ return ((c >= 0x41 && c <= 0x5a)
+ || (c >= 0x61 && c <= 0x7a)
+ || (c >= 0xc0 && c <= 0xd6)
+ || (c >= 0xd8 && c <= 0xf6)
+ || (c >= 0xf8 && c <= 0xff)
+ || (c >= 0x100 && c <= 0x131)
+ || (c >= 0x134 && c <= 0x13e)
+ || (c >= 0x141 && c <= 0x148)
+ || (c >= 0x14a && c <= 0x17e)
+ || (c >= 0x180 && c <= 0x1c3)
+ || (c >= 0x1cd && c <= 0x1f0)
+ || (c >= 0x1f4 && c <= 0x1f5)
+ || (c >= 0x1fa && c <= 0x217)
+ || (c >= 0x250 && c <= 0x2a8)
+ || (c >= 0x2bb && c <= 0x2c1)
+ || c == 0x386 || (c >= 0x388 && c <= 0x38a)
+ || c == 0x38c || (c >= 0x38e && c <= 0x3a1)
+ || (c >= 0x3a3 && c <= 0x3ce)
+ || (c >= 0x3d0 && c <= 0x3d6)
+ || c == 0x3da || c == 0x3dc || c == 0x3de ||
+ c == 0x3e0 || (c >= 0x3e2 && c <= 0x3f3)
+ || (c >= 0x401 && c <= 0x40c)
+ || (c >= 0x40e && c <= 0x44f)
+ || (c >= 0x451 && c <= 0x45c)
+ || (c >= 0x45e && c <= 0x481)
+ || (c >= 0x490 && c <= 0x4c4)
+ || (c >= 0x4c7 && c <= 0x4c8)
+ || (c >= 0x4cb && c <= 0x4cc)
+ || (c >= 0x4d0 && c <= 0x4eb)
+ || (c >= 0x4ee && c <= 0x4f5)
+ || (c >= 0x4f8 && c <= 0x4f9)
+ || (c >= 0x531 && c <= 0x556)
+ || c == 0x559 || (c >= 0x561 && c <= 0x586)
+ || (c >= 0x5d0 && c <= 0x5ea)
+ || (c >= 0x5f0 && c <= 0x5f2)
+ || (c >= 0x621 && c <= 0x63a)
+ || (c >= 0x641 && c <= 0x64a)
+ || (c >= 0x671 && c <= 0x6b7)
+ || (c >= 0x6ba && c <= 0x6be)
+ || (c >= 0x6c0 && c <= 0x6ce)
+ || (c >= 0x6d0 && c <= 0x6d3)
+ || c == 0x6d5 || (c >= 0x6e5 && c <= 0x6e6)
+ || (c >= 0x905 && c <= 0x939)
+ || c == 0x93d || (c >= 0x958 && c <= 0x961)
+ || (c >= 0x985 && c <= 0x98c)
+ || (c >= 0x98f && c <= 0x990)
+ || (c >= 0x993 && c <= 0x9a8)
+ || (c >= 0x9aa && c <= 0x9b0)
+ || c == 0x9b2 || (c >= 0x9b6 && c <= 0x9b9)
+ || (c >= 0x9dc && c <= 0x9dd)
+ || (c >= 0x9df && c <= 0x9e1)
+ || (c >= 0x9f0 && c <= 0x9f1)
+ || (c >= 0xa05 && c <= 0xa0a)
+ || (c >= 0xa0f && c <= 0xa10)
+ || (c >= 0xa13 && c <= 0xa28)
+ || (c >= 0xa2a && c <= 0xa30)
+ || (c >= 0xa32 && c <= 0xa33)
+ || (c >= 0xa35 && c <= 0xa36)
+ || (c >= 0xa38 && c <= 0xa39)
+ || (c >= 0xa59 && c <= 0xa5c)
+ || c == 0xa5e || (c >= 0xa72 && c <= 0xa74)
+ || (c >= 0xa85 && c <= 0xa8b)
+ || c == 0xa8d || (c >= 0xa8f && c <= 0xa91)
+ || (c >= 0xa93 && c <= 0xaa8)
+ || (c >= 0xaaa && c <= 0xab0)
+ || (c >= 0xab2 && c <= 0xab3)
+ || (c >= 0xab5 && c <= 0xab9)
+ || c == 0xabd || c == 0xae0 || (c >= 0xb05 && c <= 0xb0c)
+ || (c >= 0xb0f && c <= 0xb10)
+ || (c >= 0xb13 && c <= 0xb28)
+ || (c >= 0xb2a && c <= 0xb30)
+ || (c >= 0xb32 && c <= 0xb33)
+ || (c >= 0xb36 && c <= 0xb39)
+ || c == 0xb3d || (c >= 0xb5c && c <= 0xb5d)
+ || (c >= 0xb5f && c <= 0xb61)
+ || (c >= 0xb85 && c <= 0xb8a)
+ || (c >= 0xb8e && c <= 0xb90)
+ || (c >= 0xb92 && c <= 0xb95)
+ || (c >= 0xb99 && c <= 0xb9a)
+ || c == 0xb9c || (c >= 0xb9e && c <= 0xb9f)
+ || (c >= 0xba3 && c <= 0xba4)
+ || (c >= 0xba8 && c <= 0xbaa)
+ || (c >= 0xbae && c <= 0xbb5)
+ || (c >= 0xbb7 && c <= 0xbb9)
+ || (c >= 0xc05 && c <= 0xc0c)
+ || (c >= 0xc0e && c <= 0xc10)
+ || (c >= 0xc12 && c <= 0xc28)
+ || (c >= 0xc2a && c <= 0xc33)
+ || (c >= 0xc35 && c <= 0xc39)
+ || (c >= 0xc60 && c <= 0xc61)
+ || (c >= 0xc85 && c <= 0xc8c)
+ || (c >= 0xc8e && c <= 0xc90)
+ || (c >= 0xc92 && c <= 0xca8)
+ || (c >= 0xcaa && c <= 0xcb3)
+ || (c >= 0xcb5 && c <= 0xcb9)
+ || c == 0xcde || (c >= 0xce0 && c <= 0xce1)
+ || (c >= 0xd05 && c <= 0xd0c)
+ || (c >= 0xd0e && c <= 0xd10)
+ || (c >= 0xd12 && c <= 0xd28)
+ || (c >= 0xd2a && c <= 0xd39)
+ || (c >= 0xd60 && c <= 0xd61)
+ || (c >= 0xe01 && c <= 0xe2e)
+ || c == 0xe30 || (c >= 0xe32 && c <= 0xe33)
+ || (c >= 0xe40 && c <= 0xe45)
+ || (c >= 0xe81 && c <= 0xe82)
+ || c == 0xe84 || (c >= 0xe87 && c <= 0xe88)
+ || c == 0xe8a || c == 0xe8d || (c >= 0xe94 && c <= 0xe97)
+ || (c >= 0xe99 && c <= 0xe9f)
+ || (c >= 0xea1 && c <= 0xea3)
+ || c == 0xea5 || c == 0xea7 || (c >= 0xeaa && c <= 0xeab)
+ || (c >= 0xead && c <= 0xeae)
+ || c == 0xeb0 || (c >= 0xeb2 && c <= 0xeb3)
+ || c == 0xebd || (c >= 0xec0 && c <= 0xec4)
+ || (c >= 0xf40 && c <= 0xf47)
+ || (c >= 0xf49 && c <= 0xf69)
+ || (c >= 0x10a0 && c <= 0x10c5)
+ || (c >= 0x10d0 && c <= 0x10f6)
+ || c == 0x1100 || (c >= 0x1102 && c <= 0x1103)
+ || (c >= 0x1105 && c <= 0x1107)
+ || c == 0x1109 || (c >= 0x110b && c <= 0x110c)
+ || (c >= 0x110e && c <= 0x1112)
+ || c == 0x113c || c == 0x113e || c == 0x1140 || c == 0x114c ||
+ c == 0x114e || c == 0x1150 || (c >= 0x1154 && c <= 0x1155)
+ || c == 0x1159 || (c >= 0x115f && c <= 0x1161)
+ || c == 0x1163 || c == 0x1165 || c == 0x1167 || c == 0x1169 ||
+ (c >= 0x116d && c <= 0x116e)
+ || (c >= 0x1172 && c <= 0x1173)
+ || c == 0x1175 || c == 0x119e || c == 0x11a8 || c == 0x11ab ||
+ (c >= 0x11ae && c <= 0x11af)
+ || (c >= 0x11b7 && c <= 0x11b8)
+ || c == 0x11ba || (c >= 0x11bc && c <= 0x11c2)
+ || c == 0x11eb || c == 0x11f0 || c == 0x11f9 || (c >= 0x1e00 && c <= 0x1e9b)
+ || (c >= 0x1ea0 && c <= 0x1ef9)
+ || (c >= 0x1f00 && c <= 0x1f15)
+ || (c >= 0x1f18 && c <= 0x1f1d)
+ || (c >= 0x1f20 && c <= 0x1f45)
+ || (c >= 0x1f48 && c <= 0x1f4d)
+ || (c >= 0x1f50 && c <= 0x1f57)
+ || c == 0x1f59 || c == 0x1f5b || c == 0x1f5d || (c >= 0x1f5f && c <= 0x1f7d)
+ || (c >= 0x1f80 && c <= 0x1fb4)
+ || (c >= 0x1fb6 && c <= 0x1fbc)
+ || c == 0x1fbe || (c >= 0x1fc2 && c <= 0x1fc4)
+ || (c >= 0x1fc6 && c <= 0x1fcc)
+ || (c >= 0x1fd0 && c <= 0x1fd3)
+ || (c >= 0x1fd6 && c <= 0x1fdb)
+ || (c >= 0x1fe0 && c <= 0x1fec)
+ || (c >= 0x1ff2 && c <= 0x1ff4)
+ || (c >= 0x1ff6 && c <= 0x1ffc)
+ || c == 0x2126 || (c >= 0x212a && c <= 0x212b)
+ || c == 0x212e || (c >= 0x2180 && c <= 0x2182)
+ || (c >= 0x3041 && c <= 0x3094)
+ || (c >= 0x30a1 && c <= 0x30fa)
+ || (c >= 0x3105 && c <= 0x312c)
+ || (c >= 0xac00 && c <= 0xd7a3)
+ || (c >= 0x4e00 && c <= 0x9fa5)
+ || c == 0x3007 || (c >= 0x3021 && c <= 0x3029)
+ || (c >= 0x4e00 && c <= 0x9fa5)
+ || c == 0x3007 || (c >= 0x3021 && c <= 0x3029));
+}
+
+// RUN: c-index-test -test-load-source all %s | FileCheck %s
+// CHECK: 1:22: TypedefDecl=uint:1:22 (Definition) Extent=[1:22 - 1:26]
+// CHECK: 2:5: FunctionDecl=foo:2:5 (Definition) Extent=[2:5 - 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: 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: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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: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: 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: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: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: 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: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: 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: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: 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: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: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: 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: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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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: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: 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:23: DeclRefExpr=c:2:14 Exte