18f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenektypedef long unsigned int __darwin_size_t;
28f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenektypedef __darwin_size_t size_t;
38f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremeneknamespace std {
48f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  template < class _T1, class _T2 > struct pair { _T2 second; };
58f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek}
68f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenekextern "C" {
78f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  int memcmp(const void *, const void *, size_t);
88f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  size_t strlen(const char *);
98f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek}
108f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremeneknamespace       clang {
118f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  class IdentifierInfo;
128f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  class AttributeList {
138f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    enum Kind {
148f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_IBAction, AT_IBOutlet, AT_IBOutletCollection,
158f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_address_space, AT_alias, AT_aligned, AT_always_inline,
168f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_analyzer_noreturn, AT_annotate, AT_base_check, AT_blocks,
178f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_carries_dependency, AT_cdecl, AT_cleanup, AT_const, AT_constructor,
188f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_deprecated, AT_destructor, AT_dllexport, AT_dllimport,
198f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_ext_vector_type, AT_fastcall, AT_final, AT_format, AT_format_arg,
208f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_gnu_inline, AT_hiding, AT_malloc, AT_mode, AT_naked, AT_nodebug,
218f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_noinline, AT_no_instrument_function, AT_nonnull, AT_noreturn,
228f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_nothrow, AT_nsobject, AT_objc_exception, AT_override,
238f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_cf_returns_not_retained, AT_cf_returns_retained,
248f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_ns_returns_not_retained, AT_ns_returns_retained, AT_objc_gc,
258f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_overloadable, AT_ownership_holds, AT_ownership_returns,
268f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_ownership_takes, AT_packed, AT_pascal, AT_pure, AT_regparm,
278f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_section, AT_sentinel, AT_stdcall, AT_thiscall, AT_transparent_union,
288f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_unavailable, AT_unused, AT_used, AT_vecreturn, AT_vector_size,
298f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_visibility, AT_warn_unused_result, AT_weak, AT_weakref,
308f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      AT_weak_import, AT_reqd_wg_size, AT_init_priority,
31f87cced71a955dca5731e7b28bc182e4824c0355Rafael Espindola      AT_returns_twice, IgnoredAttribute, UnknownAttribute
328f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    };
338f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    static Kind getKind(const IdentifierInfo * Name);
348f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  };
358f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek}
368f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremeneksize_t magic_length(const char *s);
378f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremeneknamespace llvm {
388f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenekclass StringRef {
398f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenekpublic:
408f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  typedef const char *iterator;
418f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  static const size_t npos = ~size_t(0);
428f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenekprivate:
438f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  const char *Data;
448f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  size_t Length;
458f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  static size_t min(size_t a, size_t b) { return a < b ? a : b; }
468f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenekpublic:
478f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  StringRef(): Data(0), Length(0) {}
488f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  StringRef(const char *Str) : Data(Str), Length(magic_length(Str)) {}
498f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  StringRef(const char *data, size_t length) : Data(data), Length(length) {}
508f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  iterator end() const { return Data; }
518f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  size_t size() const { return Length; }
528f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  bool startswith(StringRef Prefix) const {
538f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    return Length >= Prefix.Length &&
548f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek          memcmp(Data, Prefix.Data, Prefix.Length) == 0;
558f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  }
568f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  bool endswith(StringRef Suffix) const {
578f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    return Length >= Suffix.Length &&
588f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek      memcmp(end() - Suffix.Length, Suffix.Data, Suffix.Length) == 0;
598f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  }
608f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  StringRef substr(size_t Start, size_t N = npos) const {
618f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    return StringRef(Data + Start, min(N, Length - Start));
628f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  }
638f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek};
648f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek}
658f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremeneknamespace clang {
668f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenekclass IdentifierInfo {
678f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenekpublic:IdentifierInfo();
688f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  const char *getNameStart() const {
698f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    typedef std::pair < IdentifierInfo, const char *>actualtype;
708f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    return ((const actualtype *) this)->second;
718f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  }
728f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  unsigned getLength() const {
738f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    typedef std::pair < IdentifierInfo, const char *>actualtype;
748f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    const char *p = ((const actualtype *) this)->second - 2;
758f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    return (((unsigned) p[0]) | (((unsigned) p[1]) << 8)) - 1;
768f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  }
778f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  llvm::StringRef getName() const {
788f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    return llvm::StringRef(getNameStart(), getLength());
798f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  }
808f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek};
818f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek}
828f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremeneknamespace llvm {
838f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenektemplate < typename T, typename R = T > class StringSwitch {
848f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  StringRef Str;
858f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  const T *Result;
868f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenekpublic:
878f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  explicit StringSwitch(StringRef Str) : Str(Str), Result(0) {}
888f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  template < unsigned N > StringSwitch & Case(const char (&S)[N],
898f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek                                              const T & Value) {
908f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    return *this;
918f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  }
928f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  R Default(const T & Value) const {
938f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    return Value;
948f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  }
958f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek};
968f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek}
978f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek
988f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenekusing namespace clang;
998f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek
1008f0889ce457db51d3af1eb1245bceee272d4dc7dTed KremenekAttributeList::Kind AttributeList::getKind(const IdentifierInfo * Name) {
1018f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  llvm::StringRef AttrName = Name->getName();
1028f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  if (AttrName.startswith("__") && AttrName.endswith("__"))
1038f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    AttrName = AttrName.substr(2, AttrName.size() - 4);
1048f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek
1058f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek  return llvm::StringSwitch < AttributeList::Kind > (AttrName)
1068f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("weak", AT_weak)
1078f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("weakref", AT_weakref)
1088f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("pure", AT_pure)
1098f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("mode", AT_mode)
1108f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("used", AT_used)
1118f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("alias", AT_alias)
1128f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("align", AT_aligned)
1138f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("final", AT_final)
1148f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("cdecl", AT_cdecl)
1158f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("const", AT_const)
1168f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("__const", AT_const)
1178f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("blocks", AT_blocks)
1188f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("format", AT_format)
1198f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("hiding", AT_hiding)
1208f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("malloc", AT_malloc)
1218f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("packed", AT_packed)
1228f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("unused", AT_unused)
1238f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("aligned", AT_aligned)
1248f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("cleanup", AT_cleanup)
1258f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("naked", AT_naked)
1268f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("nodebug", AT_nodebug)
1278f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("nonnull", AT_nonnull)
1288f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("nothrow", AT_nothrow)
1298f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("objc_gc", AT_objc_gc)
1308f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("regparm", AT_regparm)
1318f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("section", AT_section)
1328f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("stdcall", AT_stdcall)
1338f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("annotate", AT_annotate)
1348f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("fastcall", AT_fastcall)
1358f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("ibaction", AT_IBAction)
1368f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("iboutlet", AT_IBOutlet)
1378f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("iboutletcollection", AT_IBOutletCollection)
1388f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("noreturn", AT_noreturn)
1398f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("noinline", AT_noinline)
1408f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("override", AT_override)
1418f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("sentinel", AT_sentinel)
1428f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("NSObject", AT_nsobject)
1438f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("dllimport", AT_dllimport)
1448f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("dllexport", AT_dllexport)
1458f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("may_alias", IgnoredAttribute)
1468f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("base_check", AT_base_check)
1478f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("deprecated", AT_deprecated)
1488f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("visibility", AT_visibility)
1498f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("destructor", AT_destructor)
1508f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("format_arg", AT_format_arg)
1518f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("gnu_inline", AT_gnu_inline)
1528f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("weak_import", AT_weak_import)
1538f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("vecreturn", AT_vecreturn)
1548f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("vector_size", AT_vector_size)
1558f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("constructor", AT_constructor)
1568f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("unavailable", AT_unavailable)
1578f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("overloadable", AT_overloadable)
1588f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("address_space", AT_address_space)
1598f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("always_inline", AT_always_inline)
160f87cced71a955dca5731e7b28bc182e4824c0355Rafael Espindola    .Case("returns_twice", AT_returns_twice)
1618f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("vec_type_hint", IgnoredAttribute)
1628f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("objc_exception", AT_objc_exception)
1638f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("ext_vector_type", AT_ext_vector_type)
1648f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("transparent_union", AT_transparent_union)
1658f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("analyzer_noreturn", AT_analyzer_noreturn)
1668f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("warn_unused_result", AT_warn_unused_result)
1678f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("carries_dependency", AT_carries_dependency)
1688f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("ns_returns_not_retained", AT_ns_returns_not_retained)
1698f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("ns_returns_retained", AT_ns_returns_retained)
1708f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("cf_returns_not_retained", AT_cf_returns_not_retained)
1718f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("cf_returns_retained", AT_cf_returns_retained)
1728f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("ownership_returns", AT_ownership_returns)
1738f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("ownership_holds", AT_ownership_holds)
1748f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("ownership_takes", AT_ownership_takes)
1758f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("reqd_work_group_size", AT_reqd_wg_size)
1768f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("init_priority", AT_init_priority)
1778f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("no_instrument_function", AT_no_instrument_function)
1788f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("thiscall", AT_thiscall)
1798f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("pascal", AT_pascal)
1808f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("__cdecl", AT_cdecl)
1818f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("__stdcall", AT_stdcall)
1828f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("__fastcall", AT_fastcall)
1838f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("__thiscall", AT_thiscall)
1848f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Case("__pascal", AT_pascal)
1858f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek    .Default(UnknownAttribute);
1868f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek}
1878f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek
188651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// 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
1898f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "typedef" [1:1 - 1:8]
1908f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "long" [1:9 - 1:13]
1918f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "unsigned" [1:14 - 1:22]
1928f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "int" [1:23 - 1:26]
1938f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "__darwin_size_t" [1:27 - 1:42] TypedefDecl=__darwin_size_t:1:27 (Definition)
1948f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [1:42 - 1:43]
1958f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "typedef" [2:1 - 2:8]
1968f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "__darwin_size_t" [2:9 - 2:24]
1978f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size_t" [2:25 - 2:31] TypedefDecl=size_t:2:25 (Definition)
1988f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [2:31 - 2:32]
1998f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "namespace" [3:1 - 3:10]
2008f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "std" [3:11 - 3:14] Namespace=std:3:11 (Definition)
2018f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "{" [3:15 - 3:16] Namespace=std:3:11 (Definition)
2028f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "template" [4:3 - 4:11] ClassTemplate=pair:4:44 (Definition)
2038f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "<" [4:12 - 4:13] ClassTemplate=pair:4:44 (Definition)
204344577e6b58f42d18dc8118c8903b49a85dc005eAbramo Bagnara// CHECK-tokens: Keyword: "class" [4:14 - 4:19] TemplateTypeParameter=_T1:4:20 (Definition)
2058f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "_T1" [4:20 - 4:23] TemplateTypeParameter=_T1:4:20 (Definition)
2068f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [4:23 - 4:24] ClassTemplate=pair:4:44 (Definition)
207344577e6b58f42d18dc8118c8903b49a85dc005eAbramo Bagnara// CHECK-tokens: Keyword: "class" [4:25 - 4:30] TemplateTypeParameter=_T2:4:31 (Definition)
2088f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "_T2" [4:31 - 4:34] TemplateTypeParameter=_T2:4:31 (Definition)
2098f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ">" [4:35 - 4:36] ClassTemplate=pair:4:44 (Definition)
2108f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "struct" [4:37 - 4:43] ClassTemplate=pair:4:44 (Definition)
2118f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "pair" [4:44 - 4:48] ClassTemplate=pair:4:44 (Definition)
2128f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "{" [4:49 - 4:50] ClassTemplate=pair:4:44 (Definition)
213960d13dde337a59dacc9dc3936c26d4aa8478986Chandler Carruth// CHECK-tokens: Identifier: "_T2" [4:51 - 4:54] TypeRef=_T2:4:31
2148f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "second" [4:55 - 4:61] FieldDecl=second:4:55 (Definition)
2158f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [4:61 - 4:62] ClassTemplate=pair:4:44 (Definition)
2168f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "}" [4:63 - 4:64] ClassTemplate=pair:4:44 (Definition)
2178f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [4:64 - 4:65] Namespace=std:3:11 (Definition)
2188f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "}" [5:1 - 5:2] Namespace=std:3:11 (Definition)
2198f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "extern" [6:1 - 6:7]
2208f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Literal: ""C"" [6:8 - 6:11] UnexposedDecl=:6:8 (Definition)
2218f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "{" [6:12 - 6:13] UnexposedDecl=:6:8 (Definition)
2228f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "int" [7:3 - 7:6] FunctionDecl=memcmp:7:7
2238f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "memcmp" [7:7 - 7:13] FunctionDecl=memcmp:7:7
2248f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [7:13 - 7:14] FunctionDecl=memcmp:7:7
225e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "const" [7:14 - 7:19] ParmDecl=:7:26 (Definition)
2268f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "void" [7:20 - 7:24] ParmDecl=:7:26 (Definition)
2278f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "*" [7:25 - 7:26] ParmDecl=:7:26 (Definition)
228651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK-tokens: Punctuation: "," [7:26 - 7:27] FunctionDecl=memcmp:7:7
229e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "const" [7:28 - 7:33] ParmDecl=:7:40 (Definition)
2308f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "void" [7:34 - 7:38] ParmDecl=:7:40 (Definition)
2318f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "*" [7:39 - 7:40] ParmDecl=:7:40 (Definition)
232651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK-tokens: Punctuation: "," [7:40 - 7:41] FunctionDecl=memcmp:7:7
2338f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size_t" [7:42 - 7:48] TypeRef=size_t:2:25
234651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK-tokens: Punctuation: ")" [7:48 - 7:49] FunctionDecl=memcmp:7:7
2358f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [7:49 - 7:50] UnexposedDecl=:6:8 (Definition)
2368f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size_t" [8:3 - 8:9] TypeRef=size_t:2:25
2378f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "strlen" [8:10 - 8:16] FunctionDecl=strlen:8:10
2388f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [8:16 - 8:17] FunctionDecl=strlen:8:10
239e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "const" [8:17 - 8:22] ParmDecl=:8:29 (Definition)
2408f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "char" [8:23 - 8:27] ParmDecl=:8:29 (Definition)
2418f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "*" [8:28 - 8:29] ParmDecl=:8:29 (Definition)
242651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK-tokens: Punctuation: ")" [8:29 - 8:30] FunctionDecl=strlen:8:10
2438f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [8:30 - 8:31]
2448f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "}" [9:1 - 9:2]
2458f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "namespace" [10:1 - 10:10]
2468f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "clang" [10:17 - 10:22] Namespace=clang:10:17 (Definition)
2478f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "{" [10:23 - 10:24] Namespace=clang:10:17 (Definition)
2488f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "class" [11:3 - 11:8] ClassDecl=IdentifierInfo:11:9
2498f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "IdentifierInfo" [11:9 - 11:23] ClassDecl=IdentifierInfo:11:9
2508f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [11:23 - 11:24] Namespace=clang:10:17 (Definition)
2518f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "class" [12:3 - 12:8] ClassDecl=AttributeList:12:9 (Definition)
2528f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AttributeList" [12:9 - 12:22] ClassDecl=AttributeList:12:9 (Definition)
2538f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "{" [12:23 - 12:24] ClassDecl=AttributeList:12:9 (Definition)
2548f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "enum" [13:5 - 13:9] EnumDecl=Kind:13:10 (Definition)
2558f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Kind" [13:10 - 13:14] EnumDecl=Kind:13:10 (Definition)
2568f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "{" [13:15 - 13:16] EnumDecl=Kind:13:10 (Definition)
2578f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_IBAction" [14:7 - 14:18] EnumConstantDecl=AT_IBAction:14:7 (Definition)
2588f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [14:18 - 14:19] EnumDecl=Kind:13:10 (Definition)
2598f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_IBOutlet" [14:20 - 14:31] EnumConstantDecl=AT_IBOutlet:14:20 (Definition)
2608f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [14:31 - 14:32] EnumDecl=Kind:13:10 (Definition)
2618f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_IBOutletCollection" [14:33 - 14:54] EnumConstantDecl=AT_IBOutletCollection:14:33 (Definition)
2628f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [14:54 - 14:55] EnumDecl=Kind:13:10 (Definition)
2638f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_address_space" [15:7 - 15:23] EnumConstantDecl=AT_address_space:15:7 (Definition)
2648f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [15:23 - 15:24] EnumDecl=Kind:13:10 (Definition)
2658f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_alias" [15:25 - 15:33] EnumConstantDecl=AT_alias:15:25 (Definition)
2668f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [15:33 - 15:34] EnumDecl=Kind:13:10 (Definition)
2678f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_aligned" [15:35 - 15:45] EnumConstantDecl=AT_aligned:15:35 (Definition)
2688f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [15:45 - 15:46] EnumDecl=Kind:13:10 (Definition)
2698f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_always_inline" [15:47 - 15:63] EnumConstantDecl=AT_always_inline:15:47 (Definition)
2708f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [15:63 - 15:64] EnumDecl=Kind:13:10 (Definition)
2718f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_analyzer_noreturn" [16:7 - 16:27] EnumConstantDecl=AT_analyzer_noreturn:16:7 (Definition)
2728f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [16:27 - 16:28] EnumDecl=Kind:13:10 (Definition)
2738f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_annotate" [16:29 - 16:40] EnumConstantDecl=AT_annotate:16:29 (Definition)
2748f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [16:40 - 16:41] EnumDecl=Kind:13:10 (Definition)
2758f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_base_check" [16:42 - 16:55] EnumConstantDecl=AT_base_check:16:42 (Definition)
2768f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [16:55 - 16:56] EnumDecl=Kind:13:10 (Definition)
2778f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_blocks" [16:57 - 16:66] EnumConstantDecl=AT_blocks:16:57 (Definition)
2788f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [16:66 - 16:67] EnumDecl=Kind:13:10 (Definition)
2798f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_carries_dependency" [17:7 - 17:28] EnumConstantDecl=AT_carries_dependency:17:7 (Definition)
2808f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [17:28 - 17:29] EnumDecl=Kind:13:10 (Definition)
2818f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_cdecl" [17:30 - 17:38] EnumConstantDecl=AT_cdecl:17:30 (Definition)
2828f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [17:38 - 17:39] EnumDecl=Kind:13:10 (Definition)
2838f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_cleanup" [17:40 - 17:50] EnumConstantDecl=AT_cleanup:17:40 (Definition)
2848f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [17:50 - 17:51] EnumDecl=Kind:13:10 (Definition)
2858f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_const" [17:52 - 17:60] EnumConstantDecl=AT_const:17:52 (Definition)
2868f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [17:60 - 17:61] EnumDecl=Kind:13:10 (Definition)
2878f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_constructor" [17:62 - 17:76] EnumConstantDecl=AT_constructor:17:62 (Definition)
2888f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [17:76 - 17:77] EnumDecl=Kind:13:10 (Definition)
2898f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_deprecated" [18:7 - 18:20] EnumConstantDecl=AT_deprecated:18:7 (Definition)
2908f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [18:20 - 18:21] EnumDecl=Kind:13:10 (Definition)
2918f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_destructor" [18:22 - 18:35] EnumConstantDecl=AT_destructor:18:22 (Definition)
2928f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [18:35 - 18:36] EnumDecl=Kind:13:10 (Definition)
2938f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_dllexport" [18:37 - 18:49] EnumConstantDecl=AT_dllexport:18:37 (Definition)
2948f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [18:49 - 18:50] EnumDecl=Kind:13:10 (Definition)
2958f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_dllimport" [18:51 - 18:63] EnumConstantDecl=AT_dllimport:18:51 (Definition)
2968f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [18:63 - 18:64] EnumDecl=Kind:13:10 (Definition)
2978f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_ext_vector_type" [19:7 - 19:25] EnumConstantDecl=AT_ext_vector_type:19:7 (Definition)
2988f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [19:25 - 19:26] EnumDecl=Kind:13:10 (Definition)
2998f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_fastcall" [19:27 - 19:38] EnumConstantDecl=AT_fastcall:19:27 (Definition)
3008f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [19:38 - 19:39] EnumDecl=Kind:13:10 (Definition)
3018f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_final" [19:40 - 19:48] EnumConstantDecl=AT_final:19:40 (Definition)
3028f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [19:48 - 19:49] EnumDecl=Kind:13:10 (Definition)
3038f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_format" [19:50 - 19:59] EnumConstantDecl=AT_format:19:50 (Definition)
3048f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [19:59 - 19:60] EnumDecl=Kind:13:10 (Definition)
3058f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_format_arg" [19:61 - 19:74] EnumConstantDecl=AT_format_arg:19:61 (Definition)
3068f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [19:74 - 19:75] EnumDecl=Kind:13:10 (Definition)
3078f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_gnu_inline" [20:7 - 20:20] EnumConstantDecl=AT_gnu_inline:20:7 (Definition)
3088f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [20:20 - 20:21] EnumDecl=Kind:13:10 (Definition)
3098f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_hiding" [20:22 - 20:31] EnumConstantDecl=AT_hiding:20:22 (Definition)
3108f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [20:31 - 20:32] EnumDecl=Kind:13:10 (Definition)
3118f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_malloc" [20:33 - 20:42] EnumConstantDecl=AT_malloc:20:33 (Definition)
3128f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [20:42 - 20:43] EnumDecl=Kind:13:10 (Definition)
3138f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_mode" [20:44 - 20:51] EnumConstantDecl=AT_mode:20:44 (Definition)
3148f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [20:51 - 20:52] EnumDecl=Kind:13:10 (Definition)
3158f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_naked" [20:53 - 20:61] EnumConstantDecl=AT_naked:20:53 (Definition)
3168f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [20:61 - 20:62] EnumDecl=Kind:13:10 (Definition)
3178f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_nodebug" [20:63 - 20:73] EnumConstantDecl=AT_nodebug:20:63 (Definition)
3188f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [20:73 - 20:74] EnumDecl=Kind:13:10 (Definition)
3198f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_noinline" [21:7 - 21:18] EnumConstantDecl=AT_noinline:21:7 (Definition)
3208f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [21:18 - 21:19] EnumDecl=Kind:13:10 (Definition)
3218f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_no_instrument_function" [21:20 - 21:45] EnumConstantDecl=AT_no_instrument_function:21:20 (Definition)
3228f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [21:45 - 21:46] EnumDecl=Kind:13:10 (Definition)
3238f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_nonnull" [21:47 - 21:57] EnumConstantDecl=AT_nonnull:21:47 (Definition)
3248f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [21:57 - 21:58] EnumDecl=Kind:13:10 (Definition)
3258f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_noreturn" [21:59 - 21:70] EnumConstantDecl=AT_noreturn:21:59 (Definition)
3268f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [21:70 - 21:71] EnumDecl=Kind:13:10 (Definition)
3278f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_nothrow" [22:7 - 22:17] EnumConstantDecl=AT_nothrow:22:7 (Definition)
3288f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [22:17 - 22:18] EnumDecl=Kind:13:10 (Definition)
3298f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_nsobject" [22:19 - 22:30] EnumConstantDecl=AT_nsobject:22:19 (Definition)
3308f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [22:30 - 22:31] EnumDecl=Kind:13:10 (Definition)
3318f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_objc_exception" [22:32 - 22:49] EnumConstantDecl=AT_objc_exception:22:32 (Definition)
3328f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [22:49 - 22:50] EnumDecl=Kind:13:10 (Definition)
3338f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_override" [22:51 - 22:62] EnumConstantDecl=AT_override:22:51 (Definition)
3348f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [22:62 - 22:63] EnumDecl=Kind:13:10 (Definition)
3358f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_cf_returns_not_retained" [23:7 - 23:33] EnumConstantDecl=AT_cf_returns_not_retained:23:7 (Definition)
3368f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [23:33 - 23:34] EnumDecl=Kind:13:10 (Definition)
3378f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_cf_returns_retained" [23:35 - 23:57] EnumConstantDecl=AT_cf_returns_retained:23:35 (Definition)
3388f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [23:57 - 23:58] EnumDecl=Kind:13:10 (Definition)
3398f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_ns_returns_not_retained" [24:7 - 24:33] EnumConstantDecl=AT_ns_returns_not_retained:24:7 (Definition)
3408f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [24:33 - 24:34] EnumDecl=Kind:13:10 (Definition)
3418f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_ns_returns_retained" [24:35 - 24:57] EnumConstantDecl=AT_ns_returns_retained:24:35 (Definition)
3428f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [24:57 - 24:58] EnumDecl=Kind:13:10 (Definition)
3438f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_objc_gc" [24:59 - 24:69] EnumConstantDecl=AT_objc_gc:24:59 (Definition)
3448f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [24:69 - 24:70] EnumDecl=Kind:13:10 (Definition)
3458f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_overloadable" [25:7 - 25:22] EnumConstantDecl=AT_overloadable:25:7 (Definition)
3468f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [25:22 - 25:23] EnumDecl=Kind:13:10 (Definition)
3478f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_ownership_holds" [25:24 - 25:42] EnumConstantDecl=AT_ownership_holds:25:24 (Definition)
3488f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [25:42 - 25:43] EnumDecl=Kind:13:10 (Definition)
3498f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_ownership_returns" [25:44 - 25:64] EnumConstantDecl=AT_ownership_returns:25:44 (Definition)
3508f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [25:64 - 25:65] EnumDecl=Kind:13:10 (Definition)
3518f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_ownership_takes" [26:7 - 26:25] EnumConstantDecl=AT_ownership_takes:26:7 (Definition)
3528f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [26:25 - 26:26] EnumDecl=Kind:13:10 (Definition)
3538f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_packed" [26:27 - 26:36] EnumConstantDecl=AT_packed:26:27 (Definition)
3548f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [26:36 - 26:37] EnumDecl=Kind:13:10 (Definition)
3558f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_pascal" [26:38 - 26:47] EnumConstantDecl=AT_pascal:26:38 (Definition)
3568f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [26:47 - 26:48] EnumDecl=Kind:13:10 (Definition)
3578f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_pure" [26:49 - 26:56] EnumConstantDecl=AT_pure:26:49 (Definition)
3588f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [26:56 - 26:57] EnumDecl=Kind:13:10 (Definition)
3598f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_regparm" [26:58 - 26:68] EnumConstantDecl=AT_regparm:26:58 (Definition)
3608f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [26:68 - 26:69] EnumDecl=Kind:13:10 (Definition)
3618f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_section" [27:7 - 27:17] EnumConstantDecl=AT_section:27:7 (Definition)
3628f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [27:17 - 27:18] EnumDecl=Kind:13:10 (Definition)
3638f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_sentinel" [27:19 - 27:30] EnumConstantDecl=AT_sentinel:27:19 (Definition)
3648f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [27:30 - 27:31] EnumDecl=Kind:13:10 (Definition)
3658f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_stdcall" [27:32 - 27:42] EnumConstantDecl=AT_stdcall:27:32 (Definition)
3668f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [27:42 - 27:43] EnumDecl=Kind:13:10 (Definition)
3678f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_thiscall" [27:44 - 27:55] EnumConstantDecl=AT_thiscall:27:44 (Definition)
3688f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [27:55 - 27:56] EnumDecl=Kind:13:10 (Definition)
3698f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_transparent_union" [27:57 - 27:77] EnumConstantDecl=AT_transparent_union:27:57 (Definition)
3708f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [27:77 - 27:78] EnumDecl=Kind:13:10 (Definition)
3718f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_unavailable" [28:7 - 28:21] EnumConstantDecl=AT_unavailable:28:7 (Definition)
3728f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [28:21 - 28:22] EnumDecl=Kind:13:10 (Definition)
3738f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_unused" [28:23 - 28:32] EnumConstantDecl=AT_unused:28:23 (Definition)
3748f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [28:32 - 28:33] EnumDecl=Kind:13:10 (Definition)
3758f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_used" [28:34 - 28:41] EnumConstantDecl=AT_used:28:34 (Definition)
3768f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [28:41 - 28:42] EnumDecl=Kind:13:10 (Definition)
3778f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_vecreturn" [28:43 - 28:55] EnumConstantDecl=AT_vecreturn:28:43 (Definition)
3788f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [28:55 - 28:56] EnumDecl=Kind:13:10 (Definition)
3798f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_vector_size" [28:57 - 28:71] EnumConstantDecl=AT_vector_size:28:57 (Definition)
3808f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [28:71 - 28:72] EnumDecl=Kind:13:10 (Definition)
3818f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_visibility" [29:7 - 29:20] EnumConstantDecl=AT_visibility:29:7 (Definition)
3828f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [29:20 - 29:21] EnumDecl=Kind:13:10 (Definition)
3838f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_warn_unused_result" [29:22 - 29:43] EnumConstantDecl=AT_warn_unused_result:29:22 (Definition)
3848f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [29:43 - 29:44] EnumDecl=Kind:13:10 (Definition)
3858f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_weak" [29:45 - 29:52] EnumConstantDecl=AT_weak:29:45 (Definition)
3868f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [29:52 - 29:53] EnumDecl=Kind:13:10 (Definition)
3878f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_weakref" [29:54 - 29:64] EnumConstantDecl=AT_weakref:29:54 (Definition)
3888f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [29:64 - 29:65] EnumDecl=Kind:13:10 (Definition)
3898f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_weak_import" [30:7 - 30:21] EnumConstantDecl=AT_weak_import:30:7 (Definition)
3908f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [30:21 - 30:22] EnumDecl=Kind:13:10 (Definition)
3918f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_reqd_wg_size" [30:23 - 30:38] EnumConstantDecl=AT_reqd_wg_size:30:23 (Definition)
3928f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [30:38 - 30:39] EnumDecl=Kind:13:10 (Definition)
3938f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "AT_init_priority" [30:40 - 30:56] EnumConstantDecl=AT_init_priority:30:40 (Definition)
3948f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [30:56 - 30:57] EnumDecl=Kind:13:10 (Definition)
395f87cced71a955dca5731e7b28bc182e4824c0355Rafael Espindola// CHECK-tokens: Identifier: "AT_returns_twice" [31:7 - 31:23] EnumConstantDecl=AT_returns_twice:31:7 (Definition)
3968f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [31:23 - 31:24] EnumDecl=Kind:13:10 (Definition)
397f87cced71a955dca5731e7b28bc182e4824c0355Rafael Espindola// CHECK-tokens: Identifier: "IgnoredAttribute" [31:25 - 31:41] EnumConstantDecl=IgnoredAttribute:31:25 (Definition)
3988f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "}" [32:5 - 32:6] EnumDecl=Kind:13:10 (Definition)
3998f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [32:6 - 32:7] ClassDecl=AttributeList:12:9 (Definition)
400e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "static" [33:5 - 33:11] CXXMethod=getKind:33:17 (static)
4018f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Kind" [33:12 - 33:16] TypeRef=enum clang::AttributeList::Kind:13:10
402b83d4d7071cea43a3f7b8afc3cda6203c345aa0fDouglas Gregor// CHECK-tokens: Identifier: "getKind" [33:17 - 33:24] CXXMethod=getKind:33:17 (static)
403b83d4d7071cea43a3f7b8afc3cda6203c345aa0fDouglas Gregor// CHECK-tokens: Punctuation: "(" [33:24 - 33:25] CXXMethod=getKind:33:17 (static)
404e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "const" [33:25 - 33:30] ParmDecl=Name:33:48 (Definition)
4058f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "IdentifierInfo" [33:31 - 33:45] TypeRef=class clang::IdentifierInfo:66:7
4068f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "*" [33:46 - 33:47] ParmDecl=Name:33:48 (Definition)
4078f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Name" [33:48 - 33:52] ParmDecl=Name:33:48 (Definition)
408b83d4d7071cea43a3f7b8afc3cda6203c345aa0fDouglas Gregor// CHECK-tokens: Punctuation: ")" [33:52 - 33:53] CXXMethod=getKind:33:17 (static)
4098f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [33:53 - 33:54] ClassDecl=AttributeList:12:9 (Definition)
4108f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "}" [34:3 - 34:4] ClassDecl=AttributeList:12:9 (Definition)
4118f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [34:4 - 34:5] Namespace=clang:10:17 (Definition)
4128f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "}" [35:1 - 35:2] Namespace=clang:10:17 (Definition)
4138f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size_t" [36:1 - 36:7] TypeRef=size_t:2:25
4148f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "magic_length" [36:8 - 36:20] FunctionDecl=magic_length:36:8
4158f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [36:20 - 36:21] FunctionDecl=magic_length:36:8
416e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "const" [36:21 - 36:26] ParmDecl=s:36:33 (Definition)
4178f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "char" [36:27 - 36:31] ParmDecl=s:36:33 (Definition)
4188f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "*" [36:32 - 36:33] ParmDecl=s:36:33 (Definition)
4198f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "s" [36:33 - 36:34] ParmDecl=s:36:33 (Definition)
4208f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [36:34 - 36:35] FunctionDecl=magic_length:36:8
4218f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [36:35 - 36:36]
4228f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "namespace" [37:1 - 37:10]
4238f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "llvm" [37:11 - 37:15] Namespace=llvm:37:11 (Definition)
4248f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "{" [37:16 - 37:17] Namespace=llvm:37:11 (Definition)
4258f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "class" [38:1 - 38:6] ClassDecl=StringRef:38:7 (Definition)
4268f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "StringRef" [38:7 - 38:16] ClassDecl=StringRef:38:7 (Definition)
4278f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "{" [38:17 - 38:18] ClassDecl=StringRef:38:7 (Definition)
4282dfdb948bef51a601e763191e4becfe59880d382Argyrios Kyrtzidis// CHECK-tokens: Keyword: "public" [39:1 - 39:7] CXXAccessSpecifier=:39:1 (Definition)
4292dfdb948bef51a601e763191e4becfe59880d382Argyrios Kyrtzidis// CHECK-tokens: Punctuation: ":" [39:7 - 39:8] CXXAccessSpecifier=:39:1 (Definition)
430e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "typedef" [40:3 - 40:10] TypedefDecl=iterator:40:23 (Definition)
431e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "const" [40:11 - 40:16] TypedefDecl=iterator:40:23 (Definition)
4322494dd024b392b8def58bf067cc94b51c214cf77Douglas Gregor// CHECK-tokens: Keyword: "char" [40:17 - 40:21] TypedefDecl=iterator:40:23 (Definition)
4332494dd024b392b8def58bf067cc94b51c214cf77Douglas Gregor// CHECK-tokens: Punctuation: "*" [40:22 - 40:23] TypedefDecl=iterator:40:23 (Definition)
4348f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "iterator" [40:23 - 40:31] TypedefDecl=iterator:40:23 (Definition)
4358f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [40:31 - 40:32] ClassDecl=StringRef:38:7 (Definition)
436e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "static" [41:3 - 41:9] VarDecl=npos:41:23
437e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "const" [41:10 - 41:15] VarDecl=npos:41:23
4388f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size_t" [41:16 - 41:22] TypeRef=size_t:2:25
4398f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "npos" [41:23 - 41:27] VarDecl=npos:41:23
4408f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "=" [41:28 - 41:29] VarDecl=npos:41:23
44142b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "~" [41:30 - 41:31] UnaryOperator=
4428f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size_t" [41:31 - 41:37] TypeRef=size_t:2:25
44342b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "(" [41:37 - 41:38] CXXFunctionalCastExpr=
44442b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Literal: "0" [41:38 - 41:39] IntegerLiteral=
44542b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: ")" [41:39 - 41:40] CXXFunctionalCastExpr
4468f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [41:40 - 41:41] ClassDecl=StringRef:38:7 (Definition)
4472dfdb948bef51a601e763191e4becfe59880d382Argyrios Kyrtzidis// CHECK-tokens: Keyword: "private" [42:1 - 42:8] CXXAccessSpecifier=:42:1 (Definition)
4482dfdb948bef51a601e763191e4becfe59880d382Argyrios Kyrtzidis// CHECK-tokens: Punctuation: ":" [42:8 - 42:9] CXXAccessSpecifier=:42:1 (Definition)
449e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "const" [43:3 - 43:8] FieldDecl=Data:43:15 (Definition)
4508f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "char" [43:9 - 43:13] FieldDecl=Data:43:15 (Definition)
4518f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "*" [43:14 - 43:15] FieldDecl=Data:43:15 (Definition)
4528f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Data" [43:15 - 43:19] FieldDecl=Data:43:15 (Definition)
4538f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [43:19 - 43:20] ClassDecl=StringRef:38:7 (Definition)
4548f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size_t" [44:3 - 44:9] TypeRef=size_t:2:25
4558f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Length" [44:10 - 44:16] FieldDecl=Length:44:10 (Definition)
4568f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [44:16 - 44:17] ClassDecl=StringRef:38:7 (Definition)
457e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "static" [45:3 - 45:9] CXXMethod=min:45:17 (Definition) (static)
4588f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size_t" [45:10 - 45:16] TypeRef=size_t:2:25
459b83d4d7071cea43a3f7b8afc3cda6203c345aa0fDouglas Gregor// CHECK-tokens: Identifier: "min" [45:17 - 45:20] CXXMethod=min:45:17 (Definition) (static)
460b83d4d7071cea43a3f7b8afc3cda6203c345aa0fDouglas Gregor// CHECK-tokens: Punctuation: "(" [45:20 - 45:21] CXXMethod=min:45:17 (Definition) (static)
4618f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size_t" [45:21 - 45:27] TypeRef=size_t:2:25
4628f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "a" [45:28 - 45:29] ParmDecl=a:45:28 (Definition)
463b83d4d7071cea43a3f7b8afc3cda6203c345aa0fDouglas Gregor// CHECK-tokens: Punctuation: "," [45:29 - 45:30] CXXMethod=min:45:17 (Definition) (static)
4648f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size_t" [45:31 - 45:37] TypeRef=size_t:2:25
4658f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "b" [45:38 - 45:39] ParmDecl=b:45:38 (Definition)
466b83d4d7071cea43a3f7b8afc3cda6203c345aa0fDouglas Gregor// CHECK-tokens: Punctuation: ")" [45:39 - 45:40] CXXMethod=min:45:17 (Definition) (static)
46742b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "{" [45:41 - 45:42] CompoundStmt=
46842b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Keyword: "return" [45:43 - 45:49] ReturnStmt=
4698f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "a" [45:50 - 45:51] DeclRefExpr=a:45:28
47042b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "<" [45:52 - 45:53] BinaryOperator=
4718f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "b" [45:54 - 45:55] DeclRefExpr=b:45:38
47242b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "?" [45:56 - 45:57] ConditionalOperator=
4738f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "a" [45:58 - 45:59] DeclRefExpr=a:45:28
47442b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: ":" [45:60 - 45:61] ConditionalOperator
4758f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "b" [45:62 - 45:63] DeclRefExpr=b:45:38
47642b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: ";" [45:63 - 45:64] CompoundStmt=
47742b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "}" [45:65 - 45:66] CompoundStmt=
4782dfdb948bef51a601e763191e4becfe59880d382Argyrios Kyrtzidis// CHECK-tokens: Keyword: "public" [46:1 - 46:7] CXXAccessSpecifier=:46:1 (Definition)
4792dfdb948bef51a601e763191e4becfe59880d382Argyrios Kyrtzidis// CHECK-tokens: Punctuation: ":" [46:7 - 46:8] CXXAccessSpecifier=:46:1 (Definition)
4808f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "StringRef" [47:3 - 47:12] CXXConstructor=StringRef:47:3 (Definition)
4818f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [47:12 - 47:13] CXXConstructor=StringRef:47:3 (Definition)
4828f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [47:13 - 47:14] CXXConstructor=StringRef:47:3 (Definition)
4838f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ":" [47:14 - 47:15] CXXConstructor=StringRef:47:3 (Definition)
4848f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Data" [47:16 - 47:20] MemberRef=Data:43:15
4858f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [47:20 - 47:21] CXXConstructor=StringRef:47:3 (Definition)
48642b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Literal: "0" [47:21 - 47:22] IntegerLiteral=
4878f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [47:22 - 47:23] CXXConstructor=StringRef:47:3 (Definition)
4888f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [47:23 - 47:24] CXXConstructor=StringRef:47:3 (Definition)
4898f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Length" [47:25 - 47:31] MemberRef=Length:44:10
4908f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [47:31 - 47:32] CXXConstructor=StringRef:47:3 (Definition)
49142b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Literal: "0" [47:32 - 47:33] IntegerLiteral=
4928f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [47:33 - 47:34] CXXConstructor=StringRef:47:3 (Definition)
49342b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "{" [47:35 - 47:36] CompoundStmt=
49442b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "}" [47:36 - 47:37] CompoundStmt=
4958f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "StringRef" [48:3 - 48:12] CXXConstructor=StringRef:48:3 (Definition)
4968f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [48:12 - 48:13] CXXConstructor=StringRef:48:3 (Definition)
497e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "const" [48:13 - 48:18] ParmDecl=Str:48:25 (Definition)
4988f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "char" [48:19 - 48:23] ParmDecl=Str:48:25 (Definition)
4998f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "*" [48:24 - 48:25] ParmDecl=Str:48:25 (Definition)
5008f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Str" [48:25 - 48:28] ParmDecl=Str:48:25 (Definition)
5018f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [48:28 - 48:29] CXXConstructor=StringRef:48:3 (Definition)
5028f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ":" [48:30 - 48:31] CXXConstructor=StringRef:48:3 (Definition)
5038f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Data" [48:32 - 48:36] MemberRef=Data:43:15
5048f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [48:36 - 48:37] CXXConstructor=StringRef:48:3 (Definition)
5058f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Str" [48:37 - 48:40] DeclRefExpr=Str:48:25
5068f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [48:40 - 48:41] CXXConstructor=StringRef:48:3 (Definition)
5078f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [48:41 - 48:42] CXXConstructor=StringRef:48:3 (Definition)
5088f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Length" [48:43 - 48:49] MemberRef=Length:44:10
5098f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [48:49 - 48:50] CXXConstructor=StringRef:48:3 (Definition)
5108f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "magic_length" [48:50 - 48:62] DeclRefExpr=magic_length:36:8
5118f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [48:62 - 48:63] CallExpr=magic_length:36:8
5128f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Str" [48:63 - 48:66] DeclRefExpr=Str:48:25
5138f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [48:66 - 48:67] CallExpr=magic_length:36:8
5148f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [48:67 - 48:68] CXXConstructor=StringRef:48:3 (Definition)
51542b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "{" [48:69 - 48:70] CompoundStmt=
51642b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "}" [48:70 - 48:71] CompoundStmt=
5178f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "StringRef" [49:3 - 49:12] CXXConstructor=StringRef:49:3 (Definition)
5188f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [49:12 - 49:13] CXXConstructor=StringRef:49:3 (Definition)
519e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "const" [49:13 - 49:18] ParmDecl=data:49:25 (Definition)
5208f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "char" [49:19 - 49:23] ParmDecl=data:49:25 (Definition)
5218f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "*" [49:24 - 49:25] ParmDecl=data:49:25 (Definition)
5228f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "data" [49:25 - 49:29] ParmDecl=data:49:25 (Definition)
5238f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [49:29 - 49:30] CXXConstructor=StringRef:49:3 (Definition)
5248f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size_t" [49:31 - 49:37] TypeRef=size_t:2:25
5258f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "length" [49:38 - 49:44] ParmDecl=length:49:38 (Definition)
5268f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [49:44 - 49:45] CXXConstructor=StringRef:49:3 (Definition)
5278f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ":" [49:46 - 49:47] CXXConstructor=StringRef:49:3 (Definition)
5288f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Data" [49:48 - 49:52] MemberRef=Data:43:15
5298f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [49:52 - 49:53] CXXConstructor=StringRef:49:3 (Definition)
5308f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "data" [49:53 - 49:57] DeclRefExpr=data:49:25
5318f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [49:57 - 49:58] CXXConstructor=StringRef:49:3 (Definition)
5328f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [49:58 - 49:59] CXXConstructor=StringRef:49:3 (Definition)
5338f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Length" [49:60 - 49:66] MemberRef=Length:44:10
5348f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [49:66 - 49:67] CXXConstructor=StringRef:49:3 (Definition)
5358f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "length" [49:67 - 49:73] DeclRefExpr=length:49:38
5368f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [49:73 - 49:74] CXXConstructor=StringRef:49:3 (Definition)
53742b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "{" [49:75 - 49:76] CompoundStmt=
53842b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "}" [49:76 - 49:77] CompoundStmt=
5398f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "iterator" [50:3 - 50:11] TypeRef=iterator:40:23
5408f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "end" [50:12 - 50:15] CXXMethod=end:50:12 (Definition)
5418f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [50:15 - 50:16] CXXMethod=end:50:12 (Definition)
5428f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [50:16 - 50:17] CXXMethod=end:50:12 (Definition)
5438f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "const" [50:18 - 50:23] CXXMethod=end:50:12 (Definition)
54442b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "{" [50:24 - 50:25] CompoundStmt=
54542b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Keyword: "return" [50:26 - 50:32] ReturnStmt=
54689629a746019a42797495b091711a1d68467e88aDouglas Gregor// CHECK-tokens: Identifier: "Data" [50:33 - 50:37]  MemberRefExpr=Data:43:15
54742b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: ";" [50:37 - 50:38] CompoundStmt=
54842b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "}" [50:39 - 50:40] CompoundStmt=
5498f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size_t" [51:3 - 51:9] TypeRef=size_t:2:25
5508f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size" [51:10 - 51:14] CXXMethod=size:51:10 (Definition)
5518f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [51:14 - 51:15] CXXMethod=size:51:10 (Definition)
5528f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [51:15 - 51:16] CXXMethod=size:51:10 (Definition)
5538f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "const" [51:17 - 51:22] CXXMethod=size:51:10 (Definition)
55442b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "{" [51:23 - 51:24] CompoundStmt=
55542b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Keyword: "return" [51:25 - 51:31] ReturnStmt=
55689629a746019a42797495b091711a1d68467e88aDouglas Gregor// CHECK-tokens: Identifier: "Length" [51:32 - 51:38] MemberRefExpr=Length:44:10
55742b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: ";" [51:38 - 51:39] CompoundStmt=
55842b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "}" [51:40 - 51:41] CompoundStmt=
5598f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "bool" [52:3 - 52:7] CXXMethod=startswith:52:8 (Definition)
5608f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "startswith" [52:8 - 52:18] CXXMethod=startswith:52:8 (Definition)
5618f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [52:18 - 52:19] CXXMethod=startswith:52:8 (Definition)
5628f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "StringRef" [52:19 - 52:28] TypeRef=class llvm::StringRef:38:7
5638f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Prefix" [52:29 - 52:35] ParmDecl=Prefix:52:29 (Definition)
5648f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [52:35 - 52:36] CXXMethod=startswith:52:8 (Definition)
5658f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "const" [52:37 - 52:42] CXXMethod=startswith:52:8 (Definition)
56642b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "{" [52:43 - 52:44] CompoundStmt=
56742b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Keyword: "return" [53:5 - 53:11] ReturnStmt=
56889629a746019a42797495b091711a1d68467e88aDouglas Gregor// CHECK-tokens: Identifier: "Length" [53:12 - 53:18] MemberRefExpr=Length:44:10
56942b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: ">=" [53:19 - 53:21] BinaryOperator=
5708f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Prefix" [53:22 - 53:28] DeclRefExpr=Prefix:52:29
5718f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "." [53:28 - 53:29] MemberRefExpr=Length:44:10
5728f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Length" [53:29 - 53:35] MemberRefExpr=Length:44:10
57342b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "&&" [53:36 - 53:38] BinaryOperator=
5748f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "memcmp" [54:11 - 54:17] DeclRefExpr=memcmp:7:7
5758f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [54:17 - 54:18] CallExpr=memcmp:7:7
57689629a746019a42797495b091711a1d68467e88aDouglas Gregor// CHECK-tokens: Identifier: "Data" [54:18 - 54:22]  MemberRefExpr=Data:43:15
5778f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [54:22 - 54:23] CallExpr=memcmp:7:7
5788f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Prefix" [54:24 - 54:30] DeclRefExpr=Prefix:52:29
5798f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "." [54:30 - 54:31] MemberRefExpr=Data:43:15
5808f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Data" [54:31 - 54:35] MemberRefExpr=Data:43:15
5818f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [54:35 - 54:36] CallExpr=memcmp:7:7
5828f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Prefix" [54:37 - 54:43] DeclRefExpr=Prefix:52:29
5838f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "." [54:43 - 54:44] MemberRefExpr=Length:44:10
5848f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Length" [54:44 - 54:50] MemberRefExpr=Length:44:10
5858f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [54:50 - 54:51] CallExpr=memcmp:7:7
58642b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "==" [54:52 - 54:54] BinaryOperator=
58742b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Literal: "0" [54:55 - 54:56] IntegerLiteral=
58842b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: ";" [54:56 - 54:57] CompoundStmt=
58942b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "}" [55:3 - 55:4] CompoundStmt=
5908f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "bool" [56:3 - 56:7] CXXMethod=endswith:56:8 (Definition)
5918f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "endswith" [56:8 - 56:16] CXXMethod=endswith:56:8 (Definition)
5928f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [56:16 - 56:17] CXXMethod=endswith:56:8 (Definition)
5938f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "StringRef" [56:17 - 56:26] TypeRef=class llvm::StringRef:38:7
5948f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Suffix" [56:27 - 56:33] ParmDecl=Suffix:56:27 (Definition)
5958f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [56:33 - 56:34] CXXMethod=endswith:56:8 (Definition)
5968f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "const" [56:35 - 56:40] CXXMethod=endswith:56:8 (Definition)
59742b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "{" [56:41 - 56:42] CompoundStmt=
59842b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Keyword: "return" [57:5 - 57:11] ReturnStmt=
59989629a746019a42797495b091711a1d68467e88aDouglas Gregor// CHECK-tokens: Identifier: "Length" [57:12 - 57:18] MemberRefExpr=Length:44:10
60042b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: ">=" [57:19 - 57:21] BinaryOperator=
6018f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Suffix" [57:22 - 57:28] DeclRefExpr=Suffix:56:27
6028f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "." [57:28 - 57:29] MemberRefExpr=Length:44:10
6038f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Length" [57:29 - 57:35] MemberRefExpr=Length:44:10
60442b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "&&" [57:36 - 57:38] BinaryOperator=
6058f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "memcmp" [58:7 - 58:13] DeclRefExpr=memcmp:7:7
6068f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [58:13 - 58:14] CallExpr=memcmp:7:7
60789629a746019a42797495b091711a1d68467e88aDouglas Gregor// CHECK-tokens: Identifier: "end" [58:14 - 58:17] MemberRefExpr=end:50:12
6088f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [58:17 - 58:18] CallExpr=end:50:12
6098f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [58:18 - 58:19] CallExpr=end:50:12
61042b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "-" [58:20 - 58:21] BinaryOperator=
6118f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Suffix" [58:22 - 58:28] DeclRefExpr=Suffix:56:27
6128f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "." [58:28 - 58:29] MemberRefExpr=Length:44:10
6138f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Length" [58:29 - 58:35] MemberRefExpr=Length:44:10
6148f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [58:35 - 58:36] CallExpr=memcmp:7:7
6158f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Suffix" [58:37 - 58:43] DeclRefExpr=Suffix:56:27
6168f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "." [58:43 - 58:44] MemberRefExpr=Data:43:15
6178f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Data" [58:44 - 58:48] MemberRefExpr=Data:43:15
6188f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [58:48 - 58:49] CallExpr=memcmp:7:7
6198f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Suffix" [58:50 - 58:56] DeclRefExpr=Suffix:56:27
6208f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "." [58:56 - 58:57] MemberRefExpr=Length:44:10
6218f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Length" [58:57 - 58:63] MemberRefExpr=Length:44:10
6228f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [58:63 - 58:64] CallExpr=memcmp:7:7
62342b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "==" [58:65 - 58:67] BinaryOperator=
62442b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Literal: "0" [58:68 - 58:69] IntegerLiteral=
62542b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: ";" [58:69 - 58:70] CompoundStmt=
62642b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "}" [59:3 - 59:4] CompoundStmt=
6278f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "StringRef" [60:3 - 60:12] TypeRef=class llvm::StringRef:38:7
6288f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "substr" [60:13 - 60:19] CXXMethod=substr:60:13 (Definition)
6298f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [60:19 - 60:20] CXXMethod=substr:60:13 (Definition)
6308f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size_t" [60:20 - 60:26] TypeRef=size_t:2:25
6318f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Start" [60:27 - 60:32] ParmDecl=Start:60:27 (Definition)
6328f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [60:32 - 60:33] CXXMethod=substr:60:13 (Definition)
6338f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "size_t" [60:34 - 60:40] TypeRef=size_t:2:25
6348f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "N" [60:41 - 60:42] ParmDecl=N:60:41 (Definition)
6358f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "=" [60:43 - 60:44] ParmDecl=N:60:41 (Definition)
6368f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "npos" [60:45 - 60:49] DeclRefExpr=npos:41:23
6378f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [60:49 - 60:50] CXXMethod=substr:60:13 (Definition)
6388f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "const" [60:51 - 60:56] CXXMethod=substr:60:13 (Definition)
63942b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "{" [60:57 - 60:58] CompoundStmt=
64042b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Keyword: "return" [61:5 - 61:11] ReturnStmt=
6418f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "StringRef" [61:12 - 61:21] TypeRef=class llvm::StringRef:38:7
6428f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [61:21 - 61:22] CallExpr=StringRef:49:3
64389629a746019a42797495b091711a1d68467e88aDouglas Gregor// CHECK-tokens: Identifier: "Data" [61:22 - 61:26]  MemberRefExpr=Data:43:15
64442b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "+" [61:27 - 61:28] BinaryOperator=
6458f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Start" [61:29 - 61:34] DeclRefExpr=Start:60:27
6468f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [61:34 - 61:35] CallExpr=StringRef:49:3
6478f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "min" [61:36 - 61:39] DeclRefExpr=min:45:17
6488f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [61:39 - 61:40] CallExpr=min:45:17
6498f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "N" [61:40 - 61:41] DeclRefExpr=N:60:41
6508f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "," [61:41 - 61:42] CallExpr=min:45:17
65189629a746019a42797495b091711a1d68467e88aDouglas Gregor// CHECK-tokens: Identifier: "Length" [61:43 - 61:49]  MemberRefExpr=Length:44:10
65242b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "-" [61:50 - 61:51] BinaryOperator=
6538f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "Start" [61:52 - 61:57] DeclRefExpr=Start:60:27
6548f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [61:57 - 61:58] CallExpr=min:45:17
6558f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [61:58 - 61:59] CallExpr=StringRef:49:3
65642b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: ";" [61:59 - 61:60] CompoundStmt=
65742b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "}" [62:3 - 62:4] CompoundStmt=
6588f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "}" [63:1 - 63:2] ClassDecl=StringRef:38:7 (Definition)
6598f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [63:2 - 63:3] Namespace=llvm:37:11 (Definition)
6608f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "}" [64:1 - 64:2] Namespace=llvm:37:11 (Definition)
6618f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "namespace" [65:1 - 65:10]
6628f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "clang" [65:11 - 65:16] Namespace=clang:65:11 (Definition)
6638f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "{" [65:17 - 65:18] Namespace=clang:65:11 (Definition)
6648f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "class" [66:1 - 66:6] ClassDecl=IdentifierInfo:66:7 (Definition)
6658f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "IdentifierInfo" [66:7 - 66:21] ClassDecl=IdentifierInfo:66:7 (Definition)
6668f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "{" [66:22 - 66:23] ClassDecl=IdentifierInfo:66:7 (Definition)
6672dfdb948bef51a601e763191e4becfe59880d382Argyrios Kyrtzidis// CHECK-tokens: Keyword: "public" [67:1 - 67:7] CXXAccessSpecifier=:67:1 (Definition)
6682dfdb948bef51a601e763191e4becfe59880d382Argyrios Kyrtzidis// CHECK-tokens: Punctuation: ":" [67:7 - 67:8] CXXAccessSpecifier=:67:1 (Definition)
6698f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "IdentifierInfo" [67:8 - 67:22] CXXConstructor=IdentifierInfo:67:8
6708f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [67:22 - 67:23] CXXConstructor=IdentifierInfo:67:8
6718f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [67:23 - 67:24] CXXConstructor=IdentifierInfo:67:8
6728f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ";" [67:24 - 67:25] ClassDecl=IdentifierInfo:66:7 (Definition)
673e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "const" [68:3 - 68:8] CXXMethod=getNameStart:68:15 (Definition)
6748f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "char" [68:9 - 68:13] CXXMethod=getNameStart:68:15 (Definition)
6758f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "*" [68:14 - 68:15] CXXMethod=getNameStart:68:15 (Definition)
6768f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Identifier: "getNameStart" [68:15 - 68:27] CXXMethod=getNameStart:68:15 (Definition)
6778f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: "(" [68:27 - 68:28] CXXMethod=getNameStart:68:15 (Definition)
6788f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Punctuation: ")" [68:28 - 68:29] CXXMethod=getNameStart:68:15 (Definition)
6798f0889ce457db51d3af1eb1245bceee272d4dc7dTed Kremenek// CHECK-tokens: Keyword: "const" [68:30 - 68:35] CXXMethod=getNameStart:68:15 (Definition)
68042b2984771a7fd1b17c78bbb2c59fed3db2f1960Douglas Gregor// CHECK-tokens: Punctuation: "{" [68:36 - 68:37] CompoundStmt=
681e9de485169b76acba3a3cb16399fa3d63e43ec2cArgyrios Kyrtzidis// CHECK-tokens: Keyword: "typedef" [69:5 - 69:12] TypedefDecl=actualtype:69:54 (Definition)
682059101f922de6eb765601459925f4c8914420b23Douglas Gregor