recursive-cxx-member-calls.cpp 165 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242
  1. typedef long unsigned int __darwin_size_t;
  2. typedef __darwin_size_t size_t;
  3. namespace std {
  4. template < class _T1, class _T2 > struct pair { _T2 second; };
  5. }
  6. extern "C" {
  7. int memcmp(const void *, const void *, size_t);
  8. size_t strlen(const char *);
  9. }
  10. namespace clang {
  11. class IdentifierInfo;
  12. class AttributeList {
  13. enum Kind {
  14. AT_IBAction, AT_IBOutlet, AT_IBOutletCollection,
  15. AT_address_space, AT_alias, AT_aligned, AT_always_inline,
  16. AT_analyzer_noreturn, AT_annotate, AT_base_check, AT_blocks,
  17. AT_carries_dependency, AT_cdecl, AT_cleanup, AT_const, AT_constructor,
  18. AT_deprecated, AT_destructor, AT_dllexport, AT_dllimport,
  19. AT_ext_vector_type, AT_fastcall, AT_final, AT_format, AT_format_arg,
  20. AT_gnu_inline, AT_hiding, AT_malloc, AT_mode, AT_naked, AT_nodebug,
  21. AT_noinline, AT_no_instrument_function, AT_nonnull, AT_noreturn,
  22. AT_nothrow, AT_nsobject, AT_objc_exception, AT_override,
  23. AT_cf_returns_not_retained, AT_cf_returns_retained,
  24. AT_ns_returns_not_retained, AT_ns_returns_retained, AT_objc_gc,
  25. AT_overloadable, AT_ownership_holds, AT_ownership_returns,
  26. AT_ownership_takes, AT_packed, AT_pascal, AT_pure, AT_regparm,
  27. AT_section, AT_sentinel, AT_stdcall, AT_thiscall, AT_transparent_union,
  28. AT_unavailable, AT_unused, AT_used, AT_vecreturn, AT_vector_size,
  29. AT_visibility, AT_warn_unused_result, AT_weak, AT_weakref,
  30. AT_weak_import, AT_reqd_wg_size, AT_init_priority,
  31. AT_returns_twice, IgnoredAttribute, UnknownAttribute
  32. };
  33. static Kind getKind(const IdentifierInfo * Name);
  34. };
  35. }
  36. size_t magic_length(const char *s);
  37. namespace llvm {
  38. class StringRef {
  39. public:
  40. typedef const char *iterator;
  41. static const size_t npos = ~size_t(0);
  42. private:
  43. const char *Data;
  44. size_t Length;
  45. static size_t min(size_t a, size_t b) { return a < b ? a : b; }
  46. public:
  47. StringRef(): Data(0), Length(0) {}
  48. StringRef(const char *Str) : Data(Str), Length(magic_length(Str)) {}
  49. StringRef(const char *data, size_t length) : Data(data), Length(length) {}
  50. iterator end() const { return Data; }
  51. size_t size() const { return Length; }
  52. bool startswith(StringRef Prefix) const {
  53. return Length >= Prefix.Length &&
  54. memcmp(Data, Prefix.Data, Prefix.Length) == 0;
  55. }
  56. bool endswith(StringRef Suffix) const {
  57. return Length >= Suffix.Length &&
  58. memcmp(end() - Suffix.Length, Suffix.Data, Suffix.Length) == 0;
  59. }
  60. StringRef substr(size_t Start, size_t N = npos) const {
  61. return StringRef(Data + Start, min(N, Length - Start));
  62. }
  63. };
  64. }
  65. namespace clang {
  66. class IdentifierInfo {
  67. public:IdentifierInfo();
  68. const char *getNameStart() const {
  69. typedef std::pair < IdentifierInfo, const char *>actualtype;
  70. return ((const actualtype *) this)->second;
  71. }
  72. unsigned getLength() const {
  73. typedef std::pair < IdentifierInfo, const char *>actualtype;
  74. const char *p = ((const actualtype *) this)->second - 2;
  75. return (((unsigned) p[0]) | (((unsigned) p[1]) << 8)) - 1;
  76. }
  77. llvm::StringRef getName() const {
  78. return llvm::StringRef(getNameStart(), getLength());
  79. }
  80. };
  81. }
  82. namespace llvm {
  83. template < typename T, typename R = T > class StringSwitch {
  84. StringRef Str;
  85. const T *Result;
  86. public:
  87. explicit StringSwitch(StringRef Str) : Str(Str), Result(0) {}
  88. template < unsigned N > StringSwitch & Case(const char (&S)[N],
  89. const T & Value) {
  90. return *this;
  91. }
  92. R Default(const T & Value) const {
  93. return Value;
  94. }
  95. };
  96. }
  97. using namespace clang;
  98. AttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) {
  99. llvm::StringRef AttrName = Name->getName();
  100. if (AttrName.startswith("__") && AttrName.endswith("__"))
  101. AttrName = AttrName.substr(2, AttrName.size() - 4);
  102. return llvm::StringSwitch < AttributeList::Kind > (AttrName)
  103. .Case("weak", AT_weak)
  104. .Case("weakref", AT_weakref)
  105. .Case("pure", AT_pure)
  106. .Case("mode", AT_mode)
  107. .Case("used", AT_used)
  108. .Case("alias", AT_alias)
  109. .Case("align", AT_aligned)
  110. .Case("final", AT_final)
  111. .Case("cdecl", AT_cdecl)
  112. .Case("const", AT_const)
  113. .Case("__const", AT_const)
  114. .Case("blocks", AT_blocks)
  115. .Case("format", AT_format)
  116. .Case("hiding", AT_hiding)
  117. .Case("malloc", AT_malloc)
  118. .Case("packed", AT_packed)
  119. .Case("unused", AT_unused)
  120. .Case("aligned", AT_aligned)
  121. .Case("cleanup", AT_cleanup)
  122. .Case("naked", AT_naked)
  123. .Case("nodebug", AT_nodebug)
  124. .Case("nonnull", AT_nonnull)
  125. .Case("nothrow", AT_nothrow)
  126. .Case("objc_gc", AT_objc_gc)
  127. .Case("regparm", AT_regparm)
  128. .Case("section", AT_section)
  129. .Case("stdcall", AT_stdcall)
  130. .Case("annotate", AT_annotate)
  131. .Case("fastcall", AT_fastcall)
  132. .Case("ibaction", AT_IBAction)
  133. .Case("iboutlet", AT_IBOutlet)
  134. .Case("iboutletcollection", AT_IBOutletCollection)
  135. .Case("noreturn", AT_noreturn)
  136. .Case("noinline", AT_noinline)
  137. .Case("override", AT_override)
  138. .Case("sentinel", AT_sentinel)
  139. .Case("NSObject", AT_nsobject)
  140. .Case("dllimport", AT_dllimport)
  141. .Case("dllexport", AT_dllexport)
  142. .Case("may_alias", IgnoredAttribute)
  143. .Case("base_check", AT_base_check)
  144. .Case("deprecated", AT_deprecated)
  145. .Case("visibility", AT_visibility)
  146. .Case("destructor", AT_destructor)
  147. .Case("format_arg", AT_format_arg)
  148. .Case("gnu_inline", AT_gnu_inline)
  149. .Case("weak_import", AT_weak_import)
  150. .Case("vecreturn", AT_vecreturn)
  151. .Case("vector_size", AT_vector_size)
  152. .Case("constructor", AT_constructor)
  153. .Case("unavailable", AT_unavailable)
  154. .Case("overloadable", AT_overloadable)
  155. .Case("address_space", AT_address_space)
  156. .Case("always_inline", AT_always_inline)
  157. .Case("returns_twice", AT_returns_twice)
  158. .Case("vec_type_hint", IgnoredAttribute)
  159. .Case("objc_exception", AT_objc_exception)
  160. .Case("ext_vector_type", AT_ext_vector_type)
  161. .Case("transparent_union", AT_transparent_union)
  162. .Case("analyzer_noreturn", AT_analyzer_noreturn)
  163. .Case("warn_unused_result", AT_warn_unused_result)
  164. .Case("carries_dependency", AT_carries_dependency)
  165. .Case("ns_returns_not_retained", AT_ns_returns_not_retained)
  166. .Case("ns_returns_retained", AT_ns_returns_retained)
  167. .Case("cf_returns_not_retained", AT_cf_returns_not_retained)
  168. .Case("cf_returns_retained", AT_cf_returns_retained)
  169. .Case("ownership_returns", AT_ownership_returns)
  170. .Case("ownership_holds", AT_ownership_holds)
  171. .Case("ownership_takes", AT_ownership_takes)
  172. .Case("reqd_work_group_size", AT_reqd_wg_size)
  173. .Case("init_priority", AT_init_priority)
  174. .Case("no_instrument_function", AT_no_instrument_function)
  175. .Case("thiscall", AT_thiscall)
  176. .Case("pascal", AT_pascal)
  177. .Case("__cdecl", AT_cdecl)
  178. .Case("__stdcall", AT_stdcall)
  179. .Case("__fastcall", AT_fastcall)
  180. .Case("__thiscall", AT_thiscall)
  181. .Case("__pascal", AT_pascal)
  182. .Default(UnknownAttribute);
  183. }
  184. // RUN: c-index-test -test-annotate-tokens=%s:1:1:186:1 -target x86_64-unknown-unknown %s 2>&1 | FileCheck -check-prefix=CHECK-tokens %s
  185. // CHECK-tokens: Keyword: "typedef" [1:1 - 1:8]
  186. // CHECK-tokens: Keyword: "long" [1:9 - 1:13]
  187. // CHECK-tokens: Keyword: "unsigned" [1:14 - 1:22]
  188. // CHECK-tokens: Keyword: "int" [1:23 - 1:26]
  189. // CHECK-tokens: Identifier: "__darwin_size_t" [1:27 - 1:42] TypedefDecl=__darwin_size_t:1:27 (Definition)
  190. // CHECK-tokens: Punctuation: ";" [1:42 - 1:43]
  191. // CHECK-tokens: Keyword: "typedef" [2:1 - 2:8]
  192. // CHECK-tokens: Identifier: "__darwin_size_t" [2:9 - 2:24]
  193. // CHECK-tokens: Identifier: "size_t" [2:25 - 2:31] TypedefDecl=size_t:2:25 (Definition)
  194. // CHECK-tokens: Punctuation: ";" [2:31 - 2:32]
  195. // CHECK-tokens: Keyword: "namespace" [3:1 - 3:10]
  196. // CHECK-tokens: Identifier: "std" [3:11 - 3:14] Namespace=std:3:11 (Definition)
  197. // CHECK-tokens: Punctuation: "{" [3:15 - 3:16] Namespace=std:3:11 (Definition)
  198. // CHECK-tokens: Keyword: "template" [4:3 - 4:11] ClassTemplate=pair:4:44 (Definition)
  199. // CHECK-tokens: Punctuation: "<" [4:12 - 4:13] ClassTemplate=pair:4:44 (Definition)
  200. // CHECK-tokens: Keyword: "class" [4:14 - 4:19] TemplateTypeParameter=_T1:4:20 (Definition)
  201. // CHECK-tokens: Identifier: "_T1" [4:20 - 4:23] TemplateTypeParameter=_T1:4:20 (Definition)
  202. // CHECK-tokens: Punctuation: "," [4:23 - 4:24] ClassTemplate=pair:4:44 (Definition)
  203. // CHECK-tokens: Keyword: "class" [4:25 - 4:30] TemplateTypeParameter=_T2:4:31 (Definition)
  204. // CHECK-tokens: Identifier: "_T2" [4:31 - 4:34] TemplateTypeParameter=_T2:4:31 (Definition)
  205. // CHECK-tokens: Punctuation: ">" [4:35 - 4:36] ClassTemplate=pair:4:44 (Definition)
  206. // CHECK-tokens: Keyword: "struct" [4:37 - 4:43] ClassTemplate=pair:4:44 (Definition)
  207. // CHECK-tokens: Identifier: "pair" [4:44 - 4:48] ClassTemplate=pair:4:44 (Definition)
  208. // CHECK-tokens: Punctuation: "{" [4:49 - 4:50] ClassTemplate=pair:4:44 (Definition)
  209. // CHECK-tokens: Identifier: "_T2" [4:51 - 4:54] TypeRef=_T2:4:31
  210. // CHECK-tokens: Identifier: "second" [4:55 - 4:61] FieldDecl=second:4:55 (Definition)
  211. // CHECK-tokens: Punctuation: ";" [4:61 - 4:62] ClassTemplate=pair:4:44 (Definition)
  212. // CHECK-tokens: Punctuation: "}" [4:63 - 4:64] ClassTemplate=pair:4:44 (Definition)
  213. // CHECK-tokens: Punctuation: ";" [4:64 - 4:65] Namespace=std:3:11 (Definition)
  214. // CHECK-tokens: Punctuation: "}" [5:1 - 5:2] Namespace=std:3:11 (Definition)
  215. // CHECK-tokens: Keyword: "extern" [6:1 - 6:7]
  216. // CHECK-tokens: Literal: ""C"" [6:8 - 6:11] UnexposedDecl=:6:8 (Definition)
  217. // CHECK-tokens: Punctuation: "{" [6:12 - 6:13] UnexposedDecl=:6:8 (Definition)
  218. // CHECK-tokens: Keyword: "int" [7:3 - 7:6] FunctionDecl=memcmp:7:7
  219. // CHECK-tokens: Identifier: "memcmp" [7:7 - 7:13] FunctionDecl=memcmp:7:7
  220. // CHECK-tokens: Punctuation: "(" [7:13 - 7:14] FunctionDecl=memcmp:7:7
  221. // CHECK-tokens: Keyword: "const" [7:14 - 7:19] ParmDecl=:7:26 (Definition)
  222. // CHECK-tokens: Keyword: "void" [7:20 - 7:24] ParmDecl=:7:26 (Definition)
  223. // CHECK-tokens: Punctuation: "*" [7:25 - 7:26] ParmDecl=:7:26 (Definition)
  224. // CHECK-tokens: Punctuation: "," [7:26 - 7:27] FunctionDecl=memcmp:7:7
  225. // CHECK-tokens: Keyword: "const" [7:28 - 7:33] ParmDecl=:7:40 (Definition)
  226. // CHECK-tokens: Keyword: "void" [7:34 - 7:38] ParmDecl=:7:40 (Definition)
  227. // CHECK-tokens: Punctuation: "*" [7:39 - 7:40] ParmDecl=:7:40 (Definition)
  228. // CHECK-tokens: Punctuation: "," [7:40 - 7:41] FunctionDecl=memcmp:7:7
  229. // CHECK-tokens: Identifier: "size_t" [7:42 - 7:48] TypeRef=size_t:2:25
  230. // CHECK-tokens: Punctuation: ")" [7:48 - 7:49] FunctionDecl=memcmp:7:7
  231. // CHECK-tokens: Punctuation: ";" [7:49 - 7:50] UnexposedDecl=:6:8 (Definition)
  232. // CHECK-tokens: Identifier: "size_t" [8:3 - 8:9] TypeRef=size_t:2:25
  233. // CHECK-tokens: Identifier: "strlen" [8:10 - 8:16] FunctionDecl=strlen:8:10
  234. // CHECK-tokens: Punctuation: "(" [8:16 - 8:17] FunctionDecl=strlen:8:10
  235. // CHECK-tokens: Keyword: "const" [8:17 - 8:22] ParmDecl=:8:29 (Definition)
  236. // CHECK-tokens: Keyword: "char" [8:23 - 8:27] ParmDecl=:8:29 (Definition)
  237. // CHECK-tokens: Punctuation: "*" [8:28 - 8:29] ParmDecl=:8:29 (Definition)
  238. // CHECK-tokens: Punctuation: ")" [8:29 - 8:30] FunctionDecl=strlen:8:10
  239. // CHECK-tokens: Punctuation: ";" [8:30 - 8:31]
  240. // CHECK-tokens: Punctuation: "}" [9:1 - 9:2]
  241. // CHECK-tokens: Keyword: "namespace" [10:1 - 10:10]
  242. // CHECK-tokens: Identifier: "clang" [10:17 - 10:22] Namespace=clang:10:17 (Definition)
  243. // CHECK-tokens: Punctuation: "{" [10:23 - 10:24] Namespace=clang:10:17 (Definition)
  244. // CHECK-tokens: Keyword: "class" [11:3 - 11:8] ClassDecl=IdentifierInfo:11:9
  245. // CHECK-tokens: Identifier: "IdentifierInfo" [11:9 - 11:23] ClassDecl=IdentifierInfo:11:9
  246. // CHECK-tokens: Punctuation: ";" [11:23 - 11:24] Namespace=clang:10:17 (Definition)
  247. // CHECK-tokens: Keyword: "class" [12:3 - 12:8] ClassDecl=AttributeList:12:9 (Definition)
  248. // CHECK-tokens: Identifier: "AttributeList" [12:9 - 12:22] ClassDecl=AttributeList:12:9 (Definition)
  249. // CHECK-tokens: Punctuation: "{" [12:23 - 12:24] ClassDecl=AttributeList:12:9 (Definition)
  250. // CHECK-tokens: Keyword: "enum" [13:5 - 13:9] EnumDecl=Kind:13:10 (Definition)
  251. // CHECK-tokens: Identifier: "Kind" [13:10 - 13:14] EnumDecl=Kind:13:10 (Definition)
  252. // CHECK-tokens: Punctuation: "{" [13:15 - 13:16] EnumDecl=Kind:13:10 (Definition)
  253. // CHECK-tokens: Identifier: "AT_IBAction" [14:7 - 14:18] EnumConstantDecl=AT_IBAction:14:7 (Definition)
  254. // CHECK-tokens: Punctuation: "," [14:18 - 14:19] EnumDecl=Kind:13:10 (Definition)
  255. // CHECK-tokens: Identifier: "AT_IBOutlet" [14:20 - 14:31] EnumConstantDecl=AT_IBOutlet:14:20 (Definition)
  256. // CHECK-tokens: Punctuation: "," [14:31 - 14:32] EnumDecl=Kind:13:10 (Definition)
  257. // CHECK-tokens: Identifier: "AT_IBOutletCollection" [14:33 - 14:54] EnumConstantDecl=AT_IBOutletCollection:14:33 (Definition)
  258. // CHECK-tokens: Punctuation: "," [14:54 - 14:55] EnumDecl=Kind:13:10 (Definition)
  259. // CHECK-tokens: Identifier: "AT_address_space" [15:7 - 15:23] EnumConstantDecl=AT_address_space:15:7 (Definition)
  260. // CHECK-tokens: Punctuation: "," [15:23 - 15:24] EnumDecl=Kind:13:10 (Definition)
  261. // CHECK-tokens: Identifier: "AT_alias" [15:25 - 15:33] EnumConstantDecl=AT_alias:15:25 (Definition)
  262. // CHECK-tokens: Punctuation: "," [15:33 - 15:34] EnumDecl=Kind:13:10 (Definition)
  263. // CHECK-tokens: Identifier: "AT_aligned" [15:35 - 15:45] EnumConstantDecl=AT_aligned:15:35 (Definition)
  264. // CHECK-tokens: Punctuation: "," [15:45 - 15:46] EnumDecl=Kind:13:10 (Definition)
  265. // CHECK-tokens: Identifier: "AT_always_inline" [15:47 - 15:63] EnumConstantDecl=AT_always_inline:15:47 (Definition)
  266. // CHECK-tokens: Punctuation: "," [15:63 - 15:64] EnumDecl=Kind:13:10 (Definition)
  267. // CHECK-tokens: Identifier: "AT_analyzer_noreturn" [16:7 - 16:27] EnumConstantDecl=AT_analyzer_noreturn:16:7 (Definition)
  268. // CHECK-tokens: Punctuation: "," [16:27 - 16:28] EnumDecl=Kind:13:10 (Definition)
  269. // CHECK-tokens: Identifier: "AT_annotate" [16:29 - 16:40] EnumConstantDecl=AT_annotate:16:29 (Definition)
  270. // CHECK-tokens: Punctuation: "," [16:40 - 16:41] EnumDecl=Kind:13:10 (Definition)
  271. // CHECK-tokens: Identifier: "AT_base_check" [16:42 - 16:55] EnumConstantDecl=AT_base_check:16:42 (Definition)
  272. // CHECK-tokens: Punctuation: "," [16:55 - 16:56] EnumDecl=Kind:13:10 (Definition)
  273. // CHECK-tokens: Identifier: "AT_blocks" [16:57 - 16:66] EnumConstantDecl=AT_blocks:16:57 (Definition)
  274. // CHECK-tokens: Punctuation: "," [16:66 - 16:67] EnumDecl=Kind:13:10 (Definition)
  275. // CHECK-tokens: Identifier: "AT_carries_dependency" [17:7 - 17:28] EnumConstantDecl=AT_carries_dependency:17:7 (Definition)
  276. // CHECK-tokens: Punctuation: "," [17:28 - 17:29] EnumDecl=Kind:13:10 (Definition)
  277. // CHECK-tokens: Identifier: "AT_cdecl" [17:30 - 17:38] EnumConstantDecl=AT_cdecl:17:30 (Definition)
  278. // CHECK-tokens: Punctuation: "," [17:38 - 17:39] EnumDecl=Kind:13:10 (Definition)
  279. // CHECK-tokens: Identifier: "AT_cleanup" [17:40 - 17:50] EnumConstantDecl=AT_cleanup:17:40 (Definition)
  280. // CHECK-tokens: Punctuation: "," [17:50 - 17:51] EnumDecl=Kind:13:10 (Definition)
  281. // CHECK-tokens: Identifier: "AT_const" [17:52 - 17:60] EnumConstantDecl=AT_const:17:52 (Definition)
  282. // CHECK-tokens: Punctuation: "," [17:60 - 17:61] EnumDecl=Kind:13:10 (Definition)
  283. // CHECK-tokens: Identifier: "AT_constructor" [17:62 - 17:76] EnumConstantDecl=AT_constructor:17:62 (Definition)
  284. // CHECK-tokens: Punctuation: "," [17:76 - 17:77] EnumDecl=Kind:13:10 (Definition)
  285. // CHECK-tokens: Identifier: "AT_deprecated" [18:7 - 18:20] EnumConstantDecl=AT_deprecated:18:7 (Definition)
  286. // CHECK-tokens: Punctuation: "," [18:20 - 18:21] EnumDecl=Kind:13:10 (Definition)
  287. // CHECK-tokens: Identifier: "AT_destructor" [18:22 - 18:35] EnumConstantDecl=AT_destructor:18:22 (Definition)
  288. // CHECK-tokens: Punctuation: "," [18:35 - 18:36] EnumDecl=Kind:13:10 (Definition)
  289. // CHECK-tokens: Identifier: "AT_dllexport" [18:37 - 18:49] EnumConstantDecl=AT_dllexport:18:37 (Definition)
  290. // CHECK-tokens: Punctuation: "," [18:49 - 18:50] EnumDecl=Kind:13:10 (Definition)
  291. // CHECK-tokens: Identifier: "AT_dllimport" [18:51 - 18:63] EnumConstantDecl=AT_dllimport:18:51 (Definition)
  292. // CHECK-tokens: Punctuation: "," [18:63 - 18:64] EnumDecl=Kind:13:10 (Definition)
  293. // CHECK-tokens: Identifier: "AT_ext_vector_type" [19:7 - 19:25] EnumConstantDecl=AT_ext_vector_type:19:7 (Definition)
  294. // CHECK-tokens: Punctuation: "," [19:25 - 19:26] EnumDecl=Kind:13:10 (Definition)
  295. // CHECK-tokens: Identifier: "AT_fastcall" [19:27 - 19:38] EnumConstantDecl=AT_fastcall:19:27 (Definition)
  296. // CHECK-tokens: Punctuation: "," [19:38 - 19:39] EnumDecl=Kind:13:10 (Definition)
  297. // CHECK-tokens: Identifier: "AT_final" [19:40 - 19:48] EnumConstantDecl=AT_final:19:40 (Definition)
  298. // CHECK-tokens: Punctuation: "," [19:48 - 19:49] EnumDecl=Kind:13:10 (Definition)
  299. // CHECK-tokens: Identifier: "AT_format" [19:50 - 19:59] EnumConstantDecl=AT_format:19:50 (Definition)
  300. // CHECK-tokens: Punctuation: "," [19:59 - 19:60] EnumDecl=Kind:13:10 (Definition)
  301. // CHECK-tokens: Identifier: "AT_format_arg" [19:61 - 19:74] EnumConstantDecl=AT_format_arg:19:61 (Definition)
  302. // CHECK-tokens: Punctuation: "," [19:74 - 19:75] EnumDecl=Kind:13:10 (Definition)
  303. // CHECK-tokens: Identifier: "AT_gnu_inline" [20:7 - 20:20] EnumConstantDecl=AT_gnu_inline:20:7 (Definition)
  304. // CHECK-tokens: Punctuation: "," [20:20 - 20:21] EnumDecl=Kind:13:10 (Definition)
  305. // CHECK-tokens: Identifier: "AT_hiding" [20:22 - 20:31] EnumConstantDecl=AT_hiding:20:22 (Definition)
  306. // CHECK-tokens: Punctuation: "," [20:31 - 20:32] EnumDecl=Kind:13:10 (Definition)
  307. // CHECK-tokens: Identifier: "AT_malloc" [20:33 - 20:42] EnumConstantDecl=AT_malloc:20:33 (Definition)
  308. // CHECK-tokens: Punctuation: "," [20:42 - 20:43] EnumDecl=Kind:13:10 (Definition)
  309. // CHECK-tokens: Identifier: "AT_mode" [20:44 - 20:51] EnumConstantDecl=AT_mode:20:44 (Definition)
  310. // CHECK-tokens: Punctuation: "," [20:51 - 20:52] EnumDecl=Kind:13:10 (Definition)
  311. // CHECK-tokens: Identifier: "AT_naked" [20:53 - 20:61] EnumConstantDecl=AT_naked:20:53 (Definition)
  312. // CHECK-tokens: Punctuation: "," [20:61 - 20:62] EnumDecl=Kind:13:10 (Definition)
  313. // CHECK-tokens: Identifier: "AT_nodebug" [20:63 - 20:73] EnumConstantDecl=AT_nodebug:20:63 (Definition)
  314. // CHECK-tokens: Punctuation: "," [20:73 - 20:74] EnumDecl=Kind:13:10 (Definition)
  315. // CHECK-tokens: Identifier: "AT_noinline" [21:7 - 21:18] EnumConstantDecl=AT_noinline:21:7 (Definition)
  316. // CHECK-tokens: Punctuation: "," [21:18 - 21:19] EnumDecl=Kind:13:10 (Definition)
  317. // CHECK-tokens: Identifier: "AT_no_instrument_function" [21:20 - 21:45] EnumConstantDecl=AT_no_instrument_function:21:20 (Definition)
  318. // CHECK-tokens: Punctuation: "," [21:45 - 21:46] EnumDecl=Kind:13:10 (Definition)
  319. // CHECK-tokens: Identifier: "AT_nonnull" [21:47 - 21:57] EnumConstantDecl=AT_nonnull:21:47 (Definition)
  320. // CHECK-tokens: Punctuation: "," [21:57 - 21:58] EnumDecl=Kind:13:10 (Definition)
  321. // CHECK-tokens: Identifier: "AT_noreturn" [21:59 - 21:70] EnumConstantDecl=AT_noreturn:21:59 (Definition)
  322. // CHECK-tokens: Punctuation: "," [21:70 - 21:71] EnumDecl=Kind:13:10 (Definition)
  323. // CHECK-tokens: Identifier: "AT_nothrow" [22:7 - 22:17] EnumConstantDecl=AT_nothrow:22:7 (Definition)
  324. // CHECK-tokens: Punctuation: "," [22:17 - 22:18] EnumDecl=Kind:13:10 (Definition)
  325. // CHECK-tokens: Identifier: "AT_nsobject" [22:19 - 22:30] EnumConstantDecl=AT_nsobject:22:19 (Definition)
  326. // CHECK-tokens: Punctuation: "," [22:30 - 22:31] EnumDecl=Kind:13:10 (Definition)
  327. // CHECK-tokens: Identifier: "AT_objc_exception" [22:32 - 22:49] EnumConstantDecl=AT_objc_exception:22:32 (Definition)
  328. // CHECK-tokens: Punctuation: "," [22:49 - 22:50] EnumDecl=Kind:13:10 (Definition)
  329. // CHECK-tokens: Identifier: "AT_override" [22:51 - 22:62] EnumConstantDecl=AT_override:22:51 (Definition)
  330. // CHECK-tokens: Punctuation: "," [22:62 - 22:63] EnumDecl=Kind:13:10 (Definition)
  331. // CHECK-tokens: Identifier: "AT_cf_returns_not_retained" [23:7 - 23:33] EnumConstantDecl=AT_cf_returns_not_retained:23:7 (Definition)
  332. // CHECK-tokens: Punctuation: "," [23:33 - 23:34] EnumDecl=Kind:13:10 (Definition)
  333. // CHECK-tokens: Identifier: "AT_cf_returns_retained" [23:35 - 23:57] EnumConstantDecl=AT_cf_returns_retained:23:35 (Definition)
  334. // CHECK-tokens: Punctuation: "," [23:57 - 23:58] EnumDecl=Kind:13:10 (Definition)
  335. // CHECK-tokens: Identifier: "AT_ns_returns_not_retained" [24:7 - 24:33] EnumConstantDecl=AT_ns_returns_not_retained:24:7 (Definition)
  336. // CHECK-tokens: Punctuation: "," [24:33 - 24:34] EnumDecl=Kind:13:10 (Definition)
  337. // CHECK-tokens: Identifier: "AT_ns_returns_retained" [24:35 - 24:57] EnumConstantDecl=AT_ns_returns_retained:24:35 (Definition)
  338. // CHECK-tokens: Punctuation: "," [24:57 - 24:58] EnumDecl=Kind:13:10 (Definition)
  339. // CHECK-tokens: Identifier: "AT_objc_gc" [24:59 - 24:69] EnumConstantDecl=AT_objc_gc:24:59 (Definition)
  340. // CHECK-tokens: Punctuation: "," [24:69 - 24:70] EnumDecl=Kind:13:10 (Definition)
  341. // CHECK-tokens: Identifier: "AT_overloadable" [25:7 - 25:22] EnumConstantDecl=AT_overloadable:25:7 (Definition)
  342. // CHECK-tokens: Punctuation: "," [25:22 - 25:23] EnumDecl=Kind:13:10 (Definition)
  343. // CHECK-tokens: Identifier: "AT_ownership_holds" [25:24 - 25:42] EnumConstantDecl=AT_ownership_holds:25:24 (Definition)
  344. // CHECK-tokens: Punctuation: "," [25:42 - 25:43] EnumDecl=Kind:13:10 (Definition)
  345. // CHECK-tokens: Identifier: "AT_ownership_returns" [25:44 - 25:64] EnumConstantDecl=AT_ownership_returns:25:44 (Definition)
  346. // CHECK-tokens: Punctuation: "," [25:64 - 25:65] EnumDecl=Kind:13:10 (Definition)
  347. // CHECK-tokens: Identifier: "AT_ownership_takes" [26:7 - 26:25] EnumConstantDecl=AT_ownership_takes:26:7 (Definition)
  348. // CHECK-tokens: Punctuation: "," [26:25 - 26:26] EnumDecl=Kind:13:10 (Definition)
  349. // CHECK-tokens: Identifier: "AT_packed" [26:27 - 26:36] EnumConstantDecl=AT_packed:26:27 (Definition)
  350. // CHECK-tokens: Punctuation: "," [26:36 - 26:37] EnumDecl=Kind:13:10 (Definition)
  351. // CHECK-tokens: Identifier: "AT_pascal" [26:38 - 26:47] EnumConstantDecl=AT_pascal:26:38 (Definition)
  352. // CHECK-tokens: Punctuation: "," [26:47 - 26:48] EnumDecl=Kind:13:10 (Definition)
  353. // CHECK-tokens: Identifier: "AT_pure" [26:49 - 26:56] EnumConstantDecl=AT_pure:26:49 (Definition)
  354. // CHECK-tokens: Punctuation: "," [26:56 - 26:57] EnumDecl=Kind:13:10 (Definition)
  355. // CHECK-tokens: Identifier: "AT_regparm" [26:58 - 26:68] EnumConstantDecl=AT_regparm:26:58 (Definition)
  356. // CHECK-tokens: Punctuation: "," [26:68 - 26:69] EnumDecl=Kind:13:10 (Definition)
  357. // CHECK-tokens: Identifier: "AT_section" [27:7 - 27:17] EnumConstantDecl=AT_section:27:7 (Definition)
  358. // CHECK-tokens: Punctuation: "," [27:17 - 27:18] EnumDecl=Kind:13:10 (Definition)
  359. // CHECK-tokens: Identifier: "AT_sentinel" [27:19 - 27:30] EnumConstantDecl=AT_sentinel:27:19 (Definition)
  360. // CHECK-tokens: Punctuation: "," [27:30 - 27:31] EnumDecl=Kind:13:10 (Definition)
  361. // CHECK-tokens: Identifier: "AT_stdcall" [27:32 - 27:42] EnumConstantDecl=AT_stdcall:27:32 (Definition)
  362. // CHECK-tokens: Punctuation: "," [27:42 - 27:43] EnumDecl=Kind:13:10 (Definition)
  363. // CHECK-tokens: Identifier: "AT_thiscall" [27:44 - 27:55] EnumConstantDecl=AT_thiscall:27:44 (Definition)
  364. // CHECK-tokens: Punctuation: "," [27:55 - 27:56] EnumDecl=Kind:13:10 (Definition)
  365. // CHECK-tokens: Identifier: "AT_transparent_union" [27:57 - 27:77] EnumConstantDecl=AT_transparent_union:27:57 (Definition)
  366. // CHECK-tokens: Punctuation: "," [27:77 - 27:78] EnumDecl=Kind:13:10 (Definition)
  367. // CHECK-tokens: Identifier: "AT_unavailable" [28:7 - 28:21] EnumConstantDecl=AT_unavailable:28:7 (Definition)
  368. // CHECK-tokens: Punctuation: "," [28:21 - 28:22] EnumDecl=Kind:13:10 (Definition)
  369. // CHECK-tokens: Identifier: "AT_unused" [28:23 - 28:32] EnumConstantDecl=AT_unused:28:23 (Definition)
  370. // CHECK-tokens: Punctuation: "," [28:32 - 28:33] EnumDecl=Kind:13:10 (Definition)
  371. // CHECK-tokens: Identifier: "AT_used" [28:34 - 28:41] EnumConstantDecl=AT_used:28:34 (Definition)
  372. // CHECK-tokens: Punctuation: "," [28:41 - 28:42] EnumDecl=Kind:13:10 (Definition)
  373. // CHECK-tokens: Identifier: "AT_vecreturn" [28:43 - 28:55] EnumConstantDecl=AT_vecreturn:28:43 (Definition)
  374. // CHECK-tokens: Punctuation: "," [28:55 - 28:56] EnumDecl=Kind:13:10 (Definition)
  375. // CHECK-tokens: Identifier: "AT_vector_size" [28:57 - 28:71] EnumConstantDecl=AT_vector_size:28:57 (Definition)
  376. // CHECK-tokens: Punctuation: "," [28:71 - 28:72] EnumDecl=Kind:13:10 (Definition)
  377. // CHECK-tokens: Identifier: "AT_visibility" [29:7 - 29:20] EnumConstantDecl=AT_visibility:29:7 (Definition)
  378. // CHECK-tokens: Punctuation: "," [29:20 - 29:21] EnumDecl=Kind:13:10 (Definition)
  379. // CHECK-tokens: Identifier: "AT_warn_unused_result" [29:22 - 29:43] EnumConstantDecl=AT_warn_unused_result:29:22 (Definition)
  380. // CHECK-tokens: Punctuation: "," [29:43 - 29:44] EnumDecl=Kind:13:10 (Definition)
  381. // CHECK-tokens: Identifier: "AT_weak" [29:45 - 29:52] EnumConstantDecl=AT_weak:29:45 (Definition)
  382. // CHECK-tokens: Punctuation: "," [29:52 - 29:53] EnumDecl=Kind:13:10 (Definition)
  383. // CHECK-tokens: Identifier: "AT_weakref" [29:54 - 29:64] EnumConstantDecl=AT_weakref:29:54 (Definition)
  384. // CHECK-tokens: Punctuation: "," [29:64 - 29:65] EnumDecl=Kind:13:10 (Definition)
  385. // CHECK-tokens: Identifier: "AT_weak_import" [30:7 - 30:21] EnumConstantDecl=AT_weak_import:30:7 (Definition)
  386. // CHECK-tokens: Punctuation: "," [30:21 - 30:22] EnumDecl=Kind:13:10 (Definition)
  387. // CHECK-tokens: Identifier: "AT_reqd_wg_size" [30:23 - 30:38] EnumConstantDecl=AT_reqd_wg_size:30:23 (Definition)
  388. // CHECK-tokens: Punctuation: "," [30:38 - 30:39] EnumDecl=Kind:13:10 (Definition)
  389. // CHECK-tokens: Identifier: "AT_init_priority" [30:40 - 30:56] EnumConstantDecl=AT_init_priority:30:40 (Definition)
  390. // CHECK-tokens: Punctuation: "," [30:56 - 30:57] EnumDecl=Kind:13:10 (Definition)
  391. // CHECK-tokens: Identifier: "AT_returns_twice" [31:7 - 31:23] EnumConstantDecl=AT_returns_twice:31:7 (Definition)
  392. // CHECK-tokens: Punctuation: "," [31:23 - 31:24] EnumDecl=Kind:13:10 (Definition)
  393. // CHECK-tokens: Identifier: "IgnoredAttribute" [31:25 - 31:41] EnumConstantDecl=IgnoredAttribute:31:25 (Definition)
  394. // CHECK-tokens: Punctuation: "}" [32:5 - 32:6] EnumDecl=Kind:13:10 (Definition)
  395. // CHECK-tokens: Punctuation: ";" [32:6 - 32:7] ClassDecl=AttributeList:12:9 (Definition)
  396. // CHECK-tokens: Keyword: "static" [33:5 - 33:11] CXXMethod=getKind:33:17 (static)
  397. // CHECK-tokens: Identifier: "Kind" [33:12 - 33:16] TypeRef=enum clang::AttributeList::Kind:13:10
  398. // CHECK-tokens: Identifier: "getKind" [33:17 - 33:24] CXXMethod=getKind:33:17 (static)
  399. // CHECK-tokens: Punctuation: "(" [33:24 - 33:25] CXXMethod=getKind:33:17 (static)
  400. // CHECK-tokens: Keyword: "const" [33:25 - 33:30] ParmDecl=Name:33:48 (Definition)
  401. // CHECK-tokens: Identifier: "IdentifierInfo" [33:31 - 33:45] TypeRef=class clang::IdentifierInfo:66:7
  402. // CHECK-tokens: Punctuation: "*" [33:46 - 33:47] ParmDecl=Name:33:48 (Definition)
  403. // CHECK-tokens: Identifier: "Name" [33:48 - 33:52] ParmDecl=Name:33:48 (Definition)
  404. // CHECK-tokens: Punctuation: ")" [33:52 - 33:53] CXXMethod=getKind:33:17 (static)
  405. // CHECK-tokens: Punctuation: ";" [33:53 - 33:54] ClassDecl=AttributeList:12:9 (Definition)
  406. // CHECK-tokens: Punctuation: "}" [34:3 - 34:4] ClassDecl=AttributeList:12:9 (Definition)
  407. // CHECK-tokens: Punctuation: ";" [34:4 - 34:5] Namespace=clang:10:17 (Definition)
  408. // CHECK-tokens: Punctuation: "}" [35:1 - 35:2] Namespace=clang:10:17 (Definition)
  409. // CHECK-tokens: Identifier: "size_t" [36:1 - 36:7] TypeRef=size_t:2:25
  410. // CHECK-tokens: Identifier: "magic_length" [36:8 - 36:20] FunctionDecl=magic_length:36:8
  411. // CHECK-tokens: Punctuation: "(" [36:20 - 36:21] FunctionDecl=magic_length:36:8
  412. // CHECK-tokens: Keyword: "const" [36:21 - 36:26] ParmDecl=s:36:33 (Definition)
  413. // CHECK-tokens: Keyword: "char" [36:27 - 36:31] ParmDecl=s:36:33 (Definition)
  414. // CHECK-tokens: Punctuation: "*" [36:32 - 36:33] ParmDecl=s:36:33 (Definition)
  415. // CHECK-tokens: Identifier: "s" [36:33 - 36:34] ParmDecl=s:36:33 (Definition)
  416. // CHECK-tokens: Punctuation: ")" [36:34 - 36:35] FunctionDecl=magic_length:36:8
  417. // CHECK-tokens: Punctuation: ";" [36:35 - 36:36]
  418. // CHECK-tokens: Keyword: "namespace" [37:1 - 37:10]
  419. // CHECK-tokens: Identifier: "llvm" [37:11 - 37:15] Namespace=llvm:37:11 (Definition)
  420. // CHECK-tokens: Punctuation: "{" [37:16 - 37:17] Namespace=llvm:37:11 (Definition)
  421. // CHECK-tokens: Keyword: "class" [38:1 - 38:6] ClassDecl=StringRef:38:7 (Definition)
  422. // CHECK-tokens: Identifier: "StringRef" [38:7 - 38:16] ClassDecl=StringRef:38:7 (Definition)
  423. // CHECK-tokens: Punctuation: "{" [38:17 - 38:18] ClassDecl=StringRef:38:7 (Definition)
  424. // CHECK-tokens: Keyword: "public" [39:1 - 39:7] CXXAccessSpecifier=:39:1 (Definition)
  425. // CHECK-tokens: Punctuation: ":" [39:7 - 39:8] CXXAccessSpecifier=:39:1 (Definition)
  426. // CHECK-tokens: Keyword: "typedef" [40:3 - 40:10] TypedefDecl=iterator:40:23 (Definition)
  427. // CHECK-tokens: Keyword: "const" [40:11 - 40:16] TypedefDecl=iterator:40:23 (Definition)
  428. // CHECK-tokens: Keyword: "char" [40:17 - 40:21] TypedefDecl=iterator:40:23 (Definition)
  429. // CHECK-tokens: Punctuation: "*" [40:22 - 40:23] TypedefDecl=iterator:40:23 (Definition)
  430. // CHECK-tokens: Identifier: "iterator" [40:23 - 40:31] TypedefDecl=iterator:40:23 (Definition)
  431. // CHECK-tokens: Punctuation: ";" [40:31 - 40:32] ClassDecl=StringRef:38:7 (Definition)
  432. // CHECK-tokens: Keyword: "static" [41:3 - 41:9] VarDecl=npos:41:23
  433. // CHECK-tokens: Keyword: "const" [41:10 - 41:15] VarDecl=npos:41:23
  434. // CHECK-tokens: Identifier: "size_t" [41:16 - 41:22] TypeRef=size_t:2:25
  435. // CHECK-tokens: Identifier: "npos" [41:23 - 41:27] VarDecl=npos:41:23
  436. // CHECK-tokens: Punctuation: "=" [41:28 - 41:29] VarDecl=npos:41:23
  437. // CHECK-tokens: Punctuation: "~" [41:30 - 41:31] UnaryOperator=
  438. // CHECK-tokens: Identifier: "size_t" [41:31 - 41:37] TypeRef=size_t:2:25
  439. // CHECK-tokens: Punctuation: "(" [41:37 - 41:38] CXXFunctionalCastExpr=
  440. // CHECK-tokens: Literal: "0" [41:38 - 41:39] IntegerLiteral=
  441. // CHECK-tokens: Punctuation: ")" [41:39 - 41:40] CXXFunctionalCastExpr
  442. // CHECK-tokens: Punctuation: ";" [41:40 - 41:41] ClassDecl=StringRef:38:7 (Definition)
  443. // CHECK-tokens: Keyword: "private" [42:1 - 42:8] CXXAccessSpecifier=:42:1 (Definition)
  444. // CHECK-tokens: Punctuation: ":" [42:8 - 42:9] CXXAccessSpecifier=:42:1 (Definition)
  445. // CHECK-tokens: Keyword: "const" [43:3 - 43:8] FieldDecl=Data:43:15 (Definition)
  446. // CHECK-tokens: Keyword: "char" [43:9 - 43:13] FieldDecl=Data:43:15 (Definition)
  447. // CHECK-tokens: Punctuation: "*" [43:14 - 43:15] FieldDecl=Data:43:15 (Definition)
  448. // CHECK-tokens: Identifier: "Data" [43:15 - 43:19] FieldDecl=Data:43:15 (Definition)
  449. // CHECK-tokens: Punctuation: ";" [43:19 - 43:20] ClassDecl=StringRef:38:7 (Definition)
  450. // CHECK-tokens: Identifier: "size_t" [44:3 - 44:9] TypeRef=size_t:2:25
  451. // CHECK-tokens: Identifier: "Length" [44:10 - 44:16] FieldDecl=Length:44:10 (Definition)
  452. // CHECK-tokens: Punctuation: ";" [44:16 - 44:17] ClassDecl=StringRef:38:7 (Definition)
  453. // CHECK-tokens: Keyword: "static" [45:3 - 45:9] CXXMethod=min:45:17 (Definition) (static)
  454. // CHECK-tokens: Identifier: "size_t" [45:10 - 45:16] TypeRef=size_t:2:25
  455. // CHECK-tokens: Identifier: "min" [45:17 - 45:20] CXXMethod=min:45:17 (Definition) (static)
  456. // CHECK-tokens: Punctuation: "(" [45:20 - 45:21] CXXMethod=min:45:17 (Definition) (static)
  457. // CHECK-tokens: Identifier: "size_t" [45:21 - 45:27] TypeRef=size_t:2:25
  458. // CHECK-tokens: Identifier: "a" [45:28 - 45:29] ParmDecl=a:45:28 (Definition)
  459. // CHECK-tokens: Punctuation: "," [45:29 - 45:30] CXXMethod=min:45:17 (Definition) (static)
  460. // CHECK-tokens: Identifier: "size_t" [45:31 - 45:37] TypeRef=size_t:2:25
  461. // CHECK-tokens: Identifier: "b" [45:38 - 45:39] ParmDecl=b:45:38 (Definition)
  462. // CHECK-tokens: Punctuation: ")" [45:39 - 45:40] CXXMethod=min:45:17 (Definition) (static)
  463. // CHECK-tokens: Punctuation: "{" [45:41 - 45:42] CompoundStmt=
  464. // CHECK-tokens: Keyword: "return" [45:43 - 45:49] ReturnStmt=
  465. // CHECK-tokens: Identifier: "a" [45:50 - 45:51] DeclRefExpr=a:45:28
  466. // CHECK-tokens: Punctuation: "<" [45:52 - 45:53] BinaryOperator=
  467. // CHECK-tokens: Identifier: "b" [45:54 - 45:55] DeclRefExpr=b:45:38
  468. // CHECK-tokens: Punctuation: "?" [45:56 - 45:57] ConditionalOperator=
  469. // CHECK-tokens: Identifier: "a" [45:58 - 45:59] DeclRefExpr=a:45:28
  470. // CHECK-tokens: Punctuation: ":" [45:60 - 45:61] ConditionalOperator
  471. // CHECK-tokens: Identifier: "b" [45:62 - 45:63] DeclRefExpr=b:45:38
  472. // CHECK-tokens: Punctuation: ";" [45:63 - 45:64] CompoundStmt=
  473. // CHECK-tokens: Punctuation: "}" [45:65 - 45:66] CompoundStmt=
  474. // CHECK-tokens: Keyword: "public" [46:1 - 46:7] CXXAccessSpecifier=:46:1 (Definition)
  475. // CHECK-tokens: Punctuation: ":" [46:7 - 46:8] CXXAccessSpecifier=:46:1 (Definition)
  476. // CHECK-tokens: Identifier: "StringRef" [47:3 - 47:12] CXXConstructor=StringRef:47:3 (Definition)
  477. // CHECK-tokens: Punctuation: "(" [47:12 - 47:13] CXXConstructor=StringRef:47:3 (Definition)
  478. // CHECK-tokens: Punctuation: ")" [47:13 - 47:14] CXXConstructor=StringRef:47:3 (Definition)
  479. // CHECK-tokens: Punctuation: ":" [47:14 - 47:15] CXXConstructor=StringRef:47:3 (Definition)
  480. // CHECK-tokens: Identifier: "Data" [47:16 - 47:20] MemberRef=Data:43:15
  481. // CHECK-tokens: Punctuation: "(" [47:20 - 47:21] CXXConstructor=StringRef:47:3 (Definition)
  482. // CHECK-tokens: Literal: "0" [47:21 - 47:22] IntegerLiteral=
  483. // CHECK-tokens: Punctuation: ")" [47:22 - 47:23] CXXConstructor=StringRef:47:3 (Definition)
  484. // CHECK-tokens: Punctuation: "," [47:23 - 47:24] CXXConstructor=StringRef:47:3 (Definition)
  485. // CHECK-tokens: Identifier: "Length" [47:25 - 47:31] MemberRef=Length:44:10
  486. // CHECK-tokens: Punctuation: "(" [47:31 - 47:32] CXXConstructor=StringRef:47:3 (Definition)
  487. // CHECK-tokens: Literal: "0" [47:32 - 47:33] IntegerLiteral=
  488. // CHECK-tokens: Punctuation: ")" [47:33 - 47:34] CXXConstructor=StringRef:47:3 (Definition)
  489. // CHECK-tokens: Punctuation: "{" [47:35 - 47:36] CompoundStmt=
  490. // CHECK-tokens: Punctuation: "}" [47:36 - 47:37] CompoundStmt=
  491. // CHECK-tokens: Identifier: "StringRef" [48:3 - 48:12] CXXConstructor=StringRef:48:3 (Definition)
  492. // CHECK-tokens: Punctuation: "(" [48:12 - 48:13] CXXConstructor=StringRef:48:3 (Definition)
  493. // CHECK-tokens: Keyword: "const" [48:13 - 48:18] ParmDecl=Str:48:25 (Definition)
  494. // CHECK-tokens: Keyword: "char" [48:19 - 48:23] ParmDecl=Str:48:25 (Definition)
  495. // CHECK-tokens: Punctuation: "*" [48:24 - 48:25] ParmDecl=Str:48:25 (Definition)
  496. // CHECK-tokens: Identifier: "Str" [48:25 - 48:28] ParmDecl=Str:48:25 (Definition)
  497. // CHECK-tokens: Punctuation: ")" [48:28 - 48:29] CXXConstructor=StringRef:48:3 (Definition)
  498. // CHECK-tokens: Punctuation: ":" [48:30 - 48:31] CXXConstructor=StringRef:48:3 (Definition)
  499. // CHECK-tokens: Identifier: "Data" [48:32 - 48:36] MemberRef=Data:43:15
  500. // CHECK-tokens: Punctuation: "(" [48:36 - 48:37] CXXConstructor=StringRef:48:3 (Definition)
  501. // CHECK-tokens: Identifier: "Str" [48:37 - 48:40] DeclRefExpr=Str:48:25
  502. // CHECK-tokens: Punctuation: ")" [48:40 - 48:41] CXXConstructor=StringRef:48:3 (Definition)
  503. // CHECK-tokens: Punctuation: "," [48:41 - 48:42] CXXConstructor=StringRef:48:3 (Definition)
  504. // CHECK-tokens: Identifier: "Length" [48:43 - 48:49] MemberRef=Length:44:10
  505. // CHECK-tokens: Punctuation: "(" [48:49 - 48:50] CXXConstructor=StringRef:48:3 (Definition)
  506. // CHECK-tokens: Identifier: "magic_length" [48:50 - 48:62] DeclRefExpr=magic_length:36:8
  507. // CHECK-tokens: Punctuation: "(" [48:62 - 48:63] CallExpr=magic_length:36:8
  508. // CHECK-tokens: Identifier: "Str" [48:63 - 48:66] DeclRefExpr=Str:48:25
  509. // CHECK-tokens: Punctuation: ")" [48:66 - 48:67] CallExpr=magic_length:36:8
  510. // CHECK-tokens: Punctuation: ")" [48:67 - 48:68] CXXConstructor=StringRef:48:3 (Definition)
  511. // CHECK-tokens: Punctuation: "{" [48:69 - 48:70] CompoundStmt=
  512. // CHECK-tokens: Punctuation: "}" [48:70 - 48:71] CompoundStmt=
  513. // CHECK-tokens: Identifier: "StringRef" [49:3 - 49:12] CXXConstructor=StringRef:49:3 (Definition)
  514. // CHECK-tokens: Punctuation: "(" [49:12 - 49:13] CXXConstructor=StringRef:49:3 (Definition)
  515. // CHECK-tokens: Keyword: "const" [49:13 - 49:18] ParmDecl=data:49:25 (Definition)
  516. // CHECK-tokens: Keyword: "char" [49:19 - 49:23] ParmDecl=data:49:25 (Definition)
  517. // CHECK-tokens: Punctuation: "*" [49:24 - 49:25] ParmDecl=data:49:25 (Definition)
  518. // CHECK-tokens: Identifier: "data" [49:25 - 49:29] ParmDecl=data:49:25 (Definition)
  519. // CHECK-tokens: Punctuation: "," [49:29 - 49:30] CXXConstructor=StringRef:49:3 (Definition)
  520. // CHECK-tokens: Identifier: "size_t" [49:31 - 49:37] TypeRef=size_t:2:25
  521. // CHECK-tokens: Identifier: "length" [49:38 - 49:44] ParmDecl=length:49:38 (Definition)
  522. // CHECK-tokens: Punctuation: ")" [49:44 - 49:45] CXXConstructor=StringRef:49:3 (Definition)
  523. // CHECK-tokens: Punctuation: ":" [49:46 - 49:47] CXXConstructor=StringRef:49:3 (Definition)
  524. // CHECK-tokens: Identifier: "Data" [49:48 - 49:52] MemberRef=Data:43:15
  525. // CHECK-tokens: Punctuation: "(" [49:52 - 49:53] CXXConstructor=StringRef:49:3 (Definition)
  526. // CHECK-tokens: Identifier: "data" [49:53 - 49:57] DeclRefExpr=data:49:25
  527. // CHECK-tokens: Punctuation: ")" [49:57 - 49:58] CXXConstructor=StringRef:49:3 (Definition)
  528. // CHECK-tokens: Punctuation: "," [49:58 - 49:59] CXXConstructor=StringRef:49:3 (Definition)
  529. // CHECK-tokens: Identifier: "Length" [49:60 - 49:66] MemberRef=Length:44:10
  530. // CHECK-tokens: Punctuation: "(" [49:66 - 49:67] CXXConstructor=StringRef:49:3 (Definition)
  531. // CHECK-tokens: Identifier: "length" [49:67 - 49:73] DeclRefExpr=length:49:38
  532. // CHECK-tokens: Punctuation: ")" [49:73 - 49:74] CXXConstructor=StringRef:49:3 (Definition)
  533. // CHECK-tokens: Punctuation: "{" [49:75 - 49:76] CompoundStmt=
  534. // CHECK-tokens: Punctuation: "}" [49:76 - 49:77] CompoundStmt=
  535. // CHECK-tokens: Identifier: "iterator" [50:3 - 50:11] TypeRef=iterator:40:23
  536. // CHECK-tokens: Identifier: "end" [50:12 - 50:15] CXXMethod=end:50:12 (Definition)
  537. // CHECK-tokens: Punctuation: "(" [50:15 - 50:16] CXXMethod=end:50:12 (Definition)
  538. // CHECK-tokens: Punctuation: ")" [50:16 - 50:17] CXXMethod=end:50:12 (Definition)
  539. // CHECK-tokens: Keyword: "const" [50:18 - 50:23] CXXMethod=end:50:12 (Definition)
  540. // CHECK-tokens: Punctuation: "{" [50:24 - 50:25] CompoundStmt=
  541. // CHECK-tokens: Keyword: "return" [50:26 - 50:32] ReturnStmt=
  542. // CHECK-tokens: Identifier: "Data" [50:33 - 50:37] MemberRefExpr=Data:43:15
  543. // CHECK-tokens: Punctuation: ";" [50:37 - 50:38] CompoundStmt=
  544. // CHECK-tokens: Punctuation: "}" [50:39 - 50:40] CompoundStmt=
  545. // CHECK-tokens: Identifier: "size_t" [51:3 - 51:9] TypeRef=size_t:2:25
  546. // CHECK-tokens: Identifier: "size" [51:10 - 51:14] CXXMethod=size:51:10 (Definition)
  547. // CHECK-tokens: Punctuation: "(" [51:14 - 51:15] CXXMethod=size:51:10 (Definition)
  548. // CHECK-tokens: Punctuation: ")" [51:15 - 51:16] CXXMethod=size:51:10 (Definition)
  549. // CHECK-tokens: Keyword: "const" [51:17 - 51:22] CXXMethod=size:51:10 (Definition)
  550. // CHECK-tokens: Punctuation: "{" [51:23 - 51:24] CompoundStmt=
  551. // CHECK-tokens: Keyword: "return" [51:25 - 51:31] ReturnStmt=
  552. // CHECK-tokens: Identifier: "Length" [51:32 - 51:38] MemberRefExpr=Length:44:10
  553. // CHECK-tokens: Punctuation: ";" [51:38 - 51:39] CompoundStmt=
  554. // CHECK-tokens: Punctuation: "}" [51:40 - 51:41] CompoundStmt=
  555. // CHECK-tokens: Keyword: "bool" [52:3 - 52:7] CXXMethod=startswith:52:8 (Definition)
  556. // CHECK-tokens: Identifier: "startswith" [52:8 - 52:18] CXXMethod=startswith:52:8 (Definition)
  557. // CHECK-tokens: Punctuation: "(" [52:18 - 52:19] CXXMethod=startswith:52:8 (Definition)
  558. // CHECK-tokens: Identifier: "StringRef" [52:19 - 52:28] TypeRef=class llvm::StringRef:38:7
  559. // CHECK-tokens: Identifier: "Prefix" [52:29 - 52:35] ParmDecl=Prefix:52:29 (Definition)
  560. // CHECK-tokens: Punctuation: ")" [52:35 - 52:36] CXXMethod=startswith:52:8 (Definition)
  561. // CHECK-tokens: Keyword: "const" [52:37 - 52:42] CXXMethod=startswith:52:8 (Definition)
  562. // CHECK-tokens: Punctuation: "{" [52:43 - 52:44] CompoundStmt=
  563. // CHECK-tokens: Keyword: "return" [53:5 - 53:11] ReturnStmt=
  564. // CHECK-tokens: Identifier: "Length" [53:12 - 53:18] MemberRefExpr=Length:44:10
  565. // CHECK-tokens: Punctuation: ">=" [53:19 - 53:21] BinaryOperator=
  566. // CHECK-tokens: Identifier: "Prefix" [53:22 - 53:28] DeclRefExpr=Prefix:52:29
  567. // CHECK-tokens: Punctuation: "." [53:28 - 53:29] MemberRefExpr=Length:44:10
  568. // CHECK-tokens: Identifier: "Length" [53:29 - 53:35] MemberRefExpr=Length:44:10
  569. // CHECK-tokens: Punctuation: "&&" [53:36 - 53:38] BinaryOperator=
  570. // CHECK-tokens: Identifier: "memcmp" [54:11 - 54:17] DeclRefExpr=memcmp:7:7
  571. // CHECK-tokens: Punctuation: "(" [54:17 - 54:18] CallExpr=memcmp:7:7
  572. // CHECK-tokens: Identifier: "Data" [54:18 - 54:22] MemberRefExpr=Data:43:15
  573. // CHECK-tokens: Punctuation: "," [54:22 - 54:23] CallExpr=memcmp:7:7
  574. // CHECK-tokens: Identifier: "Prefix" [54:24 - 54:30] DeclRefExpr=Prefix:52:29
  575. // CHECK-tokens: Punctuation: "." [54:30 - 54:31] MemberRefExpr=Data:43:15
  576. // CHECK-tokens: Identifier: "Data" [54:31 - 54:35] MemberRefExpr=Data:43:15
  577. // CHECK-tokens: Punctuation: "," [54:35 - 54:36] CallExpr=memcmp:7:7
  578. // CHECK-tokens: Identifier: "Prefix" [54:37 - 54:43] DeclRefExpr=Prefix:52:29
  579. // CHECK-tokens: Punctuation: "." [54:43 - 54:44] MemberRefExpr=Length:44:10
  580. // CHECK-tokens: Identifier: "Length" [54:44 - 54:50] MemberRefExpr=Length:44:10
  581. // CHECK-tokens: Punctuation: ")" [54:50 - 54:51] CallExpr=memcmp:7:7
  582. // CHECK-tokens: Punctuation: "==" [54:52 - 54:54] BinaryOperator=
  583. // CHECK-tokens: Literal: "0" [54:55 - 54:56] IntegerLiteral=
  584. // CHECK-tokens: Punctuation: ";" [54:56 - 54:57] CompoundStmt=
  585. // CHECK-tokens: Punctuation: "}" [55:3 - 55:4] CompoundStmt=
  586. // CHECK-tokens: Keyword: "bool" [56:3 - 56:7] CXXMethod=endswith:56:8 (Definition)
  587. // CHECK-tokens: Identifier: "endswith" [56:8 - 56:16] CXXMethod=endswith:56:8 (Definition)
  588. // CHECK-tokens: Punctuation: "(" [56:16 - 56:17] CXXMethod=endswith:56:8 (Definition)
  589. // CHECK-tokens: Identifier: "StringRef" [56:17 - 56:26] TypeRef=class llvm::StringRef:38:7
  590. // CHECK-tokens: Identifier: "Suffix" [56:27 - 56:33] ParmDecl=Suffix:56:27 (Definition)
  591. // CHECK-tokens: Punctuation: ")" [56:33 - 56:34] CXXMethod=endswith:56:8 (Definition)
  592. // CHECK-tokens: Keyword: "const" [56:35 - 56:40] CXXMethod=endswith:56:8 (Definition)
  593. // CHECK-tokens: Punctuation: "{" [56:41 - 56:42] CompoundStmt=
  594. // CHECK-tokens: Keyword: "return" [57:5 - 57:11] ReturnStmt=
  595. // CHECK-tokens: Identifier: "Length" [57:12 - 57:18] MemberRefExpr=Length:44:10
  596. // CHECK-tokens: Punctuation: ">=" [57:19 - 57:21] BinaryOperator=
  597. // CHECK-tokens: Identifier: "Suffix" [57:22 - 57:28] DeclRefExpr=Suffix:56:27
  598. // CHECK-tokens: Punctuation: "." [57:28 - 57:29] MemberRefExpr=Length:44:10
  599. // CHECK-tokens: Identifier: "Length" [57:29 - 57:35] MemberRefExpr=Length:44:10
  600. // CHECK-tokens: Punctuation: "&&" [57:36 - 57:38] BinaryOperator=
  601. // CHECK-tokens: Identifier: "memcmp" [58:7 - 58:13] DeclRefExpr=memcmp:7:7
  602. // CHECK-tokens: Punctuation: "(" [58:13 - 58:14] CallExpr=memcmp:7:7
  603. // CHECK-tokens: Identifier: "end" [58:14 - 58:17] MemberRefExpr=end:50:12
  604. // CHECK-tokens: Punctuation: "(" [58:17 - 58:18] CallExpr=end:50:12
  605. // CHECK-tokens: Punctuation: ")" [58:18 - 58:19] CallExpr=end:50:12
  606. // CHECK-tokens: Punctuation: "-" [58:20 - 58:21] BinaryOperator=
  607. // CHECK-tokens: Identifier: "Suffix" [58:22 - 58:28] DeclRefExpr=Suffix:56:27
  608. // CHECK-tokens: Punctuation: "." [58:28 - 58:29] MemberRefExpr=Length:44:10
  609. // CHECK-tokens: Identifier: "Length" [58:29 - 58:35] MemberRefExpr=Length:44:10
  610. // CHECK-tokens: Punctuation: "," [58:35 - 58:36] CallExpr=memcmp:7:7
  611. // CHECK-tokens: Identifier: "Suffix" [58:37 - 58:43] DeclRefExpr=Suffix:56:27
  612. // CHECK-tokens: Punctuation: "." [58:43 - 58:44] MemberRefExpr=Data:43:15
  613. // CHECK-tokens: Identifier: "Data" [58:44 - 58:48] MemberRefExpr=Data:43:15
  614. // CHECK-tokens: Punctuation: "," [58:48 - 58:49] CallExpr=memcmp:7:7
  615. // CHECK-tokens: Identifier: "Suffix" [58:50 - 58:56] DeclRefExpr=Suffix:56:27
  616. // CHECK-tokens: Punctuation: "." [58:56 - 58:57] MemberRefExpr=Length:44:10
  617. // CHECK-tokens: Identifier: "Length" [58:57 - 58:63] MemberRefExpr=Length:44:10
  618. // CHECK-tokens: Punctuation: ")" [58:63 - 58:64] CallExpr=memcmp:7:7
  619. // CHECK-tokens: Punctuation: "==" [58:65 - 58:67] BinaryOperator=
  620. // CHECK-tokens: Literal: "0" [58:68 - 58:69] IntegerLiteral=
  621. // CHECK-tokens: Punctuation: ";" [58:69 - 58:70] CompoundStmt=
  622. // CHECK-tokens: Punctuation: "}" [59:3 - 59:4] CompoundStmt=
  623. // CHECK-tokens: Identifier: "StringRef" [60:3 - 60:12] TypeRef=class llvm::StringRef:38:7
  624. // CHECK-tokens: Identifier: "substr" [60:13 - 60:19] CXXMethod=substr:60:13 (Definition)
  625. // CHECK-tokens: Punctuation: "(" [60:19 - 60:20] CXXMethod=substr:60:13 (Definition)
  626. // CHECK-tokens: Identifier: "size_t" [60:20 - 60:26] TypeRef=size_t:2:25
  627. // CHECK-tokens: Identifier: "Start" [60:27 - 60:32] ParmDecl=Start:60:27 (Definition)
  628. // CHECK-tokens: Punctuation: "," [60:32 - 60:33] CXXMethod=substr:60:13 (Definition)
  629. // CHECK-tokens: Identifier: "size_t" [60:34 - 60:40] TypeRef=size_t:2:25
  630. // CHECK-tokens: Identifier: "N" [60:41 - 60:42] ParmDecl=N:60:41 (Definition)
  631. // CHECK-tokens: Punctuation: "=" [60:43 - 60:44] ParmDecl=N:60:41 (Definition)
  632. // CHECK-tokens: Identifier: "npos" [60:45 - 60:49] DeclRefExpr=npos:41:23
  633. // CHECK-tokens: Punctuation: ")" [60:49 - 60:50] CXXMethod=substr:60:13 (Definition)
  634. // CHECK-tokens: Keyword: "const" [60:51 - 60:56] CXXMethod=substr:60:13 (Definition)
  635. // CHECK-tokens: Punctuation: "{" [60:57 - 60:58] CompoundStmt=
  636. // CHECK-tokens: Keyword: "return" [61:5 - 61:11] ReturnStmt=
  637. // CHECK-tokens: Identifier: "StringRef" [61:12 - 61:21] TypeRef=class llvm::StringRef:38:7
  638. // CHECK-tokens: Punctuation: "(" [61:21 - 61:22] CallExpr=StringRef:49:3
  639. // CHECK-tokens: Identifier: "Data" [61:22 - 61:26] MemberRefExpr=Data:43:15
  640. // CHECK-tokens: Punctuation: "+" [61:27 - 61:28] BinaryOperator=
  641. // CHECK-tokens: Identifier: "Start" [61:29 - 61:34] DeclRefExpr=Start:60:27
  642. // CHECK-tokens: Punctuation: "," [61:34 - 61:35] CallExpr=StringRef:49:3
  643. // CHECK-tokens: Identifier: "min" [61:36 - 61:39] DeclRefExpr=min:45:17
  644. // CHECK-tokens: Punctuation: "(" [61:39 - 61:40] CallExpr=min:45:17
  645. // CHECK-tokens: Identifier: "N" [61:40 - 61:41] DeclRefExpr=N:60:41
  646. // CHECK-tokens: Punctuation: "," [61:41 - 61:42] CallExpr=min:45:17
  647. // CHECK-tokens: Identifier: "Length" [61:43 - 61:49] MemberRefExpr=Length:44:10
  648. // CHECK-tokens: Punctuation: "-" [61:50 - 61:51] BinaryOperator=
  649. // CHECK-tokens: Identifier: "Start" [61:52 - 61:57] DeclRefExpr=Start:60:27
  650. // CHECK-tokens: Punctuation: ")" [61:57 - 61:58] CallExpr=min:45:17
  651. // CHECK-tokens: Punctuation: ")" [61:58 - 61:59] CallExpr=StringRef:49:3
  652. // CHECK-tokens: Punctuation: ";" [61:59 - 61:60] CompoundStmt=
  653. // CHECK-tokens: Punctuation: "}" [62:3 - 62:4] CompoundStmt=
  654. // CHECK-tokens: Punctuation: "}" [63:1 - 63:2] ClassDecl=StringRef:38:7 (Definition)
  655. // CHECK-tokens: Punctuation: ";" [63:2 - 63:3] Namespace=llvm:37:11 (Definition)
  656. // CHECK-tokens: Punctuation: "}" [64:1 - 64:2] Namespace=llvm:37:11 (Definition)
  657. // CHECK-tokens: Keyword: "namespace" [65:1 - 65:10]
  658. // CHECK-tokens: Identifier: "clang" [65:11 - 65:16] Namespace=clang:65:11 (Definition)
  659. // CHECK-tokens: Punctuation: "{" [65:17 - 65:18] Namespace=clang:65:11 (Definition)
  660. // CHECK-tokens: Keyword: "class" [66:1 - 66:6] ClassDecl=IdentifierInfo:66:7 (Definition)
  661. // CHECK-tokens: Identifier: "IdentifierInfo" [66:7 - 66:21] ClassDecl=IdentifierInfo:66:7 (Definition)
  662. // CHECK-tokens: Punctuation: "{" [66:22 - 66:23] ClassDecl=IdentifierInfo:66:7 (Definition)
  663. // CHECK-tokens: Keyword: "public" [67:1 - 67:7] CXXAccessSpecifier=:67:1 (Definition)
  664. // CHECK-tokens: Punctuation: ":" [67:7 - 67:8] CXXAccessSpecifier=:67:1 (Definition)
  665. // CHECK-tokens: Identifier: "IdentifierInfo" [67:8 - 67:22] CXXConstructor=IdentifierInfo:67:8
  666. // CHECK-tokens: Punctuation: "(" [67:22 - 67:23] CXXConstructor=IdentifierInfo:67:8
  667. // CHECK-tokens: Punctuation: ")" [67:23 - 67:24] CXXConstructor=IdentifierInfo:67:8
  668. // CHECK-tokens: Punctuation: ";" [67:24 - 67:25] ClassDecl=IdentifierInfo:66:7 (Definition)
  669. // CHECK-tokens: Keyword: "const" [68:3 - 68:8] CXXMethod=getNameStart:68:15 (Definition)
  670. // CHECK-tokens: Keyword: "char" [68:9 - 68:13] CXXMethod=getNameStart:68:15 (Definition)
  671. // CHECK-tokens: Punctuation: "*" [68:14 - 68:15] CXXMethod=getNameStart:68:15 (Definition)
  672. // CHECK-tokens: Identifier: "getNameStart" [68:15 - 68:27] CXXMethod=getNameStart:68:15 (Definition)
  673. // CHECK-tokens: Punctuation: "(" [68:27 - 68:28] CXXMethod=getNameStart:68:15 (Definition)
  674. // CHECK-tokens: Punctuation: ")" [68:28 - 68:29] CXXMethod=getNameStart:68:15 (Definition)
  675. // CHECK-tokens: Keyword: "const" [68:30 - 68:35] CXXMethod=getNameStart:68:15 (Definition)
  676. // CHECK-tokens: Punctuation: "{" [68:36 - 68:37] CompoundStmt=
  677. // CHECK-tokens: Keyword: "typedef" [69:5 - 69:12] TypedefDecl=actualtype:69:54 (Definition)
  678. // CHECK-tokens: Identifier: "std" [69:13 - 69:16] NamespaceRef=std:3:11
  679. // CHECK-tokens: Punctuation: "::" [69:16 - 69:18] TypedefDecl=actualtype:69:54 (Definition)
  680. // CHECK-tokens: Identifier: "pair" [69:18 - 69:22] TemplateRef=pair:4:44
  681. // CHECK-tokens: Punctuation: "<" [69:23 - 69:24] TypedefDecl=actualtype:69:54 (Definition)
  682. // CHECK-tokens: Identifier: "IdentifierInfo" [69:25 - 69:39] TypeRef=class clang::IdentifierInfo:66:7
  683. // CHECK-tokens: Punctuation: "," [69:39 - 69:40] TypedefDecl=actualtype:69:54 (Definition)
  684. // CHECK-tokens: Keyword: "const" [69:41 - 69:46] TypedefDecl=actualtype:69:54 (Definition)
  685. // CHECK-tokens: Keyword: "char" [69:47 - 69:51] TypedefDecl=actualtype:69:54 (Definition)
  686. // CHECK-tokens: Punctuation: "*" [69:52 - 69:53] TypedefDecl=actualtype:69:54 (Definition)
  687. // CHECK-tokens: Punctuation: ">" [69:53 - 69:54] TypedefDecl=actualtype:69:54 (Definition)
  688. // CHECK-tokens: Identifier: "actualtype" [69:54 - 69:64] TypedefDecl=actualtype:69:54 (Definition)
  689. // CHECK-tokens: Punctuation: ";" [69:64 - 69:65] DeclStmt=
  690. // CHECK-tokens: Keyword: "return" [70:5 - 70:11] ReturnStmt=
  691. // CHECK-tokens: Punctuation: "(" [70:12 - 70:13] ParenExpr=
  692. // CHECK-tokens: Punctuation: "(" [70:13 - 70:14] CStyleCastExpr=
  693. // CHECK-tokens: Keyword: "const" [70:14 - 70:19] CStyleCastExpr=
  694. // CHECK-tokens: Identifier: "actualtype" [70:20 - 70:30] TypeRef=actualtype:69:54
  695. // CHECK-tokens: Punctuation: "*" [70:31 - 70:32] CStyleCastExpr=
  696. // CHECK-tokens: Punctuation: ")" [70:32 - 70:33] CStyleCastExpr=
  697. // CHECK-tokens: Keyword: "this" [70:34 - 70:38] CXXThisExpr=
  698. // CHECK-tokens: Punctuation: ")" [70:38 - 70:39] ParenExpr=
  699. // CHECK-tokens: Punctuation: "->" [70:39 - 70:41] MemberRefExpr=second:4:55
  700. // CHECK-tokens: Identifier: "second" [70:41 - 70:47] MemberRefExpr=second:4:55
  701. // CHECK-tokens: Punctuation: ";" [70:47 - 70:48] CompoundStmt=
  702. // CHECK-tokens: Punctuation: "}" [71:3 - 71:4] CompoundStmt=
  703. // CHECK-tokens: Keyword: "unsigned" [72:3 - 72:11] CXXMethod=getLength:72:12 (Definition)
  704. // CHECK-tokens: Identifier: "getLength" [72:12 - 72:21] CXXMethod=getLength:72:12 (Definition)
  705. // CHECK-tokens: Punctuation: "(" [72:21 - 72:22] CXXMethod=getLength:72:12 (Definition)
  706. // CHECK-tokens: Punctuation: ")" [72:22 - 72:23] CXXMethod=getLength:72:12 (Definition)
  707. // CHECK-tokens: Keyword: "const" [72:24 - 72:29] CXXMethod=getLength:72:12 (Definition)
  708. // CHECK-tokens: Punctuation: "{" [72:30 - 72:31] CompoundStmt=
  709. // CHECK-tokens: Keyword: "typedef" [73:5 - 73:12] TypedefDecl=actualtype:73:54 (Definition)
  710. // CHECK-tokens: Identifier: "std" [73:13 - 73:16] NamespaceRef=std:3:11
  711. // CHECK-tokens: Punctuation: "::" [73:16 - 73:18] TypedefDecl=actualtype:73:54 (Definition)
  712. // CHECK-tokens: Identifier: "pair" [73:18 - 73:22] TemplateRef=pair:4:44
  713. // CHECK-tokens: Punctuation: "<" [73:23 - 73:24] TypedefDecl=actualtype:73:54 (Definition)
  714. // CHECK-tokens: Identifier: "IdentifierInfo" [73:25 - 73:39] TypeRef=class clang::IdentifierInfo:66:7
  715. // CHECK-tokens: Punctuation: "," [73:39 - 73:40] TypedefDecl=actualtype:73:54 (Definition)
  716. // CHECK-tokens: Keyword: "const" [73:41 - 73:46] TypedefDecl=actualtype:73:54 (Definition)
  717. // CHECK-tokens: Keyword: "char" [73:47 - 73:51] TypedefDecl=actualtype:73:54 (Definition)
  718. // CHECK-tokens: Punctuation: "*" [73:52 - 73:53] TypedefDecl=actualtype:73:54 (Definition)
  719. // CHECK-tokens: Punctuation: ">" [73:53 - 73:54] TypedefDecl=actualtype:73:54 (Definition)
  720. // CHECK-tokens: Identifier: "actualtype" [73:54 - 73:64] TypedefDecl=actualtype:73:54 (Definition)
  721. // CHECK-tokens: Punctuation: ";" [73:64 - 73:65] DeclStmt=
  722. // CHECK-tokens: Keyword: "const" [74:5 - 74:10] VarDecl=p:74:17 (Definition)
  723. // CHECK-tokens: Keyword: "char" [74:11 - 74:15] VarDecl=p:74:17 (Definition)
  724. // CHECK-tokens: Punctuation: "*" [74:16 - 74:17] VarDecl=p:74:17 (Definition)
  725. // CHECK-tokens: Identifier: "p" [74:17 - 74:18] VarDecl=p:74:17 (Definition)
  726. // CHECK-tokens: Punctuation: "=" [74:19 - 74:20] VarDecl=p:74:17 (Definition)
  727. // CHECK-tokens: Punctuation: "(" [74:21 - 74:22] ParenExpr=
  728. // CHECK-tokens: Punctuation: "(" [74:22 - 74:23] CStyleCastExpr=
  729. // CHECK-tokens: Keyword: "const" [74:23 - 74:28] CStyleCastExpr=
  730. // CHECK-tokens: Identifier: "actualtype" [74:29 - 74:39] TypeRef=actualtype:73:54
  731. // CHECK-tokens: Punctuation: "*" [74:40 - 74:41] CStyleCastExpr=
  732. // CHECK-tokens: Punctuation: ")" [74:41 - 74:42] CStyleCastExpr=
  733. // CHECK-tokens: Keyword: "this" [74:43 - 74:47] CXXThisExpr=
  734. // CHECK-tokens: Punctuation: ")" [74:47 - 74:48] ParenExpr=
  735. // CHECK-tokens: Punctuation: "->" [74:48 - 74:50] MemberRefExpr=second:4:55
  736. // CHECK-tokens: Identifier: "second" [74:50 - 74:56] MemberRefExpr=second:4:55
  737. // CHECK-tokens: Punctuation: "-" [74:57 - 74:58] BinaryOperator=
  738. // CHECK-tokens: Literal: "2" [74:59 - 74:60] IntegerLiteral=
  739. // CHECK-tokens: Punctuation: ";" [74:60 - 74:61] DeclStmt=
  740. // CHECK-tokens: Keyword: "return" [75:5 - 75:11] ReturnStmt=
  741. // CHECK-tokens: Punctuation: "(" [75:12 - 75:13] ParenExpr=
  742. // CHECK-tokens: Punctuation: "(" [75:13 - 75:14] ParenExpr=
  743. // CHECK-tokens: Punctuation: "(" [75:14 - 75:15] CStyleCastExpr=
  744. // CHECK-tokens: Keyword: "unsigned" [75:15 - 75:23] CStyleCastExpr=
  745. // CHECK-tokens: Punctuation: ")" [75:23 - 75:24] CStyleCastExpr=
  746. // CHECK-tokens: Identifier: "p" [75:25 - 75:26] DeclRefExpr=p:74:17
  747. // CHECK-tokens: Punctuation: "[" [75:26 - 75:27] ArraySubscriptExpr=
  748. // CHECK-tokens: Literal: "0" [75:27 - 75:28] IntegerLiteral=
  749. // CHECK-tokens: Punctuation: "]" [75:28 - 75:29] ArraySubscriptExpr=
  750. // CHECK-tokens: Punctuation: ")" [75:29 - 75:30] ParenExpr=
  751. // CHECK-tokens: Punctuation: "|" [75:31 - 75:32] BinaryOperator=
  752. // CHECK-tokens: Punctuation: "(" [75:33 - 75:34] ParenExpr=
  753. // CHECK-tokens: Punctuation: "(" [75:34 - 75:35] ParenExpr=
  754. // CHECK-tokens: Punctuation: "(" [75:35 - 75:36] CStyleCastExpr=
  755. // CHECK-tokens: Keyword: "unsigned" [75:36 - 75:44] CStyleCastExpr=
  756. // CHECK-tokens: Punctuation: ")" [75:44 - 75:45] CStyleCastExpr=
  757. // CHECK-tokens: Identifier: "p" [75:46 - 75:47] DeclRefExpr=p:74:17
  758. // CHECK-tokens: Punctuation: "[" [75:47 - 75:48] ArraySubscriptExpr=
  759. // CHECK-tokens: Literal: "1" [75:48 - 75:49] IntegerLiteral=
  760. // CHECK-tokens: Punctuation: "]" [75:49 - 75:50] ArraySubscriptExpr=
  761. // CHECK-tokens: Punctuation: ")" [75:50 - 75:51] ParenExpr=
  762. // CHECK-tokens: Punctuation: "<<" [75:52 - 75:54] BinaryOperator=
  763. // CHECK-tokens: Literal: "8" [75:55 - 75:56] IntegerLiteral=
  764. // CHECK-tokens: Punctuation: ")" [75:56 - 75:57] ParenExpr=
  765. // CHECK-tokens: Punctuation: ")" [75:57 - 75:58] ParenExpr=
  766. // CHECK-tokens: Punctuation: "-" [75:59 - 75:60] BinaryOperator=
  767. // CHECK-tokens: Literal: "1" [75:61 - 75:62] IntegerLiteral=
  768. // CHECK-tokens: Punctuation: ";" [75:62 - 75:63] CompoundStmt=
  769. // CHECK-tokens: Punctuation: "}" [76:3 - 76:4] CompoundStmt=
  770. // CHECK-tokens: Identifier: "llvm" [77:3 - 77:7] NamespaceRef=llvm:37:11
  771. // CHECK-tokens: Punctuation: "::" [77:7 - 77:9] CXXMethod=getName:77:19 (Definition)
  772. // CHECK-tokens: Identifier: "StringRef" [77:9 - 77:18] TypeRef=class llvm::StringRef:38:7
  773. // CHECK-tokens: Identifier: "getName" [77:19 - 77:26] CXXMethod=getName:77:19 (Definition)
  774. // CHECK-tokens: Punctuation: "(" [77:26 - 77:27] CXXMethod=getName:77:19 (Definition)
  775. // CHECK-tokens: Punctuation: ")" [77:27 - 77:28] CXXMethod=getName:77:19 (Definition)
  776. // CHECK-tokens: Keyword: "const" [77:29 - 77:34] CXXMethod=getName:77:19 (Definition)
  777. // CHECK-tokens: Punctuation: "{" [77:35 - 77:36] CompoundStmt=
  778. // CHECK-tokens: Keyword: "return" [78:5 - 78:11] ReturnStmt=
  779. // CHECK-tokens: Identifier: "llvm" [78:12 - 78:16] NamespaceRef=llvm:37:11
  780. // CHECK-tokens: Punctuation: "::" [78:16 - 78:18] CallExpr=StringRef:49:3
  781. // CHECK-tokens: Identifier: "StringRef" [78:18 - 78:27] TypeRef=class llvm::StringRef:38:7
  782. // CHECK-tokens: Punctuation: "(" [78:27 - 78:28] CallExpr=StringRef:49:3
  783. // CHECK-tokens: Identifier: "getNameStart" [78:28 - 78:40] MemberRefExpr=getNameStart:68:15
  784. // CHECK-tokens: Punctuation: "(" [78:40 - 78:41] CallExpr=getNameStart:68:15
  785. // CHECK-tokens: Punctuation: ")" [78:41 - 78:42] CallExpr=getNameStart:68:15
  786. // CHECK-tokens: Punctuation: "," [78:42 - 78:43] CallExpr=StringRef:49:3
  787. // CHECK-tokens: Identifier: "getLength" [78:44 - 78:53] MemberRefExpr=getLength:72:12
  788. // CHECK-tokens: Punctuation: "(" [78:53 - 78:54] CallExpr=getLength:72:12
  789. // CHECK-tokens: Punctuation: ")" [78:54 - 78:55] CallExpr=getLength:72:12
  790. // CHECK-tokens: Punctuation: ")" [78:55 - 78:56] CallExpr=StringRef:49:3
  791. // CHECK-tokens: Punctuation: ";" [78:56 - 78:57] CompoundStmt=
  792. // CHECK-tokens: Punctuation: "}" [79:3 - 79:4] CompoundStmt=
  793. // CHECK-tokens: Punctuation: "}" [80:1 - 80:2] ClassDecl=IdentifierInfo:66:7 (Definition)
  794. // CHECK-tokens: Punctuation: ";" [80:2 - 80:3] Namespace=clang:65:11 (Definition)
  795. // CHECK-tokens: Punctuation: "}" [81:1 - 81:2] Namespace=clang:65:11 (Definition)
  796. // CHECK-tokens: Keyword: "namespace" [82:1 - 82:10]
  797. // CHECK-tokens: Identifier: "llvm" [82:11 - 82:15] Namespace=llvm:82:11 (Definition)
  798. // CHECK-tokens: Punctuation: "{" [82:16 - 82:17] Namespace=llvm:82:11 (Definition)
  799. // CHECK-tokens: Keyword: "template" [83:1 - 83:9] ClassTemplate=StringSwitch:83:47 (Definition)
  800. // CHECK-tokens: Punctuation: "<" [83:10 - 83:11] ClassTemplate=StringSwitch:83:47 (Definition)
  801. // CHECK-tokens: Keyword: "typename" [83:12 - 83:20] TemplateTypeParameter=T:83:21 (Definition)
  802. // CHECK-tokens: Identifier: "T" [83:21 - 83:22] TemplateTypeParameter=T:83:21 (Definition)
  803. // CHECK-tokens: Punctuation: "," [83:22 - 83:23] ClassTemplate=StringSwitch:83:47 (Definition)
  804. // CHECK-tokens: Keyword: "typename" [83:24 - 83:32] TemplateTypeParameter=R:83:33 (Definition)
  805. // CHECK-tokens: Identifier: "R" [83:33 - 83:34] TemplateTypeParameter=R:83:33 (Definition)
  806. // CHECK-tokens: Punctuation: "=" [83:35 - 83:36] TemplateTypeParameter=R:83:33 (Definition)
  807. // CHECK-tokens: Identifier: "T" [83:37 - 83:38] TypeRef=T:83:21
  808. // CHECK-tokens: Punctuation: ">" [83:39 - 83:40] ClassTemplate=StringSwitch:83:47 (Definition)
  809. // CHECK-tokens: Keyword: "class" [83:41 - 83:46] ClassTemplate=StringSwitch:83:47 (Definition)
  810. // CHECK-tokens: Identifier: "StringSwitch" [83:47 - 83:59] ClassTemplate=StringSwitch:83:47 (Definition)
  811. // CHECK-tokens: Punctuation: "{" [83:60 - 83:61] ClassTemplate=StringSwitch:83:47 (Definition)
  812. // CHECK-tokens: Identifier: "StringRef" [84:3 - 84:12] TypeRef=class llvm::StringRef:38:7
  813. // CHECK-tokens: Identifier: "Str" [84:13 - 84:16] FieldDecl=Str:84:13 (Definition)
  814. // CHECK-tokens: Punctuation: ";" [84:16 - 84:17] ClassTemplate=StringSwitch:83:47 (Definition)
  815. // CHECK-tokens: Keyword: "const" [85:3 - 85:8] FieldDecl=Result:85:12 (Definition)
  816. // CHECK-tokens: Identifier: "T" [85:9 - 85:10] TypeRef=T:83:21
  817. // CHECK-tokens: Punctuation: "*" [85:11 - 85:12] FieldDecl=Result:85:12 (Definition)
  818. // CHECK-tokens: Identifier: "Result" [85:12 - 85:18] FieldDecl=Result:85:12 (Definition)
  819. // CHECK-tokens: Punctuation: ";" [85:18 - 85:19] ClassTemplate=StringSwitch:83:47 (Definition)
  820. // CHECK-tokens: Keyword: "public" [86:1 - 86:7] CXXAccessSpecifier=:86:1 (Definition)
  821. // CHECK-tokens: Punctuation: ":" [86:7 - 86:8] CXXAccessSpecifier=:86:1 (Definition)
  822. // CHECK-tokens: Keyword: "explicit" [87:3 - 87:11] CXXConstructor=StringSwitch<T, R>:87:12 (Definition)
  823. // CHECK-tokens: Identifier: "StringSwitch" [87:12 - 87:24] CXXConstructor=StringSwitch<T, R>:87:12 (Definition)
  824. // CHECK-tokens: Punctuation: "(" [87:24 - 87:25] CXXConstructor=StringSwitch<T, R>:87:12 (Definition)
  825. // CHECK-tokens: Identifier: "StringRef" [87:25 - 87:34] TypeRef=class llvm::StringRef:38:7
  826. // CHECK-tokens: Identifier: "Str" [87:35 - 87:38] ParmDecl=Str:87:35 (Definition)
  827. // CHECK-tokens: Punctuation: ")" [87:38 - 87:39] CXXConstructor=StringSwitch<T, R>:87:12 (Definition)
  828. // CHECK-tokens: Punctuation: ":" [87:40 - 87:41] CXXConstructor=StringSwitch<T, R>:87:12 (Definition)
  829. // CHECK-tokens: Identifier: "Str" [87:42 - 87:45] MemberRef=Str:84:13
  830. // CHECK-tokens: Punctuation: "(" [87:45 - 87:46] CallExpr=StringRef:38:7
  831. // CHECK-tokens: Identifier: "Str" [87:46 - 87:49] DeclRefExpr=Str:87:35
  832. // CHECK-tokens: Punctuation: ")" [87:49 - 87:50] CallExpr=StringRef:38:7
  833. // CHECK-tokens: Punctuation: "," [87:50 - 87:51] CXXConstructor=StringSwitch<T, R>:87:12 (Definition)
  834. // CHECK-tokens: Identifier: "Result" [87:52 - 87:58] MemberRef=Result:85:12
  835. // CHECK-tokens: Punctuation: "(" [87:58 - 87:59] UnexposedExpr=
  836. // CHECK-tokens: Literal: "0" [87:59 - 87:60] IntegerLiteral=
  837. // CHECK-tokens: Punctuation: ")" [87:60 - 87:61] UnexposedExpr=
  838. // CHECK-tokens: Punctuation: "{" [87:62 - 87:63] CompoundStmt=
  839. // CHECK-tokens: Punctuation: "}" [87:63 - 87:64] CompoundStmt=
  840. // CHECK-tokens: Keyword: "template" [88:3 - 88:11] FunctionTemplate=Case:88:42 (Definition)
  841. // CHECK-tokens: Punctuation: "<" [88:12 - 88:13] FunctionTemplate=Case:88:42 (Definition)
  842. // CHECK-tokens: Keyword: "unsigned" [88:14 - 88:22] NonTypeTemplateParameter=N:88:23 (Definition)
  843. // CHECK-tokens: Identifier: "N" [88:23 - 88:24] NonTypeTemplateParameter=N:88:23 (Definition)
  844. // CHECK-tokens: Punctuation: ">" [88:25 - 88:26] FunctionTemplate=Case:88:42 (Definition)
  845. // CHECK-tokens: Identifier: "StringSwitch" [88:27 - 88:39] TypeRef=StringSwitch<T, R>:83:47
  846. // CHECK-tokens: Punctuation: "&" [88:40 - 88:41] FunctionTemplate=Case:88:42 (Definition)
  847. // CHECK-tokens: Identifier: "Case" [88:42 - 88:46] FunctionTemplate=Case:88:42 (Definition)
  848. // CHECK-tokens: Punctuation: "(" [88:46 - 88:47] FunctionTemplate=Case:88:42 (Definition)
  849. // CHECK-tokens: Keyword: "const" [88:47 - 88:52] ParmDecl=S:88:60 (Definition)
  850. // CHECK-tokens: Keyword: "char" [88:53 - 88:57] ParmDecl=S:88:60 (Definition)
  851. // CHECK-tokens: Punctuation: "(" [88:58 - 88:59] ParmDecl=S:88:60 (Definition)
  852. // CHECK-tokens: Punctuation: "&" [88:59 - 88:60] ParmDecl=S:88:60 (Definition)
  853. // CHECK-tokens: Identifier: "S" [88:60 - 88:61] ParmDecl=S:88:60 (Definition)
  854. // CHECK-tokens: Punctuation: ")" [88:61 - 88:62] ParmDecl=S:88:60 (Definition)
  855. // CHECK-tokens: Punctuation: "[" [88:62 - 88:63] ParmDecl=S:88:60 (Definition)
  856. // CHECK-tokens: Identifier: "N" [88:63 - 88:64] DeclRefExpr=N:88:23
  857. // CHECK-tokens: Punctuation: "]" [88:64 - 88:65] ParmDecl=S:88:60 (Definition)
  858. // CHECK-tokens: Punctuation: "," [88:65 - 88:66] FunctionTemplate=Case:88:42 (Definition)
  859. // CHECK-tokens: Keyword: "const" [89:47 - 89:52] ParmDecl=Value:89:57 (Definition)
  860. // CHECK-tokens: Identifier: "T" [89:53 - 89:54] TypeRef=T:83:21
  861. // CHECK-tokens: Punctuation: "&" [89:55 - 89:56] ParmDecl=Value:89:57 (Definition)
  862. // CHECK-tokens: Identifier: "Value" [89:57 - 89:62] ParmDecl=Value:89:57 (Definition)
  863. // CHECK-tokens: Punctuation: ")" [89:62 - 89:63] FunctionTemplate=Case:88:42 (Definition)
  864. // CHECK-tokens: Punctuation: "{" [89:64 - 89:65] CompoundStmt=
  865. // CHECK-tokens: Keyword: "return" [90:5 - 90:11] ReturnStmt=
  866. // CHECK-tokens: Punctuation: "*" [90:12 - 90:13] UnaryOperator=
  867. // CHECK-tokens: Keyword: "this" [90:13 - 90:17] CXXThisExpr=
  868. // CHECK-tokens: Punctuation: ";" [90:17 - 90:18] CompoundStmt=
  869. // CHECK-tokens: Punctuation: "}" [91:3 - 91:4] CompoundStmt=
  870. // CHECK-tokens: Identifier: "R" [92:3 - 92:4] TypeRef=R:83:33
  871. // CHECK-tokens: Identifier: "Default" [92:5 - 92:12] CXXMethod=Default:92:5 (Definition)
  872. // CHECK-tokens: Punctuation: "(" [92:12 - 92:13] CXXMethod=Default:92:5 (Definition)
  873. // CHECK-tokens: Keyword: "const" [92:13 - 92:18] ParmDecl=Value:92:23 (Definition)
  874. // CHECK-tokens: Identifier: "T" [92:19 - 92:20] TypeRef=T:83:21
  875. // CHECK-tokens: Punctuation: "&" [92:21 - 92:22] ParmDecl=Value:92:23 (Definition)
  876. // CHECK-tokens: Identifier: "Value" [92:23 - 92:28] ParmDecl=Value:92:23 (Definition)
  877. // CHECK-tokens: Punctuation: ")" [92:28 - 92:29] CXXMethod=Default:92:5 (Definition)
  878. // CHECK-tokens: Keyword: "const" [92:30 - 92:35] CXXMethod=Default:92:5 (Definition)
  879. // CHECK-tokens: Punctuation: "{" [92:36 - 92:37] CompoundStmt=
  880. // CHECK-tokens: Keyword: "return" [93:5 - 93:11] ReturnStmt=
  881. // CHECK-tokens: Identifier: "Value" [93:12 - 93:17] DeclRefExpr=Value:92:23
  882. // CHECK-tokens: Punctuation: ";" [93:17 - 93:18] CompoundStmt=
  883. // CHECK-tokens: Punctuation: "}" [94:3 - 94:4] CompoundStmt=
  884. // CHECK-tokens: Punctuation: "}" [95:1 - 95:2] ClassTemplate=StringSwitch:83:47 (Definition)
  885. // CHECK-tokens: Punctuation: ";" [95:2 - 95:3] Namespace=llvm:82:11 (Definition)
  886. // CHECK-tokens: Punctuation: "}" [96:1 - 96:2] Namespace=llvm:82:11 (Definition)
  887. // CHECK-tokens: Keyword: "using" [98:1 - 98:6] UsingDirective=:98:17
  888. // CHECK-tokens: Keyword: "namespace" [98:7 - 98:16] UsingDirective=:98:17
  889. // CHECK-tokens: Identifier: "clang" [98:17 - 98:22] NamespaceRef=clang:10:17
  890. // CHECK-tokens: Punctuation: ";" [98:22 - 98:23]
  891. // CHECK-tokens: Identifier: "AttributeList" [100:1 - 100:14] TypeRef=class clang::AttributeList:12:9
  892. // CHECK-tokens: Punctuation: "::" [100:14 - 100:16] CXXMethod=getKind:100:36 (Definition) (static)
  893. // CHECK-tokens: Identifier: "Kind" [100:16 - 100:20] TypeRef=enum clang::AttributeList::Kind:13:10
  894. // CHECK-tokens: Identifier: "AttributeList" [100:21 - 100:34] TypeRef=class clang::AttributeList:12:9
  895. // CHECK-tokens: Punctuation: "::" [100:34 - 100:36] CXXMethod=getKind:100:36 (Definition) (static)
  896. // CHECK-tokens: Identifier: "getKind" [100:36 - 100:43] CXXMethod=getKind:100:36 (Definition) (static)
  897. // CHECK-tokens: Punctuation: "(" [100:43 - 100:44] CXXMethod=getKind:100:36 (Definition) (static)
  898. // CHECK-tokens: Keyword: "const" [100:44 - 100:49] ParmDecl=Name:100:67 (Definition)
  899. // CHECK-tokens: Identifier: "IdentifierInfo" [100:50 - 100:64] TypeRef=class clang::IdentifierInfo:66:7
  900. // CHECK-tokens: Punctuation: "*" [100:65 - 100:66] ParmDecl=Name:100:67 (Definition)
  901. // CHECK-tokens: Identifier: "Name" [100:67 - 100:71] ParmDecl=Name:100:67 (Definition)
  902. // CHECK-tokens: Punctuation: ")" [100:71 - 100:72] CXXMethod=getKind:100:36 (Definition) (static)
  903. // CHECK-tokens: Punctuation: "{" [100:73 - 100:74] CompoundStmt=
  904. // CHECK-tokens: Identifier: "llvm" [101:3 - 101:7] NamespaceRef=llvm:82:11
  905. // CHECK-tokens: Punctuation: "::" [101:7 - 101:9] VarDecl=AttrName:101:19 (Definition)
  906. // CHECK-tokens: Identifier: "StringRef" [101:9 - 101:18] TypeRef=class llvm::StringRef:38:7
  907. // CHECK-tokens: Identifier: "AttrName" [101:19 - 101:27] VarDecl=AttrName:101:19 (Definition)
  908. // CHECK-tokens: Punctuation: "=" [101:28 - 101:29] VarDecl=AttrName:101:19 (Definition)
  909. // CHECK-tokens: Identifier: "Name" [101:30 - 101:34] DeclRefExpr=Name:100:67
  910. // CHECK-tokens: Punctuation: "->" [101:34 - 101:36] MemberRefExpr=getName:77:19
  911. // CHECK-tokens: Identifier: "getName" [101:36 - 101:43] MemberRefExpr=getName:77:19
  912. // CHECK-tokens: Punctuation: "(" [101:43 - 101:44] CallExpr=getName:77:19
  913. // CHECK-tokens: Punctuation: ")" [101:44 - 101:45] CallExpr=getName:77:19
  914. // CHECK-tokens: Punctuation: ";" [101:45 - 101:46] DeclStmt=
  915. // CHECK-tokens: Keyword: "if" [102:3 - 102:5] IfStmt=
  916. // CHECK-tokens: Punctuation: "(" [102:6 - 102:7] IfStmt=
  917. // CHECK-tokens: Identifier: "AttrName" [102:7 - 102:15] DeclRefExpr=AttrName:101:19
  918. // CHECK-tokens: Punctuation: "." [102:15 - 102:16] MemberRefExpr=startswith:52:8
  919. // CHECK-tokens: Identifier: "startswith" [102:16 - 102:26] MemberRefExpr=startswith:52:8
  920. // CHECK-tokens: Punctuation: "(" [102:26 - 102:27] CallExpr=startswith:52:8
  921. // CHECK-tokens: Literal: ""__"" [102:27 - 102:31] StringLiteral=
  922. // CHECK-tokens: Punctuation: ")" [102:31 - 102:32] CallExpr=startswith:52:8
  923. // CHECK-tokens: Punctuation: "&&" [102:33 - 102:35] BinaryOperator=
  924. // CHECK-tokens: Identifier: "AttrName" [102:36 - 102:44] DeclRefExpr=AttrName:101:19
  925. // CHECK-tokens: Punctuation: "." [102:44 - 102:45] MemberRefExpr=endswith:56:8
  926. // CHECK-tokens: Identifier: "endswith" [102:45 - 102:53] MemberRefExpr=endswith:56:8
  927. // CHECK-tokens: Punctuation: "(" [102:53 - 102:54] CallExpr=endswith:56:8
  928. // CHECK-tokens: Literal: ""__"" [102:54 - 102:58] StringLiteral=
  929. // CHECK-tokens: Punctuation: ")" [102:58 - 102:59] CallExpr=endswith:56:8
  930. // CHECK-tokens: Punctuation: ")" [102:59 - 102:60] IfStmt=
  931. // CHECK-tokens: Identifier: "AttrName" [103:5 - 103:13] DeclRefExpr=AttrName:101:19
  932. // CHECK-tokens: Punctuation: "=" [103:14 - 103:15] DeclRefExpr=operator=:38:7
  933. // CHECK-tokens: Identifier: "AttrName" [103:16 - 103:24] DeclRefExpr=AttrName:101:19
  934. // CHECK-tokens: Punctuation: "." [103:24 - 103:25] MemberRefExpr=substr:60:13
  935. // CHECK-tokens: Identifier: "substr" [103:25 - 103:31] MemberRefExpr=substr:60:13
  936. // CHECK-tokens: Punctuation: "(" [103:31 - 103:32] CallExpr=substr:60:13
  937. // CHECK-tokens: Literal: "2" [103:32 - 103:33] IntegerLiteral=
  938. // CHECK-tokens: Punctuation: "," [103:33 - 103:34] CallExpr=substr:60:13
  939. // CHECK-tokens: Identifier: "AttrName" [103:35 - 103:43] DeclRefExpr=AttrName:101:19
  940. // CHECK-tokens: Punctuation: "." [103:43 - 103:44] MemberRefExpr=size:51:10
  941. // CHECK-tokens: Identifier: "size" [103:44 - 103:48] MemberRefExpr=size:51:10
  942. // CHECK-tokens: Punctuation: "(" [103:48 - 103:49] CallExpr=size:51:10
  943. // CHECK-tokens: Punctuation: ")" [103:49 - 103:50] CallExpr=size:51:10
  944. // CHECK-tokens: Punctuation: "-" [103:51 - 103:52] BinaryOperator=
  945. // CHECK-tokens: Literal: "4" [103:53 - 103:54] IntegerLiteral=
  946. // CHECK-tokens: Punctuation: ")" [103:54 - 103:55] CallExpr=substr:60:13
  947. // CHECK-tokens: Punctuation: ";" [103:55 - 103:56] CompoundStmt=
  948. // CHECK-tokens: Keyword: "return" [105:3 - 105:9] ReturnStmt=
  949. // FIXME: Missing "llvm" namespace reference below
  950. // CHECK-tokens: Identifier: "llvm" [105:10 - 105:14] NamespaceRef=llvm:82:11
  951. // CHECK-tokens: Punctuation: "::" [105:14 - 105:16] CXXFunctionalCastExpr=
  952. // CHECK-tokens: Identifier: "StringSwitch" [105:16 - 105:28] TemplateRef=StringSwitch:83:47
  953. // CHECK-tokens: Punctuation: "<" [105:29 - 105:30] CXXFunctionalCastExpr=
  954. // CHECK-tokens: Identifier: "AttributeList" [105:31 - 105:44] TypeRef=class clang::AttributeList:12:9
  955. // CHECK-tokens: Punctuation: "::" [105:44 - 105:46] CXXFunctionalCastExpr=
  956. // CHECK-tokens: Identifier: "Kind" [105:46 - 105:50] TypeRef=enum clang::AttributeList::Kind:13:10
  957. // CHECK-tokens: Punctuation: ">" [105:51 - 105:52] CallExpr=StringSwitch:87:12
  958. // CHECK-tokens: Punctuation: "(" [105:53 - 105:54] CallExpr=StringSwitch:87:12
  959. // CHECK-tokens: Identifier: "AttrName" [105:54 - 105:62] DeclRefExpr=AttrName:101:19
  960. // CHECK-tokens: Punctuation: ")" [105:62 - 105:63] CallExpr=StringSwitch:87:12
  961. // CHECK-tokens: Punctuation: "." [106:5 - 106:6] MemberRefExpr=Case:88:42
  962. // CHECK-tokens: Identifier: "Case" [106:6 - 106:10] MemberRefExpr=Case:88:42
  963. // CHECK-tokens: Punctuation: "(" [106:10 - 106:11] CallExpr=Case:88:42
  964. // CHECK-tokens: Literal: ""weak"" [106:11 - 106:17] StringLiteral=
  965. // CHECK-tokens: Punctuation: "," [106:17 - 106:18] CallExpr=Case:88:42
  966. // CHECK-tokens: Identifier: "AT_weak" [106:19 - 106:26] DeclRefExpr=AT_weak:29:45
  967. // CHECK-tokens: Punctuation: ")" [106:26 - 106:27] CallExpr=Case:88:42
  968. // CHECK-tokens: Punctuation: "." [107:5 - 107:6] MemberRefExpr=Case:88:42
  969. // CHECK-tokens: Identifier: "Case" [107:6 - 107:10] MemberRefExpr=Case:88:42
  970. // CHECK-tokens: Punctuation: "(" [107:10 - 107:11] CallExpr=Case:88:42
  971. // CHECK-tokens: Literal: ""weakref"" [107:11 - 107:20] StringLiteral=
  972. // CHECK-tokens: Punctuation: "," [107:20 - 107:21] CallExpr=Case:88:42
  973. // CHECK-tokens: Identifier: "AT_weakref" [107:22 - 107:32] DeclRefExpr=AT_weakref:29:54
  974. // CHECK-tokens: Punctuation: ")" [107:32 - 107:33] CallExpr=Case:88:42
  975. // CHECK-tokens: Punctuation: "." [108:5 - 108:6] MemberRefExpr=Case:88:42
  976. // CHECK-tokens: Identifier: "Case" [108:6 - 108:10] MemberRefExpr=Case:88:42
  977. // CHECK-tokens: Punctuation: "(" [108:10 - 108:11] CallExpr=Case:88:42
  978. // CHECK-tokens: Literal: ""pure"" [108:11 - 108:17] StringLiteral=
  979. // CHECK-tokens: Punctuation: "," [108:17 - 108:18] CallExpr=Case:88:42
  980. // CHECK-tokens: Identifier: "AT_pure" [108:19 - 108:26] DeclRefExpr=AT_pure:26:49
  981. // CHECK-tokens: Punctuation: ")" [108:26 - 108:27] CallExpr=Case:88:42
  982. // CHECK-tokens: Punctuation: "." [109:5 - 109:6] MemberRefExpr=Case:88:42
  983. // CHECK-tokens: Identifier: "Case" [109:6 - 109:10] MemberRefExpr=Case:88:42
  984. // CHECK-tokens: Punctuation: "(" [109:10 - 109:11] CallExpr=Case:88:42
  985. // CHECK-tokens: Literal: ""mode"" [109:11 - 109:17] StringLiteral=
  986. // CHECK-tokens: Punctuation: "," [109:17 - 109:18] CallExpr=Case:88:42
  987. // CHECK-tokens: Identifier: "AT_mode" [109:19 - 109:26] DeclRefExpr=AT_mode:20:44
  988. // CHECK-tokens: Punctuation: ")" [109:26 - 109:27] CallExpr=Case:88:42
  989. // CHECK-tokens: Punctuation: "." [110:5 - 110:6] MemberRefExpr=Case:88:42
  990. // CHECK-tokens: Identifier: "Case" [110:6 - 110:10] MemberRefExpr=Case:88:42
  991. // CHECK-tokens: Punctuation: "(" [110:10 - 110:11] CallExpr=Case:88:42
  992. // CHECK-tokens: Literal: ""used"" [110:11 - 110:17] StringLiteral=
  993. // CHECK-tokens: Punctuation: "," [110:17 - 110:18] CallExpr=Case:88:42
  994. // CHECK-tokens: Identifier: "AT_used" [110:19 - 110:26] DeclRefExpr=AT_used:28:34
  995. // CHECK-tokens: Punctuation: ")" [110:26 - 110:27] CallExpr=Case:88:42
  996. // CHECK-tokens: Punctuation: "." [111:5 - 111:6] MemberRefExpr=Case:88:42
  997. // CHECK-tokens: Identifier: "Case" [111:6 - 111:10] MemberRefExpr=Case:88:42
  998. // CHECK-tokens: Punctuation: "(" [111:10 - 111:11] CallExpr=Case:88:42
  999. // CHECK-tokens: Literal: ""alias"" [111:11 - 111:18] StringLiteral=
  1000. // CHECK-tokens: Punctuation: "," [111:18 - 111:19] CallExpr=Case:88:42
  1001. // CHECK-tokens: Identifier: "AT_alias" [111:20 - 111:28] DeclRefExpr=AT_alias:15:25
  1002. // CHECK-tokens: Punctuation: ")" [111:28 - 111:29] CallExpr=Case:88:42
  1003. // CHECK-tokens: Punctuation: "." [112:5 - 112:6] MemberRefExpr=Case:88:42
  1004. // CHECK-tokens: Identifier: "Case" [112:6 - 112:10] MemberRefExpr=Case:88:42
  1005. // CHECK-tokens: Punctuation: "(" [112:10 - 112:11] CallExpr=Case:88:42
  1006. // CHECK-tokens: Literal: ""align"" [112:11 - 112:18] StringLiteral=
  1007. // CHECK-tokens: Punctuation: "," [112:18 - 112:19] CallExpr=Case:88:42
  1008. // CHECK-tokens: Identifier: "AT_aligned" [112:20 - 112:30] DeclRefExpr=AT_aligned:15:35
  1009. // CHECK-tokens: Punctuation: ")" [112:30 - 112:31] CallExpr=Case:88:42
  1010. // CHECK-tokens: Punctuation: "." [113:5 - 113:6] MemberRefExpr=Case:88:42
  1011. // CHECK-tokens: Identifier: "Case" [113:6 - 113:10] MemberRefExpr=Case:88:42
  1012. // CHECK-tokens: Punctuation: "(" [113:10 - 113:11] CallExpr=Case:88:42
  1013. // CHECK-tokens: Literal: ""final"" [113:11 - 113:18] StringLiteral=
  1014. // CHECK-tokens: Punctuation: "," [113:18 - 113:19] CallExpr=Case:88:42
  1015. // CHECK-tokens: Identifier: "AT_final" [113:20 - 113:28] DeclRefExpr=AT_final:19:40
  1016. // CHECK-tokens: Punctuation: ")" [113:28 - 113:29] CallExpr=Case:88:42
  1017. // CHECK-tokens: Punctuation: "." [114:5 - 114:6] MemberRefExpr=Case:88:42
  1018. // CHECK-tokens: Identifier: "Case" [114:6 - 114:10] MemberRefExpr=Case:88:42
  1019. // CHECK-tokens: Punctuation: "(" [114:10 - 114:11] CallExpr=Case:88:42
  1020. // CHECK-tokens: Literal: ""cdecl"" [114:11 - 114:18] StringLiteral=
  1021. // CHECK-tokens: Punctuation: "," [114:18 - 114:19] CallExpr=Case:88:42
  1022. // CHECK-tokens: Identifier: "AT_cdecl" [114:20 - 114:28] DeclRefExpr=AT_cdecl:17:30
  1023. // CHECK-tokens: Punctuation: ")" [114:28 - 114:29] CallExpr=Case:88:42
  1024. // CHECK-tokens: Punctuation: "." [115:5 - 115:6] MemberRefExpr=Case:88:42
  1025. // CHECK-tokens: Identifier: "Case" [115:6 - 115:10] MemberRefExpr=Case:88:42
  1026. // CHECK-tokens: Punctuation: "(" [115:10 - 115:11] CallExpr=Case:88:42
  1027. // CHECK-tokens: Literal: ""const"" [115:11 - 115:18] StringLiteral=
  1028. // CHECK-tokens: Punctuation: "," [115:18 - 115:19] CallExpr=Case:88:42
  1029. // CHECK-tokens: Identifier: "AT_const" [115:20 - 115:28] DeclRefExpr=AT_const:17:52
  1030. // CHECK-tokens: Punctuation: ")" [115:28 - 115:29] CallExpr=Case:88:42
  1031. // CHECK-tokens: Punctuation: "." [116:5 - 116:6] MemberRefExpr=Case:88:42
  1032. // CHECK-tokens: Identifier: "Case" [116:6 - 116:10] MemberRefExpr=Case:88:42
  1033. // CHECK-tokens: Punctuation: "(" [116:10 - 116:11] CallExpr=Case:88:42
  1034. // CHECK-tokens: Literal: ""__const"" [116:11 - 116:20] StringLiteral=
  1035. // CHECK-tokens: Punctuation: "," [116:20 - 116:21] CallExpr=Case:88:42
  1036. // CHECK-tokens: Identifier: "AT_const" [116:22 - 116:30] DeclRefExpr=AT_const:17:52
  1037. // CHECK-tokens: Punctuation: ")" [116:30 - 116:31] CallExpr=Case:88:42
  1038. // CHECK-tokens: Punctuation: "." [117:5 - 117:6] MemberRefExpr=Case:88:42
  1039. // CHECK-tokens: Identifier: "Case" [117:6 - 117:10] MemberRefExpr=Case:88:42
  1040. // CHECK-tokens: Punctuation: "(" [117:10 - 117:11] CallExpr=Case:88:42
  1041. // CHECK-tokens: Literal: ""blocks"" [117:11 - 117:19] StringLiteral=
  1042. // CHECK-tokens: Punctuation: "," [117:19 - 117:20] CallExpr=Case:88:42
  1043. // CHECK-tokens: Identifier: "AT_blocks" [117:21 - 117:30] DeclRefExpr=AT_blocks:16:57
  1044. // CHECK-tokens: Punctuation: ")" [117:30 - 117:31] CallExpr=Case:88:42
  1045. // CHECK-tokens: Punctuation: "." [118:5 - 118:6] MemberRefExpr=Case:88:42
  1046. // CHECK-tokens: Identifier: "Case" [118:6 - 118:10] MemberRefExpr=Case:88:42
  1047. // CHECK-tokens: Punctuation: "(" [118:10 - 118:11] CallExpr=Case:88:42
  1048. // CHECK-tokens: Literal: ""format"" [118:11 - 118:19] StringLiteral=
  1049. // CHECK-tokens: Punctuation: "," [118:19 - 118:20] CallExpr=Case:88:42
  1050. // CHECK-tokens: Identifier: "AT_format" [118:21 - 118:30] DeclRefExpr=AT_format:19:50
  1051. // CHECK-tokens: Punctuation: ")" [118:30 - 118:31] CallExpr=Case:88:42
  1052. // CHECK-tokens: Punctuation: "." [119:5 - 119:6] MemberRefExpr=Case:88:42
  1053. // CHECK-tokens: Identifier: "Case" [119:6 - 119:10] MemberRefExpr=Case:88:42
  1054. // CHECK-tokens: Punctuation: "(" [119:10 - 119:11] CallExpr=Case:88:42
  1055. // CHECK-tokens: Literal: ""hiding"" [119:11 - 119:19] StringLiteral=
  1056. // CHECK-tokens: Punctuation: "," [119:19 - 119:20] CallExpr=Case:88:42
  1057. // CHECK-tokens: Identifier: "AT_hiding" [119:21 - 119:30] DeclRefExpr=AT_hiding:20:22
  1058. // CHECK-tokens: Punctuation: ")" [119:30 - 119:31] CallExpr=Case:88:42
  1059. // CHECK-tokens: Punctuation: "." [120:5 - 120:6] MemberRefExpr=Case:88:42
  1060. // CHECK-tokens: Identifier: "Case" [120:6 - 120:10] MemberRefExpr=Case:88:42
  1061. // CHECK-tokens: Punctuation: "(" [120:10 - 120:11] CallExpr=Case:88:42
  1062. // CHECK-tokens: Literal: ""malloc"" [120:11 - 120:19] StringLiteral=
  1063. // CHECK-tokens: Punctuation: "," [120:19 - 120:20] CallExpr=Case:88:42
  1064. // CHECK-tokens: Identifier: "AT_malloc" [120:21 - 120:30] DeclRefExpr=AT_malloc:20:33
  1065. // CHECK-tokens: Punctuation: ")" [120:30 - 120:31] CallExpr=Case:88:42
  1066. // CHECK-tokens: Punctuation: "." [121:5 - 121:6] MemberRefExpr=Case:88:42
  1067. // CHECK-tokens: Identifier: "Case" [121:6 - 121:10] MemberRefExpr=Case:88:42
  1068. // CHECK-tokens: Punctuation: "(" [121:10 - 121:11] CallExpr=Case:88:42
  1069. // CHECK-tokens: Literal: ""packed"" [121:11 - 121:19] StringLiteral=
  1070. // CHECK-tokens: Punctuation: "," [121:19 - 121:20] CallExpr=Case:88:42
  1071. // CHECK-tokens: Identifier: "AT_packed" [121:21 - 121:30] DeclRefExpr=AT_packed:26:27
  1072. // CHECK-tokens: Punctuation: ")" [121:30 - 121:31] CallExpr=Case:88:42
  1073. // CHECK-tokens: Punctuation: "." [122:5 - 122:6] MemberRefExpr=Case:88:42
  1074. // CHECK-tokens: Identifier: "Case" [122:6 - 122:10] MemberRefExpr=Case:88:42
  1075. // CHECK-tokens: Punctuation: "(" [122:10 - 122:11] CallExpr=Case:88:42
  1076. // CHECK-tokens: Literal: ""unused"" [122:11 - 122:19] StringLiteral=
  1077. // CHECK-tokens: Punctuation: "," [122:19 - 122:20] CallExpr=Case:88:42
  1078. // CHECK-tokens: Identifier: "AT_unused" [122:21 - 122:30] DeclRefExpr=AT_unused:28:23
  1079. // CHECK-tokens: Punctuation: ")" [122:30 - 122:31] CallExpr=Case:88:42
  1080. // CHECK-tokens: Punctuation: "." [123:5 - 123:6] MemberRefExpr=Case:88:42
  1081. // CHECK-tokens: Identifier: "Case" [123:6 - 123:10] MemberRefExpr=Case:88:42
  1082. // CHECK-tokens: Punctuation: "(" [123:10 - 123:11] CallExpr=Case:88:42
  1083. // CHECK-tokens: Literal: ""aligned"" [123:11 - 123:20] StringLiteral=
  1084. // CHECK-tokens: Punctuation: "," [123:20 - 123:21] CallExpr=Case:88:42
  1085. // CHECK-tokens: Identifier: "AT_aligned" [123:22 - 123:32] DeclRefExpr=AT_aligned:15:35
  1086. // CHECK-tokens: Punctuation: ")" [123:32 - 123:33] CallExpr=Case:88:42
  1087. // CHECK-tokens: Punctuation: "." [124:5 - 124:6] MemberRefExpr=Case:88:42
  1088. // CHECK-tokens: Identifier: "Case" [124:6 - 124:10] MemberRefExpr=Case:88:42
  1089. // CHECK-tokens: Punctuation: "(" [124:10 - 124:11] CallExpr=Case:88:42
  1090. // CHECK-tokens: Literal: ""cleanup"" [124:11 - 124:20] StringLiteral=
  1091. // CHECK-tokens: Punctuation: "," [124:20 - 124:21] CallExpr=Case:88:42
  1092. // CHECK-tokens: Identifier: "AT_cleanup" [124:22 - 124:32] DeclRefExpr=AT_cleanup:17:40
  1093. // CHECK-tokens: Punctuation: ")" [124:32 - 124:33] CallExpr=Case:88:42
  1094. // CHECK-tokens: Punctuation: "." [125:5 - 125:6] MemberRefExpr=Case:88:42
  1095. // CHECK-tokens: Identifier: "Case" [125:6 - 125:10] MemberRefExpr=Case:88:42
  1096. // CHECK-tokens: Punctuation: "(" [125:10 - 125:11] CallExpr=Case:88:42
  1097. // CHECK-tokens: Literal: ""naked"" [125:11 - 125:18] StringLiteral=
  1098. // CHECK-tokens: Punctuation: "," [125:18 - 125:19] CallExpr=Case:88:42
  1099. // CHECK-tokens: Identifier: "AT_naked" [125:20 - 125:28] DeclRefExpr=AT_naked:20:53
  1100. // CHECK-tokens: Punctuation: ")" [125:28 - 125:29] CallExpr=Case:88:42
  1101. // CHECK-tokens: Punctuation: "." [126:5 - 126:6] MemberRefExpr=Case:88:42
  1102. // CHECK-tokens: Identifier: "Case" [126:6 - 126:10] MemberRefExpr=Case:88:42
  1103. // CHECK-tokens: Punctuation: "(" [126:10 - 126:11] CallExpr=Case:88:42
  1104. // CHECK-tokens: Literal: ""nodebug"" [126:11 - 126:20] StringLiteral=
  1105. // CHECK-tokens: Punctuation: "," [126:20 - 126:21] CallExpr=Case:88:42
  1106. // CHECK-tokens: Identifier: "AT_nodebug" [126:22 - 126:32] DeclRefExpr=AT_nodebug:20:63
  1107. // CHECK-tokens: Punctuation: ")" [126:32 - 126:33] CallExpr=Case:88:42
  1108. // CHECK-tokens: Punctuation: "." [127:5 - 127:6] MemberRefExpr=Case:88:42
  1109. // CHECK-tokens: Identifier: "Case" [127:6 - 127:10] MemberRefExpr=Case:88:42
  1110. // CHECK-tokens: Punctuation: "(" [127:10 - 127:11] CallExpr=Case:88:42
  1111. // CHECK-tokens: Literal: ""nonnull"" [127:11 - 127:20] StringLiteral=
  1112. // CHECK-tokens: Punctuation: "," [127:20 - 127:21] CallExpr=Case:88:42
  1113. // CHECK-tokens: Identifier: "AT_nonnull" [127:22 - 127:32] DeclRefExpr=AT_nonnull:21:47
  1114. // CHECK-tokens: Punctuation: ")" [127:32 - 127:33] CallExpr=Case:88:42
  1115. // CHECK-tokens: Punctuation: "." [128:5 - 128:6] MemberRefExpr=Case:88:42
  1116. // CHECK-tokens: Identifier: "Case" [128:6 - 128:10] MemberRefExpr=Case:88:42
  1117. // CHECK-tokens: Punctuation: "(" [128:10 - 128:11] CallExpr=Case:88:42
  1118. // CHECK-tokens: Literal: ""nothrow"" [128:11 - 128:20] StringLiteral=
  1119. // CHECK-tokens: Punctuation: "," [128:20 - 128:21] CallExpr=Case:88:42
  1120. // CHECK-tokens: Identifier: "AT_nothrow" [128:22 - 128:32] DeclRefExpr=AT_nothrow:22:7
  1121. // CHECK-tokens: Punctuation: ")" [128:32 - 128:33] CallExpr=Case:88:42
  1122. // CHECK-tokens: Punctuation: "." [129:5 - 129:6] MemberRefExpr=Case:88:42
  1123. // CHECK-tokens: Identifier: "Case" [129:6 - 129:10] MemberRefExpr=Case:88:42
  1124. // CHECK-tokens: Punctuation: "(" [129:10 - 129:11] CallExpr=Case:88:42
  1125. // CHECK-tokens: Literal: ""objc_gc"" [129:11 - 129:20] StringLiteral=
  1126. // CHECK-tokens: Punctuation: "," [129:20 - 129:21] CallExpr=Case:88:42
  1127. // CHECK-tokens: Identifier: "AT_objc_gc" [129:22 - 129:32] DeclRefExpr=AT_objc_gc:24:59
  1128. // CHECK-tokens: Punctuation: ")" [129:32 - 129:33] CallExpr=Case:88:42
  1129. // CHECK-tokens: Punctuation: "." [130:5 - 130:6] MemberRefExpr=Case:88:42
  1130. // CHECK-tokens: Identifier: "Case" [130:6 - 130:10] MemberRefExpr=Case:88:42
  1131. // CHECK-tokens: Punctuation: "(" [130:10 - 130:11] CallExpr=Case:88:42
  1132. // CHECK-tokens: Literal: ""regparm"" [130:11 - 130:20] StringLiteral=
  1133. // CHECK-tokens: Punctuation: "," [130:20 - 130:21] CallExpr=Case:88:42
  1134. // CHECK-tokens: Identifier: "AT_regparm" [130:22 - 130:32] DeclRefExpr=AT_regparm:26:58
  1135. // CHECK-tokens: Punctuation: ")" [130:32 - 130:33] CallExpr=Case:88:42
  1136. // CHECK-tokens: Punctuation: "." [131:5 - 131:6] MemberRefExpr=Case:88:42
  1137. // CHECK-tokens: Identifier: "Case" [131:6 - 131:10] MemberRefExpr=Case:88:42
  1138. // CHECK-tokens: Punctuation: "(" [131:10 - 131:11] CallExpr=Case:88:42
  1139. // CHECK-tokens: Literal: ""section"" [131:11 - 131:20] StringLiteral=
  1140. // CHECK-tokens: Punctuation: "," [131:20 - 131:21] CallExpr=Case:88:42
  1141. // CHECK-tokens: Identifier: "AT_section" [131:22 - 131:32] DeclRefExpr=AT_section:27:7
  1142. // CHECK-tokens: Punctuation: ")" [131:32 - 131:33] CallExpr=Case:88:42
  1143. // CHECK-tokens: Punctuation: "." [132:5 - 132:6] MemberRefExpr=Case:88:42
  1144. // CHECK-tokens: Identifier: "Case" [132:6 - 132:10] MemberRefExpr=Case:88:42
  1145. // CHECK-tokens: Punctuation: "(" [132:10 - 132:11] CallExpr=Case:88:42
  1146. // CHECK-tokens: Literal: ""stdcall"" [132:11 - 132:20] StringLiteral=
  1147. // CHECK-tokens: Punctuation: "," [132:20 - 132:21] CallExpr=Case:88:42
  1148. // CHECK-tokens: Identifier: "AT_stdcall" [132:22 - 132:32] DeclRefExpr=AT_stdcall:27:32
  1149. // CHECK-tokens: Punctuation: ")" [132:32 - 132:33] CallExpr=Case:88:42
  1150. // CHECK-tokens: Punctuation: "." [133:5 - 133:6] MemberRefExpr=Case:88:42
  1151. // CHECK-tokens: Identifier: "Case" [133:6 - 133:10] MemberRefExpr=Case:88:42
  1152. // CHECK-tokens: Punctuation: "(" [133:10 - 133:11] CallExpr=Case:88:42
  1153. // CHECK-tokens: Literal: ""annotate"" [133:11 - 133:21] StringLiteral=
  1154. // CHECK-tokens: Punctuation: "," [133:21 - 133:22] CallExpr=Case:88:42
  1155. // CHECK-tokens: Identifier: "AT_annotate" [133:23 - 133:34] DeclRefExpr=AT_annotate:16:29
  1156. // CHECK-tokens: Punctuation: ")" [133:34 - 133:35] CallExpr=Case:88:42
  1157. // CHECK-tokens: Punctuation: "." [134:5 - 134:6] MemberRefExpr=Case:88:42
  1158. // CHECK-tokens: Identifier: "Case" [134:6 - 134:10] MemberRefExpr=Case:88:42
  1159. // CHECK-tokens: Punctuation: "(" [134:10 - 134:11] CallExpr=Case:88:42
  1160. // CHECK-tokens: Literal: ""fastcall"" [134:11 - 134:21] StringLiteral=
  1161. // CHECK-tokens: Punctuation: "," [134:21 - 134:22] CallExpr=Case:88:42
  1162. // CHECK-tokens: Identifier: "AT_fastcall" [134:23 - 134:34] DeclRefExpr=AT_fastcall:19:27
  1163. // CHECK-tokens: Punctuation: ")" [134:34 - 134:35] CallExpr=Case:88:42
  1164. // CHECK-tokens: Punctuation: "." [135:5 - 135:6] MemberRefExpr=Case:88:42
  1165. // CHECK-tokens: Identifier: "Case" [135:6 - 135:10] MemberRefExpr=Case:88:42
  1166. // CHECK-tokens: Punctuation: "(" [135:10 - 135:11] CallExpr=Case:88:42
  1167. // CHECK-tokens: Literal: ""ibaction"" [135:11 - 135:21] StringLiteral=
  1168. // CHECK-tokens: Punctuation: "," [135:21 - 135:22] CallExpr=Case:88:42
  1169. // CHECK-tokens: Identifier: "AT_IBAction" [135:23 - 135:34] DeclRefExpr=AT_IBAction:14:7
  1170. // CHECK-tokens: Punctuation: ")" [135:34 - 135:35] CallExpr=Case:88:42
  1171. // CHECK-tokens: Punctuation: "." [136:5 - 136:6] MemberRefExpr=Case:88:42
  1172. // CHECK-tokens: Identifier: "Case" [136:6 - 136:10] MemberRefExpr=Case:88:42
  1173. // CHECK-tokens: Punctuation: "(" [136:10 - 136:11] CallExpr=Case:88:42
  1174. // CHECK-tokens: Literal: ""iboutlet"" [136:11 - 136:21] StringLiteral=
  1175. // CHECK-tokens: Punctuation: "," [136:21 - 136:22] CallExpr=Case:88:42
  1176. // CHECK-tokens: Identifier: "AT_IBOutlet" [136:23 - 136:34] DeclRefExpr=AT_IBOutlet:14:20
  1177. // CHECK-tokens: Punctuation: ")" [136:34 - 136:35] CallExpr=Case:88:42
  1178. // CHECK-tokens: Punctuation: "." [137:5 - 137:6] MemberRefExpr=Case:88:42
  1179. // CHECK-tokens: Identifier: "Case" [137:6 - 137:10] MemberRefExpr=Case:88:42
  1180. // CHECK-tokens: Punctuation: "(" [137:10 - 137:11] CallExpr=Case:88:42
  1181. // CHECK-tokens: Literal: ""iboutletcollection"" [137:11 - 137:31] StringLiteral=
  1182. // CHECK-tokens: Punctuation: "," [137:31 - 137:32] CallExpr=Case:88:42
  1183. // CHECK-tokens: Identifier: "AT_IBOutletCollection" [137:33 - 137:54] DeclRefExpr=AT_IBOutletCollection:14:33
  1184. // CHECK-tokens: Punctuation: ")" [137:54 - 137:55] CallExpr=Case:88:42
  1185. // CHECK-tokens: Punctuation: "." [138:5 - 138:6] MemberRefExpr=Case:88:42
  1186. // CHECK-tokens: Identifier: "Case" [138:6 - 138:10] MemberRefExpr=Case:88:42
  1187. // CHECK-tokens: Punctuation: "(" [138:10 - 138:11] CallExpr=Case:88:42
  1188. // CHECK-tokens: Literal: ""noreturn"" [138:11 - 138:21] StringLiteral=
  1189. // CHECK-tokens: Punctuation: "," [138:21 - 138:22] CallExpr=Case:88:42
  1190. // CHECK-tokens: Identifier: "AT_noreturn" [138:23 - 138:34] DeclRefExpr=AT_noreturn:21:59
  1191. // CHECK-tokens: Punctuation: ")" [138:34 - 138:35] CallExpr=Case:88:42
  1192. // CHECK-tokens: Punctuation: "." [139:5 - 139:6] MemberRefExpr=Case:88:42
  1193. // CHECK-tokens: Identifier: "Case" [139:6 - 139:10] MemberRefExpr=Case:88:42
  1194. // CHECK-tokens: Punctuation: "(" [139:10 - 139:11] CallExpr=Case:88:42
  1195. // CHECK-tokens: Literal: ""noinline"" [139:11 - 139:21] StringLiteral=
  1196. // CHECK-tokens: Punctuation: "," [139:21 - 139:22] CallExpr=Case:88:42
  1197. // CHECK-tokens: Identifier: "AT_noinline" [139:23 - 139:34] DeclRefExpr=AT_noinline:21:7
  1198. // CHECK-tokens: Punctuation: ")" [139:34 - 139:35] CallExpr=Case:88:42
  1199. // CHECK-tokens: Punctuation: "." [140:5 - 140:6] MemberRefExpr=Case:88:42
  1200. // CHECK-tokens: Identifier: "Case" [140:6 - 140:10] MemberRefExpr=Case:88:42
  1201. // CHECK-tokens: Punctuation: "(" [140:10 - 140:11] CallExpr=Case:88:42
  1202. // CHECK-tokens: Literal: ""override"" [140:11 - 140:21] StringLiteral=
  1203. // CHECK-tokens: Punctuation: "," [140:21 - 140:22] CallExpr=Case:88:42
  1204. // CHECK-tokens: Identifier: "AT_override" [140:23 - 140:34] DeclRefExpr=AT_override:22:51
  1205. // CHECK-tokens: Punctuation: ")" [140:34 - 140:35] CallExpr=Case:88:42
  1206. // CHECK-tokens: Punctuation: "." [141:5 - 141:6] MemberRefExpr=Case:88:42
  1207. // CHECK-tokens: Identifier: "Case" [141:6 - 141:10] MemberRefExpr=Case:88:42
  1208. // CHECK-tokens: Punctuation: "(" [141:10 - 141:11] CallExpr=Case:88:42
  1209. // CHECK-tokens: Literal: ""sentinel"" [141:11 - 141:21] StringLiteral=
  1210. // CHECK-tokens: Punctuation: "," [141:21 - 141:22] CallExpr=Case:88:42
  1211. // CHECK-tokens: Identifier: "AT_sentinel" [141:23 - 141:34] DeclRefExpr=AT_sentinel:27:19
  1212. // CHECK-tokens: Punctuation: ")" [141:34 - 141:35] CallExpr=Case:88:42
  1213. // CHECK-tokens: Punctuation: "." [142:5 - 142:6] MemberRefExpr=Case:88:42
  1214. // CHECK-tokens: Identifier: "Case" [142:6 - 142:10] MemberRefExpr=Case:88:42
  1215. // CHECK-tokens: Punctuation: "(" [142:10 - 142:11] CallExpr=Case:88:42
  1216. // CHECK-tokens: Literal: ""NSObject"" [142:11 - 142:21] StringLiteral=
  1217. // CHECK-tokens: Punctuation: "," [142:21 - 142:22] CallExpr=Case:88:42
  1218. // CHECK-tokens: Identifier: "AT_nsobject" [142:23 - 142:34] DeclRefExpr=AT_nsobject:22:19
  1219. // CHECK-tokens: Punctuation: ")" [142:34 - 142:35] CallExpr=Case:88:42
  1220. // CHECK-tokens: Punctuation: "." [143:5 - 143:6] MemberRefExpr=Case:88:42
  1221. // CHECK-tokens: Identifier: "Case" [143:6 - 143:10] MemberRefExpr=Case:88:42
  1222. // CHECK-tokens: Punctuation: "(" [143:10 - 143:11] CallExpr=Case:88:42
  1223. // CHECK-tokens: Literal: ""dllimport"" [143:11 - 143:22] StringLiteral=
  1224. // CHECK-tokens: Punctuation: "," [143:22 - 143:23] CallExpr=Case:88:42
  1225. // CHECK-tokens: Identifier: "AT_dllimport" [143:24 - 143:36] DeclRefExpr=AT_dllimport:18:51
  1226. // CHECK-tokens: Punctuation: ")" [143:36 - 143:37] CallExpr=Case:88:42
  1227. // CHECK-tokens: Punctuation: "." [144:5 - 144:6] MemberRefExpr=Case:88:42
  1228. // CHECK-tokens: Identifier: "Case" [144:6 - 144:10] MemberRefExpr=Case:88:42
  1229. // CHECK-tokens: Punctuation: "(" [144:10 - 144:11] CallExpr=Case:88:42
  1230. // CHECK-tokens: Literal: ""dllexport"" [144:11 - 144:22] StringLiteral=
  1231. // CHECK-tokens: Punctuation: "," [144:22 - 144:23] CallExpr=Case:88:42
  1232. // CHECK-tokens: Identifier: "AT_dllexport" [144:24 - 144:36] DeclRefExpr=AT_dllexport:18:37
  1233. // CHECK-tokens: Punctuation: ")" [144:36 - 144:37] CallExpr=Case:88:42
  1234. // CHECK-tokens: Punctuation: "." [145:5 - 145:6] MemberRefExpr=Case:88:42
  1235. // CHECK-tokens: Identifier: "Case" [145:6 - 145:10] MemberRefExpr=Case:88:42
  1236. // CHECK-tokens: Punctuation: "(" [145:10 - 145:11] CallExpr=Case:88:42
  1237. // CHECK-tokens: Literal: ""may_alias"" [145:11 - 145:22] StringLiteral=
  1238. // CHECK-tokens: Punctuation: "," [145:22 - 145:23] CallExpr=Case:88:42
  1239. // CHECK-tokens: Identifier: "IgnoredAttribute" [145:24 - 145:40] DeclRefExpr=IgnoredAttribute:31:25
  1240. // CHECK-tokens: Punctuation: ")" [145:40 - 145:41] CallExpr=Case:88:42
  1241. // CHECK-tokens: Punctuation: "." [146:5 - 146:6] MemberRefExpr=Case:88:42
  1242. // CHECK-tokens: Identifier: "Case" [146:6 - 146:10] MemberRefExpr=Case:88:42
  1243. // CHECK-tokens: Punctuation: "(" [146:10 - 146:11] CallExpr=Case:88:42
  1244. // CHECK-tokens: Literal: ""base_check"" [146:11 - 146:23] StringLiteral=
  1245. // CHECK-tokens: Punctuation: "," [146:23 - 146:24] CallExpr=Case:88:42
  1246. // CHECK-tokens: Identifier: "AT_base_check" [146:25 - 146:38] DeclRefExpr=AT_base_check:16:42
  1247. // CHECK-tokens: Punctuation: ")" [146:38 - 146:39] CallExpr=Case:88:42
  1248. // CHECK-tokens: Punctuation: "." [147:5 - 147:6] MemberRefExpr=Case:88:42
  1249. // CHECK-tokens: Identifier: "Case" [147:6 - 147:10] MemberRefExpr=Case:88:42
  1250. // CHECK-tokens: Punctuation: "(" [147:10 - 147:11] CallExpr=Case:88:42
  1251. // CHECK-tokens: Literal: ""deprecated"" [147:11 - 147:23] StringLiteral=
  1252. // CHECK-tokens: Punctuation: "," [147:23 - 147:24] CallExpr=Case:88:42
  1253. // CHECK-tokens: Identifier: "AT_deprecated" [147:25 - 147:38] DeclRefExpr=AT_deprecated:18:7
  1254. // CHECK-tokens: Punctuation: ")" [147:38 - 147:39] CallExpr=Case:88:42
  1255. // CHECK-tokens: Punctuation: "." [148:5 - 148:6] MemberRefExpr=Case:88:42
  1256. // CHECK-tokens: Identifier: "Case" [148:6 - 148:10] MemberRefExpr=Case:88:42
  1257. // CHECK-tokens: Punctuation: "(" [148:10 - 148:11] CallExpr=Case:88:42
  1258. // CHECK-tokens: Literal: ""visibility"" [148:11 - 148:23] StringLiteral=
  1259. // CHECK-tokens: Punctuation: "," [148:23 - 148:24] CallExpr=Case:88:42
  1260. // CHECK-tokens: Identifier: "AT_visibility" [148:25 - 148:38] DeclRefExpr=AT_visibility:29:7
  1261. // CHECK-tokens: Punctuation: ")" [148:38 - 148:39] CallExpr=Case:88:42
  1262. // CHECK-tokens: Punctuation: "." [149:5 - 149:6] MemberRefExpr=Case:88:42
  1263. // CHECK-tokens: Identifier: "Case" [149:6 - 149:10] MemberRefExpr=Case:88:42
  1264. // CHECK-tokens: Punctuation: "(" [149:10 - 149:11] CallExpr=Case:88:42
  1265. // CHECK-tokens: Literal: ""destructor"" [149:11 - 149:23] StringLiteral=
  1266. // CHECK-tokens: Punctuation: "," [149:23 - 149:24] CallExpr=Case:88:42
  1267. // CHECK-tokens: Identifier: "AT_destructor" [149:25 - 149:38] DeclRefExpr=AT_destructor:18:22
  1268. // CHECK-tokens: Punctuation: ")" [149:38 - 149:39] CallExpr=Case:88:42
  1269. // CHECK-tokens: Punctuation: "." [150:5 - 150:6] MemberRefExpr=Case:88:42
  1270. // CHECK-tokens: Identifier: "Case" [150:6 - 150:10] MemberRefExpr=Case:88:42
  1271. // CHECK-tokens: Punctuation: "(" [150:10 - 150:11] CallExpr=Case:88:42
  1272. // CHECK-tokens: Literal: ""format_arg"" [150:11 - 150:23] StringLiteral=
  1273. // CHECK-tokens: Punctuation: "," [150:23 - 150:24] CallExpr=Case:88:42
  1274. // CHECK-tokens: Identifier: "AT_format_arg" [150:25 - 150:38] DeclRefExpr=AT_format_arg:19:61
  1275. // CHECK-tokens: Punctuation: ")" [150:38 - 150:39] CallExpr=Case:88:42
  1276. // CHECK-tokens: Punctuation: "." [151:5 - 151:6] MemberRefExpr=Case:88:42
  1277. // CHECK-tokens: Identifier: "Case" [151:6 - 151:10] MemberRefExpr=Case:88:42
  1278. // CHECK-tokens: Punctuation: "(" [151:10 - 151:11] CallExpr=Case:88:42
  1279. // CHECK-tokens: Literal: ""gnu_inline"" [151:11 - 151:23] StringLiteral=
  1280. // CHECK-tokens: Punctuation: "," [151:23 - 151:24] CallExpr=Case:88:42
  1281. // CHECK-tokens: Identifier: "AT_gnu_inline" [151:25 - 151:38] DeclRefExpr=AT_gnu_inline:20:7
  1282. // CHECK-tokens: Punctuation: ")" [151:38 - 151:39] CallExpr=Case:88:42
  1283. // CHECK-tokens: Punctuation: "." [152:5 - 152:6] MemberRefExpr=Case:88:42
  1284. // CHECK-tokens: Identifier: "Case" [152:6 - 152:10] MemberRefExpr=Case:88:42
  1285. // CHECK-tokens: Punctuation: "(" [152:10 - 152:11] CallExpr=Case:88:42
  1286. // CHECK-tokens: Literal: ""weak_import"" [152:11 - 152:24] StringLiteral=
  1287. // CHECK-tokens: Punctuation: "," [152:24 - 152:25] CallExpr=Case:88:42
  1288. // CHECK-tokens: Identifier: "AT_weak_import" [152:26 - 152:40] DeclRefExpr=AT_weak_import:30:7
  1289. // CHECK-tokens: Punctuation: ")" [152:40 - 152:41] CallExpr=Case:88:42
  1290. // CHECK-tokens: Punctuation: "." [153:5 - 153:6] MemberRefExpr=Case:88:42
  1291. // CHECK-tokens: Identifier: "Case" [153:6 - 153:10] MemberRefExpr=Case:88:42
  1292. // CHECK-tokens: Punctuation: "(" [153:10 - 153:11] CallExpr=Case:88:42
  1293. // CHECK-tokens: Literal: ""vecreturn"" [153:11 - 153:22] StringLiteral=
  1294. // CHECK-tokens: Punctuation: "," [153:22 - 153:23] CallExpr=Case:88:42
  1295. // CHECK-tokens: Identifier: "AT_vecreturn" [153:24 - 153:36] DeclRefExpr=AT_vecreturn:28:43
  1296. // CHECK-tokens: Punctuation: ")" [153:36 - 153:37] CallExpr=Case:88:42
  1297. // CHECK-tokens: Punctuation: "." [154:5 - 154:6] MemberRefExpr=Case:88:42
  1298. // CHECK-tokens: Identifier: "Case" [154:6 - 154:10] MemberRefExpr=Case:88:42
  1299. // CHECK-tokens: Punctuation: "(" [154:10 - 154:11] CallExpr=Case:88:42
  1300. // CHECK-tokens: Literal: ""vector_size"" [154:11 - 154:24] StringLiteral=
  1301. // CHECK-tokens: Punctuation: "," [154:24 - 154:25] CallExpr=Case:88:42
  1302. // CHECK-tokens: Identifier: "AT_vector_size" [154:26 - 154:40] DeclRefExpr=AT_vector_size:28:57
  1303. // CHECK-tokens: Punctuation: ")" [154:40 - 154:41] CallExpr=Case:88:42
  1304. // CHECK-tokens: Punctuation: "." [155:5 - 155:6] MemberRefExpr=Case:88:42
  1305. // CHECK-tokens: Identifier: "Case" [155:6 - 155:10] MemberRefExpr=Case:88:42
  1306. // CHECK-tokens: Punctuation: "(" [155:10 - 155:11] CallExpr=Case:88:42
  1307. // CHECK-tokens: Literal: ""constructor"" [155:11 - 155:24] StringLiteral=
  1308. // CHECK-tokens: Punctuation: "," [155:24 - 155:25] CallExpr=Case:88:42
  1309. // CHECK-tokens: Identifier: "AT_constructor" [155:26 - 155:40] DeclRefExpr=AT_constructor:17:62
  1310. // CHECK-tokens: Punctuation: ")" [155:40 - 155:41] CallExpr=Case:88:42
  1311. // CHECK-tokens: Punctuation: "." [156:5 - 156:6] MemberRefExpr=Case:88:42
  1312. // CHECK-tokens: Identifier: "Case" [156:6 - 156:10] MemberRefExpr=Case:88:42
  1313. // CHECK-tokens: Punctuation: "(" [156:10 - 156:11] CallExpr=Case:88:42
  1314. // CHECK-tokens: Literal: ""unavailable"" [156:11 - 156:24] StringLiteral=
  1315. // CHECK-tokens: Punctuation: "," [156:24 - 156:25] CallExpr=Case:88:42
  1316. // CHECK-tokens: Identifier: "AT_unavailable" [156:26 - 156:40] DeclRefExpr=AT_unavailable:28:7
  1317. // CHECK-tokens: Punctuation: ")" [156:40 - 156:41] CallExpr=Case:88:42
  1318. // CHECK-tokens: Punctuation: "." [157:5 - 157:6] MemberRefExpr=Case:88:42
  1319. // CHECK-tokens: Identifier: "Case" [157:6 - 157:10] MemberRefExpr=Case:88:42
  1320. // CHECK-tokens: Punctuation: "(" [157:10 - 157:11] CallExpr=Case:88:42
  1321. // CHECK-tokens: Literal: ""overloadable"" [157:11 - 157:25] StringLiteral=
  1322. // CHECK-tokens: Punctuation: "," [157:25 - 157:26] CallExpr=Case:88:42
  1323. // CHECK-tokens: Identifier: "AT_overloadable" [157:27 - 157:42] DeclRefExpr=AT_overloadable:25:7
  1324. // CHECK-tokens: Punctuation: ")" [157:42 - 157:43] CallExpr=Case:88:42
  1325. // CHECK-tokens: Punctuation: "." [158:5 - 158:6] MemberRefExpr=Case:88:42
  1326. // CHECK-tokens: Identifier: "Case" [158:6 - 158:10] MemberRefExpr=Case:88:42
  1327. // CHECK-tokens: Punctuation: "(" [158:10 - 158:11] CallExpr=Case:88:42
  1328. // CHECK-tokens: Literal: ""address_space"" [158:11 - 158:26] StringLiteral=
  1329. // CHECK-tokens: Punctuation: "," [158:26 - 158:27] CallExpr=Case:88:42
  1330. // CHECK-tokens: Identifier: "AT_address_space" [158:28 - 158:44] DeclRefExpr=AT_address_space:15:7
  1331. // CHECK-tokens: Punctuation: ")" [158:44 - 158:45] CallExpr=Case:88:42
  1332. // CHECK-tokens: Punctuation: "." [159:5 - 159:6] MemberRefExpr=Case:88:42
  1333. // CHECK-tokens: Identifier: "Case" [159:6 - 159:10] MemberRefExpr=Case:88:42
  1334. // CHECK-tokens: Punctuation: "(" [159:10 - 159:11] CallExpr=Case:88:42
  1335. // CHECK-tokens: Literal: ""always_inline"" [159:11 - 159:26] StringLiteral=
  1336. // CHECK-tokens: Punctuation: "," [159:26 - 159:27] CallExpr=Case:88:42
  1337. // CHECK-tokens: Identifier: "AT_always_inline" [159:28 - 159:44] DeclRefExpr=AT_always_inline:15:47
  1338. // CHECK-tokens: Punctuation: ")" [159:44 - 159:45] CallExpr=Case:88:42
  1339. // CHECK-tokens: Punctuation: "." [160:5 - 160:6] MemberRefExpr=Case:88:42
  1340. // CHECK-tokens: Identifier: "Case" [160:6 - 160:10] MemberRefExpr=Case:88:42
  1341. // CHECK-tokens: Punctuation: "(" [160:10 - 160:11] CallExpr=Case:88:42
  1342. // CHECK-tokens: Literal: ""returns_twice"" [160:11 - 160:26] StringLiteral=
  1343. // CHECK-tokens: Punctuation: "," [160:26 - 160:27] CallExpr=Case:88:42
  1344. // CHECK-tokens: Identifier: "AT_returns_twice" [160:28 - 160:44] DeclRefExpr=AT_returns_twice:31:7
  1345. // CHECK-tokens: Punctuation: ")" [160:44 - 160:45] CallExpr=Case:88:42
  1346. // CHECK-tokens: Punctuation: "." [161:5 - 161:6] MemberRefExpr=Case:88:42
  1347. // CHECK-tokens: Identifier: "Case" [161:6 - 161:10] MemberRefExpr=Case:88:42
  1348. // CHECK-tokens: Punctuation: "(" [161:10 - 161:11] CallExpr=Case:88:42
  1349. // CHECK-tokens: Literal: ""vec_type_hint"" [161:11 - 161:26] StringLiteral=
  1350. // CHECK-tokens: Punctuation: "," [161:26 - 161:27] CallExpr=Case:88:42
  1351. // CHECK-tokens: Identifier: "IgnoredAttribute" [161:28 - 161:44] DeclRefExpr=IgnoredAttribute:31:25
  1352. // CHECK-tokens: Punctuation: ")" [161:44 - 161:45] CallExpr=Case:88:42
  1353. // CHECK-tokens: Punctuation: "." [162:5 - 162:6] MemberRefExpr=Case:88:42
  1354. // CHECK-tokens: Identifier: "Case" [162:6 - 162:10] MemberRefExpr=Case:88:42
  1355. // CHECK-tokens: Punctuation: "(" [162:10 - 162:11] CallExpr=Case:88:42
  1356. // CHECK-tokens: Literal: ""objc_exception"" [162:11 - 162:27] StringLiteral=
  1357. // CHECK-tokens: Punctuation: "," [162:27 - 162:28] CallExpr=Case:88:42
  1358. // CHECK-tokens: Identifier: "AT_objc_exception" [162:29 - 162:46] DeclRefExpr=AT_objc_exception:22:32
  1359. // CHECK-tokens: Punctuation: ")" [162:46 - 162:47] CallExpr=Case:88:42
  1360. // CHECK-tokens: Punctuation: "." [163:5 - 163:6] MemberRefExpr=Case:88:42
  1361. // CHECK-tokens: Identifier: "Case" [163:6 - 163:10] MemberRefExpr=Case:88:42
  1362. // CHECK-tokens: Punctuation: "(" [163:10 - 163:11] CallExpr=Case:88:42
  1363. // CHECK-tokens: Literal: ""ext_vector_type"" [163:11 - 163:28] StringLiteral=
  1364. // CHECK-tokens: Punctuation: "," [163:28 - 163:29] CallExpr=Case:88:42
  1365. // CHECK-tokens: Identifier: "AT_ext_vector_type" [163:30 - 163:48] DeclRefExpr=AT_ext_vector_type:19:7
  1366. // CHECK-tokens: Punctuation: ")" [163:48 - 163:49] CallExpr=Case:88:42
  1367. // CHECK-tokens: Punctuation: "." [164:5 - 164:6] MemberRefExpr=Case:88:42
  1368. // CHECK-tokens: Identifier: "Case" [164:6 - 164:10] MemberRefExpr=Case:88:42
  1369. // CHECK-tokens: Punctuation: "(" [164:10 - 164:11] CallExpr=Case:88:42
  1370. // CHECK-tokens: Literal: ""transparent_union"" [164:11 - 164:30] StringLiteral=
  1371. // CHECK-tokens: Punctuation: "," [164:30 - 164:31] CallExpr=Case:88:42
  1372. // CHECK-tokens: Identifier: "AT_transparent_union" [164:32 - 164:52] DeclRefExpr=AT_transparent_union:27:57
  1373. // CHECK-tokens: Punctuation: ")" [164:52 - 164:53] CallExpr=Case:88:42
  1374. // CHECK-tokens: Punctuation: "." [165:5 - 165:6] MemberRefExpr=Case:88:42
  1375. // CHECK-tokens: Identifier: "Case" [165:6 - 165:10] MemberRefExpr=Case:88:42
  1376. // CHECK-tokens: Punctuation: "(" [165:10 - 165:11] CallExpr=Case:88:42
  1377. // CHECK-tokens: Literal: ""analyzer_noreturn"" [165:11 - 165:30] StringLiteral=
  1378. // CHECK-tokens: Punctuation: "," [165:30 - 165:31] CallExpr=Case:88:42
  1379. // CHECK-tokens: Identifier: "AT_analyzer_noreturn" [165:32 - 165:52] DeclRefExpr=AT_analyzer_noreturn:16:7
  1380. // CHECK-tokens: Punctuation: ")" [165:52 - 165:53] CallExpr=Case:88:42
  1381. // CHECK-tokens: Punctuation: "." [166:5 - 166:6] MemberRefExpr=Case:88:42
  1382. // CHECK-tokens: Identifier: "Case" [166:6 - 166:10] MemberRefExpr=Case:88:42
  1383. // CHECK-tokens: Punctuation: "(" [166:10 - 166:11] CallExpr=Case:88:42
  1384. // CHECK-tokens: Literal: ""warn_unused_result"" [166:11 - 166:31] StringLiteral=
  1385. // CHECK-tokens: Punctuation: "," [166:31 - 166:32] CallExpr=Case:88:42
  1386. // CHECK-tokens: Identifier: "AT_warn_unused_result" [166:33 - 166:54] DeclRefExpr=AT_warn_unused_result:29:22
  1387. // CHECK-tokens: Punctuation: ")" [166:54 - 166:55] CallExpr=Case:88:42
  1388. // CHECK-tokens: Punctuation: "." [167:5 - 167:6] MemberRefExpr=Case:88:42
  1389. // CHECK-tokens: Identifier: "Case" [167:6 - 167:10] MemberRefExpr=Case:88:42
  1390. // CHECK-tokens: Punctuation: "(" [167:10 - 167:11] CallExpr=Case:88:42
  1391. // CHECK-tokens: Literal: ""carries_dependency"" [167:11 - 167:31] StringLiteral=
  1392. // CHECK-tokens: Punctuation: "," [167:31 - 167:32] CallExpr=Case:88:42
  1393. // CHECK-tokens: Identifier: "AT_carries_dependency" [167:33 - 167:54] DeclRefExpr=AT_carries_dependency:17:7
  1394. // CHECK-tokens: Punctuation: ")" [167:54 - 167:55] CallExpr=Case:88:42
  1395. // CHECK-tokens: Punctuation: "." [168:5 - 168:6] MemberRefExpr=Case:88:42
  1396. // CHECK-tokens: Identifier: "Case" [168:6 - 168:10] MemberRefExpr=Case:88:42
  1397. // CHECK-tokens: Punctuation: "(" [168:10 - 168:11] CallExpr=Case:88:42
  1398. // CHECK-tokens: Literal: ""ns_returns_not_retained"" [168:11 - 168:36] StringLiteral=
  1399. // CHECK-tokens: Punctuation: "," [168:36 - 168:37] CallExpr=Case:88:42
  1400. // CHECK-tokens: Identifier: "AT_ns_returns_not_retained" [168:38 - 168:64] DeclRefExpr=AT_ns_returns_not_retained:24:7
  1401. // CHECK-tokens: Punctuation: ")" [168:64 - 168:65] CallExpr=Case:88:42
  1402. // CHECK-tokens: Punctuation: "." [169:5 - 169:6] MemberRefExpr=Case:88:42
  1403. // CHECK-tokens: Identifier: "Case" [169:6 - 169:10] MemberRefExpr=Case:88:42
  1404. // CHECK-tokens: Punctuation: "(" [169:10 - 169:11] CallExpr=Case:88:42
  1405. // CHECK-tokens: Literal: ""ns_returns_retained"" [169:11 - 169:32] StringLiteral=
  1406. // CHECK-tokens: Punctuation: "," [169:32 - 169:33] CallExpr=Case:88:42
  1407. // CHECK-tokens: Identifier: "AT_ns_returns_retained" [169:34 - 169:56] DeclRefExpr=AT_ns_returns_retained:24:35
  1408. // CHECK-tokens: Punctuation: ")" [169:56 - 169:57] CallExpr=Case:88:42
  1409. // CHECK-tokens: Punctuation: "." [170:5 - 170:6] MemberRefExpr=Case:88:42
  1410. // CHECK-tokens: Identifier: "Case" [170:6 - 170:10] MemberRefExpr=Case:88:42
  1411. // CHECK-tokens: Punctuation: "(" [170:10 - 170:11] CallExpr=Case:88:42
  1412. // CHECK-tokens: Literal: ""cf_returns_not_retained"" [170:11 - 170:36] StringLiteral=
  1413. // CHECK-tokens: Punctuation: "," [170:36 - 170:37] CallExpr=Case:88:42
  1414. // CHECK-tokens: Identifier: "AT_cf_returns_not_retained" [170:38 - 170:64] DeclRefExpr=AT_cf_returns_not_retained:23:7
  1415. // CHECK-tokens: Punctuation: ")" [170:64 - 170:65] CallExpr=Case:88:42
  1416. // CHECK-tokens: Punctuation: "." [171:5 - 171:6] MemberRefExpr=Case:88:42
  1417. // CHECK-tokens: Identifier: "Case" [171:6 - 171:10] MemberRefExpr=Case:88:42
  1418. // CHECK-tokens: Punctuation: "(" [171:10 - 171:11] CallExpr=Case:88:42
  1419. // CHECK-tokens: Literal: ""cf_returns_retained"" [171:11 - 171:32] StringLiteral=
  1420. // CHECK-tokens: Punctuation: "," [171:32 - 171:33] CallExpr=Case:88:42
  1421. // CHECK-tokens: Identifier: "AT_cf_returns_retained" [171:34 - 171:56] DeclRefExpr=AT_cf_returns_retained:23:35
  1422. // CHECK-tokens: Punctuation: ")" [171:56 - 171:57] CallExpr=Case:88:42
  1423. // CHECK-tokens: Punctuation: "." [172:5 - 172:6] MemberRefExpr=Case:88:42
  1424. // CHECK-tokens: Identifier: "Case" [172:6 - 172:10] MemberRefExpr=Case:88:42
  1425. // CHECK-tokens: Punctuation: "(" [172:10 - 172:11] CallExpr=Case:88:42
  1426. // CHECK-tokens: Literal: ""ownership_returns"" [172:11 - 172:30] StringLiteral=
  1427. // CHECK-tokens: Punctuation: "," [172:30 - 172:31] CallExpr=Case:88:42
  1428. // CHECK-tokens: Identifier: "AT_ownership_returns" [172:32 - 172:52] DeclRefExpr=AT_ownership_returns:25:44
  1429. // CHECK-tokens: Punctuation: ")" [172:52 - 172:53] CallExpr=Case:88:42
  1430. // CHECK-tokens: Punctuation: "." [173:5 - 173:6] MemberRefExpr=Case:88:42
  1431. // CHECK-tokens: Identifier: "Case" [173:6 - 173:10] MemberRefExpr=Case:88:42
  1432. // CHECK-tokens: Punctuation: "(" [173:10 - 173:11] CallExpr=Case:88:42
  1433. // CHECK-tokens: Literal: ""ownership_holds"" [173:11 - 173:28] StringLiteral=
  1434. // CHECK-tokens: Punctuation: "," [173:28 - 173:29] CallExpr=Case:88:42
  1435. // CHECK-tokens: Identifier: "AT_ownership_holds" [173:30 - 173:48] DeclRefExpr=AT_ownership_holds:25:24
  1436. // CHECK-tokens: Punctuation: ")" [173:48 - 173:49] CallExpr=Case:88:42
  1437. // CHECK-tokens: Punctuation: "." [174:5 - 174:6] MemberRefExpr=Case:88:42
  1438. // CHECK-tokens: Identifier: "Case" [174:6 - 174:10] MemberRefExpr=Case:88:42
  1439. // CHECK-tokens: Punctuation: "(" [174:10 - 174:11] CallExpr=Case:88:42
  1440. // CHECK-tokens: Literal: ""ownership_takes"" [174:11 - 174:28] StringLiteral=
  1441. // CHECK-tokens: Punctuation: "," [174:28 - 174:29] CallExpr=Case:88:42
  1442. // CHECK-tokens: Identifier: "AT_ownership_takes" [174:30 - 174:48] DeclRefExpr=AT_ownership_takes:26:7
  1443. // CHECK-tokens: Punctuation: ")" [174:48 - 174:49] CallExpr=Case:88:42
  1444. // CHECK-tokens: Punctuation: "." [175:5 - 175:6] MemberRefExpr=Case:88:42
  1445. // CHECK-tokens: Identifier: "Case" [175:6 - 175:10] MemberRefExpr=Case:88:42
  1446. // CHECK-tokens: Punctuation: "(" [175:10 - 175:11] CallExpr=Case:88:42
  1447. // CHECK-tokens: Literal: ""reqd_work_group_size"" [175:11 - 175:33] StringLiteral=
  1448. // CHECK-tokens: Punctuation: "," [175:33 - 175:34] CallExpr=Case:88:42
  1449. // CHECK-tokens: Identifier: "AT_reqd_wg_size" [175:35 - 175:50] DeclRefExpr=AT_reqd_wg_size:30:23
  1450. // CHECK-tokens: Punctuation: ")" [175:50 - 175:51] CallExpr=Case:88:42
  1451. // CHECK-tokens: Punctuation: "." [176:5 - 176:6] MemberRefExpr=Case:88:42
  1452. // CHECK-tokens: Identifier: "Case" [176:6 - 176:10] MemberRefExpr=Case:88:42
  1453. // CHECK-tokens: Punctuation: "(" [176:10 - 176:11] CallExpr=Case:88:42
  1454. // CHECK-tokens: Literal: ""init_priority"" [176:11 - 176:26] StringLiteral=
  1455. // CHECK-tokens: Punctuation: "," [176:26 - 176:27] CallExpr=Case:88:42
  1456. // CHECK-tokens: Identifier: "AT_init_priority" [176:28 - 176:44] DeclRefExpr=AT_init_priority:30:40
  1457. // CHECK-tokens: Punctuation: ")" [176:44 - 176:45] CallExpr=Case:88:42
  1458. // CHECK-tokens: Punctuation: "." [177:5 - 177:6] MemberRefExpr=Case:88:42
  1459. // CHECK-tokens: Identifier: "Case" [177:6 - 177:10] MemberRefExpr=Case:88:42
  1460. // CHECK-tokens: Punctuation: "(" [177:10 - 177:11] CallExpr=Case:88:42
  1461. // CHECK-tokens: Literal: ""no_instrument_function"" [177:11 - 177:35] StringLiteral=
  1462. // CHECK-tokens: Punctuation: "," [177:35 - 177:36] CallExpr=Case:88:42
  1463. // CHECK-tokens: Identifier: "AT_no_instrument_function" [177:37 - 177:62] DeclRefExpr=AT_no_instrument_function:21:20
  1464. // CHECK-tokens: Punctuation: ")" [177:62 - 177:63] CallExpr=Case:88:42
  1465. // CHECK-tokens: Punctuation: "." [178:5 - 178:6] MemberRefExpr=Case:88:42
  1466. // CHECK-tokens: Identifier: "Case" [178:6 - 178:10] MemberRefExpr=Case:88:42
  1467. // CHECK-tokens: Punctuation: "(" [178:10 - 178:11] CallExpr=Case:88:42
  1468. // CHECK-tokens: Literal: ""thiscall"" [178:11 - 178:21] StringLiteral=
  1469. // CHECK-tokens: Punctuation: "," [178:21 - 178:22] CallExpr=Case:88:42
  1470. // CHECK-tokens: Identifier: "AT_thiscall" [178:23 - 178:34] DeclRefExpr=AT_thiscall:27:44
  1471. // CHECK-tokens: Punctuation: ")" [178:34 - 178:35] CallExpr=Case:88:42
  1472. // CHECK-tokens: Punctuation: "." [179:5 - 179:6] MemberRefExpr=Case:88:42
  1473. // CHECK-tokens: Identifier: "Case" [179:6 - 179:10] MemberRefExpr=Case:88:42
  1474. // CHECK-tokens: Punctuation: "(" [179:10 - 179:11] CallExpr=Case:88:42
  1475. // CHECK-tokens: Literal: ""pascal"" [179:11 - 179:19] StringLiteral=
  1476. // CHECK-tokens: Punctuation: "," [179:19 - 179:20] CallExpr=Case:88:42
  1477. // CHECK-tokens: Identifier: "AT_pascal" [179:21 - 179:30] DeclRefExpr=AT_pascal:26:38
  1478. // CHECK-tokens: Punctuation: ")" [179:30 - 179:31] CallExpr=Case:88:42
  1479. // CHECK-tokens: Punctuation: "." [180:5 - 180:6] MemberRefExpr=Case:88:42
  1480. // CHECK-tokens: Identifier: "Case" [180:6 - 180:10] MemberRefExpr=Case:88:42
  1481. // CHECK-tokens: Punctuation: "(" [180:10 - 180:11] CallExpr=Case:88:42
  1482. // CHECK-tokens: Literal: ""__cdecl"" [180:11 - 180:20] StringLiteral=
  1483. // CHECK-tokens: Punctuation: "," [180:20 - 180:21] CallExpr=Case:88:42
  1484. // CHECK-tokens: Identifier: "AT_cdecl" [180:22 - 180:30] DeclRefExpr=AT_cdecl:17:30
  1485. // CHECK-tokens: Punctuation: ")" [180:30 - 180:31] CallExpr=Case:88:42
  1486. // CHECK-tokens: Punctuation: "." [181:5 - 181:6] MemberRefExpr=Case:88:42
  1487. // CHECK-tokens: Identifier: "Case" [181:6 - 181:10] MemberRefExpr=Case:88:42
  1488. // CHECK-tokens: Punctuation: "(" [181:10 - 181:11] CallExpr=Case:88:42
  1489. // CHECK-tokens: Literal: ""__stdcall"" [181:11 - 181:22] StringLiteral=
  1490. // CHECK-tokens: Punctuation: "," [181:22 - 181:23] CallExpr=Case:88:42
  1491. // CHECK-tokens: Identifier: "AT_stdcall" [181:24 - 181:34] DeclRefExpr=AT_stdcall:27:32
  1492. // CHECK-tokens: Punctuation: ")" [181:34 - 181:35] CallExpr=Case:88:42
  1493. // CHECK-tokens: Punctuation: "." [182:5 - 182:6] MemberRefExpr=Case:88:42
  1494. // CHECK-tokens: Identifier: "Case" [182:6 - 182:10] MemberRefExpr=Case:88:42
  1495. // CHECK-tokens: Punctuation: "(" [182:10 - 182:11] CallExpr=Case:88:42
  1496. // CHECK-tokens: Literal: ""__fastcall"" [182:11 - 182:23] StringLiteral=
  1497. // CHECK-tokens: Punctuation: "," [182:23 - 182:24] CallExpr=Case:88:42
  1498. // CHECK-tokens: Identifier: "AT_fastcall" [182:25 - 182:36] DeclRefExpr=AT_fastcall:19:27
  1499. // CHECK-tokens: Punctuation: ")" [182:36 - 182:37] CallExpr=Case:88:42
  1500. // CHECK-tokens: Punctuation: "." [183:5 - 183:6] MemberRefExpr=Case:88:42
  1501. // CHECK-tokens: Identifier: "Case" [183:6 - 183:10] MemberRefExpr=Case:88:42
  1502. // CHECK-tokens: Punctuation: "(" [183:10 - 183:11] CallExpr=Case:88:42
  1503. // CHECK-tokens: Literal: ""__thiscall"" [183:11 - 183:23] StringLiteral=
  1504. // CHECK-tokens: Punctuation: "," [183:23 - 183:24] CallExpr=Case:88:42
  1505. // CHECK-tokens: Identifier: "AT_thiscall" [183:25 - 183:36] DeclRefExpr=AT_thiscall:27:44
  1506. // CHECK-tokens: Punctuation: ")" [183:36 - 183:37] CallExpr=Case:88:42
  1507. // CHECK-tokens: Punctuation: "." [184:5 - 184:6] MemberRefExpr=Case:88:42
  1508. // CHECK-tokens: Identifier: "Case" [184:6 - 184:10] MemberRefExpr=Case:88:42
  1509. // CHECK-tokens: Punctuation: "(" [184:10 - 184:11] CallExpr=Case:88:42
  1510. // CHECK-tokens: Literal: ""__pascal"" [184:11 - 184:21] StringLiteral=
  1511. // CHECK-tokens: Punctuation: "," [184:21 - 184:22] CallExpr=Case:88:42
  1512. // CHECK-tokens: Identifier: "AT_pascal" [184:23 - 184:32] DeclRefExpr=AT_pascal:26:38
  1513. // CHECK-tokens: Punctuation: ")" [184:32 - 184:33] CallExpr=Case:88:42
  1514. // CHECK-tokens: Punctuation: "." [185:5 - 185:6] MemberRefExpr=Default:92:5
  1515. // CHECK-tokens: Identifier: "Default" [185:6 - 185:13] MemberRefExpr=Default:92:5
  1516. // CHECK-tokens: Punctuation: "(" [185:13 - 185:14] CallExpr=Default:92:5
  1517. // CHECK-tokens: Identifier: "UnknownAttribute" [185:14 - 185:30] DeclRefExpr=UnknownAttribute:31:43
  1518. // CHECK-tokens: Punctuation: ")" [185:30 - 185:31] CallExpr=Default:92:5
  1519. // CHECK-tokens: Punctuation: ";" [185:31 - 185:32] CompoundStmt=
  1520. // CHECK-tokens: Punctuation: "}" [186:1 - 186:2] CompoundStmt=
  1521. // RUN: c-index-test -test-load-source all %s -std=c++98 -target x86_64-unknown-unknown 2>&1 | FileCheck %s
  1522. // CHECK: 1:27: TypedefDecl=__darwin_size_t:1:27 (Definition) Extent=[1:1 - 1:42]
  1523. // CHECK: 2:25: TypedefDecl=size_t:2:25 (Definition) Extent=[2:1 - 2:31]
  1524. // CHECK: 2:9: TypeRef=__darwin_size_t:1:27 Extent=[2:9 - 2:24]
  1525. // CHECK: 3:11: Namespace=std:3:11 (Definition) Extent=[3:1 - 5:2]
  1526. // CHECK: 4:44: ClassTemplate=pair:4:44 (Definition) Extent=[4:3 - 4:64]
  1527. // CHECK: 4:20: TemplateTypeParameter=_T1:4:20 (Definition) Extent=[4:14 - 4:23]
  1528. // CHECK: 4:31: TemplateTypeParameter=_T2:4:31 (Definition) Extent=[4:25 - 4:34]
  1529. // CHECK: 4:55: FieldDecl=second:4:55 (Definition) Extent=[4:51 - 4:61]
  1530. // CHECK: 6:8: UnexposedDecl=:6:8 (Definition) Extent=[6:1 - 9:2]
  1531. // CHECK: 7:7: FunctionDecl=memcmp:7:7 Extent=[7:3 - 7:49]
  1532. // CHECK: 7:26: ParmDecl=:7:26 (Definition) Extent=[7:14 - 7:26]
  1533. // CHECK: 7:40: ParmDecl=:7:40 (Definition) Extent=[7:28 - 7:40]
  1534. // CHECK: 7:48: ParmDecl=:7:48 (Definition) Extent=[7:42 - 7:48]
  1535. // CHECK: 7:42: TypeRef=size_t:2:25 Extent=[7:42 - 7:48]
  1536. // CHECK: 8:10: FunctionDecl=strlen:8:10 Extent=[8:3 - 8:30]
  1537. // CHECK: 8:3: TypeRef=size_t:2:25 Extent=[8:3 - 8:9]
  1538. // CHECK: 8:29: ParmDecl=:8:29 (Definition) Extent=[8:17 - 8:29]
  1539. // CHECK: 10:17: Namespace=clang:10:17 (Definition) Extent=[10:1 - 35:2]
  1540. // CHECK: 11:9: ClassDecl=IdentifierInfo:11:9 Extent=[11:3 - 11:23]
  1541. // CHECK: 12:9: ClassDecl=AttributeList:12:9 (Definition) Extent=[12:3 - 34:4]
  1542. // CHECK: 13:10: EnumDecl=Kind:13:10 (Definition) Extent=[13:5 - 32:6]
  1543. // CHECK: 14:7: EnumConstantDecl=AT_IBAction:14:7 (Definition) Extent=[14:7 - 14:18]
  1544. // CHECK: 14:20: EnumConstantDecl=AT_IBOutlet:14:20 (Definition) Extent=[14:20 - 14:31]
  1545. // CHECK: 14:33: EnumConstantDecl=AT_IBOutletCollection:14:33 (Definition) Extent=[14:33 - 14:54]
  1546. // CHECK: 15:7: EnumConstantDecl=AT_address_space:15:7 (Definition) Extent=[15:7 - 15:23]
  1547. // CHECK: 15:25: EnumConstantDecl=AT_alias:15:25 (Definition) Extent=[15:25 - 15:33]
  1548. // CHECK: 15:35: EnumConstantDecl=AT_aligned:15:35 (Definition) Extent=[15:35 - 15:45]
  1549. // CHECK: 15:47: EnumConstantDecl=AT_always_inline:15:47 (Definition) Extent=[15:47 - 15:63]
  1550. // CHECK: 16:7: EnumConstantDecl=AT_analyzer_noreturn:16:7 (Definition) Extent=[16:7 - 16:27]
  1551. // CHECK: 16:29: EnumConstantDecl=AT_annotate:16:29 (Definition) Extent=[16:29 - 16:40]
  1552. // CHECK: 16:42: EnumConstantDecl=AT_base_check:16:42 (Definition) Extent=[16:42 - 16:55]
  1553. // CHECK: 16:57: EnumConstantDecl=AT_blocks:16:57 (Definition) Extent=[16:57 - 16:66]
  1554. // CHECK: 17:7: EnumConstantDecl=AT_carries_dependency:17:7 (Definition) Extent=[17:7 - 17:28]
  1555. // CHECK: 17:30: EnumConstantDecl=AT_cdecl:17:30 (Definition) Extent=[17:30 - 17:38]
  1556. // CHECK: 17:40: EnumConstantDecl=AT_cleanup:17:40 (Definition) Extent=[17:40 - 17:50]
  1557. // CHECK: 17:52: EnumConstantDecl=AT_const:17:52 (Definition) Extent=[17:52 - 17:60]
  1558. // CHECK: 17:62: EnumConstantDecl=AT_constructor:17:62 (Definition) Extent=[17:62 - 17:76]
  1559. // CHECK: 18:7: EnumConstantDecl=AT_deprecated:18:7 (Definition) Extent=[18:7 - 18:20]
  1560. // CHECK: 18:22: EnumConstantDecl=AT_destructor:18:22 (Definition) Extent=[18:22 - 18:35]
  1561. // CHECK: 18:37: EnumConstantDecl=AT_dllexport:18:37 (Definition) Extent=[18:37 - 18:49]
  1562. // CHECK: 18:51: EnumConstantDecl=AT_dllimport:18:51 (Definition) Extent=[18:51 - 18:63]
  1563. // CHECK: 19:7: EnumConstantDecl=AT_ext_vector_type:19:7 (Definition) Extent=[19:7 - 19:25]
  1564. // CHECK: 19:27: EnumConstantDecl=AT_fastcall:19:27 (Definition) Extent=[19:27 - 19:38]
  1565. // CHECK: 19:40: EnumConstantDecl=AT_final:19:40 (Definition) Extent=[19:40 - 19:48]
  1566. // CHECK: 19:50: EnumConstantDecl=AT_format:19:50 (Definition) Extent=[19:50 - 19:59]
  1567. // CHECK: 19:61: EnumConstantDecl=AT_format_arg:19:61 (Definition) Extent=[19:61 - 19:74]
  1568. // CHECK: 20:7: EnumConstantDecl=AT_gnu_inline:20:7 (Definition) Extent=[20:7 - 20:20]
  1569. // CHECK: 20:22: EnumConstantDecl=AT_hiding:20:22 (Definition) Extent=[20:22 - 20:31]
  1570. // CHECK: 20:33: EnumConstantDecl=AT_malloc:20:33 (Definition) Extent=[20:33 - 20:42]
  1571. // CHECK: 20:44: EnumConstantDecl=AT_mode:20:44 (Definition) Extent=[20:44 - 20:51]
  1572. // CHECK: 20:53: EnumConstantDecl=AT_naked:20:53 (Definition) Extent=[20:53 - 20:61]
  1573. // CHECK: 20:63: EnumConstantDecl=AT_nodebug:20:63 (Definition) Extent=[20:63 - 20:73]
  1574. // CHECK: 21:7: EnumConstantDecl=AT_noinline:21:7 (Definition) Extent=[21:7 - 21:18]
  1575. // CHECK: 21:20: EnumConstantDecl=AT_no_instrument_function:21:20 (Definition) Extent=[21:20 - 21:45]
  1576. // CHECK: 21:47: EnumConstantDecl=AT_nonnull:21:47 (Definition) Extent=[21:47 - 21:57]
  1577. // CHECK: 21:59: EnumConstantDecl=AT_noreturn:21:59 (Definition) Extent=[21:59 - 21:70]
  1578. // CHECK: 22:7: EnumConstantDecl=AT_nothrow:22:7 (Definition) Extent=[22:7 - 22:17]
  1579. // CHECK: 22:19: EnumConstantDecl=AT_nsobject:22:19 (Definition) Extent=[22:19 - 22:30]
  1580. // CHECK: 22:32: EnumConstantDecl=AT_objc_exception:22:32 (Definition) Extent=[22:32 - 22:49]
  1581. // CHECK: 22:51: EnumConstantDecl=AT_override:22:51 (Definition) Extent=[22:51 - 22:62]
  1582. // CHECK: 23:7: EnumConstantDecl=AT_cf_returns_not_retained:23:7 (Definition) Extent=[23:7 - 23:33]
  1583. // CHECK: 23:35: EnumConstantDecl=AT_cf_returns_retained:23:35 (Definition) Extent=[23:35 - 23:57]
  1584. // CHECK: 24:7: EnumConstantDecl=AT_ns_returns_not_retained:24:7 (Definition) Extent=[24:7 - 24:33]
  1585. // CHECK: 24:35: EnumConstantDecl=AT_ns_returns_retained:24:35 (Definition) Extent=[24:35 - 24:57]
  1586. // CHECK: 24:59: EnumConstantDecl=AT_objc_gc:24:59 (Definition) Extent=[24:59 - 24:69]
  1587. // CHECK: 25:7: EnumConstantDecl=AT_overloadable:25:7 (Definition) Extent=[25:7 - 25:22]
  1588. // CHECK: 25:24: EnumConstantDecl=AT_ownership_holds:25:24 (Definition) Extent=[25:24 - 25:42]
  1589. // CHECK: 25:44: EnumConstantDecl=AT_ownership_returns:25:44 (Definition) Extent=[25:44 - 25:64]
  1590. // CHECK: 26:7: EnumConstantDecl=AT_ownership_takes:26:7 (Definition) Extent=[26:7 - 26:25]
  1591. // CHECK: 26:27: EnumConstantDecl=AT_packed:26:27 (Definition) Extent=[26:27 - 26:36]
  1592. // CHECK: 26:38: EnumConstantDecl=AT_pascal:26:38 (Definition) Extent=[26:38 - 26:47]
  1593. // CHECK: 26:49: EnumConstantDecl=AT_pure:26:49 (Definition) Extent=[26:49 - 26:56]
  1594. // CHECK: 26:58: EnumConstantDecl=AT_regparm:26:58 (Definition) Extent=[26:58 - 26:68]
  1595. // CHECK: 27:7: EnumConstantDecl=AT_section:27:7 (Definition) Extent=[27:7 - 27:17]
  1596. // CHECK: 27:19: EnumConstantDecl=AT_sentinel:27:19 (Definition) Extent=[27:19 - 27:30]
  1597. // CHECK: 27:32: EnumConstantDecl=AT_stdcall:27:32 (Definition) Extent=[27:32 - 27:42]
  1598. // CHECK: 27:44: EnumConstantDecl=AT_thiscall:27:44 (Definition) Extent=[27:44 - 27:55]
  1599. // CHECK: 27:57: EnumConstantDecl=AT_transparent_union:27:57 (Definition) Extent=[27:57 - 27:77]
  1600. // CHECK: 28:7: EnumConstantDecl=AT_unavailable:28:7 (Definition) Extent=[28:7 - 28:21]
  1601. // CHECK: 28:23: EnumConstantDecl=AT_unused:28:23 (Definition) Extent=[28:23 - 28:32]
  1602. // CHECK: 28:34: EnumConstantDecl=AT_used:28:34 (Definition) Extent=[28:34 - 28:41]
  1603. // CHECK: 28:43: EnumConstantDecl=AT_vecreturn:28:43 (Definition) Extent=[28:43 - 28:55]
  1604. // CHECK: 28:57: EnumConstantDecl=AT_vector_size:28:57 (Definition) Extent=[28:57 - 28:71]
  1605. // CHECK: 29:7: EnumConstantDecl=AT_visibility:29:7 (Definition) Extent=[29:7 - 29:20]
  1606. // CHECK: 29:22: EnumConstantDecl=AT_warn_unused_result:29:22 (Definition) Extent=[29:22 - 29:43]
  1607. // CHECK: 29:45: EnumConstantDecl=AT_weak:29:45 (Definition) Extent=[29:45 - 29:52]
  1608. // CHECK: 29:54: EnumConstantDecl=AT_weakref:29:54 (Definition) Extent=[29:54 - 29:64]
  1609. // CHECK: 30:7: EnumConstantDecl=AT_weak_import:30:7 (Definition) Extent=[30:7 - 30:21]
  1610. // CHECK: 30:23: EnumConstantDecl=AT_reqd_wg_size:30:23 (Definition) Extent=[30:23 - 30:38]
  1611. // CHECK: 30:40: EnumConstantDecl=AT_init_priority:30:40 (Definition) Extent=[30:40 - 30:56]
  1612. // CHECK: 31:7: EnumConstantDecl=AT_returns_twice:31:7 (Definition) Extent=[31:7 - 31:23]
  1613. // CHECK: 31:25: EnumConstantDecl=IgnoredAttribute:31:25 (Definition) Extent=[31:25 - 31:41]
  1614. // CHECK: 33:17: CXXMethod=getKind:33:17 (static) Extent=[33:5 - 33:53]
  1615. // CHECK: 33:12: TypeRef=enum clang::AttributeList::Kind:13:10 Extent=[33:12 - 33:16]
  1616. // CHECK: 33:48: ParmDecl=Name:33:48 (Definition) Extent=[33:25 - 33:52]
  1617. // CHECK: 33:31: TypeRef=class clang::IdentifierInfo:66:7 Extent=[33:31 - 33:45]
  1618. // CHECK: 36:8: FunctionDecl=magic_length:36:8 Extent=[36:1 - 36:35]
  1619. // CHECK: 36:1: TypeRef=size_t:2:25 Extent=[36:1 - 36:7]
  1620. // CHECK: 36:33: ParmDecl=s:36:33 (Definition) Extent=[36:21 - 36:34]
  1621. // CHECK: 37:11: Namespace=llvm:37:11 (Definition) Extent=[37:1 - 64:2]
  1622. // CHECK: 38:7: ClassDecl=StringRef:38:7 (Definition) Extent=[38:1 - 63:2]
  1623. // CHECK: 39:1: CXXAccessSpecifier=:39:1 (Definition) Extent=[39:1 - 39:8]
  1624. // CHECK: 40:23: TypedefDecl=iterator:40:23 (Definition) Extent=[40:3 - 40:31]
  1625. // CHECK: 41:23: VarDecl=npos:41:23 Extent=[41:3 - 41:40]
  1626. // CHECK: 41:16: TypeRef=size_t:2:25 Extent=[41:16 - 41:22]
  1627. // CHECK: 41:30: UnaryOperator= Extent=[41:30 - 41:40]
  1628. // CHECK: 41:31: CXXFunctionalCastExpr= Extent=[41:31 - 41:40]
  1629. // CHECK: 41:31: TypeRef=size_t:2:25 Extent=[41:31 - 41:37]
  1630. // CHECK: 41:38: UnexposedExpr= Extent=[41:38 - 41:39]
  1631. // CHECK: 41:38: IntegerLiteral= Extent=[41:38 - 41:39]
  1632. // CHECK: 42:1: CXXAccessSpecifier=:42:1 (Definition) Extent=[42:1 - 42:9]
  1633. // CHECK: 43:15: FieldDecl=Data:43:15 (Definition) Extent=[43:3 - 43:19]
  1634. // CHECK: 44:10: FieldDecl=Length:44:10 (Definition) Extent=[44:3 - 44:16]
  1635. // CHECK: 44:3: TypeRef=size_t:2:25 Extent=[44:3 - 44:9]
  1636. // CHECK: 45:17: CXXMethod=min:45:17 (Definition) (static) Extent=[45:3 - 45:66]
  1637. // CHECK: 45:10: TypeRef=size_t:2:25 Extent=[45:10 - 45:16]
  1638. // CHECK: 45:28: ParmDecl=a:45:28 (Definition) Extent=[45:21 - 45:29]
  1639. // CHECK: 45:21: TypeRef=size_t:2:25 Extent=[45:21 - 45:27]
  1640. // CHECK: 45:38: ParmDecl=b:45:38 (Definition) Extent=[45:31 - 45:39]
  1641. // CHECK: 45:31: TypeRef=size_t:2:25 Extent=[45:31 - 45:37]
  1642. // CHECK: 45:41: CompoundStmt= Extent=[45:41 - 45:66]
  1643. // CHECK: 45:43: ReturnStmt= Extent=[45:43 - 45:63]
  1644. // CHECK: 45:50: ConditionalOperator= Extent=[45:50 - 45:63]
  1645. // CHECK: 45:50: BinaryOperator= Extent=[45:50 - 45:55]
  1646. // CHECK: 45:50: DeclRefExpr=a:45:28 Extent=[45:50 - 45:51]
  1647. // CHECK: 45:54: DeclRefExpr=b:45:38 Extent=[45:54 - 45:55]
  1648. // CHECK: 45:58: DeclRefExpr=a:45:28 Extent=[45:58 - 45:59]
  1649. // CHECK: 45:62: DeclRefExpr=b:45:38 Extent=[45:62 - 45:63]
  1650. // CHECK: 46:1: CXXAccessSpecifier=:46:1 (Definition) Extent=[46:1 - 46:8]
  1651. // CHECK: 47:3: CXXConstructor=StringRef:47:3 (Definition) Extent=[47:3 - 47:37]
  1652. // CHECK: 47:16: MemberRef=Data:43:15 Extent=[47:16 - 47:20]
  1653. // CHECK: 47:21: UnexposedExpr= Extent=[47:21 - 47:22]
  1654. // CHECK: 47:21: IntegerLiteral= Extent=[47:21 - 47:22]
  1655. // CHECK: 47:25: MemberRef=Length:44:10 Extent=[47:25 - 47:31]
  1656. // CHECK: 47:32: UnexposedExpr= Extent=[47:32 - 47:33]
  1657. // CHECK: 47:32: IntegerLiteral= Extent=[47:32 - 47:33]
  1658. // CHECK: 47:35: CompoundStmt= Extent=[47:35 - 47:37]
  1659. // CHECK: 48:3: CXXConstructor=StringRef:48:3 (Definition) Extent=[48:3 - 48:71]
  1660. // CHECK: 48:25: ParmDecl=Str:48:25 (Definition) Extent=[48:13 - 48:28]
  1661. // CHECK: 48:32: MemberRef=Data:43:15 Extent=[48:32 - 48:36]
  1662. // CHECK: 48:37: DeclRefExpr=Str:48:25 Extent=[48:37 - 48:40]
  1663. // CHECK: 48:43: MemberRef=Length:44:10 Extent=[48:43 - 48:49]
  1664. // CHECK: 48:50: CallExpr=magic_length:36:8 Extent=[48:50 - 48:67]
  1665. // CHECK: 48:50: UnexposedExpr=magic_length:36:8 Extent=[48:50 - 48:62]
  1666. // CHECK: 48:50: DeclRefExpr=magic_length:36:8 Extent=[48:50 - 48:62]
  1667. // CHECK: 48:63: DeclRefExpr=Str:48:25 Extent=[48:63 - 48:66]
  1668. // CHECK: 48:69: CompoundStmt= Extent=[48:69 - 48:71]
  1669. // CHECK: 49:3: CXXConstructor=StringRef:49:3 (Definition) Extent=[49:3 - 49:77]
  1670. // CHECK: 49:25: ParmDecl=data:49:25 (Definition) Extent=[49:13 - 49:29]
  1671. // CHECK: 49:38: ParmDecl=length:49:38 (Definition) Extent=[49:31 - 49:44]
  1672. // CHECK: 49:31: TypeRef=size_t:2:25 Extent=[49:31 - 49:37]
  1673. // CHECK: 49:48: MemberRef=Data:43:15 Extent=[49:48 - 49:52]
  1674. // CHECK: 49:53: DeclRefExpr=data:49:25 Extent=[49:53 - 49:57]
  1675. // CHECK: 49:60: MemberRef=Length:44:10 Extent=[49:60 - 49:66]
  1676. // CHECK: 49:67: DeclRefExpr=length:49:38 Extent=[49:67 - 49:73]
  1677. // CHECK: 49:75: CompoundStmt= Extent=[49:75 - 49:77]
  1678. // CHECK: 50:12: CXXMethod=end:50:12 (Definition) (const) Extent=[50:3 - 50:40] [access=public]
  1679. // CHECK: 50:3: TypeRef=iterator:40:23 Extent=[50:3 - 50:11]
  1680. // CHECK: 50:24: CompoundStmt= Extent=[50:24 - 50:40]
  1681. // CHECK: 50:26: ReturnStmt= Extent=[50:26 - 50:37]
  1682. // CHECK: 50:33: MemberRefExpr=Data:43:15 Extent=[50:33 - 50:37]
  1683. // CHECK: 51:10: CXXMethod=size:51:10 (Definition) (const) Extent=[51:3 - 51:41] [access=public]
  1684. // CHECK: 51:3: TypeRef=size_t:2:25 Extent=[51:3 - 51:9]
  1685. // CHECK: 51:23: CompoundStmt= Extent=[51:23 - 51:41]
  1686. // CHECK: 51:25: ReturnStmt= Extent=[51:25 - 51:38]
  1687. // CHECK: 51:32: MemberRefExpr=Length:44:10 Extent=[51:32 - 51:38]
  1688. // CHECK: 52:8: CXXMethod=startswith:52:8 (Definition) (const) Extent=[52:3 - 55:4] [access=public]
  1689. // CHECK: 52:29: ParmDecl=Prefix:52:29 (Definition) Extent=[52:19 - 52:35]
  1690. // CHECK: 52:19: TypeRef=class llvm::StringRef:38:7 Extent=[52:19 - 52:28]
  1691. // CHECK: 52:43: CompoundStmt= Extent=[52:43 - 55:4]
  1692. // CHECK: 53:5: ReturnStmt= Extent=[53:5 - 54:56]
  1693. // CHECK: 53:12: BinaryOperator= Extent=[53:12 - 54:56]
  1694. // CHECK: 53:12: BinaryOperator= Extent=[53:12 - 53:35]
  1695. // CHECK: 53:12: UnexposedExpr=Length:44:10 Extent=[53:12 - 53:18]
  1696. // CHECK: 53:12: MemberRefExpr=Length:44:10 Extent=[53:12 - 53:18]
  1697. // CHECK: 53:29: MemberRefExpr=Length:44:10 SingleRefName=[53:29 - 53:35] RefName=[53:29 - 53:35] Extent=[53:22 - 53:35]
  1698. // CHECK: 53:22: DeclRefExpr=Prefix:52:29 Extent=[53:22 - 53:28]
  1699. // CHECK: 54:11: BinaryOperator= Extent=[54:11 - 54:56]
  1700. // CHECK: 54:11: CallExpr=memcmp:7:7 Extent=[54:11 - 54:51]
  1701. // CHECK: 54:11: UnexposedExpr=memcmp:7:7 Extent=[54:11 - 54:17]
  1702. // CHECK: 54:11: DeclRefExpr=memcmp:7:7 Extent=[54:11 - 54:17]
  1703. // CHECK: 54:18: UnexposedExpr=Data:43:15 Extent=[54:18 - 54:22]
  1704. // CHECK: 54:18: MemberRefExpr=Data:43:15 Extent=[54:18 - 54:22]
  1705. // CHECK: 54:31: UnexposedExpr=Data:43:15 Extent=[54:24 - 54:35]
  1706. // CHECK: 54:31: MemberRefExpr=Data:43:15 SingleRefName=[54:31 - 54:35] RefName=[54:31 - 54:35] Extent=[54:24 - 54:35]
  1707. // CHECK: 54:24: DeclRefExpr=Prefix:52:29 Extent=[54:24 - 54:30]
  1708. // CHECK: 54:44: MemberRefExpr=Length:44:10 SingleRefName=[54:44 - 54:50] RefName=[54:44 - 54:50] Extent=[54:37 - 54:50]
  1709. // CHECK: 54:37: DeclRefExpr=Prefix:52:29 Extent=[54:37 - 54:43]
  1710. // CHECK: 54:55: IntegerLiteral= Extent=[54:55 - 54:56]
  1711. // CHECK: 56:8: CXXMethod=endswith:56:8 (Definition) (const) Extent=[56:3 - 59:4] [access=public]
  1712. // CHECK: 56:27: ParmDecl=Suffix:56:27 (Definition) Extent=[56:17 - 56:33]
  1713. // CHECK: 56:17: TypeRef=class llvm::StringRef:38:7 Extent=[56:17 - 56:26]
  1714. // CHECK: 56:41: CompoundStmt= Extent=[56:41 - 59:4]
  1715. // CHECK: 57:5: ReturnStmt= Extent=[57:5 - 58:69]
  1716. // CHECK: 57:12: BinaryOperator= Extent=[57:12 - 58:69]
  1717. // CHECK: 57:12: BinaryOperator= Extent=[57:12 - 57:35]
  1718. // CHECK: 57:12: UnexposedExpr=Length:44:10 Extent=[57:12 - 57:18]
  1719. // CHECK: 57:12: MemberRefExpr=Length:44:10 Extent=[57:12 - 57:18]
  1720. // CHECK: 57:29: MemberRefExpr=Length:44:10 SingleRefName=[57:29 - 57:35] RefName=[57:29 - 57:35] Extent=[57:22 - 57:35]
  1721. // CHECK: 57:22: DeclRefExpr=Suffix:56:27 Extent=[57:22 - 57:28]
  1722. // CHECK: 58:7: BinaryOperator= Extent=[58:7 - 58:69]
  1723. // CHECK: 58:7: CallExpr=memcmp:7:7 Extent=[58:7 - 58:64]
  1724. // CHECK: 58:7: UnexposedExpr=memcmp:7:7 Extent=[58:7 - 58:13]
  1725. // CHECK: 58:7: DeclRefExpr=memcmp:7:7 Extent=[58:7 - 58:13]
  1726. // CHECK: 58:14: UnexposedExpr= Extent=[58:14 - 58:35]
  1727. // CHECK: 58:14: BinaryOperator= Extent=[58:14 - 58:35]
  1728. // CHECK: 58:14: CallExpr=end:50:12 Extent=[58:14 - 58:19]
  1729. // CHECK: 58:14: MemberRefExpr=end:50:12 Extent=[58:14 - 58:17]
  1730. // CHECK: 58:29: MemberRefExpr=Length:44:10 SingleRefName=[58:29 - 58:35] RefName=[58:29 - 58:35] Extent=[58:22 - 58:35]
  1731. // CHECK: 58:22: DeclRefExpr=Suffix:56:27 Extent=[58:22 - 58:28]
  1732. // CHECK: 58:44: UnexposedExpr=Data:43:15 Extent=[58:37 - 58:48]
  1733. // CHECK: 58:44: MemberRefExpr=Data:43:15 SingleRefName=[58:44 - 58:48] RefName=[58:44 - 58:48] Extent=[58:37 - 58:48]
  1734. // CHECK: 58:37: DeclRefExpr=Suffix:56:27 Extent=[58:37 - 58:43]
  1735. // CHECK: 58:57: MemberRefExpr=Length:44:10 SingleRefName=[58:57 - 58:63] RefName=[58:57 - 58:63] Extent=[58:50 - 58:63]
  1736. // CHECK: 58:50: DeclRefExpr=Suffix:56:27 Extent=[58:50 - 58:56]
  1737. // CHECK: 58:68: IntegerLiteral= Extent=[58:68 - 58:69]
  1738. // CHECK: 60:13: CXXMethod=substr:60:13 (Definition) (const) Extent=[60:3 - 62:4] [access=public]
  1739. // CHECK: 60:3: TypeRef=class llvm::StringRef:38:7 Extent=[60:3 - 60:12]
  1740. // CHECK: 60:27: ParmDecl=Start:60:27 (Definition) Extent=[60:20 - 60:32]
  1741. // CHECK: 60:20: TypeRef=size_t:2:25 Extent=[60:20 - 60:26]
  1742. // CHECK: 60:41: ParmDecl=N:60:41 (Definition) Extent=[60:34 - 60:49]
  1743. // CHECK: 60:34: TypeRef=size_t:2:25 Extent=[60:34 - 60:40]
  1744. // CHECK: 60:45: DeclRefExpr=npos:41:23 Extent=[60:45 - 60:49]
  1745. // CHECK: 60:57: CompoundStmt= Extent=[60:57 - 62:4]
  1746. // CHECK: 61:5: ReturnStmt= Extent=[61:5 - 61:59]
  1747. // CHECK: 61:12: CallExpr= Extent=[61:12 - 61:59]
  1748. // CHECK: 61:12: UnexposedExpr=StringRef:49:3 Extent=[61:12 - 61:59]
  1749. // CHECK: 61:12: CallExpr=StringRef:49:3 Extent=[61:12 - 61:59]
  1750. // CHECK: 61:12: TypeRef=class llvm::StringRef:38:7 Extent=[61:12 - 61:21]
  1751. // CHECK: 61:22: BinaryOperator= Extent=[61:22 - 61:34]
  1752. // CHECK: 61:22: UnexposedExpr=Data:43:15 Extent=[61:22 - 61:26]
  1753. // CHECK: 61:22: MemberRefExpr=Data:43:15 Extent=[61:22 - 61:26]
  1754. // CHECK: 61:29: DeclRefExpr=Start:60:27 Extent=[61:29 - 61:34]
  1755. // CHECK: 61:36: CallExpr=min:45:17 Extent=[61:36 - 61:58]
  1756. // CHECK: 61:36: UnexposedExpr=min:45:17 Extent=[61:36 - 61:39]
  1757. // CHECK: 61:36: DeclRefExpr=min:45:17 Extent=[61:36 - 61:39]
  1758. // CHECK: 61:40: DeclRefExpr=N:60:41 Extent=[61:40 - 61:41]
  1759. // CHECK: 61:43: BinaryOperator= Extent=[61:43 - 61:57]
  1760. // CHECK: 61:43: UnexposedExpr=Length:44:10 Extent=[61:43 - 61:49]
  1761. // CHECK: 61:43: MemberRefExpr=Length:44:10 Extent=[61:43 - 61:49]
  1762. // CHECK: 61:52: DeclRefExpr=Start:60:27 Extent=[61:52 - 61:57]
  1763. // CHECK: 65:11: Namespace=clang:65:11 (Definition) Extent=[65:1 - 81:2]
  1764. // CHECK: 66:7: ClassDecl=IdentifierInfo:66:7 (Definition) Extent=[66:1 - 80:2]
  1765. // CHECK: 67:1: CXXAccessSpecifier=:67:1 (Definition) Extent=[67:1 - 67:8]
  1766. // CHECK: 67:8: CXXConstructor=IdentifierInfo:67:8 Extent=[67:8 - 67:24]
  1767. // CHECK: 68:15: CXXMethod=getNameStart:68:15 (Definition) (const) Extent=[68:3 - 71:4] [access=public]
  1768. // CHECK: 68:36: CompoundStmt= Extent=[68:36 - 71:4]
  1769. // CHECK: 69:5: DeclStmt= Extent=[69:5 - 69:65]
  1770. // CHECK: 69:54: TypedefDecl=actualtype:69:54 (Definition) Extent=[69:5 - 69:64]
  1771. // CHECK: 69:18: TemplateRef=pair:4:44 Extent=[69:18 - 69:22]
  1772. // CHECK: 69:25: TypeRef=class clang::IdentifierInfo:66:7 Extent=[69:25 - 69:39]
  1773. // CHECK: 70:5: ReturnStmt= Extent=[70:5 - 70:47]
  1774. // CHECK: 70:41: MemberRefExpr=second:4:55 SingleRefName=[70:41 - 70:47] RefName=[70:41 - 70:47] Extent=[70:12 - 70:47]
  1775. // CHECK: 70:12: ParenExpr= Extent=[70:12 - 70:39]
  1776. // CHECK: 70:13: CStyleCastExpr= Extent=[70:13 - 70:38]
  1777. // CHECK: 70:20: TypeRef=actualtype:69:54 Extent=[70:20 - 70:30]
  1778. // CHECK: 70:34: CXXThisExpr= Extent=[70:34 - 70:38]
  1779. // CHECK: 72:12: CXXMethod=getLength:72:12 (Definition) (const) Extent=[72:3 - 76:4] [access=public]
  1780. // CHECK: 72:30: CompoundStmt= Extent=[72:30 - 76:4]
  1781. // CHECK: 73:5: DeclStmt= Extent=[73:5 - 73:65]
  1782. // CHECK: 73:54: TypedefDecl=actualtype:73:54 (Definition) Extent=[73:5 - 73:64]
  1783. // CHECK: 73:18: TemplateRef=pair:4:44 Extent=[73:18 - 73:22]
  1784. // CHECK: 73:25: TypeRef=class clang::IdentifierInfo:66:7 Extent=[73:25 - 73:39]
  1785. // CHECK: 74:5: DeclStmt= Extent=[74:5 - 74:61]
  1786. // CHECK: 74:17: VarDecl=p:74:17 (Definition) Extent=[74:5 - 74:60]
  1787. // CHECK: 74:21: BinaryOperator= Extent=[74:21 - 74:60]
  1788. // CHECK: 74:50: UnexposedExpr=second:4:55 Extent=[74:21 - 74:56]
  1789. // CHECK: 74:50: MemberRefExpr=second:4:55 SingleRefName=[74:50 - 74:56] RefName=[74:50 - 74:56] Extent=[74:21 - 74:56]
  1790. // CHECK: 74:21: ParenExpr= Extent=[74:21 - 74:48]
  1791. // CHECK: 74:22: CStyleCastExpr= Extent=[74:22 - 74:47]
  1792. // CHECK: 74:29: TypeRef=actualtype:73:54 Extent=[74:29 - 74:39]
  1793. // CHECK: 74:43: CXXThisExpr= Extent=[74:43 - 74:47]
  1794. // CHECK: 74:59: IntegerLiteral= Extent=[74:59 - 74:60]
  1795. // CHECK: 75:5: ReturnStmt= Extent=[75:5 - 75:62]
  1796. // CHECK: 75:12: BinaryOperator= Extent=[75:12 - 75:62]
  1797. // CHECK: 75:12: ParenExpr= Extent=[75:12 - 75:58]
  1798. // CHECK: 75:13: BinaryOperator= Extent=[75:13 - 75:57]
  1799. // CHECK: 75:13: ParenExpr= Extent=[75:13 - 75:30]
  1800. // CHECK: 75:14: CStyleCastExpr= Extent=[75:14 - 75:29]
  1801. // CHECK: 75:25: UnexposedExpr= Extent=[75:25 - 75:29]
  1802. // CHECK: 75:25: UnexposedExpr= Extent=[75:25 - 75:29]
  1803. // CHECK: 75:25: ArraySubscriptExpr= Extent=[75:25 - 75:29]
  1804. // CHECK: 75:25: DeclRefExpr=p:74:17 Extent=[75:25 - 75:26]
  1805. // CHECK: 75:27: IntegerLiteral= Extent=[75:27 - 75:28]
  1806. // CHECK: 75:33: ParenExpr= Extent=[75:33 - 75:57]
  1807. // CHECK: 75:34: BinaryOperator= Extent=[75:34 - 75:56]
  1808. // CHECK: 75:34: ParenExpr= Extent=[75:34 - 75:51]
  1809. // CHECK: 75:35: CStyleCastExpr= Extent=[75:35 - 75:50]
  1810. // CHECK: 75:46: UnexposedExpr= Extent=[75:46 - 75:50]
  1811. // CHECK: 75:46: UnexposedExpr= Extent=[75:46 - 75:50]
  1812. // CHECK: 75:46: ArraySubscriptExpr= Extent=[75:46 - 75:50]
  1813. // CHECK: 75:46: DeclRefExpr=p:74:17 Extent=[75:46 - 75:47]
  1814. // CHECK: 75:48: IntegerLiteral= Extent=[75:48 - 75:49]
  1815. // CHECK: 75:55: IntegerLiteral= Extent=[75:55 - 75:56]
  1816. // CHECK: 75:61: UnexposedExpr= Extent=[75:61 - 75:62]
  1817. // CHECK: 75:61: IntegerLiteral= Extent=[75:61 - 75:62]
  1818. // CHECK: 77:19: CXXMethod=getName:77:19 (Definition) (const) Extent=[77:3 - 79:4] [access=public]
  1819. // CHECK: 77:35: CompoundStmt= Extent=[77:35 - 79:4]
  1820. // CHECK: 78:5: ReturnStmt= Extent=[78:5 - 78:56]
  1821. // CHECK: 78:12: CallExpr= Extent=[78:12 - 78:56]
  1822. // CHECK: 78:12: UnexposedExpr=StringRef:49:3 Extent=[78:12 - 78:56]
  1823. // CHECK: 78:12: CallExpr=StringRef:49:3 Extent=[78:12 - 78:56]
  1824. // CHECK: 78:28: CallExpr=getNameStart:68:15 Extent=[78:28 - 78:42]
  1825. // CHECK: 78:28: MemberRefExpr=getNameStart:68:15 Extent=[78:28 - 78:40]
  1826. // CHECK: 78:44: UnexposedExpr=getLength:72:12 Extent=[78:44 - 78:55]
  1827. // CHECK: 78:44: CallExpr=getLength:72:12 Extent=[78:44 - 78:55]
  1828. // CHECK: 78:44: MemberRefExpr=getLength:72:12 Extent=[78:44 - 78:53]
  1829. // CHECK: 82:11: Namespace=llvm:82:11 (Definition) Extent=[82:1 - 96:2]
  1830. // CHECK: 83:47: ClassTemplate=StringSwitch:83:47 (Definition) Extent=[83:1 - 95:2]
  1831. // CHECK: 83:21: TemplateTypeParameter=T:83:21 (Definition) Extent=[83:12 - 83:22]
  1832. // CHECK: 83:33: TemplateTypeParameter=R:83:33 (Definition) Extent=[83:24 - 83:38]
  1833. // CHECK: 84:13: FieldDecl=Str:84:13 (Definition) Extent=[84:3 - 84:16]
  1834. // CHECK: 84:3: TypeRef=class llvm::StringRef:38:7 Extent=[84:3 - 84:12]
  1835. // CHECK: 85:12: FieldDecl=Result:85:12 (Definition) Extent=[85:3 - 85:18]
  1836. // CHECK: 86:1: CXXAccessSpecifier=:86:1 (Definition) Extent=[86:1 - 86:8]
  1837. // CHECK: 87:12: CXXConstructor=StringSwitch<T, R>:87:12 (Definition) Extent=[87:3 - 87:64]
  1838. // CHECK: 87:35: ParmDecl=Str:87:35 (Definition) Extent=[87:25 - 87:38]
  1839. // CHECK: 87:25: TypeRef=class llvm::StringRef:38:7 Extent=[87:25 - 87:34]
  1840. // CHECK: 87:42: MemberRef=Str:84:13 Extent=[87:42 - 87:45]
  1841. // CHECK: 87:42: CallExpr=StringRef:38:7 Extent=[87:42 - 87:50]
  1842. // CHECK: 87:46: DeclRefExpr=Str:87:35 Extent=[87:46 - 87:49]
  1843. // CHECK: 87:52: MemberRef=Result:85:12 Extent=[87:52 - 87:58]
  1844. // CHECK: 87:58: UnexposedExpr= Extent=[87:58 - 87:61]
  1845. // CHECK: 87:59: IntegerLiteral= Extent=[87:59 - 87:60]
  1846. // CHECK: 87:62: CompoundStmt= Extent=[87:62 - 87:64]
  1847. // CHECK: 88:42: FunctionTemplate=Case:88:42 (Definition) Extent=[88:3 - 91:4]
  1848. // CHECK: 88:23: NonTypeTemplateParameter=N:88:23 (Definition) Extent=[88:14 - 88:24]
  1849. // CHECK: 88:60: ParmDecl=S:88:60 (Definition) Extent=[88:47 - 88:65]
  1850. // CHECK: 88:63: DeclRefExpr=N:88:23 Extent=[88:63 - 88:64]
  1851. // CHECK: 89:57: ParmDecl=Value:89:57 (Definition) Extent=[89:47 - 89:62]
  1852. // CHECK: 89:64: CompoundStmt= Extent=[89:64 - 91:4]
  1853. // CHECK: 90:5: ReturnStmt= Extent=[90:5 - 90:17]
  1854. // CHECK: 90:12: UnaryOperator= Extent=[90:12 - 90:17]
  1855. // CHECK: 90:13: CXXThisExpr= Extent=[90:13 - 90:17]
  1856. // CHECK: 92:5: CXXMethod=Default:92:5 (Definition) (const) Extent=[92:3 - 94:4] [access=public]
  1857. // CHECK: 92:23: ParmDecl=Value:92:23 (Definition) Extent=[92:13 - 92:28]
  1858. // CHECK: 92:36: CompoundStmt= Extent=[92:36 - 94:4]
  1859. // CHECK: 93:5: ReturnStmt= Extent=[93:5 - 93:17]
  1860. // CHECK: 93:12: DeclRefExpr=Value:92:23 Extent=[93:12 - 93:17]
  1861. // CHECK: 98:17: UsingDirective=:98:17 Extent=[98:1 - 98:22]
  1862. // CHECK: 98:17: NamespaceRef=clang:10:17 Extent=[98:17 - 98:22]
  1863. // CHECK: 100:36: CXXMethod=getKind:100:36 (Definition) (static) Extent=[100:1 - 186:2]
  1864. // CHECK: 100:21: TypeRef=class clang::AttributeList:12:9 Extent=[100:21 - 100:34]
  1865. // CHECK: 100:67: ParmDecl=Name:100:67 (Definition) Extent=[100:44 - 100:71]
  1866. // CHECK: 100:50: TypeRef=class clang::IdentifierInfo:66:7 Extent=[100:50 - 100:64]
  1867. // CHECK: 100:73: CompoundStmt= Extent=[100:73 - 186:2]
  1868. // CHECK: 101:3: DeclStmt= Extent=[101:3 - 101:46]
  1869. // CHECK: 101:19: VarDecl=AttrName:101:19 (Definition) Extent=[101:3 - 101:45]
  1870. // CHECK: 101:30: CallExpr= Extent=[101:30 - 101:45]
  1871. // CHECK: 101:30: UnexposedExpr=getName:77:19 Extent=[101:30 - 101:45]
  1872. // CHECK: 101:30: CallExpr=getName:77:19 Extent=[101:30 - 101:45]
  1873. // CHECK: 101:36: MemberRefExpr=getName:77:19 SingleRefName=[101:36 - 101:43] RefName=[101:36 - 101:43] Extent=[101:30 - 101:43]
  1874. // CHECK: 101:30: DeclRefExpr=Name:100:67 Extent=[101:30 - 101:34]
  1875. // CHECK: 102:3: IfStmt= Extent=[102:3 - 103:55]
  1876. // CHECK: 102:7: BinaryOperator= Extent=[102:7 - 102:59]
  1877. // CHECK: 102:7: CallExpr=startswith:52:8 Extent=[102:7 - 102:32]
  1878. // CHECK: 102:16: MemberRefExpr=startswith:52:8 SingleRefName=[102:16 - 102:26] RefName=[102:16 - 102:26] Extent=[102:7 - 102:26]
  1879. // CHECK: 102:7: UnexposedExpr=AttrName:101:19 Extent=[102:7 - 102:15]
  1880. // CHECK: 102:7: DeclRefExpr=AttrName:101:19 Extent=[102:7 - 102:15]
  1881. // CHECK: 102:27: CallExpr= Extent=[102:27 - 102:31]
  1882. // CHECK: 102:27: UnexposedExpr=StringRef:48:3 Extent=[102:27 - 102:31]
  1883. // CHECK: 102:27: UnexposedExpr=StringRef:48:3 Extent=[102:27 - 102:31]
  1884. // CHECK: 102:27: CallExpr=StringRef:48:3 Extent=[102:27 - 102:31]
  1885. // CHECK: 102:27: UnexposedExpr= Extent=[102:27 - 102:31]
  1886. // CHECK: 102:27: StringLiteral="__" Extent=[102:27 - 102:31]
  1887. // CHECK: 102:36: CallExpr=endswith:56:8 Extent=[102:36 - 102:59]
  1888. // CHECK: 102:45: MemberRefExpr=endswith:56:8 SingleRefName=[102:45 - 102:53] RefName=[102:45 - 102:53] Extent=[102:36 - 102:53]
  1889. // CHECK: 102:36: UnexposedExpr=AttrName:101:19 Extent=[102:36 - 102:44]
  1890. // CHECK: 102:36: DeclRefExpr=AttrName:101:19 Extent=[102:36 - 102:44]
  1891. // CHECK: 102:54: CallExpr= Extent=[102:54 - 102:58]
  1892. // CHECK: 102:54: UnexposedExpr=StringRef:48:3 Extent=[102:54 - 102:58]
  1893. // CHECK: 102:54: UnexposedExpr=StringRef:48:3 Extent=[102:54 - 102:58]
  1894. // CHECK: 102:54: CallExpr=StringRef:48:3 Extent=[102:54 - 102:58]
  1895. // CHECK: 102:54: UnexposedExpr= Extent=[102:54 - 102:58]
  1896. // CHECK: 102:54: StringLiteral="__" Extent=[102:54 - 102:58]
  1897. // CHECK: 103:5: CallExpr=operator=:38:7 Extent=[103:5 - 103:55]
  1898. // CHECK: 103:5: DeclRefExpr=AttrName:101:19 Extent=[103:5 - 103:13]
  1899. // CHECK: 103:14: UnexposedExpr=operator=:38:7
  1900. // CHECK: 103:14: DeclRefExpr=operator=:38:7
  1901. // CHECK: 103:16: UnexposedExpr=substr:60:13 Extent=[103:16 - 103:55]
  1902. // CHECK: 103:16: CallExpr=substr:60:13 Extent=[103:16 - 103:55]
  1903. // CHECK: 103:25: MemberRefExpr=substr:60:13 SingleRefName=[103:25 - 103:31] RefName=[103:25 - 103:31] Extent=[103:16 - 103:31]
  1904. // CHECK: 103:16: UnexposedExpr=AttrName:101:19 Extent=[103:16 - 103:24]
  1905. // CHECK: 103:16: DeclRefExpr=AttrName:101:19 Extent=[103:16 - 103:24]
  1906. // CHECK: 103:32: UnexposedExpr= Extent=[103:32 - 103:33]
  1907. // CHECK: 103:32: IntegerLiteral= Extent=[103:32 - 103:33]
  1908. // CHECK: 103:35: BinaryOperator= Extent=[103:35 - 103:54]
  1909. // CHECK: 103:35: CallExpr=size:51:10 Extent=[103:35 - 103:50]
  1910. // CHECK: 103:44: MemberRefExpr=size:51:10 SingleRefName=[103:44 - 103:48] RefName=[103:44 - 103:48] Extent=[103:35 - 103:48]
  1911. // CHECK: 103:35: UnexposedExpr=AttrName:101:19 Extent=[103:35 - 103:43]
  1912. // CHECK: 103:35: DeclRefExpr=AttrName:101:19 Extent=[103:35 - 103:43]
  1913. // CHECK: 103:53: UnexposedExpr= Extent=[103:53 - 103:54]
  1914. // CHECK: 103:53: IntegerLiteral= Extent=[103:53 - 103:54]
  1915. // CHECK: 105:3: ReturnStmt= Extent=[105:3 - 185:31]
  1916. // CHECK: 105:10: CallExpr=Default:92:5 Extent=[105:10 - 185:31]
  1917. // CHECK: 185:6: MemberRefExpr=Default:92:5 SingleRefName=[185:6 - 185:13] RefName=[185:6 - 185:13] Extent=[105:10 - 185:13]
  1918. // CHECK: 105:10: UnexposedExpr=Case:88:42 Extent=[105:10 - 184:33]
  1919. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 184:33]
  1920. // CHECK: 184:6: MemberRefExpr=Case:88:42 SingleRefName=[184:6 - 184:10] RefName=[184:6 - 184:10] Extent=[105:10 - 184:10]
  1921. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 183:37]
  1922. // CHECK: 183:6: MemberRefExpr=Case:88:42 SingleRefName=[183:6 - 183:10] RefName=[183:6 - 183:10] Extent=[105:10 - 183:10]
  1923. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 182:37]
  1924. // CHECK: 182:6: MemberRefExpr=Case:88:42 SingleRefName=[182:6 - 182:10] RefName=[182:6 - 182:10] Extent=[105:10 - 182:10]
  1925. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 181:35]
  1926. // CHECK: 181:6: MemberRefExpr=Case:88:42 SingleRefName=[181:6 - 181:10] RefName=[181:6 - 181:10] Extent=[105:10 - 181:10]
  1927. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 180:31]
  1928. // CHECK: 180:6: MemberRefExpr=Case:88:42 SingleRefName=[180:6 - 180:10] RefName=[180:6 - 180:10] Extent=[105:10 - 180:10]
  1929. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 179:31]
  1930. // CHECK: 179:6: MemberRefExpr=Case:88:42 SingleRefName=[179:6 - 179:10] RefName=[179:6 - 179:10] Extent=[105:10 - 179:10]
  1931. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 178:35]
  1932. // CHECK: 178:6: MemberRefExpr=Case:88:42 SingleRefName=[178:6 - 178:10] RefName=[178:6 - 178:10] Extent=[105:10 - 178:10]
  1933. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 177:63]
  1934. // CHECK: 177:6: MemberRefExpr=Case:88:42 SingleRefName=[177:6 - 177:10] RefName=[177:6 - 177:10] Extent=[105:10 - 177:10]
  1935. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 176:45]
  1936. // CHECK: 176:6: MemberRefExpr=Case:88:42 SingleRefName=[176:6 - 176:10] RefName=[176:6 - 176:10] Extent=[105:10 - 176:10]
  1937. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 175:51]
  1938. // CHECK: 175:6: MemberRefExpr=Case:88:42 SingleRefName=[175:6 - 175:10] RefName=[175:6 - 175:10] Extent=[105:10 - 175:10]
  1939. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 174:49]
  1940. // CHECK: 174:6: MemberRefExpr=Case:88:42 SingleRefName=[174:6 - 174:10] RefName=[174:6 - 174:10] Extent=[105:10 - 174:10]
  1941. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 173:49]
  1942. // CHECK: 173:6: MemberRefExpr=Case:88:42 SingleRefName=[173:6 - 173:10] RefName=[173:6 - 173:10] Extent=[105:10 - 173:10]
  1943. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 172:53]
  1944. // CHECK: 172:6: MemberRefExpr=Case:88:42 SingleRefName=[172:6 - 172:10] RefName=[172:6 - 172:10] Extent=[105:10 - 172:10]
  1945. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 171:57]
  1946. // CHECK: 171:6: MemberRefExpr=Case:88:42 SingleRefName=[171:6 - 171:10] RefName=[171:6 - 171:10] Extent=[105:10 - 171:10]
  1947. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 170:65]
  1948. // CHECK: 170:6: MemberRefExpr=Case:88:42 SingleRefName=[170:6 - 170:10] RefName=[170:6 - 170:10] Extent=[105:10 - 170:10]
  1949. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 169:57]
  1950. // CHECK: 169:6: MemberRefExpr=Case:88:42 SingleRefName=[169:6 - 169:10] RefName=[169:6 - 169:10] Extent=[105:10 - 169:10]
  1951. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 168:65]
  1952. // CHECK: 168:6: MemberRefExpr=Case:88:42 SingleRefName=[168:6 - 168:10] RefName=[168:6 - 168:10] Extent=[105:10 - 168:10]
  1953. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 167:55]
  1954. // CHECK: 167:6: MemberRefExpr=Case:88:42 SingleRefName=[167:6 - 167:10] RefName=[167:6 - 167:10] Extent=[105:10 - 167:10]
  1955. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 166:55]
  1956. // CHECK: 166:6: MemberRefExpr=Case:88:42 SingleRefName=[166:6 - 166:10] RefName=[166:6 - 166:10] Extent=[105:10 - 166:10]
  1957. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 165:53]
  1958. // CHECK: 165:6: MemberRefExpr=Case:88:42 SingleRefName=[165:6 - 165:10] RefName=[165:6 - 165:10] Extent=[105:10 - 165:10]
  1959. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 164:53]
  1960. // CHECK: 164:6: MemberRefExpr=Case:88:42 SingleRefName=[164:6 - 164:10] RefName=[164:6 - 164:10] Extent=[105:10 - 164:10]
  1961. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 163:49]
  1962. // CHECK: 163:6: MemberRefExpr=Case:88:42 SingleRefName=[163:6 - 163:10] RefName=[163:6 - 163:10] Extent=[105:10 - 163:10]
  1963. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 162:47]
  1964. // CHECK: 162:6: MemberRefExpr=Case:88:42 SingleRefName=[162:6 - 162:10] RefName=[162:6 - 162:10] Extent=[105:10 - 162:10]
  1965. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 161:45]
  1966. // CHECK: 161:6: MemberRefExpr=Case:88:42 SingleRefName=[161:6 - 161:10] RefName=[161:6 - 161:10] Extent=[105:10 - 161:10]
  1967. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 160:45]
  1968. // CHECK: 160:6: MemberRefExpr=Case:88:42 SingleRefName=[160:6 - 160:10] RefName=[160:6 - 160:10] Extent=[105:10 - 160:10]
  1969. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 159:45]
  1970. // CHECK: 159:6: MemberRefExpr=Case:88:42 SingleRefName=[159:6 - 159:10] RefName=[159:6 - 159:10] Extent=[105:10 - 159:10]
  1971. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 158:45]
  1972. // CHECK: 158:6: MemberRefExpr=Case:88:42 SingleRefName=[158:6 - 158:10] RefName=[158:6 - 158:10] Extent=[105:10 - 158:10]
  1973. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 157:43]
  1974. // CHECK: 157:6: MemberRefExpr=Case:88:42 SingleRefName=[157:6 - 157:10] RefName=[157:6 - 157:10] Extent=[105:10 - 157:10]
  1975. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 156:41]
  1976. // CHECK: 156:6: MemberRefExpr=Case:88:42 SingleRefName=[156:6 - 156:10] RefName=[156:6 - 156:10] Extent=[105:10 - 156:10]
  1977. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 155:41]
  1978. // CHECK: 155:6: MemberRefExpr=Case:88:42 SingleRefName=[155:6 - 155:10] RefName=[155:6 - 155:10] Extent=[105:10 - 155:10]
  1979. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 154:41]
  1980. // CHECK: 154:6: MemberRefExpr=Case:88:42 SingleRefName=[154:6 - 154:10] RefName=[154:6 - 154:10] Extent=[105:10 - 154:10]
  1981. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 153:37]
  1982. // CHECK: 153:6: MemberRefExpr=Case:88:42 SingleRefName=[153:6 - 153:10] RefName=[153:6 - 153:10] Extent=[105:10 - 153:10]
  1983. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 152:41]
  1984. // CHECK: 152:6: MemberRefExpr=Case:88:42 SingleRefName=[152:6 - 152:10] RefName=[152:6 - 152:10] Extent=[105:10 - 152:10]
  1985. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 151:39]
  1986. // CHECK: 151:6: MemberRefExpr=Case:88:42 SingleRefName=[151:6 - 151:10] RefName=[151:6 - 151:10] Extent=[105:10 - 151:10]
  1987. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 150:39]
  1988. // CHECK: 150:6: MemberRefExpr=Case:88:42 SingleRefName=[150:6 - 150:10] RefName=[150:6 - 150:10] Extent=[105:10 - 150:10]
  1989. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 149:39]
  1990. // CHECK: 149:6: MemberRefExpr=Case:88:42 SingleRefName=[149:6 - 149:10] RefName=[149:6 - 149:10] Extent=[105:10 - 149:10]
  1991. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 148:39]
  1992. // CHECK: 148:6: MemberRefExpr=Case:88:42 SingleRefName=[148:6 - 148:10] RefName=[148:6 - 148:10] Extent=[105:10 - 148:10]
  1993. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 147:39]
  1994. // CHECK: 147:6: MemberRefExpr=Case:88:42 SingleRefName=[147:6 - 147:10] RefName=[147:6 - 147:10] Extent=[105:10 - 147:10]
  1995. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 146:39]
  1996. // CHECK: 146:6: MemberRefExpr=Case:88:42 SingleRefName=[146:6 - 146:10] RefName=[146:6 - 146:10] Extent=[105:10 - 146:10]
  1997. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 145:41]
  1998. // CHECK: 145:6: MemberRefExpr=Case:88:42 SingleRefName=[145:6 - 145:10] RefName=[145:6 - 145:10] Extent=[105:10 - 145:10]
  1999. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 144:37]
  2000. // CHECK: 144:6: MemberRefExpr=Case:88:42 SingleRefName=[144:6 - 144:10] RefName=[144:6 - 144:10] Extent=[105:10 - 144:10]
  2001. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 143:37]
  2002. // CHECK: 143:6: MemberRefExpr=Case:88:42 SingleRefName=[143:6 - 143:10] RefName=[143:6 - 143:10] Extent=[105:10 - 143:10]
  2003. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 142:35]
  2004. // CHECK: 142:6: MemberRefExpr=Case:88:42 SingleRefName=[142:6 - 142:10] RefName=[142:6 - 142:10] Extent=[105:10 - 142:10]
  2005. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 141:35]
  2006. // CHECK: 141:6: MemberRefExpr=Case:88:42 SingleRefName=[141:6 - 141:10] RefName=[141:6 - 141:10] Extent=[105:10 - 141:10]
  2007. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 140:35]
  2008. // CHECK: 140:6: MemberRefExpr=Case:88:42 SingleRefName=[140:6 - 140:10] RefName=[140:6 - 140:10] Extent=[105:10 - 140:10]
  2009. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 139:35]
  2010. // CHECK: 139:6: MemberRefExpr=Case:88:42 SingleRefName=[139:6 - 139:10] RefName=[139:6 - 139:10] Extent=[105:10 - 139:10]
  2011. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 138:35]
  2012. // CHECK: 138:6: MemberRefExpr=Case:88:42 SingleRefName=[138:6 - 138:10] RefName=[138:6 - 138:10] Extent=[105:10 - 138:10]
  2013. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 137:55]
  2014. // CHECK: 137:6: MemberRefExpr=Case:88:42 SingleRefName=[137:6 - 137:10] RefName=[137:6 - 137:10] Extent=[105:10 - 137:10]
  2015. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 136:35]
  2016. // CHECK: 136:6: MemberRefExpr=Case:88:42 SingleRefName=[136:6 - 136:10] RefName=[136:6 - 136:10] Extent=[105:10 - 136:10]
  2017. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 135:35]
  2018. // CHECK: 135:6: MemberRefExpr=Case:88:42 SingleRefName=[135:6 - 135:10] RefName=[135:6 - 135:10] Extent=[105:10 - 135:10]
  2019. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 134:35]
  2020. // CHECK: 134:6: MemberRefExpr=Case:88:42 SingleRefName=[134:6 - 134:10] RefName=[134:6 - 134:10] Extent=[105:10 - 134:10]
  2021. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 133:35]
  2022. // CHECK: 133:6: MemberRefExpr=Case:88:42 SingleRefName=[133:6 - 133:10] RefName=[133:6 - 133:10] Extent=[105:10 - 133:10]
  2023. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 132:33]
  2024. // CHECK: 132:6: MemberRefExpr=Case:88:42 SingleRefName=[132:6 - 132:10] RefName=[132:6 - 132:10] Extent=[105:10 - 132:10]
  2025. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 131:33]
  2026. // CHECK: 131:6: MemberRefExpr=Case:88:42 SingleRefName=[131:6 - 131:10] RefName=[131:6 - 131:10] Extent=[105:10 - 131:10]
  2027. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 130:33]
  2028. // CHECK: 130:6: MemberRefExpr=Case:88:42 SingleRefName=[130:6 - 130:10] RefName=[130:6 - 130:10] Extent=[105:10 - 130:10]
  2029. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 129:33]
  2030. // CHECK: 129:6: MemberRefExpr=Case:88:42 SingleRefName=[129:6 - 129:10] RefName=[129:6 - 129:10] Extent=[105:10 - 129:10]
  2031. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 128:33]
  2032. // CHECK: 128:6: MemberRefExpr=Case:88:42 SingleRefName=[128:6 - 128:10] RefName=[128:6 - 128:10] Extent=[105:10 - 128:10]
  2033. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 127:33]
  2034. // CHECK: 127:6: MemberRefExpr=Case:88:42 SingleRefName=[127:6 - 127:10] RefName=[127:6 - 127:10] Extent=[105:10 - 127:10]
  2035. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 126:33]
  2036. // CHECK: 126:6: MemberRefExpr=Case:88:42 SingleRefName=[126:6 - 126:10] RefName=[126:6 - 126:10] Extent=[105:10 - 126:10]
  2037. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 125:29]
  2038. // CHECK: 125:6: MemberRefExpr=Case:88:42 SingleRefName=[125:6 - 125:10] RefName=[125:6 - 125:10] Extent=[105:10 - 125:10]
  2039. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 124:33]
  2040. // CHECK: 124:6: MemberRefExpr=Case:88:42 SingleRefName=[124:6 - 124:10] RefName=[124:6 - 124:10] Extent=[105:10 - 124:10]
  2041. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 123:33]
  2042. // CHECK: 123:6: MemberRefExpr=Case:88:42 SingleRefName=[123:6 - 123:10] RefName=[123:6 - 123:10] Extent=[105:10 - 123:10]
  2043. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 122:31]
  2044. // CHECK: 122:6: MemberRefExpr=Case:88:42 SingleRefName=[122:6 - 122:10] RefName=[122:6 - 122:10] Extent=[105:10 - 122:10]
  2045. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 121:31]
  2046. // CHECK: 121:6: MemberRefExpr=Case:88:42 SingleRefName=[121:6 - 121:10] RefName=[121:6 - 121:10] Extent=[105:10 - 121:10]
  2047. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 120:31]
  2048. // CHECK: 120:6: MemberRefExpr=Case:88:42 SingleRefName=[120:6 - 120:10] RefName=[120:6 - 120:10] Extent=[105:10 - 120:10]
  2049. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 119:31]
  2050. // CHECK: 119:6: MemberRefExpr=Case:88:42 SingleRefName=[119:6 - 119:10] RefName=[119:6 - 119:10] Extent=[105:10 - 119:10]
  2051. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 118:31]
  2052. // CHECK: 118:6: MemberRefExpr=Case:88:42 SingleRefName=[118:6 - 118:10] RefName=[118:6 - 118:10] Extent=[105:10 - 118:10]
  2053. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 117:31]
  2054. // CHECK: 117:6: MemberRefExpr=Case:88:42 SingleRefName=[117:6 - 117:10] RefName=[117:6 - 117:10] Extent=[105:10 - 117:10]
  2055. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 116:31]
  2056. // CHECK: 116:6: MemberRefExpr=Case:88:42 SingleRefName=[116:6 - 116:10] RefName=[116:6 - 116:10] Extent=[105:10 - 116:10]
  2057. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 115:29]
  2058. // CHECK: 115:6: MemberRefExpr=Case:88:42 SingleRefName=[115:6 - 115:10] RefName=[115:6 - 115:10] Extent=[105:10 - 115:10]
  2059. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 114:29]
  2060. // CHECK: 114:6: MemberRefExpr=Case:88:42 SingleRefName=[114:6 - 114:10] RefName=[114:6 - 114:10] Extent=[105:10 - 114:10]
  2061. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 113:29]
  2062. // CHECK: 113:6: MemberRefExpr=Case:88:42 SingleRefName=[113:6 - 113:10] RefName=[113:6 - 113:10] Extent=[105:10 - 113:10]
  2063. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 112:31]
  2064. // CHECK: 112:6: MemberRefExpr=Case:88:42 SingleRefName=[112:6 - 112:10] RefName=[112:6 - 112:10] Extent=[105:10 - 112:10]
  2065. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 111:29]
  2066. // CHECK: 111:6: MemberRefExpr=Case:88:42 SingleRefName=[111:6 - 111:10] RefName=[111:6 - 111:10] Extent=[105:10 - 111:10]
  2067. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 110:27]
  2068. // CHECK: 110:6: MemberRefExpr=Case:88:42 SingleRefName=[110:6 - 110:10] RefName=[110:6 - 110:10] Extent=[105:10 - 110:10]
  2069. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 109:27]
  2070. // CHECK: 109:6: MemberRefExpr=Case:88:42 SingleRefName=[109:6 - 109:10] RefName=[109:6 - 109:10] Extent=[105:10 - 109:10]
  2071. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 108:27]
  2072. // CHECK: 108:6: MemberRefExpr=Case:88:42 SingleRefName=[108:6 - 108:10] RefName=[108:6 - 108:10] Extent=[105:10 - 108:10]
  2073. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 107:33]
  2074. // CHECK: 107:6: MemberRefExpr=Case:88:42 SingleRefName=[107:6 - 107:10] RefName=[107:6 - 107:10] Extent=[105:10 - 107:10]
  2075. // CHECK: 105:10: CallExpr=Case:88:42 Extent=[105:10 - 106:27]
  2076. // CHECK: 106:6: MemberRefExpr=Case:88:42 SingleRefName=[106:6 - 106:10] RefName=[106:6 - 106:10] Extent=[105:10 - 106:10]
  2077. // CHECK: 105:10: CXXFunctionalCastExpr= Extent=[105:10 - 105:63]
  2078. // CHECK: 105:16: TemplateRef=StringSwitch:83:47 Extent=[105:16 - 105:28]
  2079. // CHECK: 105:10: CallExpr=StringSwitch:87:12 Extent=[105:10 - 105:63]
  2080. // CHECK: 105:54: CallExpr=StringRef:38:7 Extent=[105:54 - 105:62]
  2081. // CHECK: 105:54: UnexposedExpr=AttrName:101:19 Extent=[105:54 - 105:62]
  2082. // CHECK: 105:54: DeclRefExpr=AttrName:101:19 Extent=[105:54 - 105:62]
  2083. // CHECK: 106:11: StringLiteral="weak" Extent=[106:11 - 106:17]
  2084. // CHECK: 106:19: DeclRefExpr=AT_weak:29:45 Extent=[106:19 - 106:26]
  2085. // CHECK: 107:11: StringLiteral="weakref" Extent=[107:11 - 107:20]
  2086. // CHECK: 107:22: DeclRefExpr=AT_weakref:29:54 Extent=[107:22 - 107:32]
  2087. // CHECK: 108:11: StringLiteral="pure" Extent=[108:11 - 108:17]
  2088. // CHECK: 108:19: DeclRefExpr=AT_pure:26:49 Extent=[108:19 - 108:26]
  2089. // CHECK: 109:11: StringLiteral="mode" Extent=[109:11 - 109:17]
  2090. // CHECK: 109:19: DeclRefExpr=AT_mode:20:44 Extent=[109:19 - 109:26]
  2091. // CHECK: 110:11: StringLiteral="used" Extent=[110:11 - 110:17]
  2092. // CHECK: 110:19: DeclRefExpr=AT_used:28:34 Extent=[110:19 - 110:26]
  2093. // CHECK: 111:11: StringLiteral="alias" Extent=[111:11 - 111:18]
  2094. // CHECK: 111:20: DeclRefExpr=AT_alias:15:25 Extent=[111:20 - 111:28]
  2095. // CHECK: 112:11: StringLiteral="align" Extent=[112:11 - 112:18]
  2096. // CHECK: 112:20: DeclRefExpr=AT_aligned:15:35 Extent=[112:20 - 112:30]
  2097. // CHECK: 113:11: StringLiteral="final" Extent=[113:11 - 113:18]
  2098. // CHECK: 113:20: DeclRefExpr=AT_final:19:40 Extent=[113:20 - 113:28]
  2099. // CHECK: 114:11: StringLiteral="cdecl" Extent=[114:11 - 114:18]
  2100. // CHECK: 114:20: DeclRefExpr=AT_cdecl:17:30 Extent=[114:20 - 114:28]
  2101. // CHECK: 115:11: StringLiteral="const" Extent=[115:11 - 115:18]
  2102. // CHECK: 115:20: DeclRefExpr=AT_const:17:52 Extent=[115:20 - 115:28]
  2103. // CHECK: 116:11: StringLiteral="__const" Extent=[116:11 - 116:20]
  2104. // CHECK: 116:22: DeclRefExpr=AT_const:17:52 Extent=[116:22 - 116:30]
  2105. // CHECK: 117:11: StringLiteral="blocks" Extent=[117:11 - 117:19]
  2106. // CHECK: 117:21: DeclRefExpr=AT_blocks:16:57 Extent=[117:21 - 117:30]
  2107. // CHECK: 118:11: StringLiteral="format" Extent=[118:11 - 118:19]
  2108. // CHECK: 118:21: DeclRefExpr=AT_format:19:50 Extent=[118:21 - 118:30]
  2109. // CHECK: 119:11: StringLiteral="hiding" Extent=[119:11 - 119:19]
  2110. // CHECK: 119:21: DeclRefExpr=AT_hiding:20:22 Extent=[119:21 - 119:30]
  2111. // CHECK: 120:11: StringLiteral="malloc" Extent=[120:11 - 120:19]
  2112. // CHECK: 120:21: DeclRefExpr=AT_malloc:20:33 Extent=[120:21 - 120:30]
  2113. // CHECK: 121:11: StringLiteral="packed" Extent=[121:11 - 121:19]
  2114. // CHECK: 121:21: DeclRefExpr=AT_packed:26:27 Extent=[121:21 - 121:30]
  2115. // CHECK: 122:11: StringLiteral="unused" Extent=[122:11 - 122:19]
  2116. // CHECK: 122:21: DeclRefExpr=AT_unused:28:23 Extent=[122:21 - 122:30]
  2117. // CHECK: 123:11: StringLiteral="aligned" Extent=[123:11 - 123:20]
  2118. // CHECK: 123:22: DeclRefExpr=AT_aligned:15:35 Extent=[123:22 - 123:32]
  2119. // CHECK: 124:11: StringLiteral="cleanup" Extent=[124:11 - 124:20]
  2120. // CHECK: 124:22: DeclRefExpr=AT_cleanup:17:40 Extent=[124:22 - 124:32]
  2121. // CHECK: 125:11: StringLiteral="naked" Extent=[125:11 - 125:18]
  2122. // CHECK: 125:20: DeclRefExpr=AT_naked:20:53 Extent=[125:20 - 125:28]
  2123. // CHECK: 126:11: StringLiteral="nodebug" Extent=[126:11 - 126:20]
  2124. // CHECK: 126:22: DeclRefExpr=AT_nodebug:20:63 Extent=[126:22 - 126:32]
  2125. // CHECK: 127:11: StringLiteral="nonnull" Extent=[127:11 - 127:20]
  2126. // CHECK: 127:22: DeclRefExpr=AT_nonnull:21:47 Extent=[127:22 - 127:32]
  2127. // CHECK: 128:11: StringLiteral="nothrow" Extent=[128:11 - 128:20]
  2128. // CHECK: 128:22: DeclRefExpr=AT_nothrow:22:7 Extent=[128:22 - 128:32]
  2129. // CHECK: 129:11: StringLiteral="objc_gc" Extent=[129:11 - 129:20]
  2130. // CHECK: 129:22: DeclRefExpr=AT_objc_gc:24:59 Extent=[129:22 - 129:32]
  2131. // CHECK: 130:11: StringLiteral="regparm" Extent=[130:11 - 130:20]
  2132. // CHECK: 130:22: DeclRefExpr=AT_regparm:26:58 Extent=[130:22 - 130:32]
  2133. // CHECK: 131:11: StringLiteral="section" Extent=[131:11 - 131:20]
  2134. // CHECK: 131:22: DeclRefExpr=AT_section:27:7 Extent=[131:22 - 131:32]
  2135. // CHECK: 132:11: StringLiteral="stdcall" Extent=[132:11 - 132:20]
  2136. // CHECK: 132:22: DeclRefExpr=AT_stdcall:27:32 Extent=[132:22 - 132:32]
  2137. // CHECK: 133:11: StringLiteral="annotate" Extent=[133:11 - 133:21]
  2138. // CHECK: 133:23: DeclRefExpr=AT_annotate:16:29 Extent=[133:23 - 133:34]
  2139. // CHECK: 134:11: StringLiteral="fastcall" Extent=[134:11 - 134:21]
  2140. // CHECK: 134:23: DeclRefExpr=AT_fastcall:19:27 Extent=[134:23 - 134:34]
  2141. // CHECK: 135:11: StringLiteral="ibaction" Extent=[135:11 - 135:21]
  2142. // CHECK: 135:23: DeclRefExpr=AT_IBAction:14:7 Extent=[135:23 - 135:34]
  2143. // CHECK: 136:11: StringLiteral="iboutlet" Extent=[136:11 - 136:21]
  2144. // CHECK: 136:23: DeclRefExpr=AT_IBOutlet:14:20 Extent=[136:23 - 136:34]
  2145. // CHECK: 137:11: StringLiteral="iboutletcollection" Extent=[137:11 - 137:31]
  2146. // CHECK: 137:33: DeclRefExpr=AT_IBOutletCollection:14:33 Extent=[137:33 - 137:54]
  2147. // CHECK: 138:11: StringLiteral="noreturn" Extent=[138:11 - 138:21]
  2148. // CHECK: 138:23: DeclRefExpr=AT_noreturn:21:59 Extent=[138:23 - 138:34]
  2149. // CHECK: 139:11: StringLiteral="noinline" Extent=[139:11 - 139:21]
  2150. // CHECK: 139:23: DeclRefExpr=AT_noinline:21:7 Extent=[139:23 - 139:34]
  2151. // CHECK: 140:11: StringLiteral="override" Extent=[140:11 - 140:21]
  2152. // CHECK: 140:23: DeclRefExpr=AT_override:22:51 Extent=[140:23 - 140:34]
  2153. // CHECK: 141:11: StringLiteral="sentinel" Extent=[141:11 - 141:21]
  2154. // CHECK: 141:23: DeclRefExpr=AT_sentinel:27:19 Extent=[141:23 - 141:34]
  2155. // CHECK: 142:11: StringLiteral="NSObject" Extent=[142:11 - 142:21]
  2156. // CHECK: 142:23: DeclRefExpr=AT_nsobject:22:19 Extent=[142:23 - 142:34]
  2157. // CHECK: 143:11: StringLiteral="dllimport" Extent=[143:11 - 143:22]
  2158. // CHECK: 143:24: DeclRefExpr=AT_dllimport:18:51 Extent=[143:24 - 143:36]
  2159. // CHECK: 144:11: StringLiteral="dllexport" Extent=[144:11 - 144:22]
  2160. // CHECK: 144:24: DeclRefExpr=AT_dllexport:18:37 Extent=[144:24 - 144:36]
  2161. // CHECK: 145:11: StringLiteral="may_alias" Extent=[145:11 - 145:22]
  2162. // CHECK: 146:11: StringLiteral="base_check" Extent=[146:11 - 146:23]
  2163. // CHECK: 146:25: DeclRefExpr=AT_base_check:16:42 Extent=[146:25 - 146:38]
  2164. // CHECK: 147:11: StringLiteral="deprecated" Extent=[147:11 - 147:23]
  2165. // CHECK: 147:25: DeclRefExpr=AT_deprecated:18:7 Extent=[147:25 - 147:38]
  2166. // CHECK: 148:11: StringLiteral="visibility" Extent=[148:11 - 148:23]
  2167. // CHECK: 148:25: DeclRefExpr=AT_visibility:29:7 Extent=[148:25 - 148:38]
  2168. // CHECK: 149:11: StringLiteral="destructor" Extent=[149:11 - 149:23]
  2169. // CHECK: 149:25: DeclRefExpr=AT_destructor:18:22 Extent=[149:25 - 149:38]
  2170. // CHECK: 150:11: StringLiteral="format_arg" Extent=[150:11 - 150:23]
  2171. // CHECK: 150:25: DeclRefExpr=AT_format_arg:19:61 Extent=[150:25 - 150:38]
  2172. // CHECK: 151:11: StringLiteral="gnu_inline" Extent=[151:11 - 151:23]
  2173. // CHECK: 151:25: DeclRefExpr=AT_gnu_inline:20:7 Extent=[151:25 - 151:38]
  2174. // CHECK: 152:11: StringLiteral="weak_import" Extent=[152:11 - 152:24]
  2175. // CHECK: 152:26: DeclRefExpr=AT_weak_import:30:7 Extent=[152:26 - 152:40]
  2176. // CHECK: 153:11: StringLiteral="vecreturn" Extent=[153:11 - 153:22]
  2177. // CHECK: 153:24: DeclRefExpr=AT_vecreturn:28:43 Extent=[153:24 - 153:36]
  2178. // CHECK: 154:11: StringLiteral="vector_size" Extent=[154:11 - 154:24]
  2179. // CHECK: 154:26: DeclRefExpr=AT_vector_size:28:57 Extent=[154:26 - 154:40]
  2180. // CHECK: 155:11: StringLiteral="constructor" Extent=[155:11 - 155:24]
  2181. // CHECK: 155:26: DeclRefExpr=AT_constructor:17:62 Extent=[155:26 - 155:40]
  2182. // CHECK: 156:11: StringLiteral="unavailable" Extent=[156:11 - 156:24]
  2183. // CHECK: 156:26: DeclRefExpr=AT_unavailable:28:7 Extent=[156:26 - 156:40]
  2184. // CHECK: 157:11: StringLiteral="overloadable" Extent=[157:11 - 157:25]
  2185. // CHECK: 157:27: DeclRefExpr=AT_overloadable:25:7 Extent=[157:27 - 157:42]
  2186. // CHECK: 158:11: StringLiteral="address_space" Extent=[158:11 - 158:26]
  2187. // CHECK: 158:28: DeclRefExpr=AT_address_space:15:7 Extent=[158:28 - 158:44]
  2188. // CHECK: 159:11: StringLiteral="always_inline" Extent=[159:11 - 159:26]
  2189. // CHECK: 159:28: DeclRefExpr=AT_always_inline:15:47 Extent=[159:28 - 159:44]
  2190. // CHECK: 160:11: StringLiteral="returns_twice" Extent=[160:11 - 160:26]
  2191. // CHECK: 161:11: StringLiteral="vec_type_hint" Extent=[161:11 - 161:26]
  2192. // CHECK: 162:11: StringLiteral="objc_exception" Extent=[162:11 - 162:27]
  2193. // CHECK: 162:29: DeclRefExpr=AT_objc_exception:22:32 Extent=[162:29 - 162:46]
  2194. // CHECK: 163:11: StringLiteral="ext_vector_type" Extent=[163:11 - 163:28]
  2195. // CHECK: 163:30: DeclRefExpr=AT_ext_vector_type:19:7 Extent=[163:30 - 163:48]
  2196. // CHECK: 164:11: StringLiteral="transparent_union" Extent=[164:11 - 164:30]
  2197. // CHECK: 164:32: DeclRefExpr=AT_transparent_union:27:57 Extent=[164:32 - 164:52]
  2198. // CHECK: 165:11: StringLiteral="analyzer_noreturn" Extent=[165:11 - 165:30]
  2199. // CHECK: 165:32: DeclRefExpr=AT_analyzer_noreturn:16:7 Extent=[165:32 - 165:52]
  2200. // CHECK: 166:11: StringLiteral="warn_unused_result" Extent=[166:11 - 166:31]
  2201. // CHECK: 166:33: DeclRefExpr=AT_warn_unused_result:29:22 Extent=[166:33 - 166:54]
  2202. // CHECK: 167:11: StringLiteral="carries_dependency" Extent=[167:11 - 167:31]
  2203. // CHECK: 167:33: DeclRefExpr=AT_carries_dependency:17:7 Extent=[167:33 - 167:54]
  2204. // CHECK: 168:11: StringLiteral="ns_returns_not_retained" Extent=[168:11 - 168:36]
  2205. // CHECK: 168:38: DeclRefExpr=AT_ns_returns_not_retained:24:7 Extent=[168:38 - 168:64]
  2206. // CHECK: 169:11: StringLiteral="ns_returns_retained" Extent=[169:11 - 169:32]
  2207. // CHECK: 169:34: DeclRefExpr=AT_ns_returns_retained:24:35 Extent=[169:34 - 169:56]
  2208. // CHECK: 170:11: StringLiteral="cf_returns_not_retained" Extent=[170:11 - 170:36]
  2209. // CHECK: 170:38: DeclRefExpr=AT_cf_returns_not_retained:23:7 Extent=[170:38 - 170:64]
  2210. // CHECK: 171:11: StringLiteral="cf_returns_retained" Extent=[171:11 - 171:32]
  2211. // CHECK: 171:34: DeclRefExpr=AT_cf_returns_retained:23:35 Extent=[171:34 - 171:56]
  2212. // CHECK: 172:11: StringLiteral="ownership_returns" Extent=[172:11 - 172:30]
  2213. // CHECK: 172:32: DeclRefExpr=AT_ownership_returns:25:44 Extent=[172:32 - 172:52]
  2214. // CHECK: 173:11: StringLiteral="ownership_holds" Extent=[173:11 - 173:28]
  2215. // CHECK: 173:30: DeclRefExpr=AT_ownership_holds:25:24 Extent=[173:30 - 173:48]
  2216. // CHECK: 174:11: StringLiteral="ownership_takes" Extent=[174:11 - 174:28]
  2217. // CHECK: 174:30: DeclRefExpr=AT_ownership_takes:26:7 Extent=[174:30 - 174:48]
  2218. // CHECK: 175:11: StringLiteral="reqd_work_group_size" Extent=[175:11 - 175:33]
  2219. // CHECK: 175:35: DeclRefExpr=AT_reqd_wg_size:30:23 Extent=[175:35 - 175:50]
  2220. // CHECK: 176:11: StringLiteral="init_priority" Extent=[176:11 - 176:26]
  2221. // CHECK: 176:28: DeclRefExpr=AT_init_priority:30:40 Extent=[176:28 - 176:44]
  2222. // CHECK: 177:11: StringLiteral="no_instrument_function" Extent=[177:11 - 177:35]
  2223. // CHECK: 177:37: DeclRefExpr=AT_no_instrument_function:21:20 Extent=[177:37 - 177:62]
  2224. // CHECK: 178:11: StringLiteral="thiscall" Extent=[178:11 - 178:21]
  2225. // CHECK: 178:23: DeclRefExpr=AT_thiscall:27:44 Extent=[178:23 - 178:34]
  2226. // CHECK: 179:11: StringLiteral="pascal" Extent=[179:11 - 179:19]
  2227. // CHECK: 179:21: DeclRefExpr=AT_pascal:26:38 Extent=[179:21 - 179:30]
  2228. // CHECK: 180:11: StringLiteral="__cdecl" Extent=[180:11 - 180:20]
  2229. // CHECK: 180:22: DeclRefExpr=AT_cdecl:17:30 Extent=[180:22 - 180:30]
  2230. // CHECK: 181:11: StringLiteral="__stdcall" Extent=[181:11 - 181:22]
  2231. // CHECK: 181:24: DeclRefExpr=AT_stdcall:27:32 Extent=[181:24 - 181:34]
  2232. // CHECK: 182:11: StringLiteral="__fastcall" Extent=[182:11 - 182:23]
  2233. // CHECK: 182:25: DeclRefExpr=AT_fastcall:19:27 Extent=[182:25 - 182:36]
  2234. // CHECK: 183:11: StringLiteral="__thiscall" Extent=[183:11 - 183:23]
  2235. // CHECK: 183:25: DeclRefExpr=AT_thiscall:27:44 Extent=[183:25 - 183:36]
  2236. // CHECK: 184:11: StringLiteral="__pascal" Extent=[184:11 - 184:21]
  2237. // CHECK: 184:23: DeclRefExpr=AT_pascal:26:38 Extent=[184:23 - 184:32]