load-stmts.cpp revision 1bb2a93ab7b1499dda6f6b58865bd0dce1864228
1263b47b6272bfd3ea1c0e61b7ac404e7b2e0f759Douglas Gregortypedef int T; 2263b47b6272bfd3ea1c0e61b7ac404e7b2e0f759Douglas Gregorstruct X { int a, b; }; 3263b47b6272bfd3ea1c0e61b7ac404e7b2e0f759Douglas Gregorvoid f(int x) { 4263b47b6272bfd3ea1c0e61b7ac404e7b2e0f759Douglas Gregor for (T y = x; T z = x; ++x) { 5263b47b6272bfd3ea1c0e61b7ac404e7b2e0f759Douglas Gregor } 6263b47b6272bfd3ea1c0e61b7ac404e7b2e0f759Douglas Gregor if (T *z2 = &x) { } 7263b47b6272bfd3ea1c0e61b7ac404e7b2e0f759Douglas Gregor while (T *z3 = &x) { } 8263b47b6272bfd3ea1c0e61b7ac404e7b2e0f759Douglas Gregor switch (T z4 = x) { 9263b47b6272bfd3ea1c0e61b7ac404e7b2e0f759Douglas Gregor case 17: break; 10263b47b6272bfd3ea1c0e61b7ac404e7b2e0f759Douglas Gregor } 11263b47b6272bfd3ea1c0e61b7ac404e7b2e0f759Douglas Gregor} 12263b47b6272bfd3ea1c0e61b7ac404e7b2e0f759Douglas Gregor 133064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek// Test handling of C++ base specifiers. 143064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenekclass A { 153064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek void doA(); 163064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek}; 173064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek 183064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenekclass B { 193064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek void doB(); 203064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek}; 213064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek 223064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenekclass C : public A, private B { 233064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek void doC(); 243064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek}; 253064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek 263064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenekclass D : virtual public C, virtual private A {}; 273064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek 28948022908d0c16acc3411fdec15aeb1790ffaa86Douglas Gregornamespace std { 29948022908d0c16acc3411fdec15aeb1790ffaa86Douglas Gregor class type_info { }; 30948022908d0c16acc3411fdec15aeb1790ffaa86Douglas Gregor} 31948022908d0c16acc3411fdec15aeb1790ffaa86Douglas Gregor 32948022908d0c16acc3411fdec15aeb1790ffaa86Douglas Gregorvoid test_exprs(C *c) { 33948022908d0c16acc3411fdec15aeb1790ffaa86Douglas Gregor int typeid_marker; 34948022908d0c16acc3411fdec15aeb1790ffaa86Douglas Gregor typeid(C); 35948022908d0c16acc3411fdec15aeb1790ffaa86Douglas Gregor typeid(c); 366f7198f6380581645f416dd48a0079f83d89e884Douglas Gregor typedef int Integer; 376f7198f6380581645f416dd48a0079f83d89e884Douglas Gregor Integer *int_ptr; 386f7198f6380581645f416dd48a0079f83d89e884Douglas Gregor int_ptr->Integer::~Integer(); 39948022908d0c16acc3411fdec15aeb1790ffaa86Douglas Gregor} 40948022908d0c16acc3411fdec15aeb1790ffaa86Douglas Gregor 418ab670ee2b8147da63d1f282d928e754e4e97408Douglas Gregornamespace N { 428ab670ee2b8147da63d1f282d928e754e4e97408Douglas Gregor int f(int); 438ab670ee2b8147da63d1f282d928e754e4e97408Douglas Gregor float f(float); 441f7b590d120758d0c969a8153c38d2446935d4aaDouglas Gregor 451f7b590d120758d0c969a8153c38d2446935d4aaDouglas Gregor template<typename T> T g(T); 461f7b590d120758d0c969a8153c38d2446935d4aaDouglas Gregor template<typename T> T g(T*); 478ab670ee2b8147da63d1f282d928e754e4e97408Douglas Gregor} 488ab670ee2b8147da63d1f282d928e754e4e97408Douglas Gregor 498ab670ee2b8147da63d1f282d928e754e4e97408Douglas Gregortemplate<typename T> 508ab670ee2b8147da63d1f282d928e754e4e97408Douglas Gregorvoid test_dependent_exprs(T t) { 518ab670ee2b8147da63d1f282d928e754e4e97408Douglas Gregor N::f(t); 521f7b590d120758d0c969a8153c38d2446935d4aaDouglas Gregor typedef T type; 531f7b590d120758d0c969a8153c38d2446935d4aaDouglas Gregor N::g<type>(t); 54bfebed2a839e12c3e99d635dbd1f4f875ce8b066Douglas Gregor type::template f<type*>(t); 5525d63629cc37a9737c6d8d5c6aa08b356649212fDouglas Gregor t->type::template f<type*>(); 568ab670ee2b8147da63d1f282d928e754e4e97408Douglas Gregor} 578ab670ee2b8147da63d1f282d928e754e4e97408Douglas Gregor 58aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregorstruct Y { 59aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor int f(int); 60aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor float f(float); 61aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor 62aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor template<typename T> T g(T); 63aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor template<typename T> T g(T*); 64aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor}; 65aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor 66aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregortemplate<typename T> 67aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregorvoid test_more_dependent_exprs(T t, Y y) { 68aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor y.Y::f(t); 69aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor typedef T type; 70aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor y.g<type>(t); 71aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor} 72aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor 731bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregorstruct Pair { 741bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregor Pair(int, int); 751bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregor}; 761bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregor 771bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregorvoid *operator new(__SIZE_TYPE__, void*) throw(); 781bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregor 791bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregorvoid test_more_exprs(void *mem, int i, int j) { 801bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregor new (mem) Pair(i, j); 811bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregor} 821bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregor 83263b47b6272bfd3ea1c0e61b7ac404e7b2e0f759Douglas Gregor// RUN: c-index-test -test-load-source all %s | FileCheck %s 849a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: load-stmts.cpp:1:13: TypedefDecl=T:1:13 (Definition) Extent=[1:13 - 1:14] 859a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: load-stmts.cpp:2:8: StructDecl=X:2:8 (Definition) Extent=[2:1 - 2:23] 869a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: load-stmts.cpp:2:16: FieldDecl=a:2:16 (Definition) Extent=[2:16 - 2:17] 879a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: load-stmts.cpp:2:19: FieldDecl=b:2:19 (Definition) Extent=[2:19 - 2:20] 889a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: load-stmts.cpp:3:6: FunctionDecl=f:3:6 (Definition) Extent=[3:6 - 11:2] 899a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: load-stmts.cpp:3:12: ParmDecl=x:3:12 (Definition) Extent=[3:8 - 3:13] 909a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: <invalid loc>:0:0: UnexposedStmt= Extent=[3:15 - 11:2] 919a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: <invalid loc>:0:0: UnexposedStmt= Extent=[4:3 - 5:4] 929a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: <invalid loc>:0:0: UnexposedStmt= Extent=[4:8 - 4:16] 938f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:4:10: VarDecl=y:4:10 (Definition) Extent=[4:8 - 4:15] 948f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:4:8: TypeRef=T:1:13 Extent=[4:8 - 4:9] 958f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:4:14: DeclRefExpr=x:3:12 Extent=[4:14 - 4:15] 968f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:4:19: VarDecl=z:4:19 (Definition) Extent=[4:17 - 4:24] 978f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:4:17: TypeRef=T:1:13 Extent=[4:17 - 4:18] 988f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:4:23: DeclRefExpr=x:3:12 Extent=[4:23 - 4:24] 998f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:4:19: UnexposedExpr=z:4:19 Extent=[4:19 - 4:20] 1008f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:4:19: DeclRefExpr=z:4:19 Extent=[4:19 - 4:20] 1018f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:4:26: UnexposedExpr= Extent=[4:26 - 4:29] 1028f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:4:28: DeclRefExpr=x:3:12 Extent=[4:28 - 4:29] 1039a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: <invalid loc>:0:0: UnexposedStmt= Extent=[4:31 - 5:4] 1049a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: <invalid loc>:0:0: UnexposedStmt= Extent=[6:3 - 6:22] 1058f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:6:10: VarDecl=z2:6:10 (Definition) Extent=[6:7 - 6:17] 1068f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:6:7: TypeRef=T:1:13 Extent=[6:7 - 6:8] 1078f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:6:15: UnexposedExpr= Extent=[6:15 - 6:17] 1088f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:6:16: DeclRefExpr=x:3:12 Extent=[6:16 - 6:17] 1098f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:6:10: UnexposedExpr=z2:6:10 Extent=[6:10 - 6:12] 1108f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:6:10: DeclRefExpr=z2:6:10 Extent=[6:10 - 6:12] 1119a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: <invalid loc>:0:0: UnexposedStmt= Extent=[6:19 - 6:22] 1129a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: <invalid loc>:0:0: UnexposedStmt= Extent=[7:3 - 7:25] 1138f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:7:13: VarDecl=z3:7:13 (Definition) Extent=[7:10 - 7:20] 1148f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:7:10: TypeRef=T:1:13 Extent=[7:10 - 7:11] 1158f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:7:18: UnexposedExpr= Extent=[7:18 - 7:20] 1168f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:7:19: DeclRefExpr=x:3:12 Extent=[7:19 - 7:20] 1178f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:7:13: UnexposedExpr=z3:7:13 Extent=[7:13 - 7:15] 1188f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:7:13: DeclRefExpr=z3:7:13 Extent=[7:13 - 7:15] 1199a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: <invalid loc>:0:0: UnexposedStmt= Extent=[7:22 - 7:25] 1209a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: <invalid loc>:0:0: UnexposedStmt= Extent=[8:3 - 10:4] 1218f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:8:13: VarDecl=z4:8:13 (Definition) Extent=[8:11 - 8:19] 1228f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:8:11: TypeRef=T:1:13 Extent=[8:11 - 8:12] 1238f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:8:18: DeclRefExpr=x:3:12 Extent=[8:18 - 8:19] 1248f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:8:13: DeclRefExpr=z4:8:13 Extent=[8:13 - 8:15] 1259a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: <invalid loc>:0:0: UnexposedStmt= Extent=[8:21 - 10:4] 1269a700d277c38d9afaa7cb3fe93a714bfe9b62eecTed Kremenek// CHECK: <invalid loc>:0:0: UnexposedStmt= Extent=[9:3 - 9:17] 1278f0bf81c0f3ab31881cc7db7914e6978bb2a19afDaniel Dunbar// CHECK: load-stmts.cpp:9:8: UnexposedExpr= Extent=[9:8 - 9:10] 1280f91f6a2eacf29fb69b1b0c3131eb0385aad5777Ted Kremenek// CHECK: <invalid loc>:0:0: UnexposedStmt= Extent=[9:12 - 9:17] 1293064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek// CHECK: load-stmts.cpp:14:7: ClassDecl=A:14:7 (Definition) Extent=[14:1 - 16:2] 1303064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek// CHECK: load-stmts.cpp:15:8: CXXMethod=doA:15:8 Extent=[15:8 - 15:13] 1313064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek// CHECK: load-stmts.cpp:18:7: ClassDecl=B:18:7 (Definition) Extent=[18:1 - 20:2] 1323064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek// CHECK: load-stmts.cpp:19:8: CXXMethod=doB:19:8 Extent=[19:8 - 19:13] 1333064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek// CHECK: load-stmts.cpp:22:7: ClassDecl=C:22:7 (Definition) Extent=[22:1 - 24:2] 1343064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek// CHECK: <invalid loc>:0:0: C++ base class specifier=class A:14:7 [access=public isVirtual=false] 1353064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek// CHECK: <invalid loc>:0:0: C++ base class specifier=class B:18:7 [access=private isVirtual=false] 1363064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek// CHECK: load-stmts.cpp:23:8: CXXMethod=doC:23:8 Extent=[23:8 - 23:13] 1373064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek// CHECK: load-stmts.cpp:26:7: ClassDecl=D:26:7 (Definition) Extent=[26:1 - 26:49] 1383064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek// CHECK: <invalid loc>:0:0: C++ base class specifier=class C:22:7 [access=public isVirtual=true] 1393064ef9e604d19a0cfd0d8e3ed3055bfd83f88fdTed Kremenek// CHECK: <invalid loc>:0:0: C++ base class specifier=class A:14:7 [access=private isVirtual=true] 140948022908d0c16acc3411fdec15aeb1790ffaa86Douglas Gregor// CHECK: load-stmts.cpp:33:7: VarDecl=typeid_marker:33:7 (Definition) 141948022908d0c16acc3411fdec15aeb1790ffaa86Douglas Gregor// CHECK: load-stmts.cpp:34:10: TypeRef=class C:22:7 Extent=[34:10 - 34:11] 142948022908d0c16acc3411fdec15aeb1790ffaa86Douglas Gregor// CHECK: load-stmts.cpp:35:10: DeclRefExpr=c:32:20 Extent=[35:10 - 35:11] 1436f7198f6380581645f416dd48a0079f83d89e884Douglas Gregor// CHECK: load-stmts.cpp:37:12: VarDecl=int_ptr:37:12 (Definition) Extent=[37:3 - 37:19] 1446f7198f6380581645f416dd48a0079f83d89e884Douglas Gregor// CHECK: load-stmts.cpp:37:3: TypeRef=Integer:36:15 Extent=[37:3 - 37:10] 1456f7198f6380581645f416dd48a0079f83d89e884Douglas Gregor// CHECK: load-stmts.cpp:38:3: DeclRefExpr=int_ptr:37:12 Extent=[38:3 - 38:10] 1466f7198f6380581645f416dd48a0079f83d89e884Douglas Gregor// CHECK: load-stmts.cpp:38:12: TypeRef=Integer:36:15 Extent=[38:12 - 38:19] 1476f7198f6380581645f416dd48a0079f83d89e884Douglas Gregor// CHECK: load-stmts.cpp:38:22: TypeRef=Integer:36:15 Extent=[38:22 - 38:29] 1481f7b590d120758d0c969a8153c38d2446935d4aaDouglas Gregor// CHECK: load-stmts.cpp:50:6: FunctionTemplate=test_dependent_exprs:50:6 (Definition) 1491f7b590d120758d0c969a8153c38d2446935d4aaDouglas Gregor// CHECK: load-stmts.cpp:51:3: CallExpr= Extent=[51:3 - 51:10] 1501f7b590d120758d0c969a8153c38d2446935d4aaDouglas Gregor// CHECK: load-stmts.cpp:51:3: NamespaceRef=N:41:11 Extent=[51:3 - 51:4] 1511f7b590d120758d0c969a8153c38d2446935d4aaDouglas Gregor// CHECK: load-stmts.cpp:51:8: DeclRefExpr=t:50:29 Extent=[51:8 - 51:9] 1521f7b590d120758d0c969a8153c38d2446935d4aaDouglas Gregor// CHECK: load-stmts.cpp:52:13: TypedefDecl=type:52:13 (Definition) Extent=[52:13 - 52:17] 1531f7b590d120758d0c969a8153c38d2446935d4aaDouglas Gregor// CHECK: load-stmts.cpp:53:3: CallExpr= Extent=[53:3 - 53:16] 1541f7b590d120758d0c969a8153c38d2446935d4aaDouglas Gregor// CHECK: load-stmts.cpp:53:3: NamespaceRef=N:41:11 Extent=[53:3 - 53:4] 1551f7b590d120758d0c969a8153c38d2446935d4aaDouglas Gregor// CHECK: load-stmts.cpp:53:8: TypeRef=type:52:13 Extent=[53:8 - 53:12] 1561f7b590d120758d0c969a8153c38d2446935d4aaDouglas Gregor// CHECK: load-stmts.cpp:53:14: DeclRefExpr=t:50:29 Extent=[53:14 - 53:15] 157bfebed2a839e12c3e99d635dbd1f4f875ce8b066Douglas Gregor// CHECK: load-stmts.cpp:54:3: CallExpr= Extent=[54:3 - 54:29] 158bfebed2a839e12c3e99d635dbd1f4f875ce8b066Douglas Gregor// CHECK: load-stmts.cpp:54:3: TypeRef=type:52:13 Extent=[54:3 - 54:7] 159bfebed2a839e12c3e99d635dbd1f4f875ce8b066Douglas Gregor// CHECK: load-stmts.cpp:54:20: TypeRef=type:52:13 Extent=[54:20 - 54:24] 160bfebed2a839e12c3e99d635dbd1f4f875ce8b066Douglas Gregor// CHECK: load-stmts.cpp:54:27: DeclRefExpr=t:50:29 Extent=[54:27 - 54:28] 16125d63629cc37a9737c6d8d5c6aa08b356649212fDouglas Gregor// CHECK: load-stmts.cpp:55:3: CallExpr= Extent=[55:3 - 55:31] 16225d63629cc37a9737c6d8d5c6aa08b356649212fDouglas Gregor// CHECK: load-stmts.cpp:55:3: DeclRefExpr=t:50:29 Extent=[55:3 - 55:4] 16325d63629cc37a9737c6d8d5c6aa08b356649212fDouglas Gregor// CHECK: load-stmts.cpp:55:23: TypeRef=type:52:13 Extent=[55:23 - 55:27] 164aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor// CHECK: load-stmts.cpp:67:6: FunctionTemplate=test_more_dependent_exprs:67:6 (Definition) 165aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor// CHECK: load-stmts.cpp:68:3: CallExpr= Extent=[68:3 - 68:12] 166aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor// CHECK: load-stmts.cpp:68:3: DeclRefExpr=y:67:39 Extent=[68:3 - 68:4] 167aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor// CHECK: load-stmts.cpp:68:5: TypeRef=struct Y:58:8 Extent=[68:5 - 68:6] 168aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor// CHECK: load-stmts.cpp:68:10: DeclRefExpr=t:67:34 Extent=[68:10 - 68:11] 169aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor// CHECK: load-stmts.cpp:70:3: CallExpr= Extent=[70:3 - 70:15] 170aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor// CHECK: load-stmts.cpp:70:3: DeclRefExpr=y:67:39 Extent=[70:3 - 70:4] 171aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor// CHECK: load-stmts.cpp:70:7: TypeRef=type:69:13 Extent=[70:7 - 70:11] 172aaa80b208de3e2c706badf45060bd126fa747b84Douglas Gregor// CHECK: load-stmts.cpp:70:13: DeclRefExpr=t:67:34 Extent=[70:13 - 70:14] 1731bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregor// CHECK: load-stmts.cpp:79:6: FunctionDecl=test_more_exprs:79:6 (Definition) 1741bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregor// CHECK: load-stmts.cpp:80:8: DeclRefExpr=mem:79:28 Extent=[80:8 - 80:11] 1751bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregor// CHECK: load-stmts.cpp:80:13: TypeRef=struct Pair:73:8 Extent=[80:13 - 80:17] 1761bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregor// CHECK: load-stmts.cpp:80:18: DeclRefExpr=i:79:37 Extent=[80:18 - 80:19] 1771bb2a93ab7b1499dda6f6b58865bd0dce1864228Douglas Gregor// CHECK: load-stmts.cpp:80:21: DeclRefExpr=j:79:44 Extent=[80:21 - 80:22] 178