Coverage Report

Created: 2022-05-17 06:19

/Users/buildslave/jenkins/workspace/coverage/llvm-project/clang/include/clang/AST/TypeLoc.h
Line
Count
Source (jump to first uncovered line)
1
//===- TypeLoc.h - Type Source Info Wrapper ---------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
/// \file
10
/// Defines the clang::TypeLoc interface and its subclasses.
11
//
12
//===----------------------------------------------------------------------===//
13
14
#ifndef LLVM_CLANG_AST_TYPELOC_H
15
#define LLVM_CLANG_AST_TYPELOC_H
16
17
#include "clang/AST/DeclarationName.h"
18
#include "clang/AST/NestedNameSpecifier.h"
19
#include "clang/AST/TemplateBase.h"
20
#include "clang/AST/Type.h"
21
#include "clang/Basic/LLVM.h"
22
#include "clang/Basic/SourceLocation.h"
23
#include "clang/Basic/Specifiers.h"
24
#include "llvm/ADT/ArrayRef.h"
25
#include "llvm/Support/Casting.h"
26
#include "llvm/Support/Compiler.h"
27
#include "llvm/Support/MathExtras.h"
28
#include <algorithm>
29
#include <cassert>
30
#include <cstdint>
31
#include <cstring>
32
33
namespace clang {
34
35
class Attr;
36
class ASTContext;
37
class CXXRecordDecl;
38
class ConceptDecl;
39
class Expr;
40
class ObjCInterfaceDecl;
41
class ObjCProtocolDecl;
42
class ObjCTypeParamDecl;
43
class ParmVarDecl;
44
class TemplateTypeParmDecl;
45
class UnqualTypeLoc;
46
class UnresolvedUsingTypenameDecl;
47
48
// Predeclare all the type nodes.
49
#define ABSTRACT_TYPELOC(Class, Base)
50
#define TYPELOC(Class, Base) \
51
  class Class##TypeLoc;
52
#include "clang/AST/TypeLocNodes.def"
53
54
/// Base wrapper for a particular "section" of type source info.
55
///
56
/// A client should use the TypeLoc subclasses through castAs()/getAs()
57
/// in order to get at the actual information.
58
class TypeLoc {
59
protected:
60
  // The correctness of this relies on the property that, for Type *Ty,
61
  //   QualType(Ty, 0).getAsOpaquePtr() == (void*) Ty
62
  const void *Ty = nullptr;
63
  void *Data = nullptr;
64
65
public:
66
2.65G
  TypeLoc() = default;
67
  TypeLoc(QualType ty, void *opaqueData)
68
1.01G
      : Ty(ty.getAsOpaquePtr()), Data(opaqueData) {}
69
  TypeLoc(const Type *ty, void *opaqueData)
70
80.0M
      : Ty(ty), Data(opaqueData) {}
71
72
  /// Convert to the specified TypeLoc type, asserting that this TypeLoc
73
  /// is of the desired type.
74
  ///
75
  /// \pre T::isKind(*this)
76
  template<typename T>
77
1.74G
  T castAs() const {
78
1.74G
    assert(T::isKind(*this));
79
0
    T t;
80
1.74G
    TypeLoc& tl = t;
81
1.74G
    tl = *this;
82
1.74G
    return t;
83
1.74G
  }
clang::UnqualTypeLoc clang::TypeLoc::castAs<clang::UnqualTypeLoc>() const
Line
Count
Source
77
140M
  T castAs() const {
78
140M
    assert(T::isKind(*this));
79
0
    T t;
80
140M
    TypeLoc& tl = t;
81
140M
    tl = *this;
82
140M
    return t;
83
140M
  }
clang::TemplateSpecializationTypeLoc clang::TypeLoc::castAs<clang::TemplateSpecializationTypeLoc>() const
Line
Count
Source
77
260M
  T castAs() const {
78
260M
    assert(T::isKind(*this));
79
0
    T t;
80
260M
    TypeLoc& tl = t;
81
260M
    tl = *this;
82
260M
    return t;
83
260M
  }
clang::QualifiedTypeLoc clang::TypeLoc::castAs<clang::QualifiedTypeLoc>() const
Line
Count
Source
77
44.4M
  T castAs() const {
78
44.4M
    assert(T::isKind(*this));
79
0
    T t;
80
44.4M
    TypeLoc& tl = t;
81
44.4M
    tl = *this;
82
44.4M
    return t;
83
44.4M
  }
clang::AdjustedTypeLoc clang::TypeLoc::castAs<clang::AdjustedTypeLoc>() const
Line
Count
Source
77
76
  T castAs() const {
78
76
    assert(T::isKind(*this));
79
0
    T t;
80
76
    TypeLoc& tl = t;
81
76
    tl = *this;
82
76
    return t;
83
76
  }
clang::DecayedTypeLoc clang::TypeLoc::castAs<clang::DecayedTypeLoc>() const
Line
Count
Source
77
26.8k
  T castAs() const {
78
26.8k
    assert(T::isKind(*this));
79
0
    T t;
80
26.8k
    TypeLoc& tl = t;
81
26.8k
    tl = *this;
82
26.8k
    return t;
83
26.8k
  }
clang::ConstantArrayTypeLoc clang::TypeLoc::castAs<clang::ConstantArrayTypeLoc>() const
Line
Count
Source
77
2.09M
  T castAs() const {
78
2.09M
    assert(T::isKind(*this));
79
0
    T t;
80
2.09M
    TypeLoc& tl = t;
81
2.09M
    tl = *this;
82
2.09M
    return t;
83
2.09M
  }
clang::DependentSizedArrayTypeLoc clang::TypeLoc::castAs<clang::DependentSizedArrayTypeLoc>() const
Line
Count
Source
77
219k
  T castAs() const {
78
219k
    assert(T::isKind(*this));
79
0
    T t;
80
219k
    TypeLoc& tl = t;
81
219k
    tl = *this;
82
219k
    return t;
83
219k
  }
clang::IncompleteArrayTypeLoc clang::TypeLoc::castAs<clang::IncompleteArrayTypeLoc>() const
Line
Count
Source
77
502k
  T castAs() const {
78
502k
    assert(T::isKind(*this));
79
0
    T t;
80
502k
    TypeLoc& tl = t;
81
502k
    tl = *this;
82
502k
    return t;
83
502k
  }
clang::VariableArrayTypeLoc clang::TypeLoc::castAs<clang::VariableArrayTypeLoc>() const
Line
Count
Source
77
118k
  T castAs() const {
78
118k
    assert(T::isKind(*this));
79
0
    T t;
80
118k
    TypeLoc& tl = t;
81
118k
    tl = *this;
82
118k
    return t;
83
118k
  }
clang::AtomicTypeLoc clang::TypeLoc::castAs<clang::AtomicTypeLoc>() const
Line
Count
Source
77
43.5k
  T castAs() const {
78
43.5k
    assert(T::isKind(*this));
79
0
    T t;
80
43.5k
    TypeLoc& tl = t;
81
43.5k
    tl = *this;
82
43.5k
    return t;
83
43.5k
  }
clang::AttributedTypeLoc clang::TypeLoc::castAs<clang::AttributedTypeLoc>() const
Line
Count
Source
77
14.7M
  T castAs() const {
78
14.7M
    assert(T::isKind(*this));
79
0
    T t;
80
14.7M
    TypeLoc& tl = t;
81
14.7M
    tl = *this;
82
14.7M
    return t;
83
14.7M
  }
clang::BTFTagAttributedTypeLoc clang::TypeLoc::castAs<clang::BTFTagAttributedTypeLoc>() const
Line
Count
Source
77
395
  T castAs() const {
78
395
    assert(T::isKind(*this));
79
0
    T t;
80
395
    TypeLoc& tl = t;
81
395
    tl = *this;
82
395
    return t;
83
395
  }
clang::BitIntTypeLoc clang::TypeLoc::castAs<clang::BitIntTypeLoc>() const
Line
Count
Source
77
7.47k
  T castAs() const {
78
7.47k
    assert(T::isKind(*this));
79
0
    T t;
80
7.47k
    TypeLoc& tl = t;
81
7.47k
    tl = *this;
82
7.47k
    return t;
83
7.47k
  }
clang::BlockPointerTypeLoc clang::TypeLoc::castAs<clang::BlockPointerTypeLoc>() const
Line
Count
Source
77
508k
  T castAs() const {
78
508k
    assert(T::isKind(*this));
79
0
    T t;
80
508k
    TypeLoc& tl = t;
81
508k
    tl = *this;
82
508k
    return t;
83
508k
  }
clang::BuiltinTypeLoc clang::TypeLoc::castAs<clang::BuiltinTypeLoc>() const
Line
Count
Source
77
104M
  T castAs() const {
78
104M
    assert(T::isKind(*this));
79
0
    T t;
80
104M
    TypeLoc& tl = t;
81
104M
    tl = *this;
82
104M
    return t;
83
104M
  }
clang::ComplexTypeLoc clang::TypeLoc::castAs<clang::ComplexTypeLoc>() const
Line
Count
Source
77
90.5k
  T castAs() const {
78
90.5k
    assert(T::isKind(*this));
79
0
    T t;
80
90.5k
    TypeLoc& tl = t;
81
90.5k
    tl = *this;
82
90.5k
    return t;
83
90.5k
  }
clang::DecltypeTypeLoc clang::TypeLoc::castAs<clang::DecltypeTypeLoc>() const
Line
Count
Source
77
3.41M
  T castAs() const {
78
3.41M
    assert(T::isKind(*this));
79
0
    T t;
80
3.41M
    TypeLoc& tl = t;
81
3.41M
    tl = *this;
82
3.41M
    return t;
83
3.41M
  }
clang::AutoTypeLoc clang::TypeLoc::castAs<clang::AutoTypeLoc>() const
Line
Count
Source
77
1.93M
  T castAs() const {
78
1.93M
    assert(T::isKind(*this));
79
0
    T t;
80
1.93M
    TypeLoc& tl = t;
81
1.93M
    tl = *this;
82
1.93M
    return t;
83
1.93M
  }
clang::DeducedTemplateSpecializationTypeLoc clang::TypeLoc::castAs<clang::DeducedTemplateSpecializationTypeLoc>() const
Line
Count
Source
77
33.7k
  T castAs() const {
78
33.7k
    assert(T::isKind(*this));
79
0
    T t;
80
33.7k
    TypeLoc& tl = t;
81
33.7k
    tl = *this;
82
33.7k
    return t;
83
33.7k
  }
clang::DependentAddressSpaceTypeLoc clang::TypeLoc::castAs<clang::DependentAddressSpaceTypeLoc>() const
Line
Count
Source
77
659
  T castAs() const {
78
659
    assert(T::isKind(*this));
79
0
    T t;
80
659
    TypeLoc& tl = t;
81
659
    tl = *this;
82
659
    return t;
83
659
  }
clang::DependentBitIntTypeLoc clang::TypeLoc::castAs<clang::DependentBitIntTypeLoc>() const
Line
Count
Source
77
283
  T castAs() const {
78
283
    assert(T::isKind(*this));
79
0
    T t;
80
283
    TypeLoc& tl = t;
81
283
    tl = *this;
82
283
    return t;
83
283
  }
clang::DependentNameTypeLoc clang::TypeLoc::castAs<clang::DependentNameTypeLoc>() const
Line
Count
Source
77
30.7M
  T castAs() const {
78
30.7M
    assert(T::isKind(*this));
79
0
    T t;
80
30.7M
    TypeLoc& tl = t;
81
30.7M
    tl = *this;
82
30.7M
    return t;
83
30.7M
  }
clang::DependentSizedExtVectorTypeLoc clang::TypeLoc::castAs<clang::DependentSizedExtVectorTypeLoc>() const
Line
Count
Source
77
344
  T castAs() const {
78
344
    assert(T::isKind(*this));
79
0
    T t;
80
344
    TypeLoc& tl = t;
81
344
    tl = *this;
82
344
    return t;
83
344
  }
clang::DependentTemplateSpecializationTypeLoc clang::TypeLoc::castAs<clang::DependentTemplateSpecializationTypeLoc>() const
Line
Count
Source
77
895k
  T castAs() const {
78
895k
    assert(T::isKind(*this));
79
0
    T t;
80
895k
    TypeLoc& tl = t;
81
895k
    tl = *this;
82
895k
    return t;
83
895k
  }
clang::DependentVectorTypeLoc clang::TypeLoc::castAs<clang::DependentVectorTypeLoc>() const
Line
Count
Source
77
735
  T castAs() const {
78
735
    assert(T::isKind(*this));
79
0
    T t;
80
735
    TypeLoc& tl = t;
81
735
    tl = *this;
82
735
    return t;
83
735
  }
clang::ElaboratedTypeLoc clang::TypeLoc::castAs<clang::ElaboratedTypeLoc>() const
Line
Count
Source
77
21.6M
  T castAs() const {
78
21.6M
    assert(T::isKind(*this));
79
0
    T t;
80
21.6M
    TypeLoc& tl = t;
81
21.6M
    tl = *this;
82
21.6M
    return t;
83
21.6M
  }
clang::FunctionNoProtoTypeLoc clang::TypeLoc::castAs<clang::FunctionNoProtoTypeLoc>() const
Line
Count
Source
77
56.5k
  T castAs() const {
78
56.5k
    assert(T::isKind(*this));
79
0
    T t;
80
56.5k
    TypeLoc& tl = t;
81
56.5k
    tl = *this;
82
56.5k
    return t;
83
56.5k
  }
clang::FunctionProtoTypeLoc clang::TypeLoc::castAs<clang::FunctionProtoTypeLoc>() const
Line
Count
Source
77
164M
  T castAs() const {
78
164M
    assert(T::isKind(*this));
79
0
    T t;
80
164M
    TypeLoc& tl = t;
81
164M
    tl = *this;
82
164M
    return t;
83
164M
  }
clang::InjectedClassNameTypeLoc clang::TypeLoc::castAs<clang::InjectedClassNameTypeLoc>() const
Line
Count
Source
77
10.9M
  T castAs() const {
78
10.9M
    assert(T::isKind(*this));
79
0
    T t;
80
10.9M
    TypeLoc& tl = t;
81
10.9M
    tl = *this;
82
10.9M
    return t;
83
10.9M
  }
clang::MacroQualifiedTypeLoc clang::TypeLoc::castAs<clang::MacroQualifiedTypeLoc>() const
Line
Count
Source
77
907k
  T castAs() const {
78
907k
    assert(T::isKind(*this));
79
0
    T t;
80
907k
    TypeLoc& tl = t;
81
907k
    tl = *this;
82
907k
    return t;
83
907k
  }
clang::ConstantMatrixTypeLoc clang::TypeLoc::castAs<clang::ConstantMatrixTypeLoc>() const
Line
Count
Source
77
4.62k
  T castAs() const {
78
4.62k
    assert(T::isKind(*this));
79
0
    T t;
80
4.62k
    TypeLoc& tl = t;
81
4.62k
    tl = *this;
82
4.62k
    return t;
83
4.62k
  }
clang::DependentSizedMatrixTypeLoc clang::TypeLoc::castAs<clang::DependentSizedMatrixTypeLoc>() const
Line
Count
Source
77
2.94k
  T castAs() const {
78
2.94k
    assert(T::isKind(*this));
79
0
    T t;
80
2.94k
    TypeLoc& tl = t;
81
2.94k
    tl = *this;
82
2.94k
    return t;
83
2.94k
  }
clang::MemberPointerTypeLoc clang::TypeLoc::castAs<clang::MemberPointerTypeLoc>() const
Line
Count
Source
77
366k
  T castAs() const {
78
366k
    assert(T::isKind(*this));
79
0
    T t;
80
366k
    TypeLoc& tl = t;
81
366k
    tl = *this;
82
366k
    return t;
83
366k
  }
clang::ObjCObjectPointerTypeLoc clang::TypeLoc::castAs<clang::ObjCObjectPointerTypeLoc>() const
Line
Count
Source
77
10.2M
  T castAs() const {
78
10.2M
    assert(T::isKind(*this));
79
0
    T t;
80
10.2M
    TypeLoc& tl = t;
81
10.2M
    tl = *this;
82
10.2M
    return t;
83
10.2M
  }
clang::ObjCObjectTypeLoc clang::TypeLoc::castAs<clang::ObjCObjectTypeLoc>() const
Line
Count
Source
77
3.47M
  T castAs() const {
78
3.47M
    assert(T::isKind(*this));
79
0
    T t;
80
3.47M
    TypeLoc& tl = t;
81
3.47M
    tl = *this;
82
3.47M
    return t;
83
3.47M
  }
clang::ObjCInterfaceTypeLoc clang::TypeLoc::castAs<clang::ObjCInterfaceTypeLoc>() const
Line
Count
Source
77
13.1M
  T castAs() const {
78
13.1M
    assert(T::isKind(*this));
79
0
    T t;
80
13.1M
    TypeLoc& tl = t;
81
13.1M
    tl = *this;
82
13.1M
    return t;
83
13.1M
  }
clang::ObjCTypeParamTypeLoc clang::TypeLoc::castAs<clang::ObjCTypeParamTypeLoc>() const
Line
Count
Source
77
788k
  T castAs() const {
78
788k
    assert(T::isKind(*this));
79
0
    T t;
80
788k
    TypeLoc& tl = t;
81
788k
    tl = *this;
82
788k
    return t;
83
788k
  }
clang::PackExpansionTypeLoc clang::TypeLoc::castAs<clang::PackExpansionTypeLoc>() const
Line
Count
Source
77
5.31M
  T castAs() const {
78
5.31M
    assert(T::isKind(*this));
79
0
    T t;
80
5.31M
    TypeLoc& tl = t;
81
5.31M
    tl = *this;
82
5.31M
    return t;
83
5.31M
  }
clang::ParenTypeLoc clang::TypeLoc::castAs<clang::ParenTypeLoc>() const
Line
Count
Source
77
2.89M
  T castAs() const {
78
2.89M
    assert(T::isKind(*this));
79
0
    T t;
80
2.89M
    TypeLoc& tl = t;
81
2.89M
    tl = *this;
82
2.89M
    return t;
83
2.89M
  }
clang::PipeTypeLoc clang::TypeLoc::castAs<clang::PipeTypeLoc>() const
Line
Count
Source
77
1.35k
  T castAs() const {
78
1.35k
    assert(T::isKind(*this));
79
0
    T t;
80
1.35k
    TypeLoc& tl = t;
81
1.35k
    tl = *this;
82
1.35k
    return t;
83
1.35k
  }
clang::PointerTypeLoc clang::TypeLoc::castAs<clang::PointerTypeLoc>() const
Line
Count
Source
77
49.1M
  T castAs() const {
78
49.1M
    assert(T::isKind(*this));
79
0
    T t;
80
49.1M
    TypeLoc& tl = t;
81
49.1M
    tl = *this;
82
49.1M
    return t;
83
49.1M
  }
clang::LValueReferenceTypeLoc clang::TypeLoc::castAs<clang::LValueReferenceTypeLoc>() const
Line
Count
Source
77
29.7M
  T castAs() const {
78
29.7M
    assert(T::isKind(*this));
79
0
    T t;
80
29.7M
    TypeLoc& tl = t;
81
29.7M
    tl = *this;
82
29.7M
    return t;
83
29.7M
  }
clang::RValueReferenceTypeLoc clang::TypeLoc::castAs<clang::RValueReferenceTypeLoc>() const
Line
Count
Source
77
7.57M
  T castAs() const {
78
7.57M
    assert(T::isKind(*this));
79
0
    T t;
80
7.57M
    TypeLoc& tl = t;
81
7.57M
    tl = *this;
82
7.57M
    return t;
83
7.57M
  }
clang::SubstTemplateTypeParmPackTypeLoc clang::TypeLoc::castAs<clang::SubstTemplateTypeParmPackTypeLoc>() const
Line
Count
Source
77
426k
  T castAs() const {
78
426k
    assert(T::isKind(*this));
79
0
    T t;
80
426k
    TypeLoc& tl = t;
81
426k
    tl = *this;
82
426k
    return t;
83
426k
  }
clang::SubstTemplateTypeParmTypeLoc clang::TypeLoc::castAs<clang::SubstTemplateTypeParmTypeLoc>() const
Line
Count
Source
77
75.5M
  T castAs() const {
78
75.5M
    assert(T::isKind(*this));
79
0
    T t;
80
75.5M
    TypeLoc& tl = t;
81
75.5M
    tl = *this;
82
75.5M
    return t;
83
75.5M
  }
clang::EnumTypeLoc clang::TypeLoc::castAs<clang::EnumTypeLoc>() const
Line
Count
Source
77
3.94M
  T castAs() const {
78
3.94M
    assert(T::isKind(*this));
79
0
    T t;
80
3.94M
    TypeLoc& tl = t;
81
3.94M
    tl = *this;
82
3.94M
    return t;
83
3.94M
  }
clang::RecordTypeLoc clang::TypeLoc::castAs<clang::RecordTypeLoc>() const
Line
Count
Source
77
43.6M
  T castAs() const {
78
43.6M
    assert(T::isKind(*this));
79
0
    T t;
80
43.6M
    TypeLoc& tl = t;
81
43.6M
    tl = *this;
82
43.6M
    return t;
83
43.6M
  }
clang::TemplateTypeParmTypeLoc clang::TypeLoc::castAs<clang::TemplateTypeParmTypeLoc>() const
Line
Count
Source
77
139M
  T castAs() const {
78
139M
    assert(T::isKind(*this));
79
0
    T t;
80
139M
    TypeLoc& tl = t;
81
139M
    tl = *this;
82
139M
    return t;
83
139M
  }
clang::TypeOfExprTypeLoc clang::TypeLoc::castAs<clang::TypeOfExprTypeLoc>() const
Line
Count
Source
77
38.2k
  T castAs() const {
78
38.2k
    assert(T::isKind(*this));
79
0
    T t;
80
38.2k
    TypeLoc& tl = t;
81
38.2k
    tl = *this;
82
38.2k
    return t;
83
38.2k
  }
clang::TypeOfTypeLoc clang::TypeLoc::castAs<clang::TypeOfTypeLoc>() const
Line
Count
Source
77
633
  T castAs() const {
78
633
    assert(T::isKind(*this));
79
0
    T t;
80
633
    TypeLoc& tl = t;
81
633
    tl = *this;
82
633
    return t;
83
633
  }
clang::TypedefTypeLoc clang::TypeLoc::castAs<clang::TypedefTypeLoc>() const
Line
Count
Source
77
517M
  T castAs() const {
78
517M
    assert(T::isKind(*this));
79
0
    T t;
80
517M
    TypeLoc& tl = t;
81
517M
    tl = *this;
82
517M
    return t;
83
517M
  }
clang::UnaryTransformTypeLoc clang::TypeLoc::castAs<clang::UnaryTransformTypeLoc>() const
Line
Count
Source
77
21.5k
  T castAs() const {
78
21.5k
    assert(T::isKind(*this));
79
0
    T t;
80
21.5k
    TypeLoc& tl = t;
81
21.5k
    tl = *this;
82
21.5k
    return t;
83
21.5k
  }
clang::UnresolvedUsingTypeLoc clang::TypeLoc::castAs<clang::UnresolvedUsingTypeLoc>() const
Line
Count
Source
77
16.3k
  T castAs() const {
78
16.3k
    assert(T::isKind(*this));
79
0
    T t;
80
16.3k
    TypeLoc& tl = t;
81
16.3k
    tl = *this;
82
16.3k
    return t;
83
16.3k
  }
clang::UsingTypeLoc clang::TypeLoc::castAs<clang::UsingTypeLoc>() const
Line
Count
Source
77
5.15M
  T castAs() const {
78
5.15M
    assert(T::isKind(*this));
79
0
    T t;
80
5.15M
    TypeLoc& tl = t;
81
5.15M
    tl = *this;
82
5.15M
    return t;
83
5.15M
  }
clang::VectorTypeLoc clang::TypeLoc::castAs<clang::VectorTypeLoc>() const
Line
Count
Source
77
857k
  T castAs() const {
78
857k
    assert(T::isKind(*this));
79
0
    T t;
80
857k
    TypeLoc& tl = t;
81
857k
    tl = *this;
82
857k
    return t;
83
857k
  }
clang::ExtVectorTypeLoc clang::TypeLoc::castAs<clang::ExtVectorTypeLoc>() const
Line
Count
Source
77
23.8k
  T castAs() const {
78
23.8k
    assert(T::isKind(*this));
79
0
    T t;
80
23.8k
    TypeLoc& tl = t;
81
23.8k
    tl = *this;
82
23.8k
    return t;
83
23.8k
  }
clang::ArrayTypeLoc clang::TypeLoc::castAs<clang::ArrayTypeLoc>() const
Line
Count
Source
77
340k
  T castAs() const {
78
340k
    assert(T::isKind(*this));
79
0
    T t;
80
340k
    TypeLoc& tl = t;
81
340k
    tl = *this;
82
340k
    return t;
83
340k
  }
clang::TypeLoc clang::TypeLoc::castAs<clang::TypeLoc>() const
Line
Count
Source
77
4.69M
  T castAs() const {
78
4.69M
    assert(T::isKind(*this));
79
0
    T t;
80
4.69M
    TypeLoc& tl = t;
81
4.69M
    tl = *this;
82
4.69M
    return t;
83
4.69M
  }
clang::DeducedTypeLoc clang::TypeLoc::castAs<clang::DeducedTypeLoc>() const
Line
Count
Source
77
932
  T castAs() const {
78
932
    assert(T::isKind(*this));
79
0
    T t;
80
932
    TypeLoc& tl = t;
81
932
    tl = *this;
82
932
    return t;
83
932
  }
clang::FunctionTypeLoc clang::TypeLoc::castAs<clang::FunctionTypeLoc>() const
Line
Count
Source
77
24.7M
  T castAs() const {
78
24.7M
    assert(T::isKind(*this));
79
0
    T t;
80
24.7M
    TypeLoc& tl = t;
81
24.7M
    tl = *this;
82
24.7M
    return t;
83
24.7M
  }
clang::MatrixTypeLoc clang::TypeLoc::castAs<clang::MatrixTypeLoc>() const
Line
Count
Source
77
629
  T castAs() const {
78
629
    assert(T::isKind(*this));
79
0
    T t;
80
629
    TypeLoc& tl = t;
81
629
    tl = *this;
82
629
    return t;
83
629
  }
clang::ReferenceTypeLoc clang::TypeLoc::castAs<clang::ReferenceTypeLoc>() const
Line
Count
Source
77
3.95k
  T castAs() const {
78
3.95k
    assert(T::isKind(*this));
79
0
    T t;
80
3.95k
    TypeLoc& tl = t;
81
3.95k
    tl = *this;
82
3.95k
    return t;
83
3.95k
  }
clang::TagTypeLoc clang::TypeLoc::castAs<clang::TagTypeLoc>() const
Line
Count
Source
77
1.83M
  T castAs() const {
78
1.83M
    assert(T::isKind(*this));
79
0
    T t;
80
1.83M
    TypeLoc& tl = t;
81
1.83M
    tl = *this;
82
1.83M
    return t;
83
1.83M
  }
clang::TypeSpecTypeLoc clang::TypeLoc::castAs<clang::TypeSpecTypeLoc>() const
Line
Count
Source
77
1.43M
  T castAs() const {
78
1.43M
    assert(T::isKind(*this));
79
0
    T t;
80
1.43M
    TypeLoc& tl = t;
81
1.43M
    tl = *this;
82
1.43M
    return t;
83
1.43M
  }
84
85
  /// Convert to the specified TypeLoc type, returning a null TypeLoc if
86
  /// this TypeLoc is not of the desired type.
87
  template<typename T>
88
530M
  T getAs() const {
89
530M
    if (!T::isKind(*this))
90
520M
      return {};
91
10.4M
    T t;
92
10.4M
    TypeLoc& tl = t;
93
10.4M
    tl = *this;
94
10.4M
    return t;
95
530M
  }
clang::QualifiedTypeLoc clang::TypeLoc::getAs<clang::QualifiedTypeLoc>() const
Line
Count
Source
88
145M
  T getAs() const {
89
145M
    if (!T::isKind(*this))
90
140M
      return {};
91
4.48M
    T t;
92
4.48M
    TypeLoc& tl = t;
93
4.48M
    tl = *this;
94
4.48M
    return t;
95
145M
  }
clang::PointerTypeLoc clang::TypeLoc::getAs<clang::PointerTypeLoc>() const
Line
Count
Source
88
16.4k
  T getAs() const {
89
16.4k
    if (!T::isKind(*this))
90
1.38k
      return {};
91
15.1k
    T t;
92
15.1k
    TypeLoc& tl = t;
93
15.1k
    tl = *this;
94
15.1k
    return t;
95
16.4k
  }
clang::ReferenceTypeLoc clang::TypeLoc::getAs<clang::ReferenceTypeLoc>() const
Line
Count
Source
88
1.09k
  T getAs() const {
89
1.09k
    if (!T::isKind(*this))
90
1.07k
      return {};
91
18
    T t;
92
18
    TypeLoc& tl = t;
93
18
    tl = *this;
94
18
    return t;
95
1.09k
  }
clang::BlockPointerTypeLoc clang::TypeLoc::getAs<clang::BlockPointerTypeLoc>() const
Line
Count
Source
88
729
  T getAs() const {
89
729
    if (!T::isKind(*this))
90
632
      return {};
91
97
    T t;
92
97
    TypeLoc& tl = t;
93
97
    tl = *this;
94
97
    return t;
95
729
  }
clang::MemberPointerTypeLoc clang::TypeLoc::getAs<clang::MemberPointerTypeLoc>() const
Line
Count
Source
88
627
  T getAs() const {
89
627
    if (!T::isKind(*this))
90
621
      return {};
91
6
    T t;
92
6
    TypeLoc& tl = t;
93
6
    tl = *this;
94
6
    return t;
95
627
  }
clang::TemplateSpecializationTypeLoc clang::TypeLoc::getAs<clang::TemplateSpecializationTypeLoc>() const
Line
Count
Source
88
99.5k
  T getAs() const {
89
99.5k
    if (!T::isKind(*this))
90
356
      return {};
91
99.1k
    T t;
92
99.1k
    TypeLoc& tl = t;
93
99.1k
    tl = *this;
94
99.1k
    return t;
95
99.5k
  }
clang::FunctionTypeLoc clang::TypeLoc::getAs<clang::FunctionTypeLoc>() const
Line
Count
Source
88
3.11k
  T getAs() const {
89
3.11k
    if (!T::isKind(*this))
90
392
      return {};
91
2.72k
    T t;
92
2.72k
    TypeLoc& tl = t;
93
2.72k
    tl = *this;
94
2.72k
    return t;
95
3.11k
  }
clang::ParenTypeLoc clang::TypeLoc::getAs<clang::ParenTypeLoc>() const
Line
Count
Source
88
24.4M
  T getAs() const {
89
24.4M
    if (!T::isKind(*this))
90
24.4M
      return {};
91
301
    T t;
92
301
    TypeLoc& tl = t;
93
301
    tl = *this;
94
301
    return t;
95
24.4M
  }
clang::AttributedTypeLoc clang::TypeLoc::getAs<clang::AttributedTypeLoc>() const
Line
Count
Source
88
84.7M
  T getAs() const {
89
84.7M
    if (!T::isKind(*this))
90
83.1M
      return {};
91
1.58M
    T t;
92
1.58M
    TypeLoc& tl = t;
93
1.58M
    tl = *this;
94
1.58M
    return t;
95
84.7M
  }
clang::BTFTagAttributedTypeLoc clang::TypeLoc::getAs<clang::BTFTagAttributedTypeLoc>() const
Line
Count
Source
88
24.4M
  T getAs() const {
89
24.4M
    if (!T::isKind(*this))
90
24.4M
      return {};
91
0
    T t;
92
0
    TypeLoc& tl = t;
93
0
    tl = *this;
94
0
    return t;
95
24.4M
  }
clang::ElaboratedTypeLoc clang::TypeLoc::getAs<clang::ElaboratedTypeLoc>() const
Line
Count
Source
88
24.6M
  T getAs() const {
89
24.6M
    if (!T::isKind(*this))
90
24.6M
      return {};
91
11.8k
    T t;
92
11.8k
    TypeLoc& tl = t;
93
11.8k
    tl = *this;
94
11.8k
    return t;
95
24.6M
  }
clang::AdjustedTypeLoc clang::TypeLoc::getAs<clang::AdjustedTypeLoc>() const
Line
Count
Source
88
58.6M
  T getAs() const {
89
58.6M
    if (!T::isKind(*this))
90
58.6M
      return {};
91
0
    T t;
92
0
    TypeLoc& tl = t;
93
0
    tl = *this;
94
0
    return t;
95
58.6M
  }
clang::MacroQualifiedTypeLoc clang::TypeLoc::getAs<clang::MacroQualifiedTypeLoc>() const
Line
Count
Source
88
58.7M
  T getAs() const {
89
58.7M
    if (!T::isKind(*this))
90
58.6M
      return {};
91
109k
    T t;
92
109k
    TypeLoc& tl = t;
93
109k
    tl = *this;
94
109k
    return t;
95
58.7M
  }
clang::FunctionProtoTypeLoc clang::TypeLoc::getAs<clang::FunctionProtoTypeLoc>() const
Line
Count
Source
88
4.05M
  T getAs() const {
89
4.05M
    if (!T::isKind(*this))
90
1.33k
      return {};
91
4.05M
    T t;
92
4.05M
    TypeLoc& tl = t;
93
4.05M
    tl = *this;
94
4.05M
    return t;
95
4.05M
  }
clang::AtomicTypeLoc clang::TypeLoc::getAs<clang::AtomicTypeLoc>() const
Line
Count
Source
88
34.3M
  T getAs() const {
89
34.3M
    if (!T::isKind(*this))
90
34.3M
      return {};
91
16
    T t;
92
16
    TypeLoc& tl = t;
93
16
    tl = *this;
94
16
    return t;
95
34.3M
  }
clang::AutoTypeLoc clang::TypeLoc::getAs<clang::AutoTypeLoc>() const
Line
Count
Source
88
275
  T getAs() const {
89
275
    if (!T::isKind(*this))
90
0
      return {};
91
275
    T t;
92
275
    TypeLoc& tl = t;
93
275
    tl = *this;
94
275
    return t;
95
275
  }
clang::ConstantArrayTypeLoc clang::TypeLoc::getAs<clang::ConstantArrayTypeLoc>() const
Line
Count
Source
88
16
  T getAs() const {
89
16
    if (!T::isKind(*this))
90
1
      return {};
91
15
    T t;
92
15
    TypeLoc& tl = t;
93
15
    tl = *this;
94
15
    return t;
95
16
  }
clang::TypedefTypeLoc clang::TypeLoc::getAs<clang::TypedefTypeLoc>() const
Line
Count
Source
88
1.48k
  T getAs() const {
89
1.48k
    if (!T::isKind(*this))
90
1.45k
      return {};
91
31
    T t;
92
31
    TypeLoc& tl = t;
93
31
    tl = *this;
94
31
    return t;
95
1.48k
  }
clang::VariableArrayTypeLoc clang::TypeLoc::getAs<clang::VariableArrayTypeLoc>() const
Line
Count
Source
88
284
  T getAs() const {
89
284
    if (!T::isKind(*this))
90
281
      return {};
91
3
    T t;
92
3
    TypeLoc& tl = t;
93
3
    tl = *this;
94
3
    return t;
95
284
  }
clang::FunctionNoProtoTypeLoc clang::TypeLoc::getAs<clang::FunctionNoProtoTypeLoc>() const
Line
Count
Source
88
125
  T getAs() const {
89
125
    if (!T::isKind(*this))
90
5
      return {};
91
120
    T t;
92
120
    TypeLoc& tl = t;
93
120
    tl = *this;
94
120
    return t;
95
125
  }
clang::DecayedTypeLoc clang::TypeLoc::getAs<clang::DecayedTypeLoc>() const
Line
Count
Source
88
6
  T getAs() const {
89
6
    if (!T::isKind(*this))
90
6
      return {};
91
0
    T t;
92
0
    TypeLoc& tl = t;
93
0
    tl = *this;
94
0
    return t;
95
6
  }
clang::ArrayTypeLoc clang::TypeLoc::getAs<clang::ArrayTypeLoc>() const
Line
Count
Source
88
517
  T getAs() const {
89
517
    if (!T::isKind(*this))
90
507
      return {};
91
10
    T t;
92
10
    TypeLoc& tl = t;
93
10
    tl = *this;
94
10
    return t;
95
517
  }
clang::PackExpansionTypeLoc clang::TypeLoc::getAs<clang::PackExpansionTypeLoc>() const
Line
Count
Source
88
2.16M
  T getAs() const {
89
2.16M
    if (!T::isKind(*this))
90
2.11M
      return {};
91
48.1k
    T t;
92
48.1k
    TypeLoc& tl = t;
93
48.1k
    tl = *this;
94
48.1k
    return t;
95
2.16M
  }
clang::IncompleteArrayTypeLoc clang::TypeLoc::getAs<clang::IncompleteArrayTypeLoc>() const
Line
Count
Source
88
49
  T getAs() const {
89
49
    if (!T::isKind(*this))
90
16
      return {};
91
33
    T t;
92
33
    TypeLoc& tl = t;
93
33
    tl = *this;
94
33
    return t;
95
49
  }
clang::InjectedClassNameTypeLoc clang::TypeLoc::getAs<clang::InjectedClassNameTypeLoc>() const
Line
Count
Source
88
29
  T getAs() const {
89
29
    if (!T::isKind(*this))
90
28
      return {};
91
1
    T t;
92
1
    TypeLoc& tl = t;
93
1
    tl = *this;
94
1
    return t;
95
29
  }
clang::RecordTypeLoc clang::TypeLoc::getAs<clang::RecordTypeLoc>() const
Line
Count
Source
88
28
  T getAs() const {
89
28
    if (!T::isKind(*this))
90
4
      return {};
91
24
    T t;
92
24
    TypeLoc& tl = t;
93
24
    tl = *this;
94
24
    return t;
95
28
  }
clang::DeducedTemplateSpecializationTypeLoc clang::TypeLoc::getAs<clang::DeducedTemplateSpecializationTypeLoc>() const
Line
Count
Source
88
238k
  T getAs() const {
89
238k
    if (!T::isKind(*this))
90
237k
      return {};
91
510
    T t;
92
510
    TypeLoc& tl = t;
93
510
    tl = *this;
94
510
    return t;
95
238k
  }
clang::DependentAddressSpaceTypeLoc clang::TypeLoc::getAs<clang::DependentAddressSpaceTypeLoc>() const
Line
Count
Source
88
34.1M
  T getAs() const {
89
34.1M
    if (!T::isKind(*this))
90
34.1M
      return {};
91
1
    T t;
92
1
    TypeLoc& tl = t;
93
1
    tl = *this;
94
1
    return t;
95
34.1M
  }
clang::MatrixTypeLoc clang::TypeLoc::getAs<clang::MatrixTypeLoc>() const
Line
Count
Source
88
34.1M
  T getAs() const {
89
34.1M
    if (!T::isKind(*this))
90
34.1M
      return {};
91
0
    T t;
92
0
    TypeLoc& tl = t;
93
0
    tl = *this;
94
0
    return t;
95
34.1M
  }
clang::ObjCObjectPointerTypeLoc clang::TypeLoc::getAs<clang::ObjCObjectPointerTypeLoc>() const
Line
Count
Source
88
152k
  T getAs() const {
89
152k
    if (!T::isKind(*this))
90
137k
      return {};
91
15.6k
    T t;
92
15.6k
    TypeLoc& tl = t;
93
15.6k
    tl = *this;
94
15.6k
    return t;
95
152k
  }
clang::ObjCTypeParamTypeLoc clang::TypeLoc::getAs<clang::ObjCTypeParamTypeLoc>() const
Line
Count
Source
88
152k
  T getAs() const {
89
152k
    if (!T::isKind(*this))
90
151k
      return {};
91
1.78k
    T t;
92
1.78k
    TypeLoc& tl = t;
93
1.78k
    tl = *this;
94
1.78k
    return t;
95
152k
  }
clang::DependentTemplateSpecializationTypeLoc clang::TypeLoc::getAs<clang::DependentTemplateSpecializationTypeLoc>() const
Line
Count
Source
88
169
  T getAs() const {
89
169
    if (!T::isKind(*this))
90
164
      return {};
91
5
    T t;
92
5
    TypeLoc& tl = t;
93
5
    tl = *this;
94
5
    return t;
95
169
  }
clang::DependentNameTypeLoc clang::TypeLoc::getAs<clang::DependentNameTypeLoc>() const
Line
Count
Source
88
3
  T getAs() const {
89
3
    if (!T::isKind(*this))
90
3
      return {};
91
0
    T t;
92
0
    TypeLoc& tl = t;
93
0
    tl = *this;
94
0
    return t;
95
3
  }
96
97
  /// Convert to the specified TypeLoc type, returning a null TypeLoc if
98
  /// this TypeLoc is not of the desired type. It will consider type
99
  /// adjustments from a type that was written as a T to another type that is
100
  /// still canonically a T (ignores parens, attributes, elaborated types, etc).
101
  template <typename T>
102
  T getAsAdjusted() const;
103
104
  /// The kinds of TypeLocs.  Equivalent to the Type::TypeClass enum,
105
  /// except it also defines a Qualified enum that corresponds to the
106
  /// QualifiedLoc class.
107
  enum TypeLocClass {
108
#define ABSTRACT_TYPE(Class, Base)
109
#define TYPE(Class, Base) \
110
    Class = Type::Class,
111
#include "clang/AST/TypeNodes.inc"
112
    Qualified
113
  };
114
115
1.51G
  TypeLocClass getTypeLocClass() const {
116
1.51G
    if (getType().hasLocalQualifiers()) 
return Qualified46.8M
;
117
1.46G
    return (TypeLocClass) getType()->getTypeClass();
118
1.51G
  }
119
120
807M
  bool isNull() const { return !Ty; }
121
577M
  explicit operator bool() const { return Ty; }
122
123
  /// Returns the size of type source info data block for the given type.
124
  static unsigned getFullDataSizeForType(QualType Ty);
125
126
  /// Returns the alignment of type source info data block for
127
  /// the given type.
128
  static unsigned getLocalAlignmentForType(QualType Ty);
129
130
  /// Get the type for which this source info wrapper provides
131
  /// information.
132
5.59G
  QualType getType() const {
133
5.59G
    return QualType::getFromOpaquePtr(Ty);
134
5.59G
  }
135
136
2.01G
  const Type *getTypePtr() const {
137
2.01G
    return QualType::getFromOpaquePtr(Ty).getTypePtr();
138
2.01G
  }
139
140
  /// Get the pointer where source information is stored.
141
24.8M
  void *getOpaqueData() const {
142
24.8M
    return Data;
143
24.8M
  }
144
145
  /// Get the begin source location.
146
  SourceLocation getBeginLoc() const;
147
148
  /// Get the end source location.
149
  SourceLocation getEndLoc() const;
150
151
  /// Get the full source range.
152
16.3M
  SourceRange getSourceRange() const LLVM_READONLY {
153
16.3M
    return SourceRange(getBeginLoc(), getEndLoc());
154
16.3M
  }
155
156
157
  /// Get the local source range.
158
229M
  SourceRange getLocalSourceRange() const {
159
229M
    return getLocalSourceRangeImpl(*this);
160
229M
  }
161
162
  /// Returns the size of the type source info data block.
163
15.5M
  unsigned getFullDataSize() const {
164
15.5M
    return getFullDataSizeForType(getType());
165
15.5M
  }
166
167
  /// Get the next TypeLoc pointed by this TypeLoc, e.g for "int*" the
168
  /// TypeLoc is a PointerLoc and next TypeLoc is for "int".
169
439M
  TypeLoc getNextTypeLoc() const {
170
439M
    return getNextTypeLocImpl(*this);
171
439M
  }
172
173
  /// Skips past any qualifiers, if this is qualified.
174
  UnqualTypeLoc getUnqualifiedLoc() const; // implemented in this header
175
176
  TypeLoc IgnoreParens() const;
177
178
  /// Find a type with the location of an explicit type qualifier.
179
  ///
180
  /// The result, if non-null, will be one of:
181
  ///   QualifiedTypeLoc
182
  ///   AtomicTypeLoc
183
  ///   AttributedTypeLoc, for those type attributes that behave as qualifiers
184
  TypeLoc findExplicitQualifierLoc() const;
185
186
  /// Get the typeloc of an AutoType whose type will be deduced for a variable
187
  /// with an initializer of this type. This looks through declarators like
188
  /// pointer types, but not through decltype or typedefs.
189
  AutoTypeLoc getContainedAutoTypeLoc() const;
190
191
  /// Initializes this to state that every location in this
192
  /// type is the given location.
193
  ///
194
  /// This method exists to provide a simple transition for code that
195
  /// relies on location-less types.
196
18.1M
  void initialize(ASTContext &Context, SourceLocation Loc) const {
197
18.1M
    initializeImpl(Context, *this, Loc);
198
18.1M
  }
199
200
  /// Initializes this by copying its information from another
201
  /// TypeLoc of the same type.
202
25.9k
  void initializeFullCopy(TypeLoc Other) {
203
25.9k
    assert(getType() == Other.getType());
204
0
    copy(Other);
205
25.9k
  }
206
207
  /// Initializes this by copying its information from another
208
  /// TypeLoc of the same type.  The given size must be the full data
209
  /// size.
210
751
  void initializeFullCopy(TypeLoc Other, unsigned Size) {
211
751
    assert(getType() == Other.getType());
212
0
    assert(getFullDataSize() == Size);
213
0
    copy(Other);
214
751
  }
215
216
  /// Copies the other type loc into this one.
217
  void copy(TypeLoc other);
218
219
99.1k
  friend bool operator==(const TypeLoc &LHS, const TypeLoc &RHS) {
220
99.1k
    return LHS.Ty == RHS.Ty && 
LHS.Data == RHS.Data16.9k
;
221
99.1k
  }
222
223
1.23k
  friend bool operator!=(const TypeLoc &LHS, const TypeLoc &RHS) {
224
1.23k
    return !(LHS == RHS);
225
1.23k
  }
226
227
  /// Find the location of the nullability specifier (__nonnull,
228
  /// __nullable, or __null_unspecifier), if there is one.
229
  SourceLocation findNullabilityLoc() const;
230
231
private:
232
4.69M
  static bool isKind(const TypeLoc&) {
233
4.69M
    return true;
234
4.69M
  }
235
236
  static void initializeImpl(ASTContext &Context, TypeLoc TL,
237
                             SourceLocation Loc);
238
  static TypeLoc getNextTypeLocImpl(TypeLoc TL);
239
  static TypeLoc IgnoreParensImpl(TypeLoc TL);
240
  static SourceRange getLocalSourceRangeImpl(TypeLoc TL);
241
};
242
243
/// Return the TypeLoc for a type source info.
244
243M
inline TypeLoc TypeSourceInfo::getTypeLoc() const {
245
  // TODO: is this alignment already sufficient?
246
243M
  return TypeLoc(Ty, const_cast<void*>(static_cast<const void*>(this + 1)));
247
243M
}
248
249
/// Wrapper of type source information for a type with
250
/// no direct qualifiers.
251
class UnqualTypeLoc : public TypeLoc {
252
public:
253
2.10G
  UnqualTypeLoc() = default;
254
17.5M
  UnqualTypeLoc(const Type *Ty, void *Data) : TypeLoc(Ty, Data) {}
255
256
1.00G
  const Type *getTypePtr() const {
257
1.00G
    return reinterpret_cast<const Type*>(Ty);
258
1.00G
  }
259
260
144M
  TypeLocClass getTypeLocClass() const {
261
144M
    return (TypeLocClass) getTypePtr()->getTypeClass();
262
144M
  }
263
264
private:
265
  friend class TypeLoc;
266
267
140M
  static bool isKind(const TypeLoc &TL) {
268
140M
    return !TL.getType().hasLocalQualifiers();
269
140M
  }
270
};
271
272
/// Wrapper of type source information for a type with
273
/// non-trivial direct qualifiers.
274
///
275
/// Currently, we intentionally do not provide source location for
276
/// type qualifiers.
277
class QualifiedTypeLoc : public TypeLoc {
278
public:
279
8.80k
  SourceRange getLocalSourceRange() const { return {}; }
280
281
17.5M
  UnqualTypeLoc getUnqualifiedLoc() const {
282
17.5M
    unsigned align =
283
17.5M
        TypeLoc::getLocalAlignmentForType(QualType(getTypePtr(), 0));
284
17.5M
    auto dataInt = reinterpret_cast<uintptr_t>(Data);
285
17.5M
    dataInt = llvm::alignTo(dataInt, align);
286
17.5M
    return UnqualTypeLoc(getTypePtr(), reinterpret_cast<void*>(dataInt));
287
17.5M
  }
288
289
  /// Initializes the local data of this type source info block to
290
  /// provide no information.
291
557k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
292
    // do nothing
293
557k
  }
294
295
4
  void copyLocal(TypeLoc other) {
296
    // do nothing
297
4
  }
298
299
11.7M
  TypeLoc getNextTypeLoc() const {
300
11.7M
    return getUnqualifiedLoc();
301
11.7M
  }
302
303
  /// Returns the size of the type source info data block that is
304
  /// specific to this type.
305
7.78M
  unsigned getLocalDataSize() const {
306
    // In fact, we don't currently preserve any location information
307
    // for qualifiers.
308
7.78M
    return 0;
309
7.78M
  }
310
311
  /// Returns the alignment of the type source info data block that is
312
  /// specific to this type.
313
22.4M
  unsigned getLocalDataAlignment() const {
314
    // We don't preserve any location information.
315
22.4M
    return 1;
316
22.4M
  }
317
318
private:
319
  friend class TypeLoc;
320
321
189M
  static bool isKind(const TypeLoc &TL) {
322
189M
    return TL.getType().hasLocalQualifiers();
323
189M
  }
324
};
325
326
145M
inline UnqualTypeLoc TypeLoc::getUnqualifiedLoc() const {
327
145M
  if (QualifiedTypeLoc Loc = getAs<QualifiedTypeLoc>())
328
4.48M
    return Loc.getUnqualifiedLoc();
329
140M
  return castAs<UnqualTypeLoc>();
330
145M
}
331
332
/// A metaprogramming base class for TypeLoc classes which correspond
333
/// to a particular Type subclass.  It is accepted for a single
334
/// TypeLoc class to correspond to multiple Type classes.
335
///
336
/// \tparam Base a class from which to derive
337
/// \tparam Derived the class deriving from this one
338
/// \tparam TypeClass the concrete Type subclass associated with this
339
///   location type
340
/// \tparam LocalData the structure type of local location data for
341
///   this type
342
///
343
/// TypeLocs with non-constant amounts of local data should override
344
/// getExtraLocalDataSize(); getExtraLocalData() will then point to
345
/// this extra memory.
346
///
347
/// TypeLocs with an inner type should define
348
///   QualType getInnerType() const
349
/// and getInnerTypeLoc() will then point to this inner type's
350
/// location data.
351
///
352
/// A word about hierarchies: this template is not designed to be
353
/// derived from multiple times in a hierarchy.  It is also not
354
/// designed to be used for classes where subtypes might provide
355
/// different amounts of source information.  It should be subclassed
356
/// only at the deepest portion of the hierarchy where all children
357
/// have identical source information; if that's an abstract type,
358
/// then further descendents should inherit from
359
/// InheritingConcreteTypeLoc instead.
360
template <class Base, class Derived, class TypeClass, class LocalData>
361
class ConcreteTypeLoc : public Base {
362
  friend class TypeLoc;
363
364
2.00G
  const Derived *asDerived() const {
365
2.00G
    return static_cast<const Derived*>(this);
366
2.00G
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::asDerived() const
Line
Count
Source
364
112M
  const Derived *asDerived() const {
365
112M
    return static_cast<const Derived*>(this);
366
112M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::asDerived() const
Line
Count
Source
364
801k
  const Derived *asDerived() const {
365
801k
    return static_cast<const Derived*>(this);
366
801k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::asDerived() const
Line
Count
Source
364
49.1M
  const Derived *asDerived() const {
365
49.1M
    return static_cast<const Derived*>(this);
366
49.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::asDerived() const
Line
Count
Source
364
921
  const Derived *asDerived() const {
365
921
    return static_cast<const Derived*>(this);
366
921
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::asDerived() const
Line
Count
Source
364
8.64M
  const Derived *asDerived() const {
365
8.64M
    return static_cast<const Derived*>(this);
366
8.64M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::asDerived() const
Line
Count
Source
364
3.32M
  const Derived *asDerived() const {
365
3.32M
    return static_cast<const Derived*>(this);
366
3.32M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::asDerived() const
Line
Count
Source
364
6.38M
  const Derived *asDerived() const {
365
6.38M
    return static_cast<const Derived*>(this);
366
6.38M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::asDerived() const
Line
Count
Source
364
45.0k
  const Derived *asDerived() const {
365
45.0k
    return static_cast<const Derived*>(this);
366
45.0k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::asDerived() const
Line
Count
Source
364
512M
  const Derived *asDerived() const {
365
512M
    return static_cast<const Derived*>(this);
366
512M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::asDerived() const
Line
Count
Source
364
7.95M
  const Derived *asDerived() const {
365
7.95M
    return static_cast<const Derived*>(this);
366
7.95M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::asDerived() const
Line
Count
Source
364
197M
  const Derived *asDerived() const {
365
197M
    return static_cast<const Derived*>(this);
366
197M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::asDerived() const
Line
Count
Source
364
1.38k
  const Derived *asDerived() const {
365
1.38k
    return static_cast<const Derived*>(this);
366
1.38k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::asDerived() const
Line
Count
Source
364
2.09M
  const Derived *asDerived() const {
365
2.09M
    return static_cast<const Derived*>(this);
366
2.09M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::asDerived() const
Line
Count
Source
364
2.11k
  const Derived *asDerived() const {
365
2.11k
    return static_cast<const Derived*>(this);
366
2.11k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::asDerived() const
Line
Count
Source
364
933
  const Derived *asDerived() const {
365
933
    return static_cast<const Derived*>(this);
366
933
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::asDerived() const
Line
Count
Source
364
2.24M
  const Derived *asDerived() const {
365
2.24M
    return static_cast<const Derived*>(this);
366
2.24M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::asDerived() const
Line
Count
Source
364
57.0M
  const Derived *asDerived() const {
365
57.0M
    return static_cast<const Derived*>(this);
366
57.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::asDerived() const
Line
Count
Source
364
1.08M
  const Derived *asDerived() const {
365
1.08M
    return static_cast<const Derived*>(this);
366
1.08M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::asDerived() const
Line
Count
Source
364
15.2M
  const Derived *asDerived() const {
365
15.2M
    return static_cast<const Derived*>(this);
366
15.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::asDerived() const
Line
Count
Source
364
136k
  const Derived *asDerived() const {
365
136k
    return static_cast<const Derived*>(this);
366
136k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::asDerived() const
Line
Count
Source
364
3.52k
  const Derived *asDerived() const {
365
3.52k
    return static_cast<const Derived*>(this);
366
3.52k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
1.11M
  const Derived *asDerived() const {
365
1.11M
    return static_cast<const Derived*>(this);
366
1.11M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::asDerived() const
Line
Count
Source
364
1.07M
  const Derived *asDerived() const {
365
1.07M
    return static_cast<const Derived*>(this);
366
1.07M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
22.6M
  const Derived *asDerived() const {
365
22.6M
    return static_cast<const Derived*>(this);
366
22.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
129M
  const Derived *asDerived() const {
365
129M
    return static_cast<const Derived*>(this);
366
129M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
98.7M
  const Derived *asDerived() const {
365
98.7M
    return static_cast<const Derived*>(this);
366
98.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::asDerived() const
Line
Count
Source
364
730M
  const Derived *asDerived() const {
365
730M
    return static_cast<const Derived*>(this);
366
730M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::asDerived() const
Line
Count
Source
364
3.35M
  const Derived *asDerived() const {
365
3.35M
    return static_cast<const Derived*>(this);
366
3.35M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::asDerived() const
Line
Count
Source
364
28.9M
  const Derived *asDerived() const {
365
28.9M
    return static_cast<const Derived*>(this);
366
28.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::asDerived() const
Line
Count
Source
364
8.64k
  const Derived *asDerived() const {
365
8.64k
    return static_cast<const Derived*>(this);
366
8.64k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::asDerived() const
Line
Count
Source
364
12.3M
  const Derived *asDerived() const {
365
12.3M
    return static_cast<const Derived*>(this);
366
12.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::asDerived() const
Line
Count
Source
364
29.6k
  const Derived *asDerived() const {
365
29.6k
    return static_cast<const Derived*>(this);
366
29.6k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::asDerived() const
Line
Count
Source
364
554
  const Derived *asDerived() const {
365
554
    return static_cast<const Derived*>(this);
366
554
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::asDerived() const
Line
Count
Source
364
22.3k
  const Derived *asDerived() const {
365
22.3k
    return static_cast<const Derived*>(this);
366
22.3k
  }
367
368
960M
  static bool isKind(const TypeLoc &TL) {
369
960M
    return !TL.getType().hasLocalQualifiers() &&
370
960M
           
Derived::classofType(TL.getTypePtr())960M
;
371
960M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
31.8M
  static bool isKind(const TypeLoc &TL) {
369
31.8M
    return !TL.getType().hasLocalQualifiers() &&
370
31.8M
           Derived::classofType(TL.getTypePtr());
371
31.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
260M
  static bool isKind(const TypeLoc &TL) {
369
260M
    return !TL.getType().hasLocalQualifiers() &&
370
260M
           
Derived::classofType(TL.getTypePtr())260M
;
371
260M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
24.7M
  static bool isKind(const TypeLoc &TL) {
369
24.7M
    return !TL.getType().hasLocalQualifiers() &&
370
24.7M
           Derived::classofType(TL.getTypePtr());
371
24.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
58.6M
  static bool isKind(const TypeLoc &TL) {
369
58.6M
    return !TL.getType().hasLocalQualifiers() &&
370
58.6M
           Derived::classofType(TL.getTypePtr());
371
58.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
34.4M
  static bool isKind(const TypeLoc &TL) {
369
34.4M
    return !TL.getType().hasLocalQualifiers() &&
370
34.4M
           Derived::classofType(TL.getTypePtr());
371
34.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
123M
  static bool isKind(const TypeLoc &TL) {
369
123M
    return !TL.getType().hasLocalQualifiers() &&
370
123M
           
Derived::classofType(TL.getTypePtr())123M
;
371
123M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
24.4M
  static bool isKind(const TypeLoc &TL) {
369
24.4M
    return !TL.getType().hasLocalQualifiers() &&
370
24.4M
           Derived::classofType(TL.getTypePtr());
371
24.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
508k
  static bool isKind(const TypeLoc &TL) {
369
508k
    return !TL.getType().hasLocalQualifiers() &&
370
508k
           Derived::classofType(TL.getTypePtr());
371
508k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
104M
  static bool isKind(const TypeLoc &TL) {
369
104M
    return !TL.getType().hasLocalQualifiers() &&
370
104M
           Derived::classofType(TL.getTypePtr());
371
104M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
3.41M
  static bool isKind(const TypeLoc &TL) {
369
3.41M
    return !TL.getType().hasLocalQualifiers() &&
370
3.41M
           Derived::classofType(TL.getTypePtr());
371
3.41M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
1.93M
  static bool isKind(const TypeLoc &TL) {
369
1.93M
    return !TL.getType().hasLocalQualifiers() &&
370
1.93M
           Derived::classofType(TL.getTypePtr());
371
1.93M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
34.2M
  static bool isKind(const TypeLoc &TL) {
369
34.2M
    return !TL.getType().hasLocalQualifiers() &&
370
34.2M
           Derived::classofType(TL.getTypePtr());
371
34.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
30.7M
  static bool isKind(const TypeLoc &TL) {
369
30.7M
    return !TL.getType().hasLocalQualifiers() &&
370
30.7M
           Derived::classofType(TL.getTypePtr());
371
30.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
344
  static bool isKind(const TypeLoc &TL) {
369
344
    return !TL.getType().hasLocalQualifiers() &&
370
344
           Derived::classofType(TL.getTypePtr());
371
344
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
896k
  static bool isKind(const TypeLoc &TL) {
369
896k
    return !TL.getType().hasLocalQualifiers() &&
370
896k
           Derived::classofType(TL.getTypePtr());
371
896k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
735
  static bool isKind(const TypeLoc &TL) {
369
735
    return !TL.getType().hasLocalQualifiers() &&
370
735
           Derived::classofType(TL.getTypePtr());
371
735
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
46.2M
  static bool isKind(const TypeLoc &TL) {
369
46.2M
    return !TL.getType().hasLocalQualifiers() &&
370
46.2M
           
Derived::classofType(TL.getTypePtr())46.2M
;
371
46.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
59.6M
  static bool isKind(const TypeLoc &TL) {
369
59.6M
    return !TL.getType().hasLocalQualifiers() &&
370
59.6M
           Derived::classofType(TL.getTypePtr());
371
59.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
367k
  static bool isKind(const TypeLoc &TL) {
369
367k
    return !TL.getType().hasLocalQualifiers() &&
370
367k
           Derived::classofType(TL.getTypePtr());
371
367k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
10.4M
  static bool isKind(const TypeLoc &TL) {
369
10.4M
    return !TL.getType().hasLocalQualifiers() &&
370
10.4M
           Derived::classofType(TL.getTypePtr());
371
10.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
3.47M
  static bool isKind(const TypeLoc &TL) {
369
3.47M
    return !TL.getType().hasLocalQualifiers() &&
370
3.47M
           Derived::classofType(TL.getTypePtr());
371
3.47M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
13.1M
  static bool isKind(const TypeLoc &TL) {
369
13.1M
    return !TL.getType().hasLocalQualifiers() &&
370
13.1M
           Derived::classofType(TL.getTypePtr());
371
13.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
940k
  static bool isKind(const TypeLoc &TL) {
369
940k
    return !TL.getType().hasLocalQualifiers() &&
370
940k
           Derived::classofType(TL.getTypePtr());
371
940k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
7.47M
  static bool isKind(const TypeLoc &TL) {
369
7.47M
    return !TL.getType().hasLocalQualifiers() &&
370
7.47M
           
Derived::classofType(TL.getTypePtr())7.46M
;
371
7.47M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
1.35k
  static bool isKind(const TypeLoc &TL) {
369
1.35k
    return !TL.getType().hasLocalQualifiers() &&
370
1.35k
           Derived::classofType(TL.getTypePtr());
371
1.35k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
49.1M
  static bool isKind(const TypeLoc &TL) {
369
49.1M
    return !TL.getType().hasLocalQualifiers() &&
370
49.1M
           Derived::classofType(TL.getTypePtr());
371
49.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
38.2k
  static bool isKind(const TypeLoc &TL) {
369
38.2k
    return !TL.getType().hasLocalQualifiers() &&
370
38.2k
           Derived::classofType(TL.getTypePtr());
371
38.2k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
633
  static bool isKind(const TypeLoc &TL) {
369
633
    return !TL.getType().hasLocalQualifiers() &&
370
633
           Derived::classofType(TL.getTypePtr());
371
633
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
21.5k
  static bool isKind(const TypeLoc &TL) {
369
21.5k
    return !TL.getType().hasLocalQualifiers() &&
370
21.5k
           Derived::classofType(TL.getTypePtr());
371
21.5k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
857k
  static bool isKind(const TypeLoc &TL) {
369
857k
    return !TL.getType().hasLocalQualifiers() &&
370
857k
           Derived::classofType(TL.getTypePtr());
371
857k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
340k
  static bool isKind(const TypeLoc &TL) {
369
340k
    return !TL.getType().hasLocalQualifiers() &&
370
340k
           Derived::classofType(TL.getTypePtr());
371
340k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
34.2M
  static bool isKind(const TypeLoc &TL) {
369
34.2M
    return !TL.getType().hasLocalQualifiers() &&
370
34.2M
           Derived::classofType(TL.getTypePtr());
371
34.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
5.04k
  static bool isKind(const TypeLoc &TL) {
369
5.04k
    return !TL.getType().hasLocalQualifiers() &&
370
5.04k
           Derived::classofType(TL.getTypePtr());
371
5.04k
  }
372
373
960M
  static bool classofType(const Type *Ty) {
374
960M
    return TypeClass::classof(Ty);
375
960M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
31.8M
  static bool classofType(const Type *Ty) {
374
31.8M
    return TypeClass::classof(Ty);
375
31.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
260M
  static bool classofType(const Type *Ty) {
374
260M
    return TypeClass::classof(Ty);
375
260M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
24.7M
  static bool classofType(const Type *Ty) {
374
24.7M
    return TypeClass::classof(Ty);
375
24.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
58.6M
  static bool classofType(const Type *Ty) {
374
58.6M
    return TypeClass::classof(Ty);
375
58.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
34.4M
  static bool classofType(const Type *Ty) {
374
34.4M
    return TypeClass::classof(Ty);
375
34.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
123M
  static bool classofType(const Type *Ty) {
374
123M
    return TypeClass::classof(Ty);
375
123M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
24.4M
  static bool classofType(const Type *Ty) {
374
24.4M
    return TypeClass::classof(Ty);
375
24.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
508k
  static bool classofType(const Type *Ty) {
374
508k
    return TypeClass::classof(Ty);
375
508k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
104M
  static bool classofType(const Type *Ty) {
374
104M
    return TypeClass::classof(Ty);
375
104M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
3.41M
  static bool classofType(const Type *Ty) {
374
3.41M
    return TypeClass::classof(Ty);
375
3.41M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
1.93M
  static bool classofType(const Type *Ty) {
374
1.93M
    return TypeClass::classof(Ty);
375
1.93M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
34.2M
  static bool classofType(const Type *Ty) {
374
34.2M
    return TypeClass::classof(Ty);
375
34.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
30.7M
  static bool classofType(const Type *Ty) {
374
30.7M
    return TypeClass::classof(Ty);
375
30.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
344
  static bool classofType(const Type *Ty) {
374
344
    return TypeClass::classof(Ty);
375
344
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
896k
  static bool classofType(const Type *Ty) {
374
896k
    return TypeClass::classof(Ty);
375
896k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
735
  static bool classofType(const Type *Ty) {
374
735
    return TypeClass::classof(Ty);
375
735
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
46.2M
  static bool classofType(const Type *Ty) {
374
46.2M
    return TypeClass::classof(Ty);
375
46.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
59.6M
  static bool classofType(const Type *Ty) {
374
59.6M
    return TypeClass::classof(Ty);
375
59.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
367k
  static bool classofType(const Type *Ty) {
374
367k
    return TypeClass::classof(Ty);
375
367k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
10.4M
  static bool classofType(const Type *Ty) {
374
10.4M
    return TypeClass::classof(Ty);
375
10.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
3.47M
  static bool classofType(const Type *Ty) {
374
3.47M
    return TypeClass::classof(Ty);
375
3.47M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
13.1M
  static bool classofType(const Type *Ty) {
374
13.1M
    return TypeClass::classof(Ty);
375
13.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
940k
  static bool classofType(const Type *Ty) {
374
940k
    return TypeClass::classof(Ty);
375
940k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
7.46M
  static bool classofType(const Type *Ty) {
374
7.46M
    return TypeClass::classof(Ty);
375
7.46M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
1.35k
  static bool classofType(const Type *Ty) {
374
1.35k
    return TypeClass::classof(Ty);
375
1.35k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
49.1M
  static bool classofType(const Type *Ty) {
374
49.1M
    return TypeClass::classof(Ty);
375
49.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
38.2k
  static bool classofType(const Type *Ty) {
374
38.2k
    return TypeClass::classof(Ty);
375
38.2k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
633
  static bool classofType(const Type *Ty) {
374
633
    return TypeClass::classof(Ty);
375
633
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
21.5k
  static bool classofType(const Type *Ty) {
374
21.5k
    return TypeClass::classof(Ty);
375
21.5k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
857k
  static bool classofType(const Type *Ty) {
374
857k
    return TypeClass::classof(Ty);
375
857k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
340k
  static bool classofType(const Type *Ty) {
374
340k
    return TypeClass::classof(Ty);
375
340k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
34.2M
  static bool classofType(const Type *Ty) {
374
34.2M
    return TypeClass::classof(Ty);
375
34.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
5.04k
  static bool classofType(const Type *Ty) {
374
5.04k
    return TypeClass::classof(Ty);
375
5.04k
  }
376
377
public:
378
390M
  unsigned getLocalDataAlignment() const {
379
390M
    return std::max(unsigned(alignof(LocalData)),
380
390M
                    asDerived()->getExtraLocalDataAlignment());
381
390M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
7.23k
  unsigned getLocalDataAlignment() const {
379
7.23k
    return std::max(unsigned(alignof(LocalData)),
380
7.23k
                    asDerived()->getExtraLocalDataAlignment());
381
7.23k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
785k
  unsigned getLocalDataAlignment() const {
379
785k
    return std::max(unsigned(alignof(LocalData)),
380
785k
                    asDerived()->getExtraLocalDataAlignment());
381
785k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
11.0k
  unsigned getLocalDataAlignment() const {
379
11.0k
    return std::max(unsigned(alignof(LocalData)),
380
11.0k
                    asDerived()->getExtraLocalDataAlignment());
381
11.0k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
4.49M
  unsigned getLocalDataAlignment() const {
379
4.49M
    return std::max(unsigned(alignof(LocalData)),
380
4.49M
                    asDerived()->getExtraLocalDataAlignment());
381
4.49M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
183
  unsigned getLocalDataAlignment() const {
379
183
    return std::max(unsigned(alignof(LocalData)),
380
183
                    asDerived()->getExtraLocalDataAlignment());
381
183
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
229M
  unsigned getLocalDataAlignment() const {
379
229M
    return std::max(unsigned(alignof(LocalData)),
380
229M
                    asDerived()->getExtraLocalDataAlignment());
381
229M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
190k
  unsigned getLocalDataAlignment() const {
379
190k
    return std::max(unsigned(alignof(LocalData)),
380
190k
                    asDerived()->getExtraLocalDataAlignment());
381
190k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
37.3M
  unsigned getLocalDataAlignment() const {
379
37.3M
    return std::max(unsigned(alignof(LocalData)),
380
37.3M
                    asDerived()->getExtraLocalDataAlignment());
381
37.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
866k
  unsigned getLocalDataAlignment() const {
379
866k
    return std::max(unsigned(alignof(LocalData)),
380
866k
                    asDerived()->getExtraLocalDataAlignment());
381
866k
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
659k
  unsigned getLocalDataAlignment() const {
379
659k
    return std::max(unsigned(alignof(LocalData)),
380
659k
                    asDerived()->getExtraLocalDataAlignment());
381
659k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
250
  unsigned getLocalDataAlignment() const {
379
250
    return std::max(unsigned(alignof(LocalData)),
380
250
                    asDerived()->getExtraLocalDataAlignment());
381
250
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
7.83M
  unsigned getLocalDataAlignment() const {
379
7.83M
    return std::max(unsigned(alignof(LocalData)),
380
7.83M
                    asDerived()->getExtraLocalDataAlignment());
381
7.83M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
61
  unsigned getLocalDataAlignment() const {
379
61
    return std::max(unsigned(alignof(LocalData)),
380
61
                    asDerived()->getExtraLocalDataAlignment());
381
61
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
216k
  unsigned getLocalDataAlignment() const {
379
216k
    return std::max(unsigned(alignof(LocalData)),
380
216k
                    asDerived()->getExtraLocalDataAlignment());
381
216k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
130
  unsigned getLocalDataAlignment() const {
379
130
    return std::max(unsigned(alignof(LocalData)),
380
130
                    asDerived()->getExtraLocalDataAlignment());
381
130
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
6.99M
  unsigned getLocalDataAlignment() const {
379
6.99M
    return std::max(unsigned(alignof(LocalData)),
380
6.99M
                    asDerived()->getExtraLocalDataAlignment());
381
6.99M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
33.2M
  unsigned getLocalDataAlignment() const {
379
33.2M
    return std::max(unsigned(alignof(LocalData)),
380
33.2M
                    asDerived()->getExtraLocalDataAlignment());
381
33.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
246k
  unsigned getLocalDataAlignment() const {
379
246k
    return std::max(unsigned(alignof(LocalData)),
380
246k
                    asDerived()->getExtraLocalDataAlignment());
381
246k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
1.94k
  unsigned getLocalDataAlignment() const {
379
1.94k
    return std::max(unsigned(alignof(LocalData)),
380
1.94k
                    asDerived()->getExtraLocalDataAlignment());
381
1.94k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
49.1k
  unsigned getLocalDataAlignment() const {
379
49.1k
    return std::max(unsigned(alignof(LocalData)),
380
49.1k
                    asDerived()->getExtraLocalDataAlignment());
381
49.1k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
4.00M
  unsigned getLocalDataAlignment() const {
379
4.00M
    return std::max(unsigned(alignof(LocalData)),
380
4.00M
                    asDerived()->getExtraLocalDataAlignment());
381
4.00M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
1.36M
  unsigned getLocalDataAlignment() const {
379
1.36M
    return std::max(unsigned(alignof(LocalData)),
380
1.36M
                    asDerived()->getExtraLocalDataAlignment());
381
1.36M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
5.46M
  unsigned getLocalDataAlignment() const {
379
5.46M
    return std::max(unsigned(alignof(LocalData)),
380
5.46M
                    asDerived()->getExtraLocalDataAlignment());
381
5.46M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
226k
  unsigned getLocalDataAlignment() const {
379
226k
    return std::max(unsigned(alignof(LocalData)),
380
226k
                    asDerived()->getExtraLocalDataAlignment());
381
226k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
1.18M
  unsigned getLocalDataAlignment() const {
379
1.18M
    return std::max(unsigned(alignof(LocalData)),
380
1.18M
                    asDerived()->getExtraLocalDataAlignment());
381
1.18M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
1.21M
  unsigned getLocalDataAlignment() const {
379
1.21M
    return std::max(unsigned(alignof(LocalData)),
380
1.21M
                    asDerived()->getExtraLocalDataAlignment());
381
1.21M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
273
  unsigned getLocalDataAlignment() const {
379
273
    return std::max(unsigned(alignof(LocalData)),
380
273
                    asDerived()->getExtraLocalDataAlignment());
381
273
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
11.8M
  unsigned getLocalDataAlignment() const {
379
11.8M
    return std::max(unsigned(alignof(LocalData)),
380
11.8M
                    asDerived()->getExtraLocalDataAlignment());
381
11.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
10.3M
  unsigned getLocalDataAlignment() const {
379
10.3M
    return std::max(unsigned(alignof(LocalData)),
380
10.3M
                    asDerived()->getExtraLocalDataAlignment());
381
10.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
32.4M
  unsigned getLocalDataAlignment() const {
379
32.4M
    return std::max(unsigned(alignof(LocalData)),
380
32.4M
                    asDerived()->getExtraLocalDataAlignment());
381
32.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
13.5k
  unsigned getLocalDataAlignment() const {
379
13.5k
    return std::max(unsigned(alignof(LocalData)),
380
13.5k
                    asDerived()->getExtraLocalDataAlignment());
381
13.5k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
128
  unsigned getLocalDataAlignment() const {
379
128
    return std::max(unsigned(alignof(LocalData)),
380
128
                    asDerived()->getExtraLocalDataAlignment());
381
128
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
5.16k
  unsigned getLocalDataAlignment() const {
379
5.16k
    return std::max(unsigned(alignof(LocalData)),
380
5.16k
                    asDerived()->getExtraLocalDataAlignment());
381
5.16k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
196k
  unsigned getLocalDataAlignment() const {
379
196k
    return std::max(unsigned(alignof(LocalData)),
380
196k
                    asDerived()->getExtraLocalDataAlignment());
381
196k
  }
382
383
388M
  unsigned getLocalDataSize() const {
384
388M
    unsigned size = sizeof(LocalData);
385
388M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
388M
    size = llvm::alignTo(size, extraAlign);
387
388M
    size += asDerived()->getExtraLocalDataSize();
388
388M
    return size;
389
388M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getLocalDataSize() const
Line
Count
Source
383
10.9M
  unsigned getLocalDataSize() const {
384
10.9M
    unsigned size = sizeof(LocalData);
385
10.9M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
10.9M
    size = llvm::alignTo(size, extraAlign);
387
10.9M
    size += asDerived()->getExtraLocalDataSize();
388
10.9M
    return size;
389
10.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getLocalDataSize() const
Line
Count
Source
383
180
  unsigned getLocalDataSize() const {
384
180
    unsigned size = sizeof(LocalData);
385
180
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
180
    size = llvm::alignTo(size, extraAlign);
387
180
    size += asDerived()->getExtraLocalDataSize();
388
180
    return size;
389
180
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
1.90M
  unsigned getLocalDataSize() const {
384
1.90M
    unsigned size = sizeof(LocalData);
385
1.90M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.90M
    size = llvm::alignTo(size, extraAlign);
387
1.90M
    size += asDerived()->getExtraLocalDataSize();
388
1.90M
    return size;
389
1.90M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getLocalDataSize() const
Line
Count
Source
383
761k
  unsigned getLocalDataSize() const {
384
761k
    unsigned size = sizeof(LocalData);
385
761k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
761k
    size = llvm::alignTo(size, extraAlign);
387
761k
    size += asDerived()->getExtraLocalDataSize();
388
761k
    return size;
389
761k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getLocalDataSize() const
Line
Count
Source
383
1.24M
  unsigned getLocalDataSize() const {
384
1.24M
    unsigned size = sizeof(LocalData);
385
1.24M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.24M
    size = llvm::alignTo(size, extraAlign);
387
1.24M
    size += asDerived()->getExtraLocalDataSize();
388
1.24M
    return size;
389
1.24M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getLocalDataSize() const
Line
Count
Source
383
99.1M
  unsigned getLocalDataSize() const {
384
99.1M
    unsigned size = sizeof(LocalData);
385
99.1M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
99.1M
    size = llvm::alignTo(size, extraAlign);
387
99.1M
    size += asDerived()->getExtraLocalDataSize();
388
99.1M
    return size;
389
99.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getLocalDataSize() const
Line
Count
Source
383
1.76M
  unsigned getLocalDataSize() const {
384
1.76M
    unsigned size = sizeof(LocalData);
385
1.76M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.76M
    size = llvm::alignTo(size, extraAlign);
387
1.76M
    size += asDerived()->getExtraLocalDataSize();
388
1.76M
    return size;
389
1.76M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getLocalDataSize() const
Line
Count
Source
383
277
  unsigned getLocalDataSize() const {
384
277
    unsigned size = sizeof(LocalData);
385
277
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
277
    size = llvm::alignTo(size, extraAlign);
387
277
    size += asDerived()->getExtraLocalDataSize();
388
277
    return size;
389
277
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
468k
  unsigned getLocalDataSize() const {
384
468k
    unsigned size = sizeof(LocalData);
385
468k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
468k
    size = llvm::alignTo(size, extraAlign);
387
468k
    size += asDerived()->getExtraLocalDataSize();
388
468k
    return size;
389
468k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
475
  unsigned getLocalDataSize() const {
384
475
    unsigned size = sizeof(LocalData);
385
475
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
475
    size = llvm::alignTo(size, extraAlign);
387
475
    size += asDerived()->getExtraLocalDataSize();
388
475
    return size;
389
475
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
211
  unsigned getLocalDataSize() const {
384
211
    unsigned size = sizeof(LocalData);
385
211
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
211
    size = llvm::alignTo(size, extraAlign);
387
211
    size += asDerived()->getExtraLocalDataSize();
388
211
    return size;
389
211
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getLocalDataSize() const
Line
Count
Source
383
13.2M
  unsigned getLocalDataSize() const {
384
13.2M
    unsigned size = sizeof(LocalData);
385
13.2M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
13.2M
    size = llvm::alignTo(size, extraAlign);
387
13.2M
    size += asDerived()->getExtraLocalDataSize();
388
13.2M
    return size;
389
13.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
3.53M
  unsigned getLocalDataSize() const {
384
3.53M
    unsigned size = sizeof(LocalData);
385
3.53M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
3.53M
    size = llvm::alignTo(size, extraAlign);
387
3.53M
    size += asDerived()->getExtraLocalDataSize();
388
3.53M
    return size;
389
3.53M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
30.9k
  unsigned getLocalDataSize() const {
384
30.9k
    unsigned size = sizeof(LocalData);
385
30.9k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
30.9k
    size = llvm::alignTo(size, extraAlign);
387
30.9k
    size += asDerived()->getExtraLocalDataSize();
388
30.9k
    return size;
389
30.9k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
806
  unsigned getLocalDataSize() const {
384
806
    unsigned size = sizeof(LocalData);
385
806
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
806
    size = llvm::alignTo(size, extraAlign);
387
806
    size += asDerived()->getExtraLocalDataSize();
388
806
    return size;
389
806
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
222k
  unsigned getLocalDataSize() const {
384
222k
    unsigned size = sizeof(LocalData);
385
222k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
222k
    size = llvm::alignTo(size, extraAlign);
387
222k
    size += asDerived()->getExtraLocalDataSize();
388
222k
    return size;
389
222k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getLocalDataSize() const
Line
Count
Source
383
231k
  unsigned getLocalDataSize() const {
384
231k
    unsigned size = sizeof(LocalData);
385
231k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
231k
    size = llvm::alignTo(size, extraAlign);
387
231k
    size += asDerived()->getExtraLocalDataSize();
388
231k
    return size;
389
231k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
4.52M
  unsigned getLocalDataSize() const {
384
4.52M
    unsigned size = sizeof(LocalData);
385
4.52M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
4.52M
    size = llvm::alignTo(size, extraAlign);
387
4.52M
    size += asDerived()->getExtraLocalDataSize();
388
4.52M
    return size;
389
4.52M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
28.9M
  unsigned getLocalDataSize() const {
384
28.9M
    unsigned size = sizeof(LocalData);
385
28.9M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
28.9M
    size = llvm::alignTo(size, extraAlign);
387
28.9M
    size += asDerived()->getExtraLocalDataSize();
388
28.9M
    return size;
389
28.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
22.1M
  unsigned getLocalDataSize() const {
384
22.1M
    unsigned size = sizeof(LocalData);
385
22.1M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
22.1M
    size = llvm::alignTo(size, extraAlign);
387
22.1M
    size += asDerived()->getExtraLocalDataSize();
388
22.1M
    return size;
389
22.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getLocalDataSize() const
Line
Count
Source
383
145M
  unsigned getLocalDataSize() const {
384
145M
    unsigned size = sizeof(LocalData);
385
145M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
145M
    size = llvm::alignTo(size, extraAlign);
387
145M
    size += asDerived()->getExtraLocalDataSize();
388
145M
    return size;
389
145M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getLocalDataSize() const
Line
Count
Source
383
16.2M
  unsigned getLocalDataSize() const {
384
16.2M
    unsigned size = sizeof(LocalData);
385
16.2M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
16.2M
    size = llvm::alignTo(size, extraAlign);
387
16.2M
    size += asDerived()->getExtraLocalDataSize();
388
16.2M
    return size;
389
16.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
709k
  unsigned getLocalDataSize() const {
384
709k
    unsigned size = sizeof(LocalData);
385
709k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
709k
    size = llvm::alignTo(size, extraAlign);
387
709k
    size += asDerived()->getExtraLocalDataSize();
388
709k
    return size;
389
709k
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
488k
  unsigned getLocalDataSize() const {
384
488k
    unsigned size = sizeof(LocalData);
385
488k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
488k
    size = llvm::alignTo(size, extraAlign);
387
488k
    size += asDerived()->getExtraLocalDataSize();
388
488k
    return size;
389
488k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getLocalDataSize() const
Line
Count
Source
383
6.00M
  unsigned getLocalDataSize() const {
384
6.00M
    unsigned size = sizeof(LocalData);
385
6.00M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
6.00M
    size = llvm::alignTo(size, extraAlign);
387
6.00M
    size += asDerived()->getExtraLocalDataSize();
388
6.00M
    return size;
389
6.00M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getLocalDataSize() const
Line
Count
Source
383
211k
  unsigned getLocalDataSize() const {
384
211k
    unsigned size = sizeof(LocalData);
385
211k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
211k
    size = llvm::alignTo(size, extraAlign);
387
211k
    size += asDerived()->getExtraLocalDataSize();
388
211k
    return size;
389
211k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
1.94k
  unsigned getLocalDataSize() const {
384
1.94k
    unsigned size = sizeof(LocalData);
385
1.94k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.94k
    size = llvm::alignTo(size, extraAlign);
387
1.94k
    size += asDerived()->getExtraLocalDataSize();
388
1.94k
    return size;
389
1.94k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getLocalDataSize() const
Line
Count
Source
383
1.93M
  unsigned getLocalDataSize() const {
384
1.93M
    unsigned size = sizeof(LocalData);
385
1.93M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.93M
    size = llvm::alignTo(size, extraAlign);
387
1.93M
    size += asDerived()->getExtraLocalDataSize();
388
1.93M
    return size;
389
1.93M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
134k
  unsigned getLocalDataSize() const {
384
134k
    unsigned size = sizeof(LocalData);
385
134k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
134k
    size = llvm::alignTo(size, extraAlign);
387
134k
    size += asDerived()->getExtraLocalDataSize();
388
134k
    return size;
389
134k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getLocalDataSize() const
Line
Count
Source
383
27.8M
  unsigned getLocalDataSize() const {
384
27.8M
    unsigned size = sizeof(LocalData);
385
27.8M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
27.8M
    size = llvm::alignTo(size, extraAlign);
387
27.8M
    size += asDerived()->getExtraLocalDataSize();
388
27.8M
    return size;
389
27.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
4.31k
  unsigned getLocalDataSize() const {
384
4.31k
    unsigned size = sizeof(LocalData);
385
4.31k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
4.31k
    size = llvm::alignTo(size, extraAlign);
387
4.31k
    size += asDerived()->getExtraLocalDataSize();
388
4.31k
    return size;
389
4.31k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
120
  unsigned getLocalDataSize() const {
384
120
    unsigned size = sizeof(LocalData);
385
120
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
120
    size = llvm::alignTo(size, extraAlign);
387
120
    size += asDerived()->getExtraLocalDataSize();
388
120
    return size;
389
120
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
5.15k
  unsigned getLocalDataSize() const {
384
5.15k
    unsigned size = sizeof(LocalData);
385
5.15k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
5.15k
    size = llvm::alignTo(size, extraAlign);
387
5.15k
    size += asDerived()->getExtraLocalDataSize();
388
5.15k
    return size;
389
5.15k
  }
390
391
2.60k
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
2.60k
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
2.60k
    memcpy(getLocalData(), other.getLocalData(), sizeof(LocalData));
397
398
    // Copy the variable-sized local data. We need to do this
399
    // separately because the padding in the source and the padding in
400
    // the destination might be different.
401
2.60k
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
2.60k
           asDerived()->getExtraLocalDataSize());
403
2.60k
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::copyLocal(clang::AdjustedTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::copyLocal(clang::ArrayTypeLoc)
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::copyLocal(clang::AtomicTypeLoc)
Line
Count
Source
391
1
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
1
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
1
    memcpy(getLocalData(), other.getLocalData(), sizeof(LocalData));
397
398
    // Copy the variable-sized local data. We need to do this
399
    // separately because the padding in the source and the padding in
400
    // the destination might be different.
401
1
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
1
           asDerived()->getExtraLocalDataSize());
403
1
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::copyLocal(clang::AttributedTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::copyLocal(clang::BTFTagAttributedTypeLoc)
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::copyLocal(clang::TypeSpecTypeLoc)
Line
Count
Source
391
1.63k
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
1.63k
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
1.63k
    memcpy(getLocalData(), other.getLocalData(), sizeof(LocalData));
397
398
    // Copy the variable-sized local data. We need to do this
399
    // separately because the padding in the source and the padding in
400
    // the destination might be different.
401
1.63k
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
1.63k
           asDerived()->getExtraLocalDataSize());
403
1.63k
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::copyLocal(clang::BlockPointerTypeLoc)
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::copyLocal(clang::BuiltinTypeLoc)
Line
Count
Source
391
880
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
880
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
880
    memcpy(getLocalData(), other.getLocalData(), sizeof(LocalData));
397
398
    // Copy the variable-sized local data. We need to do this
399
    // separately because the padding in the source and the padding in
400
    // the destination might be different.
401
880
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
880
           asDerived()->getExtraLocalDataSize());
403
880
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::copyLocal(clang::DecltypeTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::copyLocal(clang::AutoTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::copyLocal(clang::DependentAddressSpaceTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::copyLocal(clang::DependentNameTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::copyLocal(clang::DependentSizedExtVectorTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::copyLocal(clang::DependentTemplateSpecializationTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::copyLocal(clang::DependentVectorTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::copyLocal(clang::ElaboratedTypeLoc)
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::copyLocal(clang::FunctionTypeLoc)
Line
Count
Source
391
3
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
3
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
3
    memcpy(getLocalData(), other.getLocalData(), sizeof(LocalData));
397
398
    // Copy the variable-sized local data. We need to do this
399
    // separately because the padding in the source and the padding in
400
    // the destination might be different.
401
3
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
3
           asDerived()->getExtraLocalDataSize());
403
3
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::copyLocal(clang::MacroQualifiedTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::copyLocal(clang::MatrixTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::copyLocal(clang::MemberPointerTypeLoc)
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::copyLocal(clang::ObjCObjectPointerTypeLoc)
Line
Count
Source
391
18
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
18
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
18
    memcpy(getLocalData(), other.getLocalData(), sizeof(LocalData));
397
398
    // Copy the variable-sized local data. We need to do this
399
    // separately because the padding in the source and the padding in
400
    // the destination might be different.
401
18
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
18
           asDerived()->getExtraLocalDataSize());
403
18
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::copyLocal(clang::ObjCObjectTypeLoc)
Line
Count
Source
391
18
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
18
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
18
    memcpy(getLocalData(), other.getLocalData(), sizeof(LocalData));
397
398
    // Copy the variable-sized local data. We need to do this
399
    // separately because the padding in the source and the padding in
400
    // the destination might be different.
401
18
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
18
           asDerived()->getExtraLocalDataSize());
403
18
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::copyLocal(clang::ObjCInterfaceTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::copyLocal(clang::ObjCTypeParamTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::copyLocal(clang::PackExpansionTypeLoc)
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::copyLocal(clang::ParenTypeLoc)
Line
Count
Source
391
3
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
3
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
3
    memcpy(getLocalData(), other.getLocalData(), sizeof(LocalData));
397
398
    // Copy the variable-sized local data. We need to do this
399
    // separately because the padding in the source and the padding in
400
    // the destination might be different.
401
3
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
3
           asDerived()->getExtraLocalDataSize());
403
3
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::copyLocal(clang::PipeTypeLoc)
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::copyLocal(clang::PointerTypeLoc)
Line
Count
Source
391
41
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
41
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
41
    memcpy(getLocalData(), other.getLocalData(), sizeof(LocalData));
397
398
    // Copy the variable-sized local data. We need to do this
399
    // separately because the padding in the source and the padding in
400
    // the destination might be different.
401
41
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
41
           asDerived()->getExtraLocalDataSize());
403
41
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::copyLocal(clang::ReferenceTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::copyLocal(clang::TemplateSpecializationTypeLoc)
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::copyLocal(clang::TypeOfExprTypeLoc)
Line
Count
Source
391
1
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
1
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
1
    memcpy(getLocalData(), other.getLocalData(), sizeof(LocalData));
397
398
    // Copy the variable-sized local data. We need to do this
399
    // separately because the padding in the source and the padding in
400
    // the destination might be different.
401
1
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
1
           asDerived()->getExtraLocalDataSize());
403
1
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::copyLocal(clang::TypeOfTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::copyLocal(clang::UnaryTransformTypeLoc)
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::copyLocal(clang::VectorTypeLoc)
Line
Count
Source
391
2
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
2
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
2
    memcpy(getLocalData(), other.getLocalData(), sizeof(LocalData));
397
398
    // Copy the variable-sized local data. We need to do this
399
    // separately because the padding in the source and the padding in
400
    // the destination might be different.
401
2
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
2
           asDerived()->getExtraLocalDataSize());
403
2
  }
404
405
454M
  TypeLoc getNextTypeLoc() const {
406
454M
    return getNextTypeLoc(asDerived()->getInnerType());
407
454M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
10.4k
  TypeLoc getNextTypeLoc() const {
406
10.4k
    return getNextTypeLoc(asDerived()->getInnerType());
407
10.4k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
1.15M
  TypeLoc getNextTypeLoc() const {
406
1.15M
    return getNextTypeLoc(asDerived()->getInnerType());
407
1.15M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
16.1k
  TypeLoc getNextTypeLoc() const {
406
16.1k
    return getNextTypeLoc(asDerived()->getInnerType());
407
16.1k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
5.79M
  TypeLoc getNextTypeLoc() const {
406
5.79M
    return getNextTypeLoc(asDerived()->getInnerType());
407
5.79M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
86
  TypeLoc getNextTypeLoc() const {
406
86
    return getNextTypeLoc(asDerived()->getInnerType());
407
86
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
208M
  TypeLoc getNextTypeLoc() const {
406
208M
    return getNextTypeLoc(asDerived()->getInnerType());
407
208M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
158k
  TypeLoc getNextTypeLoc() const {
406
158k
    return getNextTypeLoc(asDerived()->getInnerType());
407
158k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
26.8M
  TypeLoc getNextTypeLoc() const {
406
26.8M
    return getNextTypeLoc(asDerived()->getInnerType());
407
26.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
1.07M
  TypeLoc getNextTypeLoc() const {
406
1.07M
    return getNextTypeLoc(asDerived()->getInnerType());
407
1.07M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
572k
  TypeLoc getNextTypeLoc() const {
406
572k
    return getNextTypeLoc(asDerived()->getInnerType());
407
572k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
194
  TypeLoc getNextTypeLoc() const {
406
194
    return getNextTypeLoc(asDerived()->getInnerType());
407
194
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
9.15M
  TypeLoc getNextTypeLoc() const {
406
9.15M
    return getNextTypeLoc(asDerived()->getInnerType());
407
9.15M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
132
  TypeLoc getNextTypeLoc() const {
406
132
    return getNextTypeLoc(asDerived()->getInnerType());
407
132
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
299k
  TypeLoc getNextTypeLoc() const {
406
299k
    return getNextTypeLoc(asDerived()->getInnerType());
407
299k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
260
  TypeLoc getNextTypeLoc() const {
406
260
    return getNextTypeLoc(asDerived()->getInnerType());
407
260
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
7.63M
  TypeLoc getNextTypeLoc() const {
406
7.63M
    return getNextTypeLoc(asDerived()->getInnerType());
407
7.63M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
65.3M
  TypeLoc getNextTypeLoc() const {
406
65.3M
    return getNextTypeLoc(asDerived()->getInnerType());
407
65.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
350k
  TypeLoc getNextTypeLoc() const {
406
350k
    return getNextTypeLoc(asDerived()->getInnerType());
407
350k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
2.81k
  TypeLoc getNextTypeLoc() const {
406
2.81k
    return getNextTypeLoc(asDerived()->getInnerType());
407
2.81k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
184k
  TypeLoc getNextTypeLoc() const {
406
184k
    return getNextTypeLoc(asDerived()->getInnerType());
407
184k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
3.14M
  TypeLoc getNextTypeLoc() const {
406
3.14M
    return getNextTypeLoc(asDerived()->getInnerType());
407
3.14M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
935k
  TypeLoc getNextTypeLoc() const {
406
935k
    return getNextTypeLoc(asDerived()->getInnerType());
407
935k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
3.02M
  TypeLoc getNextTypeLoc() const {
406
3.02M
    return getNextTypeLoc(asDerived()->getInnerType());
407
3.02M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
292k
  TypeLoc getNextTypeLoc() const {
406
292k
    return getNextTypeLoc(asDerived()->getInnerType());
407
292k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
1.95M
  TypeLoc getNextTypeLoc() const {
406
1.95M
    return getNextTypeLoc(asDerived()->getInnerType());
407
1.95M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
834k
  TypeLoc getNextTypeLoc() const {
406
834k
    return getNextTypeLoc(asDerived()->getInnerType());
407
834k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
543
  TypeLoc getNextTypeLoc() const {
406
543
    return getNextTypeLoc(asDerived()->getInnerType());
407
543
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
18.5M
  TypeLoc getNextTypeLoc() const {
406
18.5M
    return getNextTypeLoc(asDerived()->getInnerType());
407
18.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
13.4M
  TypeLoc getNextTypeLoc() const {
406
13.4M
    return getNextTypeLoc(asDerived()->getInnerType());
407
13.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
84.4M
  TypeLoc getNextTypeLoc() const {
406
84.4M
    return getNextTypeLoc(asDerived()->getInnerType());
407
84.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
7.45k
  TypeLoc getNextTypeLoc() const {
406
7.45k
    return getNextTypeLoc(asDerived()->getInnerType());
407
7.45k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
186
  TypeLoc getNextTypeLoc() const {
406
186
    return getNextTypeLoc(asDerived()->getInnerType());
407
186
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
6.88k
  TypeLoc getNextTypeLoc() const {
406
6.88k
    return getNextTypeLoc(asDerived()->getInnerType());
407
6.88k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
322k
  TypeLoc getNextTypeLoc() const {
406
322k
    return getNextTypeLoc(asDerived()->getInnerType());
407
322k
  }
408
409
866M
  const TypeClass *getTypePtr() const {
410
866M
    return cast<TypeClass>(Base::getTypePtr());
411
866M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getTypePtr() const
Line
Count
Source
409
112M
  const TypeClass *getTypePtr() const {
410
112M
    return cast<TypeClass>(Base::getTypePtr());
411
112M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getTypePtr() const
Line
Count
Source
409
10.5M
  const TypeClass *getTypePtr() const {
410
10.5M
    return cast<TypeClass>(Base::getTypePtr());
411
10.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
336k
  const TypeClass *getTypePtr() const {
410
336k
    return cast<TypeClass>(Base::getTypePtr());
411
336k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getTypePtr() const
Line
Count
Source
409
18.5M
  const TypeClass *getTypePtr() const {
410
18.5M
    return cast<TypeClass>(Base::getTypePtr());
411
18.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getTypePtr() const
Line
Count
Source
409
284
  const TypeClass *getTypePtr() const {
410
284
    return cast<TypeClass>(Base::getTypePtr());
411
284
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
6.87M
  const TypeClass *getTypePtr() const {
410
6.87M
    return cast<TypeClass>(Base::getTypePtr());
411
6.87M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getTypePtr() const
Line
Count
Source
409
39.8k
  const TypeClass *getTypePtr() const {
410
39.8k
    return cast<TypeClass>(Base::getTypePtr());
411
39.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getTypePtr() const
Line
Count
Source
409
1.28M
  const TypeClass *getTypePtr() const {
410
1.28M
    return cast<TypeClass>(Base::getTypePtr());
411
1.28M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getTypePtr() const
Line
Count
Source
409
1.82M
  const TypeClass *getTypePtr() const {
410
1.82M
    return cast<TypeClass>(Base::getTypePtr());
411
1.82M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getTypePtr() const
Line
Count
Source
409
25.2k
  const TypeClass *getTypePtr() const {
410
25.2k
    return cast<TypeClass>(Base::getTypePtr());
411
25.2k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getTypePtr() const
Line
Count
Source
409
399k
  const TypeClass *getTypePtr() const {
410
399k
    return cast<TypeClass>(Base::getTypePtr());
411
399k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getTypePtr() const
Line
Count
Source
409
30.6M
  const TypeClass *getTypePtr() const {
410
30.6M
    return cast<TypeClass>(Base::getTypePtr());
411
30.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getTypePtr() const
Line
Count
Source
409
543M
  const TypeClass *getTypePtr() const {
410
543M
    return cast<TypeClass>(Base::getTypePtr());
411
543M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getTypePtr() const
Line
Count
Source
409
2.49M
  const TypeClass *getTypePtr() const {
410
2.49M
    return cast<TypeClass>(Base::getTypePtr());
411
2.49M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getTypePtr() const
Line
Count
Source
409
57.5M
  const TypeClass *getTypePtr() const {
410
57.5M
    return cast<TypeClass>(Base::getTypePtr());
411
57.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getTypePtr() const
Line
Count
Source
409
466
  const TypeClass *getTypePtr() const {
410
466
    return cast<TypeClass>(Base::getTypePtr());
411
466
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
651k
  const TypeClass *getTypePtr() const {
410
651k
    return cast<TypeClass>(Base::getTypePtr());
411
651k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
775
  const TypeClass *getTypePtr() const {
410
775
    return cast<TypeClass>(Base::getTypePtr());
411
775
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
321
  const TypeClass *getTypePtr() const {
410
321
    return cast<TypeClass>(Base::getTypePtr());
411
321
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
4.29k
  const TypeClass *getTypePtr() const {
410
4.29k
    return cast<TypeClass>(Base::getTypePtr());
411
4.29k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
3
  const TypeClass *getTypePtr() const {
410
3
    return cast<TypeClass>(Base::getTypePtr());
411
3
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
146k
  const TypeClass *getTypePtr() const {
410
146k
    return cast<TypeClass>(Base::getTypePtr());
411
146k
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
992k
  const TypeClass *getTypePtr() const {
410
992k
    return cast<TypeClass>(Base::getTypePtr());
411
992k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getTypePtr() const
Line
Count
Source
409
20.3M
  const TypeClass *getTypePtr() const {
410
20.3M
    return cast<TypeClass>(Base::getTypePtr());
411
20.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getTypePtr() const
Line
Count
Source
409
5.82M
  const TypeClass *getTypePtr() const {
410
5.82M
    return cast<TypeClass>(Base::getTypePtr());
411
5.82M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getTypePtr() const
Line
Count
Source
409
679k
  const TypeClass *getTypePtr() const {
410
679k
    return cast<TypeClass>(Base::getTypePtr());
411
679k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
5.03M
  const TypeClass *getTypePtr() const {
410
5.03M
    return cast<TypeClass>(Base::getTypePtr());
411
5.03M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
43.2k
  const TypeClass *getTypePtr() const {
410
43.2k
    return cast<TypeClass>(Base::getTypePtr());
411
43.2k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
1.09k
  const TypeClass *getTypePtr() const {
410
1.09k
    return cast<TypeClass>(Base::getTypePtr());
411
1.09k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getTypePtr() const
Line
Count
Source
409
323k
  const TypeClass *getTypePtr() const {
410
323k
    return cast<TypeClass>(Base::getTypePtr());
411
323k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
375
  const TypeClass *getTypePtr() const {
410
375
    return cast<TypeClass>(Base::getTypePtr());
411
375
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getTypePtr() const
Line
Count
Source
409
6.45M
  const TypeClass *getTypePtr() const {
410
6.45M
    return cast<TypeClass>(Base::getTypePtr());
411
6.45M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getTypePtr() const
Line
Count
Source
409
39.9M
  const TypeClass *getTypePtr() const {
410
39.9M
    return cast<TypeClass>(Base::getTypePtr());
411
39.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
1.27k
  const TypeClass *getTypePtr() const {
410
1.27k
    return cast<TypeClass>(Base::getTypePtr());
411
1.27k
  }
412
413
protected:
414
242M
  unsigned getExtraLocalDataSize() const {
415
242M
    return 0;
416
242M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
10.9M
  unsigned getExtraLocalDataSize() const {
415
10.9M
    return 0;
416
10.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
180
  unsigned getExtraLocalDataSize() const {
415
180
    return 0;
416
180
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
761k
  unsigned getExtraLocalDataSize() const {
415
761k
    return 0;
416
761k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
1.24M
  unsigned getExtraLocalDataSize() const {
415
1.24M
    return 0;
416
1.24M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
1.76M
  unsigned getExtraLocalDataSize() const {
415
1.76M
    return 0;
416
1.76M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
277
  unsigned getExtraLocalDataSize() const {
415
277
    return 0;
416
277
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
468k
  unsigned getExtraLocalDataSize() const {
415
468k
    return 0;
416
468k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
475
  unsigned getExtraLocalDataSize() const {
415
475
    return 0;
416
475
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
211
  unsigned getExtraLocalDataSize() const {
415
211
    return 0;
416
211
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
13.2M
  unsigned getExtraLocalDataSize() const {
415
13.2M
    return 0;
416
13.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
3.53M
  unsigned getExtraLocalDataSize() const {
415
3.53M
    return 0;
416
3.53M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
30.9k
  unsigned getExtraLocalDataSize() const {
415
30.9k
    return 0;
416
30.9k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
806
  unsigned getExtraLocalDataSize() const {
415
806
    return 0;
416
806
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
222k
  unsigned getExtraLocalDataSize() const {
415
222k
    return 0;
416
222k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
231k
  unsigned getExtraLocalDataSize() const {
415
231k
    return 0;
416
231k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
4.52M
  unsigned getExtraLocalDataSize() const {
415
4.52M
    return 0;
416
4.52M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
28.9M
  unsigned getExtraLocalDataSize() const {
415
28.9M
    return 0;
416
28.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
22.1M
  unsigned getExtraLocalDataSize() const {
415
22.1M
    return 0;
416
22.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
145M
  unsigned getExtraLocalDataSize() const {
415
145M
    return 0;
416
145M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
709k
  unsigned getExtraLocalDataSize() const {
415
709k
    return 0;
416
709k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
6.00M
  unsigned getExtraLocalDataSize() const {
415
6.00M
    return 0;
416
6.00M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
1.94k
  unsigned getExtraLocalDataSize() const {
415
1.94k
    return 0;
416
1.94k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
1.93M
  unsigned getExtraLocalDataSize() const {
415
1.93M
    return 0;
416
1.93M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
4.31k
  unsigned getExtraLocalDataSize() const {
415
4.31k
    return 0;
416
4.31k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
120
  unsigned getExtraLocalDataSize() const {
415
120
    return 0;
416
120
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
5.15k
  unsigned getExtraLocalDataSize() const {
415
5.15k
    return 0;
416
5.15k
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getExtraLocalDataSize() const
417
418
528M
  unsigned getExtraLocalDataAlignment() const {
419
528M
    return 1;
420
528M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
15.4M
  unsigned getExtraLocalDataAlignment() const {
419
15.4M
    return 1;
420
15.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
363
  unsigned getExtraLocalDataAlignment() const {
419
363
    return 1;
420
363
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
1.00M
  unsigned getExtraLocalDataAlignment() const {
419
1.00M
    return 1;
420
1.00M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
2.46M
  unsigned getExtraLocalDataAlignment() const {
419
2.46M
    return 1;
420
2.46M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
2.54M
  unsigned getExtraLocalDataAlignment() const {
419
2.54M
    return 1;
420
2.54M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
527
  unsigned getExtraLocalDataAlignment() const {
419
527
    return 1;
420
527
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
664k
  unsigned getExtraLocalDataAlignment() const {
419
664k
    return 1;
420
664k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
605
  unsigned getExtraLocalDataAlignment() const {
419
605
    return 1;
420
605
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
272
  unsigned getExtraLocalDataAlignment() const {
419
272
    return 1;
420
272
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
20.2M
  unsigned getExtraLocalDataAlignment() const {
419
20.2M
    return 1;
420
20.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
4.72M
  unsigned getExtraLocalDataAlignment() const {
419
4.72M
    return 1;
420
4.72M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
42.0k
  unsigned getExtraLocalDataAlignment() const {
419
42.0k
    return 1;
420
42.0k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
1.07k
  unsigned getExtraLocalDataAlignment() const {
419
1.07k
    return 1;
420
1.07k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
412k
  unsigned getExtraLocalDataAlignment() const {
419
412k
    return 1;
420
412k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
280k
  unsigned getExtraLocalDataAlignment() const {
419
280k
    return 1;
420
280k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
8.52M
  unsigned getExtraLocalDataAlignment() const {
419
8.52M
    return 1;
420
8.52M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
40.7M
  unsigned getExtraLocalDataAlignment() const {
419
40.7M
    return 1;
420
40.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
32.4M
  unsigned getExtraLocalDataAlignment() const {
419
32.4M
    return 1;
420
32.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
7.23k
  unsigned getExtraLocalDataAlignment() const {
419
7.23k
    return 1;
420
7.23k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
375M
  unsigned getExtraLocalDataAlignment() const {
419
375M
    return 1;
420
375M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
1.57M
  unsigned getExtraLocalDataAlignment() const {
419
1.57M
    return 1;
420
1.57M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
13.8M
  unsigned getExtraLocalDataAlignment() const {
419
13.8M
    return 1;
420
13.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
3.88k
  unsigned getExtraLocalDataAlignment() const {
419
3.88k
    return 1;
420
3.88k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
7.39M
  unsigned getExtraLocalDataAlignment() const {
419
7.39M
    return 1;
420
7.39M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
17.8k
  unsigned getExtraLocalDataAlignment() const {
419
17.8k
    return 1;
420
17.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
248
  unsigned getExtraLocalDataAlignment() const {
419
248
    return 1;
420
248
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
10.3k
  unsigned getExtraLocalDataAlignment() const {
419
10.3k
    return 1;
420
10.3k
  }
421
422
955M
  LocalData *getLocalData() const {
423
955M
    return static_cast<LocalData*>(Base::Data);
424
955M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getLocalData() const
Line
Count
Source
422
324M
  LocalData *getLocalData() const {
423
324M
    return static_cast<LocalData*>(Base::Data);
424
324M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getLocalData() const
Line
Count
Source
422
28.3M
  LocalData *getLocalData() const {
423
28.3M
    return static_cast<LocalData*>(Base::Data);
424
28.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getLocalData() const
Line
Count
Source
422
178k
  LocalData *getLocalData() const {
423
178k
    return static_cast<LocalData*>(Base::Data);
424
178k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getLocalData() const
Line
Count
Source
422
4.99M
  LocalData *getLocalData() const {
423
4.99M
    return static_cast<LocalData*>(Base::Data);
424
4.99M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getLocalData() const
Line
Count
Source
422
1.27M
  LocalData *getLocalData() const {
423
1.27M
    return static_cast<LocalData*>(Base::Data);
424
1.27M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getLocalData() const
Line
Count
Source
422
5.98M
  LocalData *getLocalData() const {
423
5.98M
    return static_cast<LocalData*>(Base::Data);
424
5.98M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getLocalData() const
Line
Count
Source
422
253k
  LocalData *getLocalData() const {
423
253k
    return static_cast<LocalData*>(Base::Data);
424
253k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getLocalData() const
Line
Count
Source
422
926k
  LocalData *getLocalData() const {
423
926k
    return static_cast<LocalData*>(Base::Data);
424
926k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
12.2M
  LocalData *getLocalData() const {
423
12.2M
    return static_cast<LocalData*>(Base::Data);
424
12.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
128k
  LocalData *getLocalData() const {
423
128k
    return static_cast<LocalData*>(Base::Data);
424
128k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getLocalData() const
Line
Count
Source
422
215k
  LocalData *getLocalData() const {
423
215k
    return static_cast<LocalData*>(Base::Data);
424
215k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
2.38M
  LocalData *getLocalData() const {
423
2.38M
    return static_cast<LocalData*>(Base::Data);
424
2.38M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
11.3M
  LocalData *getLocalData() const {
423
11.3M
    return static_cast<LocalData*>(Base::Data);
424
11.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getLocalData() const
Line
Count
Source
422
124M
  LocalData *getLocalData() const {
423
124M
    return static_cast<LocalData*>(Base::Data);
424
124M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getLocalData() const
Line
Count
Source
422
1.81M
  LocalData *getLocalData() const {
423
1.81M
    return static_cast<LocalData*>(Base::Data);
424
1.81M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getLocalData() const
Line
Count
Source
422
394M
  LocalData *getLocalData() const {
423
394M
    return static_cast<LocalData*>(Base::Data);
424
394M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getLocalData() const
Line
Count
Source
422
343
  LocalData *getLocalData() const {
423
343
    return static_cast<LocalData*>(Base::Data);
424
343
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getLocalData() const
Line
Count
Source
422
270k
  LocalData *getLocalData() const {
423
270k
    return static_cast<LocalData*>(Base::Data);
424
270k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getLocalData() const
Line
Count
Source
422
260
  LocalData *getLocalData() const {
423
260
    return static_cast<LocalData*>(Base::Data);
424
260
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getLocalData() const
Line
Count
Source
422
125
  LocalData *getLocalData() const {
423
125
    return static_cast<LocalData*>(Base::Data);
424
125
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getLocalData() const
Line
Count
Source
422
6.45k
  LocalData *getLocalData() const {
423
6.45k
    return static_cast<LocalData*>(Base::Data);
424
6.45k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getLocalData() const
Line
Count
Source
422
672
  LocalData *getLocalData() const {
423
672
    return static_cast<LocalData*>(Base::Data);
424
672
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getLocalData() const
Line
Count
Source
422
2.06M
  LocalData *getLocalData() const {
423
2.06M
    return static_cast<LocalData*>(Base::Data);
424
2.06M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getLocalData() const
Line
Count
Source
422
19.5k
  LocalData *getLocalData() const {
423
19.5k
    return static_cast<LocalData*>(Base::Data);
424
19.5k
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getLocalData() const
Line
Count
Source
422
337k
  LocalData *getLocalData() const {
423
337k
    return static_cast<LocalData*>(Base::Data);
424
337k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getLocalData() const
Line
Count
Source
422
8.51M
  LocalData *getLocalData() const {
423
8.51M
    return static_cast<LocalData*>(Base::Data);
424
8.51M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getLocalData() const
Line
Count
Source
422
26.7M
  LocalData *getLocalData() const {
423
26.7M
    return static_cast<LocalData*>(Base::Data);
424
26.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getLocalData() const
Line
Count
Source
422
1.33M
  LocalData *getLocalData() const {
423
1.33M
    return static_cast<LocalData*>(Base::Data);
424
1.33M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getLocalData() const
Line
Count
Source
422
1.83M
  LocalData *getLocalData() const {
423
1.83M
    return static_cast<LocalData*>(Base::Data);
424
1.83M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getLocalData() const
Line
Count
Source
422
31.3k
  LocalData *getLocalData() const {
423
31.3k
    return static_cast<LocalData*>(Base::Data);
424
31.3k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getLocalData() const
Line
Count
Source
422
282
  LocalData *getLocalData() const {
423
282
    return static_cast<LocalData*>(Base::Data);
424
282
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getLocalData() const
Line
Count
Source
422
29.4k
  LocalData *getLocalData() const {
423
29.4k
    return static_cast<LocalData*>(Base::Data);
424
29.4k
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getLocalData() const
425
426
  /// Gets a pointer past the Info structure; useful for classes with
427
  /// local data that can't be captured in the Info (e.g. because it's
428
  /// of variable size).
429
120M
  void *getExtraLocalData() const {
430
120M
    unsigned size = sizeof(LocalData);
431
120M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
120M
    size = llvm::alignTo(size, extraAlign);
433
120M
    return reinterpret_cast<char*>(Base::Data) + size;
434
120M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getExtraLocalData() const
Line
Count
Source
429
16.0M
  void *getExtraLocalData() const {
430
16.0M
    unsigned size = sizeof(LocalData);
431
16.0M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
16.0M
    size = llvm::alignTo(size, extraAlign);
433
16.0M
    return reinterpret_cast<char*>(Base::Data) + size;
434
16.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
13.2k
  void *getExtraLocalData() const {
430
13.2k
    unsigned size = sizeof(LocalData);
431
13.2k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
13.2k
    size = llvm::alignTo(size, extraAlign);
433
13.2k
    return reinterpret_cast<char*>(Base::Data) + size;
434
13.2k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
199k
  void *getExtraLocalData() const {
430
199k
    unsigned size = sizeof(LocalData);
431
199k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
199k
    size = llvm::alignTo(size, extraAlign);
433
199k
    return reinterpret_cast<char*>(Base::Data) + size;
434
199k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getExtraLocalData() const
Line
Count
Source
429
79.7M
  void *getExtraLocalData() const {
430
79.7M
    unsigned size = sizeof(LocalData);
431
79.7M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
79.7M
    size = llvm::alignTo(size, extraAlign);
433
79.7M
    return reinterpret_cast<char*>(Base::Data) + size;
434
79.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getExtraLocalData() const
Line
Count
Source
429
24.5M
  void *getExtraLocalData() const {
430
24.5M
    unsigned size = sizeof(LocalData);
431
24.5M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
24.5M
    size = llvm::alignTo(size, extraAlign);
433
24.5M
    return reinterpret_cast<char*>(Base::Data) + size;
434
24.5M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
34.4k
  void *getExtraLocalData() const {
430
34.4k
    unsigned size = sizeof(LocalData);
431
34.4k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
34.4k
    size = llvm::alignTo(size, extraAlign);
433
34.4k
    return reinterpret_cast<char*>(Base::Data) + size;
434
34.4k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getExtraLocalData() const
Line
Count
Source
429
144k
  void *getExtraLocalData() const {
430
144k
    unsigned size = sizeof(LocalData);
431
144k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
144k
    size = llvm::alignTo(size, extraAlign);
433
144k
    return reinterpret_cast<char*>(Base::Data) + size;
434
144k
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getExtraLocalData() const
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
2
  void *getExtraLocalData() const {
430
2
    unsigned size = sizeof(LocalData);
431
2
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
2
    size = llvm::alignTo(size, extraAlign);
433
2
    return reinterpret_cast<char*>(Base::Data) + size;
434
2
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getExtraLocalData() const
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getExtraLocalData() const
Line
Count
Source
429
3.26k
  void *getExtraLocalData() const {
430
3.26k
    unsigned size = sizeof(LocalData);
431
3.26k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
3.26k
    size = llvm::alignTo(size, extraAlign);
433
3.26k
    return reinterpret_cast<char*>(Base::Data) + size;
434
3.26k
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getExtraLocalData() const
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
36
  void *getExtraLocalData() const {
430
36
    unsigned size = sizeof(LocalData);
431
36
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
36
    size = llvm::alignTo(size, extraAlign);
433
36
    return reinterpret_cast<char*>(Base::Data) + size;
434
36
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getExtraLocalData() const
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getExtraLocalData() const
Line
Count
Source
429
6
  void *getExtraLocalData() const {
430
6
    unsigned size = sizeof(LocalData);
431
6
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
6
    size = llvm::alignTo(size, extraAlign);
433
6
    return reinterpret_cast<char*>(Base::Data) + size;
434
6
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getExtraLocalData() const
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
82
  void *getExtraLocalData() const {
430
82
    unsigned size = sizeof(LocalData);
431
82
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
82
    size = llvm::alignTo(size, extraAlign);
433
82
    return reinterpret_cast<char*>(Base::Data) + size;
434
82
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getExtraLocalData() const
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
2
  void *getExtraLocalData() const {
430
2
    unsigned size = sizeof(LocalData);
431
2
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
2
    size = llvm::alignTo(size, extraAlign);
433
2
    return reinterpret_cast<char*>(Base::Data) + size;
434
2
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getExtraLocalData() const
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
4
  void *getExtraLocalData() const {
430
4
    unsigned size = sizeof(LocalData);
431
4
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
4
    size = llvm::alignTo(size, extraAlign);
433
4
    return reinterpret_cast<char*>(Base::Data) + size;
434
4
  }
435
436
126M
  void *getNonLocalData() const {
437
126M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
126M
    data += asDerived()->getLocalDataSize();
439
126M
    data = llvm::alignTo(data, getNextTypeAlign());
440
126M
    return reinterpret_cast<void*>(data);
441
126M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNonLocalData() const
Line
Count
Source
436
7.61M
  void *getNonLocalData() const {
437
7.61M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
7.61M
    data += asDerived()->getLocalDataSize();
439
7.61M
    data = llvm::alignTo(data, getNextTypeAlign());
440
7.61M
    return reinterpret_cast<void*>(data);
441
7.61M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getNonLocalData() const
Line
Count
Source
436
126
  void *getNonLocalData() const {
437
126
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
126
    data += asDerived()->getLocalDataSize();
439
126
    data = llvm::alignTo(data, getNextTypeAlign());
440
126
    return reinterpret_cast<void*>(data);
441
126
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
1.09M
  void *getNonLocalData() const {
437
1.09M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
1.09M
    data += asDerived()->getLocalDataSize();
439
1.09M
    data = llvm::alignTo(data, getNextTypeAlign());
440
1.09M
    return reinterpret_cast<void*>(data);
441
1.09M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNonLocalData() const
Line
Count
Source
436
517k
  void *getNonLocalData() const {
437
517k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
517k
    data += asDerived()->getLocalDataSize();
439
517k
    data = llvm::alignTo(data, getNextTypeAlign());
440
517k
    return reinterpret_cast<void*>(data);
441
517k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNonLocalData() const
Line
Count
Source
436
892k
  void *getNonLocalData() const {
437
892k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
892k
    data += asDerived()->getLocalDataSize();
439
892k
    data = llvm::alignTo(data, getNextTypeAlign());
440
892k
    return reinterpret_cast<void*>(data);
441
892k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNonLocalData() const
Line
Count
Source
436
12.6k
  void *getNonLocalData() const {
437
12.6k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
12.6k
    data += asDerived()->getLocalDataSize();
439
12.6k
    data = llvm::alignTo(data, getNextTypeAlign());
440
12.6k
    return reinterpret_cast<void*>(data);
441
12.6k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNonLocalData() const
Line
Count
Source
436
66.9M
  void *getNonLocalData() const {
437
66.9M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
66.9M
    data += asDerived()->getLocalDataSize();
439
66.9M
    data = llvm::alignTo(data, getNextTypeAlign());
440
66.9M
    return reinterpret_cast<void*>(data);
441
66.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNonLocalData() const
Line
Count
Source
436
1.21M
  void *getNonLocalData() const {
437
1.21M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
1.21M
    data += asDerived()->getLocalDataSize();
439
1.21M
    data = llvm::alignTo(data, getNextTypeAlign());
440
1.21M
    return reinterpret_cast<void*>(data);
441
1.21M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getNonLocalData() const
Line
Count
Source
436
195
  void *getNonLocalData() const {
437
195
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
195
    data += asDerived()->getLocalDataSize();
439
195
    data = llvm::alignTo(data, getNextTypeAlign());
440
195
    return reinterpret_cast<void*>(data);
441
195
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
322k
  void *getNonLocalData() const {
437
322k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
322k
    data += asDerived()->getLocalDataSize();
439
322k
    data = llvm::alignTo(data, getNextTypeAlign());
440
322k
    return reinterpret_cast<void*>(data);
441
322k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
345
  void *getNonLocalData() const {
437
345
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
345
    data += asDerived()->getLocalDataSize();
439
345
    data = llvm::alignTo(data, getNextTypeAlign());
440
345
    return reinterpret_cast<void*>(data);
441
345
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
150
  void *getNonLocalData() const {
437
150
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
150
    data += asDerived()->getLocalDataSize();
439
150
    data = llvm::alignTo(data, getNextTypeAlign());
440
150
    return reinterpret_cast<void*>(data);
441
150
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getNonLocalData() const
Line
Count
Source
436
7.84M
  void *getNonLocalData() const {
437
7.84M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
7.84M
    data += asDerived()->getLocalDataSize();
439
7.84M
    data = llvm::alignTo(data, getNextTypeAlign());
440
7.84M
    return reinterpret_cast<void*>(data);
441
7.84M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
2.34M
  void *getNonLocalData() const {
437
2.34M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
2.34M
    data += asDerived()->getLocalDataSize();
439
2.34M
    data = llvm::alignTo(data, getNextTypeAlign());
440
2.34M
    return reinterpret_cast<void*>(data);
441
2.34M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
21.2k
  void *getNonLocalData() const {
437
21.2k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
21.2k
    data += asDerived()->getLocalDataSize();
439
21.2k
    data = llvm::alignTo(data, getNextTypeAlign());
440
21.2k
    return reinterpret_cast<void*>(data);
441
21.2k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
545
  void *getNonLocalData() const {
437
545
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
545
    data += asDerived()->getLocalDataSize();
439
545
    data = llvm::alignTo(data, getNextTypeAlign());
440
545
    return reinterpret_cast<void*>(data);
441
545
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
160k
  void *getNonLocalData() const {
437
160k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
160k
    data += asDerived()->getLocalDataSize();
439
160k
    data = llvm::alignTo(data, getNextTypeAlign());
440
160k
    return reinterpret_cast<void*>(data);
441
160k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNonLocalData() const
Line
Count
Source
436
187k
  void *getNonLocalData() const {
437
187k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
187k
    data += asDerived()->getLocalDataSize();
439
187k
    data = llvm::alignTo(data, getNextTypeAlign());
440
187k
    return reinterpret_cast<void*>(data);
441
187k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
3.20M
  void *getNonLocalData() const {
437
3.20M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
3.20M
    data += asDerived()->getLocalDataSize();
439
3.20M
    data = llvm::alignTo(data, getNextTypeAlign());
440
3.20M
    return reinterpret_cast<void*>(data);
441
3.20M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
19.8M
  void *getNonLocalData() const {
437
19.8M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
19.8M
    data += asDerived()->getLocalDataSize();
439
19.8M
    data = llvm::alignTo(data, getNextTypeAlign());
440
19.8M
    return reinterpret_cast<void*>(data);
441
19.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
14.7M
  void *getNonLocalData() const {
437
14.7M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
14.7M
    data += asDerived()->getLocalDataSize();
439
14.7M
    data = llvm::alignTo(data, getNextTypeAlign());
440
14.7M
    return reinterpret_cast<void*>(data);
441
14.7M
  }
442
443
  struct HasNoInnerType {};
444
334M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getInnerType() const
Line
Count
Source
444
208M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getInnerType() const
Line
Count
Source
444
26.8M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getInnerType() const
Line
Count
Source
444
1.07M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getInnerType() const
Line
Count
Source
444
572k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getInnerType() const
Line
Count
Source
444
9.15M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getInnerType() const
Line
Count
Source
444
299k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getInnerType() const
Line
Count
Source
444
2.81k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getInnerType() const
Line
Count
Source
444
3.02M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getInnerType() const
Line
Count
Source
444
292k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getInnerType() const
Line
Count
Source
444
84.4M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getInnerType() const
Line
Count
Source
444
7.45k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getInnerType() const
Line
Count
Source
444
186
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getInnerType() const
Line
Count
Source
444
6.88k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
445
446
7.14M
  TypeLoc getInnerTypeLoc() const {
447
7.14M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
7.14M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1.81M
  TypeLoc getInnerTypeLoc() const {
447
1.81M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.81M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
40
  TypeLoc getInnerTypeLoc() const {
447
40
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
40
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
157k
  TypeLoc getInnerTypeLoc() const {
447
157k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
157k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
166k
  TypeLoc getInnerTypeLoc() const {
447
166k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
166k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
58.3k
  TypeLoc getInnerTypeLoc() const {
447
58.3k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
58.3k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
2.13k
  TypeLoc getInnerTypeLoc() const {
447
2.13k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
2.13k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1.69M
  TypeLoc getInnerTypeLoc() const {
447
1.69M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.69M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
57.0k
  TypeLoc getInnerTypeLoc() const {
447
57.0k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
57.0k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1
  TypeLoc getInnerTypeLoc() const {
447
1
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
4
  TypeLoc getInnerTypeLoc() const {
447
4
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
4
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
85
  TypeLoc getInnerTypeLoc() const {
447
85
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
85
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
18
  TypeLoc getInnerTypeLoc() const {
447
18
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
18
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
206k
  TypeLoc getInnerTypeLoc() const {
447
206k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
206k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
387k
  TypeLoc getInnerTypeLoc() const {
447
387k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
387k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
5.02k
  TypeLoc getInnerTypeLoc() const {
447
5.02k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
5.02k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
2
  TypeLoc getInnerTypeLoc() const {
447
2
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
2
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
2.28k
  TypeLoc getInnerTypeLoc() const {
447
2.28k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
2.28k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
2.94k
  TypeLoc getInnerTypeLoc() const {
447
2.94k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
2.94k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
58.5k
  TypeLoc getInnerTypeLoc() const {
447
58.5k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
58.5k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1.23M
  TypeLoc getInnerTypeLoc() const {
447
1.23M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.23M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1.30M
  TypeLoc getInnerTypeLoc() const {
447
1.30M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.30M
  }
449
450
private:
451
  unsigned getInnerTypeSize() const {
452
    return getInnerTypeSize(asDerived()->getInnerType());
453
  }
454
455
  unsigned getInnerTypeSize(HasNoInnerType _) const {
456
    return 0;
457
  }
458
459
  unsigned getInnerTypeSize(QualType _) const {
460
    return getInnerTypeLoc().getFullDataSize();
461
  }
462
463
126M
  unsigned getNextTypeAlign() const {
464
126M
    return getNextTypeAlign(asDerived()->getInnerType());
465
126M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
7.61M
  unsigned getNextTypeAlign() const {
464
7.61M
    return getNextTypeAlign(asDerived()->getInnerType());
465
7.61M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
126
  unsigned getNextTypeAlign() const {
464
126
    return getNextTypeAlign(asDerived()->getInnerType());
465
126
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
1.09M
  unsigned getNextTypeAlign() const {
464
1.09M
    return getNextTypeAlign(asDerived()->getInnerType());
465
1.09M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
517k
  unsigned getNextTypeAlign() const {
464
517k
    return getNextTypeAlign(asDerived()->getInnerType());
465
517k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
892k
  unsigned getNextTypeAlign() const {
464
892k
    return getNextTypeAlign(asDerived()->getInnerType());
465
892k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
12.6k
  unsigned getNextTypeAlign() const {
464
12.6k
    return getNextTypeAlign(asDerived()->getInnerType());
465
12.6k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
66.9M
  unsigned getNextTypeAlign() const {
464
66.9M
    return getNextTypeAlign(asDerived()->getInnerType());
465
66.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
1.21M
  unsigned getNextTypeAlign() const {
464
1.21M
    return getNextTypeAlign(asDerived()->getInnerType());
465
1.21M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
195
  unsigned getNextTypeAlign() const {
464
195
    return getNextTypeAlign(asDerived()->getInnerType());
465
195
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
322k
  unsigned getNextTypeAlign() const {
464
322k
    return getNextTypeAlign(asDerived()->getInnerType());
465
322k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
345
  unsigned getNextTypeAlign() const {
464
345
    return getNextTypeAlign(asDerived()->getInnerType());
465
345
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
150
  unsigned getNextTypeAlign() const {
464
150
    return getNextTypeAlign(asDerived()->getInnerType());
465
150
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
7.84M
  unsigned getNextTypeAlign() const {
464
7.84M
    return getNextTypeAlign(asDerived()->getInnerType());
465
7.84M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
2.34M
  unsigned getNextTypeAlign() const {
464
2.34M
    return getNextTypeAlign(asDerived()->getInnerType());
465
2.34M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
21.2k
  unsigned getNextTypeAlign() const {
464
21.2k
    return getNextTypeAlign(asDerived()->getInnerType());
465
21.2k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
545
  unsigned getNextTypeAlign() const {
464
545
    return getNextTypeAlign(asDerived()->getInnerType());
465
545
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
160k
  unsigned getNextTypeAlign() const {
464
160k
    return getNextTypeAlign(asDerived()->getInnerType());
465
160k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
187k
  unsigned getNextTypeAlign() const {
464
187k
    return getNextTypeAlign(asDerived()->getInnerType());
465
187k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
3.20M
  unsigned getNextTypeAlign() const {
464
3.20M
    return getNextTypeAlign(asDerived()->getInnerType());
465
3.20M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
19.8M
  unsigned getNextTypeAlign() const {
464
19.8M
    return getNextTypeAlign(asDerived()->getInnerType());
465
19.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
14.7M
  unsigned getNextTypeAlign() const {
464
14.7M
    return getNextTypeAlign(asDerived()->getInnerType());
465
14.7M
  }
466
467
  unsigned getNextTypeAlign(HasNoInnerType _) const {
468
    return 1;
469
  }
470
471
126M
  unsigned getNextTypeAlign(QualType T) const {
472
126M
    return TypeLoc::getLocalAlignmentForType(T);
473
126M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
7.61M
  unsigned getNextTypeAlign(QualType T) const {
472
7.61M
    return TypeLoc::getLocalAlignmentForType(T);
473
7.61M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
126
  unsigned getNextTypeAlign(QualType T) const {
472
126
    return TypeLoc::getLocalAlignmentForType(T);
473
126
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
1.09M
  unsigned getNextTypeAlign(QualType T) const {
472
1.09M
    return TypeLoc::getLocalAlignmentForType(T);
473
1.09M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
517k
  unsigned getNextTypeAlign(QualType T) const {
472
517k
    return TypeLoc::getLocalAlignmentForType(T);
473
517k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
892k
  unsigned getNextTypeAlign(QualType T) const {
472
892k
    return TypeLoc::getLocalAlignmentForType(T);
473
892k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
12.6k
  unsigned getNextTypeAlign(QualType T) const {
472
12.6k
    return TypeLoc::getLocalAlignmentForType(T);
473
12.6k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
66.9M
  unsigned getNextTypeAlign(QualType T) const {
472
66.9M
    return TypeLoc::getLocalAlignmentForType(T);
473
66.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
1.21M
  unsigned getNextTypeAlign(QualType T) const {
472
1.21M
    return TypeLoc::getLocalAlignmentForType(T);
473
1.21M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
195
  unsigned getNextTypeAlign(QualType T) const {
472
195
    return TypeLoc::getLocalAlignmentForType(T);
473
195
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
322k
  unsigned getNextTypeAlign(QualType T) const {
472
322k
    return TypeLoc::getLocalAlignmentForType(T);
473
322k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
345
  unsigned getNextTypeAlign(QualType T) const {
472
345
    return TypeLoc::getLocalAlignmentForType(T);
473
345
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
150
  unsigned getNextTypeAlign(QualType T) const {
472
150
    return TypeLoc::getLocalAlignmentForType(T);
473
150
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
7.84M
  unsigned getNextTypeAlign(QualType T) const {
472
7.84M
    return TypeLoc::getLocalAlignmentForType(T);
473
7.84M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
2.34M
  unsigned getNextTypeAlign(QualType T) const {
472
2.34M
    return TypeLoc::getLocalAlignmentForType(T);
473
2.34M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
21.2k
  unsigned getNextTypeAlign(QualType T) const {
472
21.2k
    return TypeLoc::getLocalAlignmentForType(T);
473
21.2k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
545
  unsigned getNextTypeAlign(QualType T) const {
472
545
    return TypeLoc::getLocalAlignmentForType(T);
473
545
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
160k
  unsigned getNextTypeAlign(QualType T) const {
472
160k
    return TypeLoc::getLocalAlignmentForType(T);
473
160k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
187k
  unsigned getNextTypeAlign(QualType T) const {
472
187k
    return TypeLoc::getLocalAlignmentForType(T);
473
187k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
3.20M
  unsigned getNextTypeAlign(QualType T) const {
472
3.20M
    return TypeLoc::getLocalAlignmentForType(T);
473
3.20M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
19.8M
  unsigned getNextTypeAlign(QualType T) const {
472
19.8M
    return TypeLoc::getLocalAlignmentForType(T);
473
19.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
14.7M
  unsigned getNextTypeAlign(QualType T) const {
472
14.7M
    return TypeLoc::getLocalAlignmentForType(T);
473
14.7M
  }
474
475
334M
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getNextTypeLoc(clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::HasNoInnerType) const
Line
Count
Source
475
208M
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getNextTypeLoc(clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::HasNoInnerType) const
Line
Count
Source
475
26.8M
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getNextTypeLoc(clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::HasNoInnerType) const
Line
Count
Source
475
1.07M
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getNextTypeLoc(clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::HasNoInnerType) const
Line
Count
Source
475
572k
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getNextTypeLoc(clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::HasNoInnerType) const
Line
Count
Source
475
9.15M
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getNextTypeLoc(clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::HasNoInnerType) const
Line
Count
Source
475
299k
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getNextTypeLoc(clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::HasNoInnerType) const
Line
Count
Source
475
2.81k
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getNextTypeLoc(clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::HasNoInnerType) const
Line
Count
Source
475
3.02M
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getNextTypeLoc(clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::HasNoInnerType) const
Line
Count
Source
475
292k
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getNextTypeLoc(clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::HasNoInnerType) const
Line
Count
Source
475
84.4M
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getNextTypeLoc(clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::HasNoInnerType) const
Line
Count
Source
475
7.45k
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getNextTypeLoc(clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::HasNoInnerType) const
Line
Count
Source
475
186
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getNextTypeLoc(clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::HasNoInnerType) const
Line
Count
Source
475
6.88k
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
476
477
119M
  TypeLoc getNextTypeLoc(QualType T) const {
478
119M
    return TypeLoc(T, getNonLocalData());
479
119M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
10.4k
  TypeLoc getNextTypeLoc(QualType T) const {
478
10.4k
    return TypeLoc(T, getNonLocalData());
479
10.4k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
1.15M
  TypeLoc getNextTypeLoc(QualType T) const {
478
1.15M
    return TypeLoc(T, getNonLocalData());
479
1.15M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
16.1k
  TypeLoc getNextTypeLoc(QualType T) const {
478
16.1k
    return TypeLoc(T, getNonLocalData());
479
16.1k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
5.79M
  TypeLoc getNextTypeLoc(QualType T) const {
478
5.79M
    return TypeLoc(T, getNonLocalData());
479
5.79M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
86
  TypeLoc getNextTypeLoc(QualType T) const {
478
86
    return TypeLoc(T, getNonLocalData());
479
86
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
158k
  TypeLoc getNextTypeLoc(QualType T) const {
478
158k
    return TypeLoc(T, getNonLocalData());
479
158k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
194
  TypeLoc getNextTypeLoc(QualType T) const {
478
194
    return TypeLoc(T, getNonLocalData());
479
194
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
132
  TypeLoc getNextTypeLoc(QualType T) const {
478
132
    return TypeLoc(T, getNonLocalData());
479
132
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
260
  TypeLoc getNextTypeLoc(QualType T) const {
478
260
    return TypeLoc(T, getNonLocalData());
479
260
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
7.63M
  TypeLoc getNextTypeLoc(QualType T) const {
478
7.63M
    return TypeLoc(T, getNonLocalData());
479
7.63M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
65.3M
  TypeLoc getNextTypeLoc(QualType T) const {
478
65.3M
    return TypeLoc(T, getNonLocalData());
479
65.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
350k
  TypeLoc getNextTypeLoc(QualType T) const {
478
350k
    return TypeLoc(T, getNonLocalData());
479
350k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
184k
  TypeLoc getNextTypeLoc(QualType T) const {
478
184k
    return TypeLoc(T, getNonLocalData());
479
184k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
3.14M
  TypeLoc getNextTypeLoc(QualType T) const {
478
3.14M
    return TypeLoc(T, getNonLocalData());
479
3.14M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
935k
  TypeLoc getNextTypeLoc(QualType T) const {
478
935k
    return TypeLoc(T, getNonLocalData());
479
935k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
1.95M
  TypeLoc getNextTypeLoc(QualType T) const {
478
1.95M
    return TypeLoc(T, getNonLocalData());
479
1.95M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
834k
  TypeLoc getNextTypeLoc(QualType T) const {
478
834k
    return TypeLoc(T, getNonLocalData());
479
834k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
543
  TypeLoc getNextTypeLoc(QualType T) const {
478
543
    return TypeLoc(T, getNonLocalData());
479
543
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
18.5M
  TypeLoc getNextTypeLoc(QualType T) const {
478
18.5M
    return TypeLoc(T, getNonLocalData());
479
18.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
13.4M
  TypeLoc getNextTypeLoc(QualType T) const {
478
13.4M
    return TypeLoc(T, getNonLocalData());
479
13.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
322k
  TypeLoc getNextTypeLoc(QualType T) const {
478
322k
    return TypeLoc(T, getNonLocalData());
479
322k
  }
480
};
481
482
/// A metaprogramming class designed for concrete subtypes of abstract
483
/// types where all subtypes share equivalently-structured source
484
/// information.  See the note on ConcreteTypeLoc.
485
template <class Base, class Derived, class TypeClass>
486
class InheritingConcreteTypeLoc : public Base {
487
  friend class TypeLoc;
488
489
1.00G
  static bool classofType(const Type *Ty) {
490
1.00G
    return TypeClass::classof(Ty);
491
1.00G
  }
clang::InheritingConcreteTypeLoc<clang::AdjustedTypeLoc, clang::DecayedTypeLoc, clang::DecayedType>::classofType(clang::Type const*)
Line
Count
Source
489
26.8k
  static bool classofType(const Type *Ty) {
490
26.8k
    return TypeClass::classof(Ty);
491
26.8k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::ConstantArrayTypeLoc, clang::ConstantArrayType>::classofType(clang::Type const*)
Line
Count
Source
489
2.09M
  static bool classofType(const Type *Ty) {
490
2.09M
    return TypeClass::classof(Ty);
491
2.09M
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::DependentSizedArrayTypeLoc, clang::DependentSizedArrayType>::classofType(clang::Type const*)
Line
Count
Source
489
219k
  static bool classofType(const Type *Ty) {
490
219k
    return TypeClass::classof(Ty);
491
219k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::IncompleteArrayTypeLoc, clang::IncompleteArrayType>::classofType(clang::Type const*)
Line
Count
Source
489
502k
  static bool classofType(const Type *Ty) {
490
502k
    return TypeClass::classof(Ty);
491
502k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::VariableArrayTypeLoc, clang::VariableArrayType>::classofType(clang::Type const*)
Line
Count
Source
489
119k
  static bool classofType(const Type *Ty) {
490
119k
    return TypeClass::classof(Ty);
491
119k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::BitIntTypeLoc, clang::BitIntType>::classofType(clang::Type const*)
Line
Count
Source
489
7.47k
  static bool classofType(const Type *Ty) {
490
7.47k
    return TypeClass::classof(Ty);
491
7.47k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::ComplexTypeLoc, clang::ComplexType>::classofType(clang::Type const*)
Line
Count
Source
489
90.5k
  static bool classofType(const Type *Ty) {
490
90.5k
    return TypeClass::classof(Ty);
491
90.5k
  }
clang::InheritingConcreteTypeLoc<clang::DeducedTypeLoc, clang::DeducedTemplateSpecializationTypeLoc, clang::DeducedTemplateSpecializationType>::classofType(clang::Type const*)
Line
Count
Source
489
270k
  static bool classofType(const Type *Ty) {
490
270k
    return TypeClass::classof(Ty);
491
270k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DependentBitIntTypeLoc, clang::DependentBitIntType>::classofType(clang::Type const*)
Line
Count
Source
489
283
  static bool classofType(const Type *Ty) {
490
283
    return TypeClass::classof(Ty);
491
283
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionNoProtoTypeLoc, clang::FunctionNoProtoType>::classofType(clang::Type const*)
Line
Count
Source
489
56.6k
  static bool classofType(const Type *Ty) {
490
56.6k
    return TypeClass::classof(Ty);
491
56.6k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionProtoTypeLoc, clang::FunctionProtoType>::classofType(clang::Type const*)
Line
Count
Source
489
168M
  static bool classofType(const Type *Ty) {
490
168M
    return TypeClass::classof(Ty);
491
168M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::InjectedClassNameTypeLoc, clang::InjectedClassNameType>::classofType(clang::Type const*)
Line
Count
Source
489
10.9M
  static bool classofType(const Type *Ty) {
490
10.9M
    return TypeClass::classof(Ty);
491
10.9M
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::ConstantMatrixTypeLoc, clang::ConstantMatrixType>::classofType(clang::Type const*)
Line
Count
Source
489
4.62k
  static bool classofType(const Type *Ty) {
490
4.62k
    return TypeClass::classof(Ty);
491
4.62k
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::DependentSizedMatrixTypeLoc, clang::DependentSizedMatrixType>::classofType(clang::Type const*)
Line
Count
Source
489
2.94k
  static bool classofType(const Type *Ty) {
490
2.94k
    return TypeClass::classof(Ty);
491
2.94k
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::LValueReferenceTypeLoc, clang::LValueReferenceType>::classofType(clang::Type const*)
Line
Count
Source
489
29.7M
  static bool classofType(const Type *Ty) {
490
29.7M
    return TypeClass::classof(Ty);
491
29.7M
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::RValueReferenceTypeLoc, clang::RValueReferenceType>::classofType(clang::Type const*)
Line
Count
Source
489
7.57M
  static bool classofType(const Type *Ty) {
490
7.57M
    return TypeClass::classof(Ty);
491
7.57M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmPackTypeLoc, clang::SubstTemplateTypeParmPackType>::classofType(clang::Type const*)
Line
Count
Source
489
426k
  static bool classofType(const Type *Ty) {
490
426k
    return TypeClass::classof(Ty);
491
426k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmTypeLoc, clang::SubstTemplateTypeParmType>::classofType(clang::Type const*)
Line
Count
Source
489
75.5M
  static bool classofType(const Type *Ty) {
490
75.5M
    return TypeClass::classof(Ty);
491
75.5M
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::EnumTypeLoc, clang::EnumType>::classofType(clang::Type const*)
Line
Count
Source
489
3.94M
  static bool classofType(const Type *Ty) {
490
3.94M
    return TypeClass::classof(Ty);
491
3.94M
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::RecordTypeLoc, clang::RecordType>::classofType(clang::Type const*)
Line
Count
Source
489
43.6M
  static bool classofType(const Type *Ty) {
490
43.6M
    return TypeClass::classof(Ty);
491
43.6M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TemplateTypeParmTypeLoc, clang::TemplateTypeParmType>::classofType(clang::Type const*)
Line
Count
Source
489
139M
  static bool classofType(const Type *Ty) {
490
139M
    return TypeClass::classof(Ty);
491
139M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TypedefTypeLoc, clang::TypedefType>::classofType(clang::Type const*)
Line
Count
Source
489
517M
  static bool classofType(const Type *Ty) {
490
517M
    return TypeClass::classof(Ty);
491
517M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UnresolvedUsingTypeLoc, clang::UnresolvedUsingType>::classofType(clang::Type const*)
Line
Count
Source
489
16.3k
  static bool classofType(const Type *Ty) {
490
16.3k
    return TypeClass::classof(Ty);
491
16.3k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UsingTypeLoc, clang::UsingType>::classofType(clang::Type const*)
Line
Count
Source
489
5.15M
  static bool classofType(const Type *Ty) {
490
5.15M
    return TypeClass::classof(Ty);
491
5.15M
  }
clang::InheritingConcreteTypeLoc<clang::VectorTypeLoc, clang::ExtVectorTypeLoc, clang::ExtVectorType>::classofType(clang::Type const*)
Line
Count
Source
489
23.8k
  static bool classofType(const Type *Ty) {
490
23.8k
    return TypeClass::classof(Ty);
491
23.8k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DeducedTypeLoc, clang::DeducedType>::classofType(clang::Type const*)
Line
Count
Source
489
932
  static bool classofType(const Type *Ty) {
490
932
    return TypeClass::classof(Ty);
491
932
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TagTypeLoc, clang::TagType>::classofType(clang::Type const*)
Line
Count
Source
489
1.83M
  static bool classofType(const Type *Ty) {
490
1.83M
    return TypeClass::classof(Ty);
491
1.83M
  }
492
493
1.00G
  static bool isKind(const TypeLoc &TL) {
494
1.00G
    return !TL.getType().hasLocalQualifiers() &&
495
1.00G
           
Derived::classofType(TL.getTypePtr())1.00G
;
496
1.00G
  }
clang::InheritingConcreteTypeLoc<clang::AdjustedTypeLoc, clang::DecayedTypeLoc, clang::DecayedType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
26.8k
  static bool isKind(const TypeLoc &TL) {
494
26.8k
    return !TL.getType().hasLocalQualifiers() &&
495
26.8k
           Derived::classofType(TL.getTypePtr());
496
26.8k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::ConstantArrayTypeLoc, clang::ConstantArrayType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
2.09M
  static bool isKind(const TypeLoc &TL) {
494
2.09M
    return !TL.getType().hasLocalQualifiers() &&
495
2.09M
           Derived::classofType(TL.getTypePtr());
496
2.09M
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::DependentSizedArrayTypeLoc, clang::DependentSizedArrayType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
219k
  static bool isKind(const TypeLoc &TL) {
494
219k
    return !TL.getType().hasLocalQualifiers() &&
495
219k
           Derived::classofType(TL.getTypePtr());
496
219k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::IncompleteArrayTypeLoc, clang::IncompleteArrayType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
502k
  static bool isKind(const TypeLoc &TL) {
494
502k
    return !TL.getType().hasLocalQualifiers() &&
495
502k
           
Derived::classofType(TL.getTypePtr())502k
;
496
502k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::VariableArrayTypeLoc, clang::VariableArrayType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
119k
  static bool isKind(const TypeLoc &TL) {
494
119k
    return !TL.getType().hasLocalQualifiers() &&
495
119k
           
Derived::classofType(TL.getTypePtr())119k
;
496
119k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::BitIntTypeLoc, clang::BitIntType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
7.47k
  static bool isKind(const TypeLoc &TL) {
494
7.47k
    return !TL.getType().hasLocalQualifiers() &&
495
7.47k
           Derived::classofType(TL.getTypePtr());
496
7.47k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::ComplexTypeLoc, clang::ComplexType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
90.5k
  static bool isKind(const TypeLoc &TL) {
494
90.5k
    return !TL.getType().hasLocalQualifiers() &&
495
90.5k
           Derived::classofType(TL.getTypePtr());
496
90.5k
  }
clang::InheritingConcreteTypeLoc<clang::DeducedTypeLoc, clang::DeducedTemplateSpecializationTypeLoc, clang::DeducedTemplateSpecializationType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
272k
  static bool isKind(const TypeLoc &TL) {
494
272k
    return !TL.getType().hasLocalQualifiers() &&
495
272k
           
Derived::classofType(TL.getTypePtr())270k
;
496
272k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DependentBitIntTypeLoc, clang::DependentBitIntType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
283
  static bool isKind(const TypeLoc &TL) {
494
283
    return !TL.getType().hasLocalQualifiers() &&
495
283
           Derived::classofType(TL.getTypePtr());
496
283
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionNoProtoTypeLoc, clang::FunctionNoProtoType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
56.6k
  static bool isKind(const TypeLoc &TL) {
494
56.6k
    return !TL.getType().hasLocalQualifiers() &&
495
56.6k
           Derived::classofType(TL.getTypePtr());
496
56.6k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionProtoTypeLoc, clang::FunctionProtoType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
168M
  static bool isKind(const TypeLoc &TL) {
494
168M
    return !TL.getType().hasLocalQualifiers() &&
495
168M
           Derived::classofType(TL.getTypePtr());
496
168M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::InjectedClassNameTypeLoc, clang::InjectedClassNameType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
10.9M
  static bool isKind(const TypeLoc &TL) {
494
10.9M
    return !TL.getType().hasLocalQualifiers() &&
495
10.9M
           Derived::classofType(TL.getTypePtr());
496
10.9M
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::ConstantMatrixTypeLoc, clang::ConstantMatrixType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
4.62k
  static bool isKind(const TypeLoc &TL) {
494
4.62k
    return !TL.getType().hasLocalQualifiers() &&
495
4.62k
           Derived::classofType(TL.getTypePtr());
496
4.62k
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::DependentSizedMatrixTypeLoc, clang::DependentSizedMatrixType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
2.94k
  static bool isKind(const TypeLoc &TL) {
494
2.94k
    return !TL.getType().hasLocalQualifiers() &&
495
2.94k
           Derived::classofType(TL.getTypePtr());
496
2.94k
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::LValueReferenceTypeLoc, clang::LValueReferenceType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
29.7M
  static bool isKind(const TypeLoc &TL) {
494
29.7M
    return !TL.getType().hasLocalQualifiers() &&
495
29.7M
           Derived::classofType(TL.getTypePtr());
496
29.7M
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::RValueReferenceTypeLoc, clang::RValueReferenceType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
7.57M
  static bool isKind(const TypeLoc &TL) {
494
7.57M
    return !TL.getType().hasLocalQualifiers() &&
495
7.57M
           Derived::classofType(TL.getTypePtr());
496
7.57M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmPackTypeLoc, clang::SubstTemplateTypeParmPackType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
426k
  static bool isKind(const TypeLoc &TL) {
494
426k
    return !TL.getType().hasLocalQualifiers() &&
495
426k
           Derived::classofType(TL.getTypePtr());
496
426k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmTypeLoc, clang::SubstTemplateTypeParmType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
75.5M
  static bool isKind(const TypeLoc &TL) {
494
75.5M
    return !TL.getType().hasLocalQualifiers() &&
495
75.5M
           Derived::classofType(TL.getTypePtr());
496
75.5M
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::EnumTypeLoc, clang::EnumType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
3.94M
  static bool isKind(const TypeLoc &TL) {
494
3.94M
    return !TL.getType().hasLocalQualifiers() &&
495
3.94M
           Derived::classofType(TL.getTypePtr());
496
3.94M
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::RecordTypeLoc, clang::RecordType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
43.6M
  static bool isKind(const TypeLoc &TL) {
494
43.6M
    return !TL.getType().hasLocalQualifiers() &&
495
43.6M
           Derived::classofType(TL.getTypePtr());
496
43.6M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TemplateTypeParmTypeLoc, clang::TemplateTypeParmType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
139M
  static bool isKind(const TypeLoc &TL) {
494
139M
    return !TL.getType().hasLocalQualifiers() &&
495
139M
           Derived::classofType(TL.getTypePtr());
496
139M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TypedefTypeLoc, clang::TypedefType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
517M
  static bool isKind(const TypeLoc &TL) {
494
517M
    return !TL.getType().hasLocalQualifiers() &&
495
517M
           Derived::classofType(TL.getTypePtr());
496
517M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UnresolvedUsingTypeLoc, clang::UnresolvedUsingType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
16.3k
  static bool isKind(const TypeLoc &TL) {
494
16.3k
    return !TL.getType().hasLocalQualifiers() &&
495
16.3k
           Derived::classofType(TL.getTypePtr());
496
16.3k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UsingTypeLoc, clang::UsingType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
5.15M
  static bool isKind(const TypeLoc &TL) {
494
5.15M
    return !TL.getType().hasLocalQualifiers() &&
495
5.15M
           Derived::classofType(TL.getTypePtr());
496
5.15M
  }
clang::InheritingConcreteTypeLoc<clang::VectorTypeLoc, clang::ExtVectorTypeLoc, clang::ExtVectorType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
23.8k
  static bool isKind(const TypeLoc &TL) {
494
23.8k
    return !TL.getType().hasLocalQualifiers() &&
495
23.8k
           Derived::classofType(TL.getTypePtr());
496
23.8k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DeducedTypeLoc, clang::DeducedType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
932
  static bool isKind(const TypeLoc &TL) {
494
932
    return !TL.getType().hasLocalQualifiers() &&
495
932
           Derived::classofType(TL.getTypePtr());
496
932
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TagTypeLoc, clang::TagType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
1.83M
  static bool isKind(const TypeLoc &TL) {
494
1.83M
    return !TL.getType().hasLocalQualifiers() &&
495
1.83M
           Derived::classofType(TL.getTypePtr());
496
1.83M
  }
497
  static bool isKind(const UnqualTypeLoc &TL) {
498
    return Derived::classofType(TL.getTypePtr());
499
  }
500
501
public:
502
19.3M
  const TypeClass *getTypePtr() const {
503
19.3M
    return cast<TypeClass>(Base::getTypePtr());
504
19.3M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UsingTypeLoc, clang::UsingType>::getTypePtr() const
Line
Count
Source
502
37.7k
  const TypeClass *getTypePtr() const {
503
37.7k
    return cast<TypeClass>(Base::getTypePtr());
504
37.7k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TypedefTypeLoc, clang::TypedefType>::getTypePtr() const
Line
Count
Source
502
2.11M
  const TypeClass *getTypePtr() const {
503
2.11M
    return cast<TypeClass>(Base::getTypePtr());
504
2.11M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::InjectedClassNameTypeLoc, clang::InjectedClassNameType>::getTypePtr() const
Line
Count
Source
502
578k
  const TypeClass *getTypePtr() const {
503
578k
    return cast<TypeClass>(Base::getTypePtr());
504
578k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UnresolvedUsingTypeLoc, clang::UnresolvedUsingType>::getTypePtr() const
Line
Count
Source
502
371
  const TypeClass *getTypePtr() const {
503
371
    return cast<TypeClass>(Base::getTypePtr());
504
371
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TagTypeLoc, clang::TagType>::getTypePtr() const
Line
Count
Source
502
259k
  const TypeClass *getTypePtr() const {
503
259k
    return cast<TypeClass>(Base::getTypePtr());
504
259k
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::RecordTypeLoc, clang::RecordType>::getTypePtr() const
Line
Count
Source
502
244k
  const TypeClass *getTypePtr() const {
503
244k
    return cast<TypeClass>(Base::getTypePtr());
504
244k
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::EnumTypeLoc, clang::EnumType>::getTypePtr() const
Line
Count
Source
502
13.2k
  const TypeClass *getTypePtr() const {
503
13.2k
    return cast<TypeClass>(Base::getTypePtr());
504
13.2k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TemplateTypeParmTypeLoc, clang::TemplateTypeParmType>::getTypePtr() const
Line
Count
Source
502
6.41M
  const TypeClass *getTypePtr() const {
503
6.41M
    return cast<TypeClass>(Base::getTypePtr());
504
6.41M
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::DependentSizedArrayTypeLoc, clang::DependentSizedArrayType>::getTypePtr() const
Line
Count
Source
502
13.2k
  const TypeClass *getTypePtr() const {
503
13.2k
    return cast<TypeClass>(Base::getTypePtr());
504
13.2k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DeducedTypeLoc, clang::DeducedType>::getTypePtr() const
Line
Count
Source
502
993k
  const TypeClass *getTypePtr() const {
503
993k
    return cast<TypeClass>(Base::getTypePtr());
504
993k
  }
Unexecuted instantiation: clang::InheritingConcreteTypeLoc<clang::AdjustedTypeLoc, clang::DecayedTypeLoc, clang::DecayedType>::getTypePtr() const
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::ConstantArrayTypeLoc, clang::ConstantArrayType>::getTypePtr() const
Line
Count
Source
502
36.6k
  const TypeClass *getTypePtr() const {
503
36.6k
    return cast<TypeClass>(Base::getTypePtr());
504
36.6k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::IncompleteArrayTypeLoc, clang::IncompleteArrayType>::getTypePtr() const
Line
Count
Source
502
8.05k
  const TypeClass *getTypePtr() const {
503
8.05k
    return cast<TypeClass>(Base::getTypePtr());
504
8.05k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::VariableArrayTypeLoc, clang::VariableArrayType>::getTypePtr() const
Line
Count
Source
502
173
  const TypeClass *getTypePtr() const {
503
173
    return cast<TypeClass>(Base::getTypePtr());
504
173
  }
Unexecuted instantiation: clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::BitIntTypeLoc, clang::BitIntType>::getTypePtr() const
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::ComplexTypeLoc, clang::ComplexType>::getTypePtr() const
Line
Count
Source
502
8.02k
  const TypeClass *getTypePtr() const {
503
8.02k
    return cast<TypeClass>(Base::getTypePtr());
504
8.02k
  }
clang::InheritingConcreteTypeLoc<clang::DeducedTypeLoc, clang::DeducedTemplateSpecializationTypeLoc, clang::DeducedTemplateSpecializationType>::getTypePtr() const
Line
Count
Source
502
1.33k
  const TypeClass *getTypePtr() const {
503
1.33k
    return cast<TypeClass>(Base::getTypePtr());
504
1.33k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DependentBitIntTypeLoc, clang::DependentBitIntType>::getTypePtr() const
Line
Count
Source
502
26
  const TypeClass *getTypePtr() const {
503
26
    return cast<TypeClass>(Base::getTypePtr());
504
26
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionNoProtoTypeLoc, clang::FunctionNoProtoType>::getTypePtr() const
Line
Count
Source
502
1.54k
  const TypeClass *getTypePtr() const {
503
1.54k
    return cast<TypeClass>(Base::getTypePtr());
504
1.54k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionProtoTypeLoc, clang::FunctionProtoType>::getTypePtr() const
Line
Count
Source
502
8.30M
  const TypeClass *getTypePtr() const {
503
8.30M
    return cast<TypeClass>(Base::getTypePtr());
504
8.30M
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::ConstantMatrixTypeLoc, clang::ConstantMatrixType>::getTypePtr() const
Line
Count
Source
502
138
  const TypeClass *getTypePtr() const {
503
138
    return cast<TypeClass>(Base::getTypePtr());
504
138
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::DependentSizedMatrixTypeLoc, clang::DependentSizedMatrixType>::getTypePtr() const
Line
Count
Source
502
237
  const TypeClass *getTypePtr() const {
503
237
    return cast<TypeClass>(Base::getTypePtr());
504
237
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::LValueReferenceTypeLoc, clang::LValueReferenceType>::getTypePtr() const
Line
Count
Source
502
172k
  const TypeClass *getTypePtr() const {
503
172k
    return cast<TypeClass>(Base::getTypePtr());
504
172k
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::RValueReferenceTypeLoc, clang::RValueReferenceType>::getTypePtr() const
Line
Count
Source
502
65.6k
  const TypeClass *getTypePtr() const {
503
65.6k
    return cast<TypeClass>(Base::getTypePtr());
504
65.6k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmPackTypeLoc, clang::SubstTemplateTypeParmPackType>::getTypePtr() const
Line
Count
Source
502
9.81k
  const TypeClass *getTypePtr() const {
503
9.81k
    return cast<TypeClass>(Base::getTypePtr());
504
9.81k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmTypeLoc, clang::SubstTemplateTypeParmType>::getTypePtr() const
Line
Count
Source
502
94.8k
  const TypeClass *getTypePtr() const {
503
94.8k
    return cast<TypeClass>(Base::getTypePtr());
504
94.8k
  }
clang::InheritingConcreteTypeLoc<clang::VectorTypeLoc, clang::ExtVectorTypeLoc, clang::ExtVectorType>::getTypePtr() const
Line
Count
Source
502
43
  const TypeClass *getTypePtr() const {
503
43
    return cast<TypeClass>(Base::getTypePtr());
504
43
  }
505
};
506
507
struct TypeSpecLocInfo {
508
  SourceLocation NameLoc;
509
};
510
511
/// A reasonable base class for TypeLocs that correspond to
512
/// types that are written as a type-specifier.
513
class TypeSpecTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc,
514
                                               TypeSpecTypeLoc,
515
                                               Type,
516
                                               TypeSpecLocInfo> {
517
public:
518
  enum {
519
    LocalDataSize = sizeof(TypeSpecLocInfo),
520
    LocalDataAlignment = alignof(TypeSpecLocInfo)
521
  };
522
523
207M
  SourceLocation getNameLoc() const {
524
207M
    return this->getLocalData()->NameLoc;
525
207M
  }
526
527
117M
  void setNameLoc(SourceLocation Loc) {
528
117M
    this->getLocalData()->NameLoc = Loc;
529
117M
  }
530
531
97.7M
  SourceRange getLocalSourceRange() const {
532
97.7M
    return SourceRange(getNameLoc(), getNameLoc());
533
97.7M
  }
534
535
11.0M
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
536
11.0M
    setNameLoc(Loc);
537
11.0M
  }
538
539
private:
540
  friend class TypeLoc;
541
542
  static bool isKind(const TypeLoc &TL);
543
};
544
545
struct BuiltinLocInfo {
546
  SourceRange BuiltinRange;
547
};
548
549
/// Wrapper for source info for builtin types.
550
class BuiltinTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc,
551
                                              BuiltinTypeLoc,
552
                                              BuiltinType,
553
                                              BuiltinLocInfo> {
554
public:
555
1.02M
  SourceLocation getBuiltinLoc() const {
556
1.02M
    return getLocalData()->BuiltinRange.getBegin();
557
1.02M
  }
558
559
14.5M
  void setBuiltinLoc(SourceLocation Loc) {
560
14.5M
    getLocalData()->BuiltinRange = Loc;
561
14.5M
  }
562
563
1.56M
  void expandBuiltinRange(SourceRange Range) {
564
1.56M
    SourceRange &BuiltinRange = getLocalData()->BuiltinRange;
565
1.56M
    if (!BuiltinRange.getBegin().isValid()) {
566
635k
      BuiltinRange = Range;
567
932k
    } else {
568
932k
      BuiltinRange.setBegin(std::min(Range.getBegin(), BuiltinRange.getBegin()));
569
932k
      BuiltinRange.setEnd(std::max(Range.getEnd(), BuiltinRange.getEnd()));
570
932k
    }
571
1.56M
  }
572
573
0
  SourceLocation getNameLoc() const { return getBuiltinLoc(); }
574
575
7.10M
  WrittenBuiltinSpecs& getWrittenBuiltinSpecs() {
576
7.10M
    return *(static_cast<WrittenBuiltinSpecs*>(getExtraLocalData()));
577
7.10M
  }
578
8.93M
  const WrittenBuiltinSpecs& getWrittenBuiltinSpecs() const {
579
8.93M
    return *(static_cast<WrittenBuiltinSpecs*>(getExtraLocalData()));
580
8.93M
  }
581
582
111M
  bool needsExtraLocalData() const {
583
111M
    BuiltinType::Kind bk = getTypePtr()->getKind();
584
111M
    return (bk >= BuiltinType::UShort && 
bk <= BuiltinType::UInt12861.8M
) ||
585
111M
           
(104M
bk >= BuiltinType::Short104M
&&
bk <= BuiltinType::Ibm12847.2M
) ||
586
111M
           
bk == BuiltinType::UChar57.9M
||
bk == BuiltinType::SChar56.5M
;
587
111M
  }
588
589
16.2M
  unsigned getExtraLocalDataSize() const {
590
16.2M
    return needsExtraLocalData() ? 
sizeof(WrittenBuiltinSpecs)6.15M
:
010.1M
;
591
16.2M
  }
592
593
69.7M
  unsigned getExtraLocalDataAlignment() const {
594
69.7M
    return needsExtraLocalData() ? 
alignof(WrittenBuiltinSpecs)32.4M
:
137.2M
;
595
69.7M
  }
596
597
11.2M
  SourceRange getLocalSourceRange() const {
598
11.2M
    return getLocalData()->BuiltinRange;
599
11.2M
  }
600
601
4.14M
  TypeSpecifierSign getWrittenSignSpec() const {
602
4.14M
    if (needsExtraLocalData())
603
4.14M
      return static_cast<TypeSpecifierSign>(getWrittenBuiltinSpecs().Sign);
604
0
    else
605
0
      return TypeSpecifierSign::Unspecified;
606
4.14M
  }
607
608
0
  bool hasWrittenSignSpec() const {
609
0
    return getWrittenSignSpec() != TypeSpecifierSign::Unspecified;
610
0
  }
611
612
351k
  void setWrittenSignSpec(TypeSpecifierSign written) {
613
351k
    if (needsExtraLocalData())
614
351k
      getWrittenBuiltinSpecs().Sign = static_cast<unsigned>(written);
615
351k
  }
616
617
4.14M
  TypeSpecifierWidth getWrittenWidthSpec() const {
618
4.14M
    if (needsExtraLocalData())
619
4.14M
      return static_cast<TypeSpecifierWidth>(getWrittenBuiltinSpecs().Width);
620
0
    else
621
0
      return TypeSpecifierWidth::Unspecified;
622
4.14M
  }
623
624
0
  bool hasWrittenWidthSpec() const {
625
0
    return getWrittenWidthSpec() != TypeSpecifierWidth::Unspecified;
626
0
  }
627
628
351k
  void setWrittenWidthSpec(TypeSpecifierWidth written) {
629
351k
    if (needsExtraLocalData())
630
351k
      getWrittenBuiltinSpecs().Width = static_cast<unsigned>(written);
631
351k
  }
632
633
  TypeSpecifierType getWrittenTypeSpec() const;
634
635
0
  bool hasWrittenTypeSpec() const {
636
0
    return getWrittenTypeSpec() != TST_unspecified;
637
0
  }
638
639
351k
  void setWrittenTypeSpec(TypeSpecifierType written) {
640
351k
    if (needsExtraLocalData())
641
351k
      getWrittenBuiltinSpecs().Type = written;
642
351k
  }
643
644
325k
  bool hasModeAttr() const {
645
325k
    if (needsExtraLocalData())
646
325k
      return getWrittenBuiltinSpecs().ModeAttr;
647
0
    else
648
0
      return false;
649
325k
  }
650
651
351k
  void setModeAttr(bool written) {
652
351k
    if (needsExtraLocalData())
653
351k
      getWrittenBuiltinSpecs().ModeAttr = written;
654
351k
  }
655
656
3.70M
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
657
3.70M
    setBuiltinLoc(Loc);
658
3.70M
    if (needsExtraLocalData()) {
659
1.82M
      WrittenBuiltinSpecs &wbs = getWrittenBuiltinSpecs();
660
1.82M
      wbs.Sign = static_cast<unsigned>(TypeSpecifierSign::Unspecified);
661
1.82M
      wbs.Width = static_cast<unsigned>(TypeSpecifierWidth::Unspecified);
662
1.82M
      wbs.Type = TST_unspecified;
663
1.82M
      wbs.ModeAttr = false;
664
1.82M
    }
665
3.70M
  }
666
};
667
668
/// Wrapper for source info for types used via transparent aliases.
669
class UsingTypeLoc : public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
670
                                                      UsingTypeLoc, UsingType> {
671
public:
672
0
  QualType getUnderlyingType() const {
673
0
    return getTypePtr()->getUnderlyingType();
674
0
  }
675
  UsingShadowDecl *getFoundDecl() const { return getTypePtr()->getFoundDecl(); }
676
};
677
678
/// Wrapper for source info for typedefs.
679
class TypedefTypeLoc : public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
680
                                                        TypedefTypeLoc,
681
                                                        TypedefType> {
682
public:
683
4.42k
  TypedefNameDecl *getTypedefNameDecl() const {
684
4.42k
    return getTypePtr()->getDecl();
685
4.42k
  }
686
};
687
688
/// Wrapper for source info for injected class names of class
689
/// templates.
690
class InjectedClassNameTypeLoc :
691
    public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
692
                                     InjectedClassNameTypeLoc,
693
                                     InjectedClassNameType> {
694
public:
695
10
  CXXRecordDecl *getDecl() const {
696
10
    return getTypePtr()->getDecl();
697
10
  }
698
};
699
700
/// Wrapper for source info for unresolved typename using decls.
701
class UnresolvedUsingTypeLoc :
702
    public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
703
                                     UnresolvedUsingTypeLoc,
704
                                     UnresolvedUsingType> {
705
public:
706
0
  UnresolvedUsingTypenameDecl *getDecl() const {
707
0
    return getTypePtr()->getDecl();
708
0
  }
709
};
710
711
/// Wrapper for source info for tag types.  Note that this only
712
/// records source info for the name itself; a type written 'struct foo'
713
/// should be represented as an ElaboratedTypeLoc.  We currently
714
/// only do that when C++ is enabled because of the expense of
715
/// creating an ElaboratedType node for so many type references in C.
716
class TagTypeLoc : public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
717
                                                    TagTypeLoc,
718
                                                    TagType> {
719
public:
720
1.53k
  TagDecl *getDecl() const { return getTypePtr()->getDecl(); }
721
722
  /// True if the tag was defined in this type specifier.
723
  bool isDefinition() const;
724
};
725
726
/// Wrapper for source info for record types.
727
class RecordTypeLoc : public InheritingConcreteTypeLoc<TagTypeLoc,
728
                                                       RecordTypeLoc,
729
                                                       RecordType> {
730
public:
731
47
  RecordDecl *getDecl() const { return getTypePtr()->getDecl(); }
732
};
733
734
/// Wrapper for source info for enum types.
735
class EnumTypeLoc : public InheritingConcreteTypeLoc<TagTypeLoc,
736
                                                     EnumTypeLoc,
737
                                                     EnumType> {
738
public:
739
0
  EnumDecl *getDecl() const { return getTypePtr()->getDecl(); }
740
};
741
742
/// Wrapper for template type parameters.
743
class TemplateTypeParmTypeLoc :
744
    public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
745
                                     TemplateTypeParmTypeLoc,
746
                                     TemplateTypeParmType> {
747
public:
748
400
  TemplateTypeParmDecl *getDecl() const { return getTypePtr()->getDecl(); }
749
};
750
751
struct ObjCTypeParamTypeLocInfo {
752
  SourceLocation NameLoc;
753
};
754
755
/// ProtocolLAngleLoc, ProtocolRAngleLoc, and the source locations for
756
/// protocol qualifiers are stored after Info.
757
class ObjCTypeParamTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc,
758
                                     ObjCTypeParamTypeLoc,
759
                                     ObjCTypeParamType,
760
                                     ObjCTypeParamTypeLocInfo> {
761
  // SourceLocations are stored after Info, one for each protocol qualifier.
762
3.71k
  SourceLocation *getProtocolLocArray() const {
763
3.71k
    return (SourceLocation*)this->getExtraLocalData() + 2;
764
3.71k
  }
765
766
public:
767
5
  ObjCTypeParamDecl *getDecl() const { return getTypePtr()->getDecl(); }
768
769
46.8k
  SourceLocation getNameLoc() const {
770
46.8k
    return this->getLocalData()->NameLoc;
771
46.8k
  }
772
773
132k
  void setNameLoc(SourceLocation Loc) {
774
132k
    this->getLocalData()->NameLoc = Loc;
775
132k
  }
776
777
46
  SourceLocation getProtocolLAngleLoc() const {
778
46
    return getNumProtocols()  ?
779
46
      *((SourceLocation*)this->getExtraLocalData()) :
780
46
      
SourceLocation()0
;
781
46
  }
782
783
3.63k
  void setProtocolLAngleLoc(SourceLocation Loc) {
784
3.63k
    *((SourceLocation*)this->getExtraLocalData()) = Loc;
785
3.63k
  }
786
787
46.8k
  SourceLocation getProtocolRAngleLoc() const {
788
46.8k
    return getNumProtocols()  ?
789
2.26k
      *((SourceLocation*)this->getExtraLocalData() + 1) :
790
46.8k
      
SourceLocation()44.6k
;
791
46.8k
  }
792
793
3.63k
  void setProtocolRAngleLoc(SourceLocation Loc) {
794
3.63k
    *((SourceLocation*)this->getExtraLocalData() + 1) = Loc;
795
3.63k
  }
796
797
334k
  unsigned getNumProtocols() const {
798
334k
    return this->getTypePtr()->getNumProtocols();
799
334k
  }
800
801
79
  SourceLocation getProtocolLoc(unsigned i) const {
802
79
    assert(i < getNumProtocols() && "Index is out of bounds!");
803
0
    return getProtocolLocArray()[i];
804
79
  }
805
806
3.64k
  void setProtocolLoc(unsigned i, SourceLocation Loc) {
807
3.64k
    assert(i < getNumProtocols() && "Index is out of bounds!");
808
0
    getProtocolLocArray()[i] = Loc;
809
3.64k
  }
810
811
32
  ObjCProtocolDecl *getProtocol(unsigned i) const {
812
32
    assert(i < getNumProtocols() && "Index is out of bounds!");
813
0
    return *(this->getTypePtr()->qual_begin() + i);
814
32
  }
815
816
0
  ArrayRef<SourceLocation> getProtocolLocs() const {
817
0
    return llvm::makeArrayRef(getProtocolLocArray(), getNumProtocols());
818
0
  }
819
820
  void initializeLocal(ASTContext &Context, SourceLocation Loc);
821
822
134k
  unsigned getExtraLocalDataSize() const {
823
134k
    if (!this->getNumProtocols()) 
return 0131k
;
824
    // When there are protocol qualifers, we have LAngleLoc and RAngleLoc
825
    // as well.
826
3.63k
    return (this->getNumProtocols() + 2) * sizeof(SourceLocation) ;
827
134k
  }
828
829
374k
  unsigned getExtraLocalDataAlignment() const {
830
374k
    return alignof(SourceLocation);
831
374k
  }
832
833
46.8k
  SourceRange getLocalSourceRange() const {
834
46.8k
    SourceLocation start = getNameLoc();
835
46.8k
    SourceLocation end = getProtocolRAngleLoc();
836
46.8k
    if (end.isInvalid()) 
return SourceRange(start, start)44.6k
;
837
2.21k
    return SourceRange(start, end);
838
46.8k
  }
839
};
840
841
/// Wrapper for substituted template type parameters.
842
class SubstTemplateTypeParmTypeLoc :
843
    public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
844
                                     SubstTemplateTypeParmTypeLoc,
845
                                     SubstTemplateTypeParmType> {
846
};
847
848
  /// Wrapper for substituted template type parameters.
849
class SubstTemplateTypeParmPackTypeLoc :
850
    public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
851
                                     SubstTemplateTypeParmPackTypeLoc,
852
                                     SubstTemplateTypeParmPackType> {
853
};
854
855
struct AttributedLocInfo {
856
  const Attr *TypeAttr;
857
};
858
859
/// Type source information for an attributed type.
860
class AttributedTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc,
861
                                                 AttributedTypeLoc,
862
                                                 AttributedType,
863
                                                 AttributedLocInfo> {
864
public:
865
340
  attr::Kind getAttrKind() const {
866
340
    return getTypePtr()->getAttrKind();
867
340
  }
868
869
23
  bool isQualifier() const {
870
23
    return getTypePtr()->isQualifier();
871
23
  }
872
873
  /// The modified type, which is generally canonically different from
874
  /// the attribute type.
875
  ///    int main(int, char**) __attribute__((noreturn))
876
  ///    ~~~     ~~~~~~~~~~~~~
877
1.81M
  TypeLoc getModifiedLoc() const {
878
1.81M
    return getInnerTypeLoc();
879
1.81M
  }
880
881
  /// The type attribute.
882
1.69M
  const Attr *getAttr() const {
883
1.69M
    return getLocalData()->TypeAttr;
884
1.69M
  }
885
3.30M
  void setAttr(const Attr *A) {
886
3.30M
    getLocalData()->TypeAttr = A;
887
3.30M
  }
888
889
14.9k
  template<typename T> const T *getAttrAs() {
890
14.9k
    return dyn_cast_or_null<T>(getAttr());
891
14.9k
  }
clang::LifetimeBoundAttr const* clang::AttributedTypeLoc::getAttrAs<clang::LifetimeBoundAttr>()
Line
Count
Source
889
14.6k
  template<typename T> const T *getAttrAs() {
890
14.6k
    return dyn_cast_or_null<T>(getAttr());
891
14.6k
  }
clang::ObjCOwnershipAttr const* clang::AttributedTypeLoc::getAttrAs<clang::ObjCOwnershipAttr>()
Line
Count
Source
889
340
  template<typename T> const T *getAttrAs() {
890
340
    return dyn_cast_or_null<T>(getAttr());
891
340
  }
892
893
  SourceRange getLocalSourceRange() const;
894
895
4.45k
  void initializeLocal(ASTContext &Context, SourceLocation loc) {
896
4.45k
    setAttr(nullptr);
897
4.45k
  }
898
899
15.2M
  QualType getInnerType() const {
900
15.2M
    return getTypePtr()->getModifiedType();
901
15.2M
  }
902
};
903
904
struct BTFTagAttributedLocInfo {}; // Nothing.
905
906
/// Type source information for an btf_tag attributed type.
907
class BTFTagAttributedTypeLoc
908
    : public ConcreteTypeLoc<UnqualTypeLoc, BTFTagAttributedTypeLoc,
909
                             BTFTagAttributedType, BTFTagAttributedLocInfo> {
910
public:
911
40
  TypeLoc getWrappedLoc() const { return getInnerTypeLoc(); }
912
913
  /// The btf_type_tag attribute.
914
32
  const BTFTypeTagAttr *getAttr() const { return getTypePtr()->getAttr(); }
915
916
  template <typename T> T *getAttrAs() {
917
    return dyn_cast_or_null<T>(getAttr());
918
  }
919
920
  SourceRange getLocalSourceRange() const;
921
922
0
  void initializeLocal(ASTContext &Context, SourceLocation loc) {}
923
924
252
  QualType getInnerType() const { return getTypePtr()->getWrappedType(); }
925
};
926
927
struct ObjCObjectTypeLocInfo {
928
  SourceLocation TypeArgsLAngleLoc;
929
  SourceLocation TypeArgsRAngleLoc;
930
  SourceLocation ProtocolLAngleLoc;
931
  SourceLocation ProtocolRAngleLoc;
932
  bool HasBaseTypeAsWritten;
933
};
934
935
// A helper class for defining ObjC TypeLocs that can qualified with
936
// protocols.
937
//
938
// TypeClass basically has to be either ObjCInterfaceType or
939
// ObjCObjectPointerType.
940
class ObjCObjectTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc,
941
                                                 ObjCObjectTypeLoc,
942
                                                 ObjCObjectType,
943
                                                 ObjCObjectTypeLocInfo> {
944
  // TypeSourceInfo*'s are stored after Info, one for each type argument.
945
199k
  TypeSourceInfo **getTypeArgLocArray() const {
946
199k
    return (TypeSourceInfo**)this->getExtraLocalData();
947
199k
  }
948
949
  // SourceLocations are stored after the type argument information, one for
950
  // each Protocol.
951
25.0k
  SourceLocation *getProtocolLocArray() const {
952
25.0k
    return (SourceLocation*)(getTypeArgLocArray() + getNumTypeArgs());
953
25.0k
  }
954
955
public:
956
69.2k
  SourceLocation getTypeArgsLAngleLoc() const {
957
69.2k
    return this->getLocalData()->TypeArgsLAngleLoc;
958
69.2k
  }
959
960
210k
  void setTypeArgsLAngleLoc(SourceLocation Loc) {
961
210k
    this->getLocalData()->TypeArgsLAngleLoc = Loc;
962
210k
  }
963
964
60.7k
  SourceLocation getTypeArgsRAngleLoc() const {
965
60.7k
    return this->getLocalData()->TypeArgsRAngleLoc;
966
60.7k
  }
967
968
210k
  void setTypeArgsRAngleLoc(SourceLocation Loc) {
969
210k
    this->getLocalData()->TypeArgsRAngleLoc = Loc;
970
210k
  }
971
972
2.45M
  unsigned getNumTypeArgs() const {
973
2.45M
    return this->getTypePtr()->getTypeArgsAsWritten().size();
974
2.45M
  }
975
976
10.5k
  TypeSourceInfo *getTypeArgTInfo(unsigned i) const {
977
10.5k
    assert(i < getNumTypeArgs() && "Index is out of bounds!");
978
0
    return getTypeArgLocArray()[i];
979
10.5k
  }
980
981
164k
  void setTypeArgTInfo(unsigned i, TypeSourceInfo *TInfo) {
982
164k
    assert(i < getNumTypeArgs() && "Index is out of bounds!");
983
0
    getTypeArgLocArray()[i] = TInfo;
984
164k
  }
985
986
15.2k
  SourceLocation getProtocolLAngleLoc() const {
987
15.2k
    return this->getLocalData()->ProtocolLAngleLoc;
988
15.2k
  }
989
990
210k
  void setProtocolLAngleLoc(SourceLocation Loc) {
991
210k
    this->getLocalData()->ProtocolLAngleLoc = Loc;
992
210k
  }
993
994
69.2k
  SourceLocation getProtocolRAngleLoc() const {
995
69.2k
    return this->getLocalData()->ProtocolRAngleLoc;
996
69.2k
  }
997
998
210k
  void setProtocolRAngleLoc(SourceLocation Loc) {
999
210k
    this->getLocalData()->ProtocolRAngleLoc = Loc;
1000
210k
  }
1001
1002
2.17M
  unsigned getNumProtocols() const {
1003
2.17M
    return this->getTypePtr()->getNumProtocols();
1004
2.17M
  }
1005
1006
3.01k
  SourceLocation getProtocolLoc(unsigned i) const {
1007
3.01k
    assert(i < getNumProtocols() && "Index is out of bounds!");
1008
0
    return getProtocolLocArray()[i];
1009
3.01k
  }
1010
1011
22.0k
  void setProtocolLoc(unsigned i, SourceLocation Loc) {
1012
22.0k
    assert(i < getNumProtocols() && "Index is out of bounds!");
1013
0
    getProtocolLocArray()[i] = Loc;
1014
22.0k
  }
1015
1016
1.29k
  ObjCProtocolDecl *getProtocol(unsigned i) const {
1017
1.29k
    assert(i < getNumProtocols() && "Index is out of bounds!");
1018
0
    return *(this->getTypePtr()->qual_begin() + i);
1019
1.29k
  }
1020
1021
1022
17
  ArrayRef<SourceLocation> getProtocolLocs() const {
1023
17
    return llvm::makeArrayRef(getProtocolLocArray(), getNumProtocols());
1024
17
  }
1025
1026
6.53k
  bool hasBaseTypeAsWritten() const {
1027
6.53k
    return getLocalData()->HasBaseTypeAsWritten;
1028
6.53k
  }
1029
1030
210k
  void setHasBaseTypeAsWritten(bool HasBaseType) {
1031
210k
    getLocalData()->HasBaseTypeAsWritten = HasBaseType;
1032
210k
  }
1033
1034
157k
  TypeLoc getBaseLoc() const {
1035
157k
    return getInnerTypeLoc();
1036
157k
  }
1037
1038
62.7k
  SourceRange getLocalSourceRange() const {
1039
62.7k
    SourceLocation start = getTypeArgsLAngleLoc();
1040
62.7k
    if (start.isInvalid())
1041
8.75k
      start = getProtocolLAngleLoc();
1042
62.7k
    SourceLocation end = getProtocolRAngleLoc();
1043
62.7k
    if (end.isInvalid())
1044
54.2k
      end = getTypeArgsRAngleLoc();
1045
62.7k
    return SourceRange(start, end);
1046
62.7k
  }
1047
1048
  void initializeLocal(ASTContext &Context, SourceLocation Loc);
1049
1050
1.90M
  unsigned getExtraLocalDataSize() const {
1051
1.90M
    return this->getNumTypeArgs() * sizeof(TypeSourceInfo *)
1052
1.90M
         + this->getNumProtocols() * sizeof(SourceLocation);
1053
1.90M
  }
1054
1055
3.46M
  unsigned getExtraLocalDataAlignment() const {
1056
3.46M
    static_assert(alignof(ObjCObjectTypeLoc) >= alignof(TypeSourceInfo *),
1057
3.46M
                  "not enough alignment for tail-allocated data");
1058
3.46M
    return alignof(TypeSourceInfo *);
1059
3.46M
  }
1060
1061
2.18M
  QualType getInnerType() const {
1062
2.18M
    return getTypePtr()->getBaseType();
1063
2.18M
  }
1064
};
1065
1066
struct ObjCInterfaceLocInfo {
1067
  SourceLocation NameLoc;
1068
  SourceLocation NameEndLoc;
1069
};
1070
1071
/// Wrapper for source info for ObjC interfaces.
1072
class ObjCInterfaceTypeLoc : public ConcreteTypeLoc<ObjCObjectTypeLoc,
1073
                                                    ObjCInterfaceTypeLoc,
1074
                                                    ObjCInterfaceType,
1075
                                                    ObjCInterfaceLocInfo> {
1076
public:
1077
393
  ObjCInterfaceDecl *getIFaceDecl() const {
1078
393
    return getTypePtr()->getDecl();
1079
393
  }
1080
1081
1.62M
  SourceLocation getNameLoc() const {
1082
1.62M
    return getLocalData()->NameLoc;
1083
1.62M
  }
1084
1085
1.39M
  void setNameLoc(SourceLocation Loc) {
1086
1.39M
    getLocalData()->NameLoc = Loc;
1087
1.39M
  }
1088
1089
1.58M
  SourceRange getLocalSourceRange() const {
1090
1.58M
    return SourceRange(getNameLoc(), getNameEndLoc());
1091
1.58M
  }
1092
1093
1.58M
  SourceLocation getNameEndLoc() const {
1094
1.58M
    return getLocalData()->NameEndLoc;
1095
1.58M
  }
1096
1097
1.37M
  void setNameEndLoc(SourceLocation Loc) {
1098
1.37M
    getLocalData()->NameEndLoc = Loc;
1099
1.37M
  }
1100
1101
344k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1102
344k
    setNameLoc(Loc);
1103
344k
    setNameEndLoc(Loc);
1104
344k
  }
1105
};
1106
1107
struct MacroQualifiedLocInfo {
1108
  SourceLocation ExpansionLoc;
1109
};
1110
1111
class MacroQualifiedTypeLoc
1112
    : public ConcreteTypeLoc<UnqualTypeLoc, MacroQualifiedTypeLoc,
1113
                             MacroQualifiedType, MacroQualifiedLocInfo> {
1114
public:
1115
2
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1116
2
    setExpansionLoc(Loc);
1117
2
  }
1118
1119
166k
  TypeLoc getInnerLoc() const { return getInnerTypeLoc(); }
1120
1121
23
  const IdentifierInfo *getMacroIdentifier() const {
1122
23
    return getTypePtr()->getMacroIdentifier();
1123
23
  }
1124
1125
8.86k
  SourceLocation getExpansionLoc() const {
1126
8.86k
    return this->getLocalData()->ExpansionLoc;
1127
8.86k
  }
1128
1129
244k
  void setExpansionLoc(SourceLocation Loc) {
1130
244k
    this->getLocalData()->ExpansionLoc = Loc;
1131
244k
  }
1132
1133
1.03M
  QualType getInnerType() const { return getTypePtr()->getUnderlyingType(); }
1134
1135
440
  SourceRange getLocalSourceRange() const {
1136
440
    return getInnerLoc().getLocalSourceRange();
1137
440
  }
1138
};
1139
1140
struct ParenLocInfo {
1141
  SourceLocation LParenLoc;
1142
  SourceLocation RParenLoc;
1143
};
1144
1145
class ParenTypeLoc
1146
  : public ConcreteTypeLoc<UnqualTypeLoc, ParenTypeLoc, ParenType,
1147
                           ParenLocInfo> {
1148
public:
1149
136k
  SourceLocation getLParenLoc() const {
1150
136k
    return this->getLocalData()->LParenLoc;
1151
136k
  }
1152
1153
136k
  SourceLocation getRParenLoc() const {
1154
136k
    return this->getLocalData()->RParenLoc;
1155
136k
  }
1156
1157
326k
  void setLParenLoc(SourceLocation Loc) {
1158
326k
    this->getLocalData()->LParenLoc = Loc;
1159
326k
  }
1160
1161
326k
  void setRParenLoc(SourceLocation Loc) {
1162
326k
    this->getLocalData()->RParenLoc = Loc;
1163
326k
  }
1164
1165
98.2k
  SourceRange getLocalSourceRange() const {
1166
98.2k
    return SourceRange(getLParenLoc(), getRParenLoc());
1167
98.2k
  }
1168
1169
5.25k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1170
5.25k
    setLParenLoc(Loc);
1171
5.25k
    setRParenLoc(Loc);
1172
5.25k
  }
1173
1174
58.3k
  TypeLoc getInnerLoc() const {
1175
58.3k
    return getInnerTypeLoc();
1176
58.3k
  }
1177
1178
1.78M
  QualType getInnerType() const {
1179
1.78M
    return this->getTypePtr()->getInnerType();
1180
1.78M
  }
1181
};
1182
1183
4.49M
inline TypeLoc TypeLoc::IgnoreParens() const {
1184
4.49M
  if (ParenTypeLoc::isKind(*this))
1185
172
    return IgnoreParensImpl(*this);
1186
4.49M
  return *this;
1187
4.49M
}
1188
1189
struct AdjustedLocInfo {}; // Nothing.
1190
1191
class AdjustedTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc, AdjustedTypeLoc,
1192
                                               AdjustedType, AdjustedLocInfo> {
1193
public:
1194
2.13k
  TypeLoc getOriginalLoc() const {
1195
2.13k
    return getInnerTypeLoc();
1196
2.13k
  }
1197
1198
2.36k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1199
    // do nothing
1200
2.36k
  }
1201
1202
25.2k
  QualType getInnerType() const {
1203
    // The inner type is the undecayed type, since that's what we have source
1204
    // location information for.
1205
25.2k
    return getTypePtr()->getOriginalType();
1206
25.2k
  }
1207
1208
1.07k
  SourceRange getLocalSourceRange() const { return {}; }
1209
1210
19.3k
  unsigned getLocalDataSize() const {
1211
    // sizeof(AdjustedLocInfo) is 1, but we don't need its address to be unique
1212
    // anyway.  TypeLocBuilder can't handle data sizes of 1.
1213
19.3k
    return 0;  // No data.
1214
19.3k
  }
1215
};
1216
1217
/// Wrapper for source info for pointers decayed from arrays and
1218
/// functions.
1219
class DecayedTypeLoc : public InheritingConcreteTypeLoc<
1220
                           AdjustedTypeLoc, DecayedTypeLoc, DecayedType> {
1221
};
1222
1223
struct PointerLikeLocInfo {
1224
  SourceLocation StarLoc;
1225
};
1226
1227
/// A base class for
1228
template <class Derived, class TypeClass, class LocalData = PointerLikeLocInfo>
1229
class PointerLikeTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc, Derived,
1230
                                                  TypeClass, LocalData> {
1231
public:
1232
12.7M
  SourceLocation getSigilLoc() const {
1233
12.7M
    return this->getLocalData()->StarLoc;
1234
12.7M
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1232
4.39M
  SourceLocation getSigilLoc() const {
1233
4.39M
    return this->getLocalData()->StarLoc;
1234
4.39M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1232
66.9k
  SourceLocation getSigilLoc() const {
1233
66.9k
    return this->getLocalData()->StarLoc;
1234
66.9k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getSigilLoc() const
Line
Count
Source
1232
64.4k
  SourceLocation getSigilLoc() const {
1233
64.4k
    return this->getLocalData()->StarLoc;
1234
64.4k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1232
1.13M
  SourceLocation getSigilLoc() const {
1233
1.13M
    return this->getLocalData()->StarLoc;
1234
1.13M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1232
7.08M
  SourceLocation getSigilLoc() const {
1233
7.08M
    return this->getLocalData()->StarLoc;
1234
7.08M
  }
1235
1236
13.4M
  void setSigilLoc(SourceLocation Loc) {
1237
13.4M
    this->getLocalData()->StarLoc = Loc;
1238
13.4M
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1236
7.87M
  void setSigilLoc(SourceLocation Loc) {
1237
7.87M
    this->getLocalData()->StarLoc = Loc;
1238
7.87M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1236
61.6k
  void setSigilLoc(SourceLocation Loc) {
1237
61.6k
    this->getLocalData()->StarLoc = Loc;
1238
61.6k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1236
42.5k
  void setSigilLoc(SourceLocation Loc) {
1237
42.5k
    this->getLocalData()->StarLoc = Loc;
1238
42.5k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1236
1.25M
  void setSigilLoc(SourceLocation Loc) {
1237
1.25M
    this->getLocalData()->StarLoc = Loc;
1238
1.25M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1236
4.24M
  void setSigilLoc(SourceLocation Loc) {
1237
4.24M
    this->getLocalData()->StarLoc = Loc;
1238
4.24M
  }
1239
1240
2.60M
  TypeLoc getPointeeLoc() const {
1241
2.60M
    return this->getInnerTypeLoc();
1242
2.60M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1240
2.28k
  TypeLoc getPointeeLoc() const {
1241
2.28k
    return this->getInnerTypeLoc();
1242
2.28k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getPointeeLoc() const
Line
Count
Source
1240
2.94k
  TypeLoc getPointeeLoc() const {
1241
2.94k
    return this->getInnerTypeLoc();
1242
2.94k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1240
58.5k
  TypeLoc getPointeeLoc() const {
1241
58.5k
    return this->getInnerTypeLoc();
1242
58.5k
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1240
1.23M
  TypeLoc getPointeeLoc() const {
1241
1.23M
    return this->getInnerTypeLoc();
1242
1.23M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1240
1.30M
  TypeLoc getPointeeLoc() const {
1241
1.30M
    return this->getInnerTypeLoc();
1242
1.30M
  }
1243
1244
4.76M
  SourceRange getLocalSourceRange() const {
1245
4.76M
    return SourceRange(getSigilLoc(), getSigilLoc());
1246
4.76M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1244
32.4k
  SourceRange getLocalSourceRange() const {
1245
32.4k
    return SourceRange(getSigilLoc(), getSigilLoc());
1246
32.4k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1244
543k
  SourceRange getLocalSourceRange() const {
1245
543k
    return SourceRange(getSigilLoc(), getSigilLoc());
1246
543k
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1244
1.66M
  SourceRange getLocalSourceRange() const {
1245
1.66M
    return SourceRange(getSigilLoc(), getSigilLoc());
1246
1.66M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1244
2.51M
  SourceRange getLocalSourceRange() const {
1245
2.51M
    return SourceRange(getSigilLoc(), getSigilLoc());
1246
2.51M
  }
1247
1248
1.86M
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1249
1.86M
    setSigilLoc(Loc);
1250
1.86M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1248
574
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1249
574
    setSigilLoc(Loc);
1250
574
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1248
59.9k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1249
59.9k
    setSigilLoc(Loc);
1250
59.9k
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1248
688k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1249
688k
    setSigilLoc(Loc);
1250
688k
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1248
1.11M
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1249
1.11M
    setSigilLoc(Loc);
1250
1.11M
  }
1251
1252
46.7M
  QualType getInnerType() const {
1253
46.7M
    return this->getTypePtr()->getPointeeType();
1254
46.7M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getInnerType() const
Line
Count
Source
1252
321k
  QualType getInnerType() const {
1253
321k
    return this->getTypePtr()->getPointeeType();
1254
321k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getInnerType() const
Line
Count
Source
1252
374k
  QualType getInnerType() const {
1253
374k
    return this->getTypePtr()->getPointeeType();
1254
374k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getInnerType() const
Line
Count
Source
1252
6.41M
  QualType getInnerType() const {
1253
6.41M
    return this->getTypePtr()->getPointeeType();
1254
6.41M
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getInnerType() const
Line
Count
Source
1252
39.6M
  QualType getInnerType() const {
1253
39.6M
    return this->getTypePtr()->getPointeeType();
1254
39.6M
  }
1255
};
1256
1257
/// Wrapper for source info for pointers.
1258
class PointerTypeLoc : public PointerLikeTypeLoc<PointerTypeLoc,
1259
                                                 PointerType> {
1260
public:
1261
304k
  SourceLocation getStarLoc() const {
1262
304k
    return getSigilLoc();
1263
304k
  }
1264
1265
6.80M
  void setStarLoc(SourceLocation Loc) {
1266
6.80M
    setSigilLoc(Loc);
1267
6.80M
  }
1268
};
1269
1270
/// Wrapper for source info for block pointers.
1271
class BlockPointerTypeLoc : public PointerLikeTypeLoc<BlockPointerTypeLoc,
1272
                                                      BlockPointerType> {
1273
public:
1274
2.09k
  SourceLocation getCaretLoc() const {
1275
2.09k
    return getSigilLoc();
1276
2.09k
  }
1277
1278
61.0k
  void setCaretLoc(SourceLocation Loc) {
1279
61.0k
    setSigilLoc(Loc);
1280
61.0k
  }
1281
};
1282
1283
struct MemberPointerLocInfo : public PointerLikeLocInfo {
1284
  TypeSourceInfo *ClassTInfo;
1285
};
1286
1287
/// Wrapper for source info for member pointers.
1288
class MemberPointerTypeLoc : public PointerLikeTypeLoc<MemberPointerTypeLoc,
1289
                                                       MemberPointerType,
1290
                                                       MemberPointerLocInfo> {
1291
public:
1292
63.9k
  SourceLocation getStarLoc() const {
1293
63.9k
    return getSigilLoc();
1294
63.9k
  }
1295
1296
22.8k
  void setStarLoc(SourceLocation Loc) {
1297
22.8k
    setSigilLoc(Loc);
1298
22.8k
  }
1299
1300
22.8k
  const Type *getClass() const {
1301
22.8k
    return getTypePtr()->getClass();
1302
22.8k
  }
1303
1304
66.0k
  TypeSourceInfo *getClassTInfo() const {
1305
66.0k
    return getLocalData()->ClassTInfo;
1306
66.0k
  }
1307
1308
42.5k
  void setClassTInfo(TypeSourceInfo* TI) {
1309
42.5k
    getLocalData()->ClassTInfo = TI;
1310
42.5k
  }
1311
1312
19.1k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1313
19.1k
    setSigilLoc(Loc);
1314
19.1k
    setClassTInfo(nullptr);
1315
19.1k
  }
1316
1317
62.1k
  SourceRange getLocalSourceRange() const {
1318
62.1k
    if (TypeSourceInfo *TI = getClassTInfo())
1319
41.3k
      return SourceRange(TI->getTypeLoc().getBeginLoc(), getStarLoc());
1320
20.7k
    else
1321
20.7k
      return SourceRange(getStarLoc());
1322
62.1k
  }
1323
};
1324
1325
/// Wraps an ObjCPointerType with source location information.
1326
class ObjCObjectPointerTypeLoc :
1327