Coverage Report

Created: 2022-07-16 07:03

/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.92G
  TypeLoc() = default;
67
  TypeLoc(QualType ty, void *opaqueData)
68
1.10G
      : Ty(ty.getAsOpaquePtr()), Data(opaqueData) {}
69
  TypeLoc(const Type *ty, void *opaqueData)
70
97.8M
      : 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.94G
  T castAs() const {
78
1.94G
    assert(T::isKind(*this));
79
0
    T t;
80
1.94G
    TypeLoc& tl = t;
81
1.94G
    tl = *this;
82
1.94G
    return t;
83
1.94G
  }
clang::UnqualTypeLoc clang::TypeLoc::castAs<clang::UnqualTypeLoc>() const
Line
Count
Source
77
145M
  T castAs() const {
78
145M
    assert(T::isKind(*this));
79
0
    T t;
80
145M
    TypeLoc& tl = t;
81
145M
    tl = *this;
82
145M
    return t;
83
145M
  }
clang::TemplateSpecializationTypeLoc clang::TypeLoc::castAs<clang::TemplateSpecializationTypeLoc>() const
Line
Count
Source
77
325M
  T castAs() const {
78
325M
    assert(T::isKind(*this));
79
0
    T t;
80
325M
    TypeLoc& tl = t;
81
325M
    tl = *this;
82
325M
    return t;
83
325M
  }
clang::QualifiedTypeLoc clang::TypeLoc::castAs<clang::QualifiedTypeLoc>() const
Line
Count
Source
77
47.9M
  T castAs() const {
78
47.9M
    assert(T::isKind(*this));
79
0
    T t;
80
47.9M
    TypeLoc& tl = t;
81
47.9M
    tl = *this;
82
47.9M
    return t;
83
47.9M
  }
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
27.4k
  T castAs() const {
78
27.4k
    assert(T::isKind(*this));
79
0
    T t;
80
27.4k
    TypeLoc& tl = t;
81
27.4k
    tl = *this;
82
27.4k
    return t;
83
27.4k
  }
clang::ConstantArrayTypeLoc clang::TypeLoc::castAs<clang::ConstantArrayTypeLoc>() const
Line
Count
Source
77
2.14M
  T castAs() const {
78
2.14M
    assert(T::isKind(*this));
79
0
    T t;
80
2.14M
    TypeLoc& tl = t;
81
2.14M
    tl = *this;
82
2.14M
    return t;
83
2.14M
  }
clang::DependentSizedArrayTypeLoc clang::TypeLoc::castAs<clang::DependentSizedArrayTypeLoc>() const
Line
Count
Source
77
249k
  T castAs() const {
78
249k
    assert(T::isKind(*this));
79
0
    T t;
80
249k
    TypeLoc& tl = t;
81
249k
    tl = *this;
82
249k
    return t;
83
249k
  }
clang::IncompleteArrayTypeLoc clang::TypeLoc::castAs<clang::IncompleteArrayTypeLoc>() const
Line
Count
Source
77
529k
  T castAs() const {
78
529k
    assert(T::isKind(*this));
79
0
    T t;
80
529k
    TypeLoc& tl = t;
81
529k
    tl = *this;
82
529k
    return t;
83
529k
  }
clang::VariableArrayTypeLoc clang::TypeLoc::castAs<clang::VariableArrayTypeLoc>() const
Line
Count
Source
77
119k
  T castAs() const {
78
119k
    assert(T::isKind(*this));
79
0
    T t;
80
119k
    TypeLoc& tl = t;
81
119k
    tl = *this;
82
119k
    return t;
83
119k
  }
clang::AtomicTypeLoc clang::TypeLoc::castAs<clang::AtomicTypeLoc>() const
Line
Count
Source
77
46.1k
  T castAs() const {
78
46.1k
    assert(T::isKind(*this));
79
0
    T t;
80
46.1k
    TypeLoc& tl = t;
81
46.1k
    tl = *this;
82
46.1k
    return t;
83
46.1k
  }
clang::AttributedTypeLoc clang::TypeLoc::castAs<clang::AttributedTypeLoc>() const
Line
Count
Source
77
14.6M
  T castAs() const {
78
14.6M
    assert(T::isKind(*this));
79
0
    T t;
80
14.6M
    TypeLoc& tl = t;
81
14.6M
    tl = *this;
82
14.6M
    return t;
83
14.6M
  }
clang::BTFTagAttributedTypeLoc clang::TypeLoc::castAs<clang::BTFTagAttributedTypeLoc>() const
Line
Count
Source
77
471
  T castAs() const {
78
471
    assert(T::isKind(*this));
79
0
    T t;
80
471
    TypeLoc& tl = t;
81
471
    tl = *this;
82
471
    return t;
83
471
  }
clang::BitIntTypeLoc clang::TypeLoc::castAs<clang::BitIntTypeLoc>() const
Line
Count
Source
77
8.73k
  T castAs() const {
78
8.73k
    assert(T::isKind(*this));
79
0
    T t;
80
8.73k
    TypeLoc& tl = t;
81
8.73k
    tl = *this;
82
8.73k
    return t;
83
8.73k
  }
clang::BlockPointerTypeLoc clang::TypeLoc::castAs<clang::BlockPointerTypeLoc>() const
Line
Count
Source
77
514k
  T castAs() const {
78
514k
    assert(T::isKind(*this));
79
0
    T t;
80
514k
    TypeLoc& tl = t;
81
514k
    tl = *this;
82
514k
    return t;
83
514k
  }
clang::BuiltinTypeLoc clang::TypeLoc::castAs<clang::BuiltinTypeLoc>() const
Line
Count
Source
77
113M
  T castAs() const {
78
113M
    assert(T::isKind(*this));
79
0
    T t;
80
113M
    TypeLoc& tl = t;
81
113M
    tl = *this;
82
113M
    return t;
83
113M
  }
clang::ComplexTypeLoc clang::TypeLoc::castAs<clang::ComplexTypeLoc>() const
Line
Count
Source
77
145k
  T castAs() const {
78
145k
    assert(T::isKind(*this));
79
0
    T t;
80
145k
    TypeLoc& tl = t;
81
145k
    tl = *this;
82
145k
    return t;
83
145k
  }
clang::DecltypeTypeLoc clang::TypeLoc::castAs<clang::DecltypeTypeLoc>() 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::AutoTypeLoc clang::TypeLoc::castAs<clang::AutoTypeLoc>() const
Line
Count
Source
77
2.45M
  T castAs() const {
78
2.45M
    assert(T::isKind(*this));
79
0
    T t;
80
2.45M
    TypeLoc& tl = t;
81
2.45M
    tl = *this;
82
2.45M
    return t;
83
2.45M
  }
clang::DeducedTemplateSpecializationTypeLoc clang::TypeLoc::castAs<clang::DeducedTemplateSpecializationTypeLoc>() const
Line
Count
Source
77
43.2k
  T castAs() const {
78
43.2k
    assert(T::isKind(*this));
79
0
    T t;
80
43.2k
    TypeLoc& tl = t;
81
43.2k
    tl = *this;
82
43.2k
    return t;
83
43.2k
  }
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
1.04k
  T castAs() const {
78
1.04k
    assert(T::isKind(*this));
79
0
    T t;
80
1.04k
    TypeLoc& tl = t;
81
1.04k
    tl = *this;
82
1.04k
    return t;
83
1.04k
  }
clang::DependentNameTypeLoc clang::TypeLoc::castAs<clang::DependentNameTypeLoc>() const
Line
Count
Source
77
40.3M
  T castAs() const {
78
40.3M
    assert(T::isKind(*this));
79
0
    T t;
80
40.3M
    TypeLoc& tl = t;
81
40.3M
    tl = *this;
82
40.3M
    return t;
83
40.3M
  }
clang::DependentSizedExtVectorTypeLoc clang::TypeLoc::castAs<clang::DependentSizedExtVectorTypeLoc>() const
Line
Count
Source
77
1.79k
  T castAs() const {
78
1.79k
    assert(T::isKind(*this));
79
0
    T t;
80
1.79k
    TypeLoc& tl = t;
81
1.79k
    tl = *this;
82
1.79k
    return t;
83
1.79k
  }
clang::DependentTemplateSpecializationTypeLoc clang::TypeLoc::castAs<clang::DependentTemplateSpecializationTypeLoc>() const
Line
Count
Source
77
651k
  T castAs() const {
78
651k
    assert(T::isKind(*this));
79
0
    T t;
80
651k
    TypeLoc& tl = t;
81
651k
    tl = *this;
82
651k
    return t;
83
651k
  }
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
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::FunctionNoProtoTypeLoc clang::TypeLoc::castAs<clang::FunctionNoProtoTypeLoc>() const
Line
Count
Source
77
57.9k
  T castAs() const {
78
57.9k
    assert(T::isKind(*this));
79
0
    T t;
80
57.9k
    TypeLoc& tl = t;
81
57.9k
    tl = *this;
82
57.9k
    return t;
83
57.9k
  }
clang::FunctionProtoTypeLoc clang::TypeLoc::castAs<clang::FunctionProtoTypeLoc>() const
Line
Count
Source
77
172M
  T castAs() const {
78
172M
    assert(T::isKind(*this));
79
0
    T t;
80
172M
    TypeLoc& tl = t;
81
172M
    tl = *this;
82
172M
    return t;
83
172M
  }
clang::InjectedClassNameTypeLoc clang::TypeLoc::castAs<clang::InjectedClassNameTypeLoc>() const
Line
Count
Source
77
12.8M
  T castAs() const {
78
12.8M
    assert(T::isKind(*this));
79
0
    T t;
80
12.8M
    TypeLoc& tl = t;
81
12.8M
    tl = *this;
82
12.8M
    return t;
83
12.8M
  }
clang::MacroQualifiedTypeLoc clang::TypeLoc::castAs<clang::MacroQualifiedTypeLoc>() const
Line
Count
Source
77
900k
  T castAs() const {
78
900k
    assert(T::isKind(*this));
79
0
    T t;
80
900k
    TypeLoc& tl = t;
81
900k
    tl = *this;
82
900k
    return t;
83
900k
  }
clang::ConstantMatrixTypeLoc clang::TypeLoc::castAs<clang::ConstantMatrixTypeLoc>() const
Line
Count
Source
77
4.65k
  T castAs() const {
78
4.65k
    assert(T::isKind(*this));
79
0
    T t;
80
4.65k
    TypeLoc& tl = t;
81
4.65k
    tl = *this;
82
4.65k
    return t;
83
4.65k
  }
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
436k
  T castAs() const {
78
436k
    assert(T::isKind(*this));
79
0
    T t;
80
436k
    TypeLoc& tl = t;
81
436k
    tl = *this;
82
436k
    return t;
83
436k
  }
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.45M
  T castAs() const {
78
3.45M
    assert(T::isKind(*this));
79
0
    T t;
80
3.45M
    TypeLoc& tl = t;
81
3.45M
    tl = *this;
82
3.45M
    return t;
83
3.45M
  }
clang::ObjCInterfaceTypeLoc clang::TypeLoc::castAs<clang::ObjCInterfaceTypeLoc>() const
Line
Count
Source
77
13.0M
  T castAs() const {
78
13.0M
    assert(T::isKind(*this));
79
0
    T t;
80
13.0M
    TypeLoc& tl = t;
81
13.0M
    tl = *this;
82
13.0M
    return t;
83
13.0M
  }
clang::ObjCTypeParamTypeLoc clang::TypeLoc::castAs<clang::ObjCTypeParamTypeLoc>() const
Line
Count
Source
77
781k
  T castAs() const {
78
781k
    assert(T::isKind(*this));
79
0
    T t;
80
781k
    TypeLoc& tl = t;
81
781k
    tl = *this;
82
781k
    return t;
83
781k
  }
clang::PackExpansionTypeLoc clang::TypeLoc::castAs<clang::PackExpansionTypeLoc>() const
Line
Count
Source
77
5.20M
  T castAs() const {
78
5.20M
    assert(T::isKind(*this));
79
0
    T t;
80
5.20M
    TypeLoc& tl = t;
81
5.20M
    tl = *this;
82
5.20M
    return t;
83
5.20M
  }
clang::ParenTypeLoc clang::TypeLoc::castAs<clang::ParenTypeLoc>() const
Line
Count
Source
77
3.05M
  T castAs() const {
78
3.05M
    assert(T::isKind(*this));
79
0
    T t;
80
3.05M
    TypeLoc& tl = t;
81
3.05M
    tl = *this;
82
3.05M
    return t;
83
3.05M
  }
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
52.5M
  T castAs() const {
78
52.5M
    assert(T::isKind(*this));
79
0
    T t;
80
52.5M
    TypeLoc& tl = t;
81
52.5M
    tl = *this;
82
52.5M
    return t;
83
52.5M
  }
clang::LValueReferenceTypeLoc clang::TypeLoc::castAs<clang::LValueReferenceTypeLoc>() const
Line
Count
Source
77
34.5M
  T castAs() const {
78
34.5M
    assert(T::isKind(*this));
79
0
    T t;
80
34.5M
    TypeLoc& tl = t;
81
34.5M
    tl = *this;
82
34.5M
    return t;
83
34.5M
  }
clang::RValueReferenceTypeLoc clang::TypeLoc::castAs<clang::RValueReferenceTypeLoc>() const
Line
Count
Source
77
9.60M
  T castAs() const {
78
9.60M
    assert(T::isKind(*this));
79
0
    T t;
80
9.60M
    TypeLoc& tl = t;
81
9.60M
    tl = *this;
82
9.60M
    return t;
83
9.60M
  }
clang::SubstTemplateTypeParmPackTypeLoc clang::TypeLoc::castAs<clang::SubstTemplateTypeParmPackTypeLoc>() const
Line
Count
Source
77
225k
  T castAs() const {
78
225k
    assert(T::isKind(*this));
79
0
    T t;
80
225k
    TypeLoc& tl = t;
81
225k
    tl = *this;
82
225k
    return t;
83
225k
  }
clang::SubstTemplateTypeParmTypeLoc clang::TypeLoc::castAs<clang::SubstTemplateTypeParmTypeLoc>() const
Line
Count
Source
77
93.8M
  T castAs() const {
78
93.8M
    assert(T::isKind(*this));
79
0
    T t;
80
93.8M
    TypeLoc& tl = t;
81
93.8M
    tl = *this;
82
93.8M
    return t;
83
93.8M
  }
clang::EnumTypeLoc clang::TypeLoc::castAs<clang::EnumTypeLoc>() const
Line
Count
Source
77
4.07M
  T castAs() const {
78
4.07M
    assert(T::isKind(*this));
79
0
    T t;
80
4.07M
    TypeLoc& tl = t;
81
4.07M
    tl = *this;
82
4.07M
    return t;
83
4.07M
  }
clang::RecordTypeLoc clang::TypeLoc::castAs<clang::RecordTypeLoc>() const
Line
Count
Source
77
49.0M
  T castAs() const {
78
49.0M
    assert(T::isKind(*this));
79
0
    T t;
80
49.0M
    TypeLoc& tl = t;
81
49.0M
    tl = *this;
82
49.0M
    return t;
83
49.0M
  }
clang::TemplateTypeParmTypeLoc clang::TypeLoc::castAs<clang::TemplateTypeParmTypeLoc>() const
Line
Count
Source
77
175M
  T castAs() const {
78
175M
    assert(T::isKind(*this));
79
0
    T t;
80
175M
    TypeLoc& tl = t;
81
175M
    tl = *this;
82
175M
    return t;
83
175M
  }
clang::TypeOfExprTypeLoc clang::TypeLoc::castAs<clang::TypeOfExprTypeLoc>() const
Line
Count
Source
77
38.9k
  T castAs() const {
78
38.9k
    assert(T::isKind(*this));
79
0
    T t;
80
38.9k
    TypeLoc& tl = t;
81
38.9k
    tl = *this;
82
38.9k
    return t;
83
38.9k
  }
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
535M
  T castAs() const {
78
535M
    assert(T::isKind(*this));
79
0
    T t;
80
535M
    TypeLoc& tl = t;
81
535M
    tl = *this;
82
535M
    return t;
83
535M
  }
clang::UnaryTransformTypeLoc clang::TypeLoc::castAs<clang::UnaryTransformTypeLoc>() const
Line
Count
Source
77
21.8k
  T castAs() const {
78
21.8k
    assert(T::isKind(*this));
79
0
    T t;
80
21.8k
    TypeLoc& tl = t;
81
21.8k
    tl = *this;
82
21.8k
    return t;
83
21.8k
  }
clang::UnresolvedUsingTypeLoc clang::TypeLoc::castAs<clang::UnresolvedUsingTypeLoc>() const
Line
Count
Source
77
16.8k
  T castAs() const {
78
16.8k
    assert(T::isKind(*this));
79
0
    T t;
80
16.8k
    TypeLoc& tl = t;
81
16.8k
    tl = *this;
82
16.8k
    return t;
83
16.8k
  }
clang::UsingTypeLoc clang::TypeLoc::castAs<clang::UsingTypeLoc>() const
Line
Count
Source
77
5.76M
  T castAs() const {
78
5.76M
    assert(T::isKind(*this));
79
0
    T t;
80
5.76M
    TypeLoc& tl = t;
81
5.76M
    tl = *this;
82
5.76M
    return t;
83
5.76M
  }
clang::VectorTypeLoc clang::TypeLoc::castAs<clang::VectorTypeLoc>() const
Line
Count
Source
77
864k
  T castAs() const {
78
864k
    assert(T::isKind(*this));
79
0
    T t;
80
864k
    TypeLoc& tl = t;
81
864k
    tl = *this;
82
864k
    return t;
83
864k
  }
clang::ExtVectorTypeLoc clang::TypeLoc::castAs<clang::ExtVectorTypeLoc>() const
Line
Count
Source
77
27.0k
  T castAs() const {
78
27.0k
    assert(T::isKind(*this));
79
0
    T t;
80
27.0k
    TypeLoc& tl = t;
81
27.0k
    tl = *this;
82
27.0k
    return t;
83
27.0k
  }
clang::ArrayTypeLoc clang::TypeLoc::castAs<clang::ArrayTypeLoc>() const
Line
Count
Source
77
349k
  T castAs() const {
78
349k
    assert(T::isKind(*this));
79
0
    T t;
80
349k
    TypeLoc& tl = t;
81
349k
    tl = *this;
82
349k
    return t;
83
349k
  }
clang::TypeLoc clang::TypeLoc::castAs<clang::TypeLoc>() const
Line
Count
Source
77
6.48M
  T castAs() const {
78
6.48M
    assert(T::isKind(*this));
79
0
    T t;
80
6.48M
    TypeLoc& tl = t;
81
6.48M
    tl = *this;
82
6.48M
    return t;
83
6.48M
  }
clang::DeducedTypeLoc clang::TypeLoc::castAs<clang::DeducedTypeLoc>() const
Line
Count
Source
77
1.30k
  T castAs() const {
78
1.30k
    assert(T::isKind(*this));
79
0
    T t;
80
1.30k
    TypeLoc& tl = t;
81
1.30k
    tl = *this;
82
1.30k
    return t;
83
1.30k
  }
clang::FunctionTypeLoc clang::TypeLoc::castAs<clang::FunctionTypeLoc>() const
Line
Count
Source
77
25.3M
  T castAs() const {
78
25.3M
    assert(T::isKind(*this));
79
0
    T t;
80
25.3M
    TypeLoc& tl = t;
81
25.3M
    tl = *this;
82
25.3M
    return t;
83
25.3M
  }
clang::MatrixTypeLoc clang::TypeLoc::castAs<clang::MatrixTypeLoc>() const
Line
Count
Source
77
635
  T castAs() const {
78
635
    assert(T::isKind(*this));
79
0
    T t;
80
635
    TypeLoc& tl = t;
81
635
    tl = *this;
82
635
    return t;
83
635
  }
clang::ReferenceTypeLoc clang::TypeLoc::castAs<clang::ReferenceTypeLoc>() const
Line
Count
Source
77
5.47k
  T castAs() const {
78
5.47k
    assert(T::isKind(*this));
79
0
    T t;
80
5.47k
    TypeLoc& tl = t;
81
5.47k
    tl = *this;
82
5.47k
    return t;
83
5.47k
  }
clang::TagTypeLoc clang::TypeLoc::castAs<clang::TagTypeLoc>() const
Line
Count
Source
77
1.92M
  T castAs() const {
78
1.92M
    assert(T::isKind(*this));
79
0
    T t;
80
1.92M
    TypeLoc& tl = t;
81
1.92M
    tl = *this;
82
1.92M
    return t;
83
1.92M
  }
clang::TypeSpecTypeLoc clang::TypeLoc::castAs<clang::TypeSpecTypeLoc>() const
Line
Count
Source
77
1.67M
  T castAs() const {
78
1.67M
    assert(T::isKind(*this));
79
0
    T t;
80
1.67M
    TypeLoc& tl = t;
81
1.67M
    tl = *this;
82
1.67M
    return t;
83
1.67M
  }
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
549M
  T getAs() const {
89
549M
    if (!T::isKind(*this))
90
538M
      return {};
91
11.2M
    T t;
92
11.2M
    TypeLoc& tl = t;
93
11.2M
    tl = *this;
94
11.2M
    return t;
95
549M
  }
clang::QualifiedTypeLoc clang::TypeLoc::getAs<clang::QualifiedTypeLoc>() const
Line
Count
Source
88
150M
  T getAs() const {
89
150M
    if (!T::isKind(*this))
90
145M
      return {};
91
4.79M
    T t;
92
4.79M
    TypeLoc& tl = t;
93
4.79M
    tl = *this;
94
4.79M
    return t;
95
150M
  }
clang::PointerTypeLoc clang::TypeLoc::getAs<clang::PointerTypeLoc>() const
Line
Count
Source
88
16.6k
  T getAs() const {
89
16.6k
    if (!T::isKind(*this))
90
1.38k
      return {};
91
15.2k
    T t;
92
15.2k
    TypeLoc& tl = t;
93
15.2k
    tl = *this;
94
15.2k
    return t;
95
16.6k
  }
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
628
  T getAs() const {
89
628
    if (!T::isKind(*this))
90
621
      return {};
91
7
    T t;
92
7
    TypeLoc& tl = t;
93
7
    tl = *this;
94
7
    return t;
95
628
  }
clang::TemplateSpecializationTypeLoc clang::TypeLoc::getAs<clang::TemplateSpecializationTypeLoc>() const
Line
Count
Source
88
124k
  T getAs() const {
89
124k
    if (!T::isKind(*this))
90
356
      return {};
91
123k
    T t;
92
123k
    TypeLoc& tl = t;
93
123k
    tl = *this;
94
123k
    return t;
95
124k
  }
clang::FunctionTypeLoc clang::TypeLoc::getAs<clang::FunctionTypeLoc>() const
Line
Count
Source
88
3.12k
  T getAs() const {
89
3.12k
    if (!T::isKind(*this))
90
392
      return {};
91
2.73k
    T t;
92
2.73k
    TypeLoc& tl = t;
93
2.73k
    tl = *this;
94
2.73k
    return t;
95
3.12k
  }
clang::ParenTypeLoc clang::TypeLoc::getAs<clang::ParenTypeLoc>() const
Line
Count
Source
88
25.0M
  T getAs() const {
89
25.0M
    if (!T::isKind(*this))
90
25.0M
      return {};
91
302
    T t;
92
302
    TypeLoc& tl = t;
93
302
    tl = *this;
94
302
    return t;
95
25.0M
  }
clang::AttributedTypeLoc clang::TypeLoc::getAs<clang::AttributedTypeLoc>() const
Line
Count
Source
88
87.3M
  T getAs() const {
89
87.3M
    if (!T::isKind(*this))
90
85.7M
      return {};
91
1.57M
    T t;
92
1.57M
    TypeLoc& tl = t;
93
1.57M
    tl = *this;
94
1.57M
    return t;
95
87.3M
  }
clang::BTFTagAttributedTypeLoc clang::TypeLoc::getAs<clang::BTFTagAttributedTypeLoc>() const
Line
Count
Source
88
25.0M
  T getAs() const {
89
25.0M
    if (!T::isKind(*this))
90
25.0M
      return {};
91
0
    T t;
92
0
    TypeLoc& tl = t;
93
0
    tl = *this;
94
0
    return t;
95
25.0M
  }
clang::ElaboratedTypeLoc clang::TypeLoc::getAs<clang::ElaboratedTypeLoc>() const
Line
Count
Source
88
25.4M
  T getAs() const {
89
25.4M
    if (!T::isKind(*this))
90
25.4M
      return {};
91
17.4k
    T t;
92
17.4k
    TypeLoc& tl = t;
93
17.4k
    tl = *this;
94
17.4k
    return t;
95
25.4M
  }
clang::AdjustedTypeLoc clang::TypeLoc::getAs<clang::AdjustedTypeLoc>() const
Line
Count
Source
88
60.5M
  T getAs() const {
89
60.5M
    if (!T::isKind(*this))
90
60.5M
      return {};
91
0
    T t;
92
0
    TypeLoc& tl = t;
93
0
    tl = *this;
94
0
    return t;
95
60.5M
  }
clang::MacroQualifiedTypeLoc clang::TypeLoc::getAs<clang::MacroQualifiedTypeLoc>() const
Line
Count
Source
88
60.6M
  T getAs() const {
89
60.6M
    if (!T::isKind(*this))
90
60.5M
      return {};
91
108k
    T t;
92
108k
    TypeLoc& tl = t;
93
108k
    tl = *this;
94
108k
    return t;
95
60.6M
  }
clang::FunctionProtoTypeLoc clang::TypeLoc::getAs<clang::FunctionProtoTypeLoc>() const
Line
Count
Source
88
4.56M
  T getAs() const {
89
4.56M
    if (!T::isKind(*this))
90
1.34k
      return {};
91
4.55M
    T t;
92
4.55M
    TypeLoc& tl = t;
93
4.55M
    tl = *this;
94
4.55M
    return t;
95
4.56M
  }
clang::AtomicTypeLoc clang::TypeLoc::getAs<clang::AtomicTypeLoc>() const
Line
Count
Source
88
35.6M
  T getAs() const {
89
35.6M
    if (!T::isKind(*this))
90
35.6M
      return {};
91
16
    T t;
92
16
    TypeLoc& tl = t;
93
16
    tl = *this;
94
16
    return t;
95
35.6M
  }
clang::AutoTypeLoc clang::TypeLoc::getAs<clang::AutoTypeLoc>() const
Line
Count
Source
88
297
  T getAs() const {
89
297
    if (!T::isKind(*this))
90
0
      return {};
91
297
    T t;
92
297
    TypeLoc& tl = t;
93
297
    tl = *this;
94
297
    return t;
95
297
  }
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.47k
  T getAs() const {
89
1.47k
    if (!T::isKind(*this))
90
1.44k
      return {};
91
31
    T t;
92
31
    TypeLoc& tl = t;
93
31
    tl = *this;
94
31
    return t;
95
1.47k
  }
clang::VariableArrayTypeLoc clang::TypeLoc::getAs<clang::VariableArrayTypeLoc>() const
Line
Count
Source
88
282
  T getAs() const {
89
282
    if (!T::isKind(*this))
90
279
      return {};
91
3
    T t;
92
3
    TypeLoc& tl = t;
93
3
    tl = *this;
94
3
    return t;
95
282
  }
clang::FunctionNoProtoTypeLoc clang::TypeLoc::getAs<clang::FunctionNoProtoTypeLoc>() const
Line
Count
Source
88
86
  T getAs() const {
89
86
    if (!T::isKind(*this))
90
3
      return {};
91
83
    T t;
92
83
    TypeLoc& tl = t;
93
83
    tl = *this;
94
83
    return t;
95
86
  }
clang::DecayedTypeLoc clang::TypeLoc::getAs<clang::DecayedTypeLoc>() const
Line
Count
Source
88
12
  T getAs() const {
89
12
    if (!T::isKind(*this))
90
12
      return {};
91
0
    T t;
92
0
    TypeLoc& tl = t;
93
0
    tl = *this;
94
0
    return t;
95
12
  }
clang::ArrayTypeLoc clang::TypeLoc::getAs<clang::ArrayTypeLoc>() const
Line
Count
Source
88
524
  T getAs() const {
89
524
    if (!T::isKind(*this))
90
507
      return {};
91
17
    T t;
92
17
    TypeLoc& tl = t;
93
17
    tl = *this;
94
17
    return t;
95
524
  }
clang::PackExpansionTypeLoc clang::TypeLoc::getAs<clang::PackExpansionTypeLoc>() const
Line
Count
Source
88
2.70M
  T getAs() const {
89
2.70M
    if (!T::isKind(*this))
90
2.65M
      return {};
91
53.9k
    T t;
92
53.9k
    TypeLoc& tl = t;
93
53.9k
    tl = *this;
94
53.9k
    return t;
95
2.70M
  }
clang::IncompleteArrayTypeLoc clang::TypeLoc::getAs<clang::IncompleteArrayTypeLoc>() const
Line
Count
Source
88
65
  T getAs() const {
89
65
    if (!T::isKind(*this))
90
31
      return {};
91
34
    T t;
92
34
    TypeLoc& tl = t;
93
34
    tl = *this;
94
34
    return t;
95
65
  }
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
398k
  T getAs() const {
89
398k
    if (!T::isKind(*this))
90
397k
      return {};
91
772
    T t;
92
772
    TypeLoc& tl = t;
93
772
    tl = *this;
94
772
    return t;
95
398k
  }
clang::DependentAddressSpaceTypeLoc clang::TypeLoc::getAs<clang::DependentAddressSpaceTypeLoc>() const
Line
Count
Source
88
35.5M
  T getAs() const {
89
35.5M
    if (!T::isKind(*this))
90
35.5M
      return {};
91
1
    T t;
92
1
    TypeLoc& tl = t;
93
1
    tl = *this;
94
1
    return t;
95
35.5M
  }
clang::MatrixTypeLoc clang::TypeLoc::getAs<clang::MatrixTypeLoc>() const
Line
Count
Source
88
35.5M
  T getAs() const {
89
35.5M
    if (!T::isKind(*this))
90
35.5M
      return {};
91
0
    T t;
92
0
    TypeLoc& tl = t;
93
0
    tl = *this;
94
0
    return t;
95
35.5M
  }
clang::ObjCObjectPointerTypeLoc clang::TypeLoc::getAs<clang::ObjCObjectPointerTypeLoc>() const
Line
Count
Source
88
151k
  T getAs() const {
89
151k
    if (!T::isKind(*this))
90
135k
      return {};
91
15.5k
    T t;
92
15.5k
    TypeLoc& tl = t;
93
15.5k
    tl = *this;
94
15.5k
    return t;
95
151k
  }
clang::ObjCTypeParamTypeLoc clang::TypeLoc::getAs<clang::ObjCTypeParamTypeLoc>() const
Line
Count
Source
88
151k
  T getAs() const {
89
151k
    if (!T::isKind(*this))
90
149k
      return {};
91
1.76k
    T t;
92
1.76k
    TypeLoc& tl = t;
93
1.76k
    tl = *this;
94
1.76k
    return t;
95
151k
  }
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.71G
  TypeLocClass getTypeLocClass() const {
116
1.71G
    if (getType().hasLocalQualifiers()) 
return Qualified50.9M
;
117
1.66G
    return (TypeLocClass) getType()->getTypeClass();
118
1.71G
  }
119
120
930M
  bool isNull() const { return !Ty; }
121
604M
  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
6.25G
  QualType getType() const {
133
6.25G
    return QualType::getFromOpaquePtr(Ty);
134
6.25G
  }
135
136
2.21G
  const Type *getTypePtr() const {
137
2.21G
    return QualType::getFromOpaquePtr(Ty).getTypePtr();
138
2.21G
  }
139
140
  /// Get the pointer where source information is stored.
141
30.3M
  void *getOpaqueData() const {
142
30.3M
    return Data;
143
30.3M
  }
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
19.7M
  SourceRange getSourceRange() const LLVM_READONLY {
153
19.7M
    return SourceRange(getBeginLoc(), getEndLoc());
154
19.7M
  }
155
156
157
  /// Get the local source range.
158
284M
  SourceRange getLocalSourceRange() const {
159
284M
    return getLocalSourceRangeImpl(*this);
160
284M
  }
161
162
  /// Returns the size of the type source info data block.
163
19.2M
  unsigned getFullDataSize() const {
164
19.2M
    return getFullDataSizeForType(getType());
165
19.2M
  }
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
496M
  TypeLoc getNextTypeLoc() const {
170
496M
    return getNextTypeLocImpl(*this);
171
496M
  }
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
21.4M
  void initialize(ASTContext &Context, SourceLocation Loc) const {
197
21.4M
    initializeImpl(Context, *this, Loc);
198
21.4M
  }
199
200
  /// Initializes this by copying its information from another
201
  /// TypeLoc of the same type.
202
36.1k
  void initializeFullCopy(TypeLoc Other) {
203
36.1k
    assert(getType() == Other.getType());
204
0
    copy(Other);
205
36.1k
  }
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
752
  void initializeFullCopy(TypeLoc Other, unsigned Size) {
211
752
    assert(getType() == Other.getType());
212
0
    assert(getFullDataSize() == Size);
213
0
    copy(Other);
214
752
  }
215
216
  /// Copies the other type loc into this one.
217
  void copy(TypeLoc other);
218
219
153k
  friend bool operator==(const TypeLoc &LHS, const TypeLoc &RHS) {
220
153k
    return LHS.Ty == RHS.Ty && 
LHS.Data == RHS.Data26.2k
;
221
153k
  }
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
6.48M
  static bool isKind(const TypeLoc&) {
233
6.48M
    return true;
234
6.48M
  }
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
268M
inline TypeLoc TypeSourceInfo::getTypeLoc() const {
245
  // TODO: is this alignment already sufficient?
246
268M
  return TypeLoc(Ty, const_cast<void*>(static_cast<const void*>(this + 1)));
247
268M
}
248
249
/// Wrapper of type source information for a type with
250
/// no direct qualifiers.
251
class UnqualTypeLoc : public TypeLoc {
252
public:
253
2.31G
  UnqualTypeLoc() = default;
254
19.1M
  UnqualTypeLoc(const Type *Ty, void *Data) : TypeLoc(Ty, Data) {}
255
256
1.07G
  const Type *getTypePtr() const {
257
1.07G
    return reinterpret_cast<const Type*>(Ty);
258
1.07G
  }
259
260
149M
  TypeLocClass getTypeLocClass() const {
261
149M
    return (TypeLocClass) getTypePtr()->getTypeClass();
262
149M
  }
263
264
private:
265
  friend class TypeLoc;
266
267
145M
  static bool isKind(const TypeLoc &TL) {
268
145M
    return !TL.getType().hasLocalQualifiers();
269
145M
  }
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
9.22k
  SourceRange getLocalSourceRange() const { return {}; }
280
281
19.1M
  UnqualTypeLoc getUnqualifiedLoc() const {
282
19.1M
    unsigned align =
283
19.1M
        TypeLoc::getLocalAlignmentForType(QualType(getTypePtr(), 0));
284
19.1M
    auto dataInt = reinterpret_cast<uintptr_t>(Data);
285
19.1M
    dataInt = llvm::alignTo(dataInt, align);
286
19.1M
    return UnqualTypeLoc(getTypePtr(), reinterpret_cast<void*>(dataInt));
287
19.1M
  }
288
289
  /// Initializes the local data of this type source info block to
290
  /// provide no information.
291
601k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
292
    // do nothing
293
601k
  }
294
295
4
  void copyLocal(TypeLoc other) {
296
    // do nothing
297
4
  }
298
299
12.9M
  TypeLoc getNextTypeLoc() const {
300
12.9M
    return getUnqualifiedLoc();
301
12.9M
  }
302
303
  /// Returns the size of the type source info data block that is
304
  /// specific to this type.
305
8.37M
  unsigned getLocalDataSize() const {
306
    // In fact, we don't currently preserve any location information
307
    // for qualifiers.
308
8.37M
    return 0;
309
8.37M
  }
310
311
  /// Returns the alignment of the type source info data block that is
312
  /// specific to this type.
313
24.2M
  unsigned getLocalDataAlignment() const {
314
    // We don't preserve any location information.
315
24.2M
    return 1;
316
24.2M
  }
317
318
private:
319
  friend class TypeLoc;
320
321
198M
  static bool isKind(const TypeLoc &TL) {
322
198M
    return TL.getType().hasLocalQualifiers();
323
198M
  }
324
};
325
326
150M
inline UnqualTypeLoc TypeLoc::getUnqualifiedLoc() const {
327
150M
  if (QualifiedTypeLoc Loc = getAs<QualifiedTypeLoc>())
328
4.79M
    return Loc.getUnqualifiedLoc();
329
145M
  return castAs<UnqualTypeLoc>();
330
150M
}
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.19G
  const Derived *asDerived() const {
365
2.19G
    return static_cast<const Derived*>(this);
366
2.19G
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::asDerived() const
Line
Count
Source
364
121M
  const Derived *asDerived() const {
365
121M
    return static_cast<const Derived*>(this);
366
121M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::asDerived() const
Line
Count
Source
364
794k
  const Derived *asDerived() const {
365
794k
    return static_cast<const Derived*>(this);
366
794k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::asDerived() const
Line
Count
Source
364
48.8M
  const Derived *asDerived() const {
365
48.8M
    return static_cast<const Derived*>(this);
366
48.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::asDerived() const
Line
Count
Source
364
1.09k
  const Derived *asDerived() const {
365
1.09k
    return static_cast<const Derived*>(this);
366
1.09k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::asDerived() const
Line
Count
Source
364
8.60M
  const Derived *asDerived() const {
365
8.60M
    return static_cast<const Derived*>(this);
366
8.60M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::asDerived() const
Line
Count
Source
364
3.29M
  const Derived *asDerived() const {
365
3.29M
    return static_cast<const Derived*>(this);
366
3.29M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::asDerived() const
Line
Count
Source
364
6.75M
  const Derived *asDerived() const {
365
6.75M
    return static_cast<const Derived*>(this);
366
6.75M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::asDerived() const
Line
Count
Source
364
46.0k
  const Derived *asDerived() const {
365
46.0k
    return static_cast<const Derived*>(this);
366
46.0k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::asDerived() const
Line
Count
Source
364
535M
  const Derived *asDerived() const {
365
535M
    return static_cast<const Derived*>(this);
366
535M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::asDerived() const
Line
Count
Source
364
8.28M
  const Derived *asDerived() const {
365
8.28M
    return static_cast<const Derived*>(this);
366
8.28M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::asDerived() const
Line
Count
Source
364
244M
  const Derived *asDerived() const {
365
244M
    return static_cast<const Derived*>(this);
366
244M
  }
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.12M
  const Derived *asDerived() const {
365
2.12M
    return static_cast<const Derived*>(this);
366
2.12M
  }
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
4.80k
  const Derived *asDerived() const {
365
4.80k
    return static_cast<const Derived*>(this);
366
4.80k
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::asDerived() const
Line
Count
Source
364
2.84M
  const Derived *asDerived() const {
365
2.84M
    return static_cast<const Derived*>(this);
366
2.84M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::asDerived() const
Line
Count
Source
364
64.7M
  const Derived *asDerived() const {
365
64.7M
    return static_cast<const Derived*>(this);
366
64.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::asDerived() const
Line
Count
Source
364
783k
  const Derived *asDerived() const {
365
783k
    return static_cast<const Derived*>(this);
366
783k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::asDerived() const
Line
Count
Source
364
14.9M
  const Derived *asDerived() const {
365
14.9M
    return static_cast<const Derived*>(this);
366
14.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::asDerived() const
Line
Count
Source
364
144k
  const Derived *asDerived() const {
365
144k
    return static_cast<const Derived*>(this);
366
144k
  }
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.13M
  const Derived *asDerived() const {
365
1.13M
    return static_cast<const Derived*>(this);
366
1.13M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::asDerived() const
Line
Count
Source
364
1.26M
  const Derived *asDerived() const {
365
1.26M
    return static_cast<const Derived*>(this);
366
1.26M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
22.5M
  const Derived *asDerived() const {
365
22.5M
    return static_cast<const Derived*>(this);
366
22.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
138M
  const Derived *asDerived() const {
365
138M
    return static_cast<const Derived*>(this);
366
138M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
116M
  const Derived *asDerived() const {
365
116M
    return static_cast<const Derived*>(this);
366
116M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::asDerived() const
Line
Count
Source
364
795M
  const Derived *asDerived() const {
365
795M
    return static_cast<const Derived*>(this);
366
795M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::asDerived() const
Line
Count
Source
364
4.40M
  const Derived *asDerived() const {
365
4.40M
    return static_cast<const Derived*>(this);
366
4.40M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::asDerived() const
Line
Count
Source
364
38.3M
  const Derived *asDerived() const {
365
38.3M
    return static_cast<const Derived*>(this);
366
38.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::asDerived() const
Line
Count
Source
364
8.67k
  const Derived *asDerived() const {
365
8.67k
    return static_cast<const Derived*>(this);
366
8.67k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::asDerived() const
Line
Count
Source
364
12.2M
  const Derived *asDerived() const {
365
12.2M
    return static_cast<const Derived*>(this);
366
12.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::asDerived() const
Line
Count
Source
364
30.2k
  const Derived *asDerived() const {
365
30.2k
    return static_cast<const Derived*>(this);
366
30.2k
  }
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.6k
  const Derived *asDerived() const {
365
22.6k
    return static_cast<const Derived*>(this);
366
22.6k
  }
367
368
1.06G
  static bool isKind(const TypeLoc &TL) {
369
1.06G
    return !TL.getType().hasLocalQualifiers() &&
370
1.06G
           
Derived::classofType(TL.getTypePtr())1.06G
;
371
1.06G
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
33.1M
  static bool isKind(const TypeLoc &TL) {
369
33.1M
    return !TL.getType().hasLocalQualifiers() &&
370
33.1M
           Derived::classofType(TL.getTypePtr());
371
33.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
325M
  static bool isKind(const TypeLoc &TL) {
369
325M
    return !TL.getType().hasLocalQualifiers() &&
370
325M
           
Derived::classofType(TL.getTypePtr())325M
;
371
325M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
25.3M
  static bool isKind(const TypeLoc &TL) {
369
25.3M
    return !TL.getType().hasLocalQualifiers() &&
370
25.3M
           Derived::classofType(TL.getTypePtr());
371
25.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
60.5M
  static bool isKind(const TypeLoc &TL) {
369
60.5M
    return !TL.getType().hasLocalQualifiers() &&
370
60.5M
           Derived::classofType(TL.getTypePtr());
371
60.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
35.7M
  static bool isKind(const TypeLoc &TL) {
369
35.7M
    return !TL.getType().hasLocalQualifiers() &&
370
35.7M
           Derived::classofType(TL.getTypePtr());
371
35.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
127M
  static bool isKind(const TypeLoc &TL) {
369
127M
    return !TL.getType().hasLocalQualifiers() &&
370
127M
           
Derived::classofType(TL.getTypePtr())127M
;
371
127M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
25.0M
  static bool isKind(const TypeLoc &TL) {
369
25.0M
    return !TL.getType().hasLocalQualifiers() &&
370
25.0M
           Derived::classofType(TL.getTypePtr());
371
25.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
514k
  static bool isKind(const TypeLoc &TL) {
369
514k
    return !TL.getType().hasLocalQualifiers() &&
370
514k
           Derived::classofType(TL.getTypePtr());
371
514k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
113M
  static bool isKind(const TypeLoc &TL) {
369
113M
    return !TL.getType().hasLocalQualifiers() &&
370
113M
           Derived::classofType(TL.getTypePtr());
371
113M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
4.69M
  static bool isKind(const TypeLoc &TL) {
369
4.69M
    return !TL.getType().hasLocalQualifiers() &&
370
4.69M
           Derived::classofType(TL.getTypePtr());
371
4.69M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
2.45M
  static bool isKind(const TypeLoc &TL) {
369
2.45M
    return !TL.getType().hasLocalQualifiers() &&
370
2.45M
           Derived::classofType(TL.getTypePtr());
371
2.45M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
35.5M
  static bool isKind(const TypeLoc &TL) {
369
35.5M
    return !TL.getType().hasLocalQualifiers() &&
370
35.5M
           Derived::classofType(TL.getTypePtr());
371
35.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
40.3M
  static bool isKind(const TypeLoc &TL) {
369
40.3M
    return !TL.getType().hasLocalQualifiers() &&
370
40.3M
           Derived::classofType(TL.getTypePtr());
371
40.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
1.79k
  static bool isKind(const TypeLoc &TL) {
369
1.79k
    return !TL.getType().hasLocalQualifiers() &&
370
1.79k
           Derived::classofType(TL.getTypePtr());
371
1.79k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
651k
  static bool isKind(const TypeLoc &TL) {
369
651k
    return !TL.getType().hasLocalQualifiers() &&
370
651k
           Derived::classofType(TL.getTypePtr());
371
651k
  }
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
50.1M
  static bool isKind(const TypeLoc &TL) {
369
50.1M
    return !TL.getType().hasLocalQualifiers() &&
370
50.1M
           
Derived::classofType(TL.getTypePtr())50.1M
;
371
50.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
61.5M
  static bool isKind(const TypeLoc &TL) {
369
61.5M
    return !TL.getType().hasLocalQualifiers() &&
370
61.5M
           Derived::classofType(TL.getTypePtr());
371
61.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
437k
  static bool isKind(const TypeLoc &TL) {
369
437k
    return !TL.getType().hasLocalQualifiers() &&
370
437k
           Derived::classofType(TL.getTypePtr());
371
437k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
10.3M
  static bool isKind(const TypeLoc &TL) {
369
10.3M
    return !TL.getType().hasLocalQualifiers() &&
370
10.3M
           Derived::classofType(TL.getTypePtr());
371
10.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
3.45M
  static bool isKind(const TypeLoc &TL) {
369
3.45M
    return !TL.getType().hasLocalQualifiers() &&
370
3.45M
           Derived::classofType(TL.getTypePtr());
371
3.45M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
13.0M
  static bool isKind(const TypeLoc &TL) {
369
13.0M
    return !TL.getType().hasLocalQualifiers() &&
370
13.0M
           Derived::classofType(TL.getTypePtr());
371
13.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
932k
  static bool isKind(const TypeLoc &TL) {
369
932k
    return !TL.getType().hasLocalQualifiers() &&
370
932k
           Derived::classofType(TL.getTypePtr());
371
932k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
7.91M
  static bool isKind(const TypeLoc &TL) {
369
7.91M
    return !TL.getType().hasLocalQualifiers() &&
370
7.91M
           
Derived::classofType(TL.getTypePtr())7.90M
;
371
7.91M
  }
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
52.5M
  static bool isKind(const TypeLoc &TL) {
369
52.5M
    return !TL.getType().hasLocalQualifiers() &&
370
52.5M
           Derived::classofType(TL.getTypePtr());
371
52.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
38.9k
  static bool isKind(const TypeLoc &TL) {
369
38.9k
    return !TL.getType().hasLocalQualifiers() &&
370
38.9k
           Derived::classofType(TL.getTypePtr());
371
38.9k
  }
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.8k
  static bool isKind(const TypeLoc &TL) {
369
21.8k
    return !TL.getType().hasLocalQualifiers() &&
370
21.8k
           Derived::classofType(TL.getTypePtr());
371
21.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
864k
  static bool isKind(const TypeLoc &TL) {
369
864k
    return !TL.getType().hasLocalQualifiers() &&
370
864k
           Derived::classofType(TL.getTypePtr());
371
864k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
350k
  static bool isKind(const TypeLoc &TL) {
369
350k
    return !TL.getType().hasLocalQualifiers() &&
370
350k
           Derived::classofType(TL.getTypePtr());
371
350k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
35.5M
  static bool isKind(const TypeLoc &TL) {
369
35.5M
    return !TL.getType().hasLocalQualifiers() &&
370
35.5M
           Derived::classofType(TL.getTypePtr());
371
35.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
6.57k
  static bool isKind(const TypeLoc &TL) {
369
6.57k
    return !TL.getType().hasLocalQualifiers() &&
370
6.57k
           Derived::classofType(TL.getTypePtr());
371
6.57k
  }
372
373
1.06G
  static bool classofType(const Type *Ty) {
374
1.06G
    return TypeClass::classof(Ty);
375
1.06G
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
33.1M
  static bool classofType(const Type *Ty) {
374
33.1M
    return TypeClass::classof(Ty);
375
33.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
325M
  static bool classofType(const Type *Ty) {
374
325M
    return TypeClass::classof(Ty);
375
325M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
25.3M
  static bool classofType(const Type *Ty) {
374
25.3M
    return TypeClass::classof(Ty);
375
25.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
60.5M
  static bool classofType(const Type *Ty) {
374
60.5M
    return TypeClass::classof(Ty);
375
60.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
35.7M
  static bool classofType(const Type *Ty) {
374
35.7M
    return TypeClass::classof(Ty);
375
35.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
127M
  static bool classofType(const Type *Ty) {
374
127M
    return TypeClass::classof(Ty);
375
127M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
25.0M
  static bool classofType(const Type *Ty) {
374
25.0M
    return TypeClass::classof(Ty);
375
25.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
514k
  static bool classofType(const Type *Ty) {
374
514k
    return TypeClass::classof(Ty);
375
514k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
113M
  static bool classofType(const Type *Ty) {
374
113M
    return TypeClass::classof(Ty);
375
113M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
4.69M
  static bool classofType(const Type *Ty) {
374
4.69M
    return TypeClass::classof(Ty);
375
4.69M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
2.45M
  static bool classofType(const Type *Ty) {
374
2.45M
    return TypeClass::classof(Ty);
375
2.45M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
35.5M
  static bool classofType(const Type *Ty) {
374
35.5M
    return TypeClass::classof(Ty);
375
35.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
40.3M
  static bool classofType(const Type *Ty) {
374
40.3M
    return TypeClass::classof(Ty);
375
40.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
1.79k
  static bool classofType(const Type *Ty) {
374
1.79k
    return TypeClass::classof(Ty);
375
1.79k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
651k
  static bool classofType(const Type *Ty) {
374
651k
    return TypeClass::classof(Ty);
375
651k
  }
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
50.1M
  static bool classofType(const Type *Ty) {
374
50.1M
    return TypeClass::classof(Ty);
375
50.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
61.5M
  static bool classofType(const Type *Ty) {
374
61.5M
    return TypeClass::classof(Ty);
375
61.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
437k
  static bool classofType(const Type *Ty) {
374
437k
    return TypeClass::classof(Ty);
375
437k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
10.3M
  static bool classofType(const Type *Ty) {
374
10.3M
    return TypeClass::classof(Ty);
375
10.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
3.45M
  static bool classofType(const Type *Ty) {
374
3.45M
    return TypeClass::classof(Ty);
375
3.45M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
13.0M
  static bool classofType(const Type *Ty) {
374
13.0M
    return TypeClass::classof(Ty);
375
13.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
932k
  static bool classofType(const Type *Ty) {
374
932k
    return TypeClass::classof(Ty);
375
932k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
7.90M
  static bool classofType(const Type *Ty) {
374
7.90M
    return TypeClass::classof(Ty);
375
7.90M
  }
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
52.5M
  static bool classofType(const Type *Ty) {
374
52.5M
    return TypeClass::classof(Ty);
375
52.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
38.9k
  static bool classofType(const Type *Ty) {
374
38.9k
    return TypeClass::classof(Ty);
375
38.9k
  }
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.8k
  static bool classofType(const Type *Ty) {
374
21.8k
    return TypeClass::classof(Ty);
375
21.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
864k
  static bool classofType(const Type *Ty) {
374
864k
    return TypeClass::classof(Ty);
375
864k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
350k
  static bool classofType(const Type *Ty) {
374
350k
    return TypeClass::classof(Ty);
375
350k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
35.5M
  static bool classofType(const Type *Ty) {
374
35.5M
    return TypeClass::classof(Ty);
375
35.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
6.57k
  static bool classofType(const Type *Ty) {
374
6.57k
    return TypeClass::classof(Ty);
375
6.57k
  }
376
377
public:
378
426M
  unsigned getLocalDataAlignment() const {
379
426M
    return std::max(unsigned(alignof(LocalData)),
380
426M
                    asDerived()->getExtraLocalDataAlignment());
381
426M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
7.45k
  unsigned getLocalDataAlignment() const {
379
7.45k
    return std::max(unsigned(alignof(LocalData)),
380
7.45k
                    asDerived()->getExtraLocalDataAlignment());
381
7.45k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
818k
  unsigned getLocalDataAlignment() const {
379
818k
    return std::max(unsigned(alignof(LocalData)),
380
818k
                    asDerived()->getExtraLocalDataAlignment());
381
818k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
11.6k
  unsigned getLocalDataAlignment() const {
379
11.6k
    return std::max(unsigned(alignof(LocalData)),
380
11.6k
                    asDerived()->getExtraLocalDataAlignment());
381
11.6k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
4.46M
  unsigned getLocalDataAlignment() const {
379
4.46M
    return std::max(unsigned(alignof(LocalData)),
380
4.46M
                    asDerived()->getExtraLocalDataAlignment());
381
4.46M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
217
  unsigned getLocalDataAlignment() const {
379
217
    return std::max(unsigned(alignof(LocalData)),
380
217
                    asDerived()->getExtraLocalDataAlignment());
381
217
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
246M
  unsigned getLocalDataAlignment() const {
379
246M
    return std::max(unsigned(alignof(LocalData)),
380
246M
                    asDerived()->getExtraLocalDataAlignment());
381
246M
  }
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
40.3M
  unsigned getLocalDataAlignment() const {
379
40.3M
    return std::max(unsigned(alignof(LocalData)),
380
40.3M
                    asDerived()->getExtraLocalDataAlignment());
381
40.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
1.14M
  unsigned getLocalDataAlignment() const {
379
1.14M
    return std::max(unsigned(alignof(LocalData)),
380
1.14M
                    asDerived()->getExtraLocalDataAlignment());
381
1.14M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
821k
  unsigned getLocalDataAlignment() const {
379
821k
    return std::max(unsigned(alignof(LocalData)),
380
821k
                    asDerived()->getExtraLocalDataAlignment());
381
821k
  }
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
10.2M
  unsigned getLocalDataAlignment() const {
379
10.2M
    return std::max(unsigned(alignof(LocalData)),
380
10.2M
                    asDerived()->getExtraLocalDataAlignment());
381
10.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
302
  unsigned getLocalDataAlignment() const {
379
302
    return std::max(unsigned(alignof(LocalData)),
380
302
                    asDerived()->getExtraLocalDataAlignment());
381
302
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
154k
  unsigned getLocalDataAlignment() const {
379
154k
    return std::max(unsigned(alignof(LocalData)),
380
154k
                    asDerived()->getExtraLocalDataAlignment());
381
154k
  }
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
7.99M
  unsigned getLocalDataAlignment() const {
379
7.99M
    return std::max(unsigned(alignof(LocalData)),
380
7.99M
                    asDerived()->getExtraLocalDataAlignment());
381
7.99M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
34.7M
  unsigned getLocalDataAlignment() const {
379
34.7M
    return std::max(unsigned(alignof(LocalData)),
380
34.7M
                    asDerived()->getExtraLocalDataAlignment());
381
34.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
244k
  unsigned getLocalDataAlignment() const {
379
244k
    return std::max(unsigned(alignof(LocalData)),
380
244k
                    asDerived()->getExtraLocalDataAlignment());
381
244k
  }
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
60.8k
  unsigned getLocalDataAlignment() const {
379
60.8k
    return std::max(unsigned(alignof(LocalData)),
380
60.8k
                    asDerived()->getExtraLocalDataAlignment());
381
60.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
3.96M
  unsigned getLocalDataAlignment() const {
379
3.96M
    return std::max(unsigned(alignof(LocalData)),
380
3.96M
                    asDerived()->getExtraLocalDataAlignment());
381
3.96M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
1.35M
  unsigned getLocalDataAlignment() const {
379
1.35M
    return std::max(unsigned(alignof(LocalData)),
380
1.35M
                    asDerived()->getExtraLocalDataAlignment());
381
1.35M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
5.41M
  unsigned getLocalDataAlignment() const {
379
5.41M
    return std::max(unsigned(alignof(LocalData)),
380
5.41M
                    asDerived()->getExtraLocalDataAlignment());
381
5.41M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
224k
  unsigned getLocalDataAlignment() const {
379
224k
    return std::max(unsigned(alignof(LocalData)),
380
224k
                    asDerived()->getExtraLocalDataAlignment());
381
224k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
1.13M
  unsigned getLocalDataAlignment() const {
379
1.13M
    return std::max(unsigned(alignof(LocalData)),
380
1.13M
                    asDerived()->getExtraLocalDataAlignment());
381
1.13M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
1.28M
  unsigned getLocalDataAlignment() const {
379
1.28M
    return std::max(unsigned(alignof(LocalData)),
380
1.28M
                    asDerived()->getExtraLocalDataAlignment());
381
1.28M
  }
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
12.7M
  unsigned getLocalDataAlignment() const {
379
12.7M
    return std::max(unsigned(alignof(LocalData)),
380
12.7M
                    asDerived()->getExtraLocalDataAlignment());
381
12.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
12.0M
  unsigned getLocalDataAlignment() const {
379
12.0M
    return std::max(unsigned(alignof(LocalData)),
380
12.0M
                    asDerived()->getExtraLocalDataAlignment());
381
12.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
40.1M
  unsigned getLocalDataAlignment() const {
379
40.1M
    return std::max(unsigned(alignof(LocalData)),
380
40.1M
                    asDerived()->getExtraLocalDataAlignment());
381
40.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
13.7k
  unsigned getLocalDataAlignment() const {
379
13.7k
    return std::max(unsigned(alignof(LocalData)),
380
13.7k
                    asDerived()->getExtraLocalDataAlignment());
381
13.7k
  }
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.23k
  unsigned getLocalDataAlignment() const {
379
5.23k
    return std::max(unsigned(alignof(LocalData)),
380
5.23k
                    asDerived()->getExtraLocalDataAlignment());
381
5.23k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
198k
  unsigned getLocalDataAlignment() const {
379
198k
    return std::max(unsigned(alignof(LocalData)),
380
198k
                    asDerived()->getExtraLocalDataAlignment());
381
198k
  }
382
383
423M
  unsigned getLocalDataSize() const {
384
423M
    unsigned size = sizeof(LocalData);
385
423M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
423M
    size = llvm::alignTo(size, extraAlign);
387
423M
    size += asDerived()->getExtraLocalDataSize();
388
423M
    return size;
389
423M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getLocalDataSize() const
Line
Count
Source
383
10.8M
  unsigned getLocalDataSize() const {
384
10.8M
    unsigned size = sizeof(LocalData);
385
10.8M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
10.8M
    size = llvm::alignTo(size, extraAlign);
387
10.8M
    size += asDerived()->getExtraLocalDataSize();
388
10.8M
    return size;
389
10.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getLocalDataSize() const
Line
Count
Source
383
214
  unsigned getLocalDataSize() const {
384
214
    unsigned size = sizeof(LocalData);
385
214
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
214
    size = llvm::alignTo(size, extraAlign);
387
214
    size += asDerived()->getExtraLocalDataSize();
388
214
    return size;
389
214
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
1.89M
  unsigned getLocalDataSize() const {
384
1.89M
    unsigned size = sizeof(LocalData);
385
1.89M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.89M
    size = llvm::alignTo(size, extraAlign);
387
1.89M
    size += asDerived()->getExtraLocalDataSize();
388
1.89M
    return size;
389
1.89M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getLocalDataSize() const
Line
Count
Source
383
755k
  unsigned getLocalDataSize() const {
384
755k
    unsigned size = sizeof(LocalData);
385
755k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
755k
    size = llvm::alignTo(size, extraAlign);
387
755k
    size += asDerived()->getExtraLocalDataSize();
388
755k
    return size;
389
755k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getLocalDataSize() const
Line
Count
Source
383
1.32M
  unsigned getLocalDataSize() const {
384
1.32M
    unsigned size = sizeof(LocalData);
385
1.32M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.32M
    size = llvm::alignTo(size, extraAlign);
387
1.32M
    size += asDerived()->getExtraLocalDataSize();
388
1.32M
    return size;
389
1.32M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getLocalDataSize() const
Line
Count
Source
383
103M
  unsigned getLocalDataSize() const {
384
103M
    unsigned size = sizeof(LocalData);
385
103M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
103M
    size = llvm::alignTo(size, extraAlign);
387
103M
    size += asDerived()->getExtraLocalDataSize();
388
103M
    return size;
389
103M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getLocalDataSize() const
Line
Count
Source
383
1.83M
  unsigned getLocalDataSize() const {
384
1.83M
    unsigned size = sizeof(LocalData);
385
1.83M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.83M
    size = llvm::alignTo(size, extraAlign);
387
1.83M
    size += asDerived()->getExtraLocalDataSize();
388
1.83M
    return size;
389
1.83M
  }
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
473k
  unsigned getLocalDataSize() const {
384
473k
    unsigned size = sizeof(LocalData);
385
473k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
473k
    size = llvm::alignTo(size, extraAlign);
387
473k
    size += asDerived()->getExtraLocalDataSize();
388
473k
    return size;
389
473k
  }
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
1.08k
  unsigned getLocalDataSize() const {
384
1.08k
    unsigned size = sizeof(LocalData);
385
1.08k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.08k
    size = llvm::alignTo(size, extraAlign);
387
1.08k
    size += asDerived()->getExtraLocalDataSize();
388
1.08k
    return size;
389
1.08k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getLocalDataSize() const
Line
Count
Source
383
15.0M
  unsigned getLocalDataSize() const {
384
15.0M
    unsigned size = sizeof(LocalData);
385
15.0M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
15.0M
    size = llvm::alignTo(size, extraAlign);
387
15.0M
    size += asDerived()->getExtraLocalDataSize();
388
15.0M
    return size;
389
15.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
3.44M
  unsigned getLocalDataSize() const {
384
3.44M
    unsigned size = sizeof(LocalData);
385
3.44M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
3.44M
    size = llvm::alignTo(size, extraAlign);
387
3.44M
    size += asDerived()->getExtraLocalDataSize();
388
3.44M
    return size;
389
3.44M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
32.8k
  unsigned getLocalDataSize() const {
384
32.8k
    unsigned size = sizeof(LocalData);
385
32.8k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
32.8k
    size = llvm::alignTo(size, extraAlign);
387
32.8k
    size += asDerived()->getExtraLocalDataSize();
388
32.8k
    return size;
389
32.8k
  }
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
226k
  unsigned getLocalDataSize() const {
384
226k
    unsigned size = sizeof(LocalData);
385
226k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
226k
    size = llvm::alignTo(size, extraAlign);
387
226k
    size += asDerived()->getExtraLocalDataSize();
388
226k
    return size;
389
226k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getLocalDataSize() const
Line
Count
Source
383
273k
  unsigned getLocalDataSize() const {
384
273k
    unsigned size = sizeof(LocalData);
385
273k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
273k
    size = llvm::alignTo(size, extraAlign);
387
273k
    size += asDerived()->getExtraLocalDataSize();
388
273k
    return size;
389
273k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
4.49M
  unsigned getLocalDataSize() const {
384
4.49M
    unsigned size = sizeof(LocalData);
385
4.49M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
4.49M
    size = llvm::alignTo(size, extraAlign);
387
4.49M
    size += asDerived()->getExtraLocalDataSize();
388
4.49M
    return size;
389
4.49M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
31.0M
  unsigned getLocalDataSize() const {
384
31.0M
    unsigned size = sizeof(LocalData);
385
31.0M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
31.0M
    size = llvm::alignTo(size, extraAlign);
387
31.0M
    size += asDerived()->getExtraLocalDataSize();
388
31.0M
    return size;
389
31.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
26.1M
  unsigned getLocalDataSize() const {
384
26.1M
    unsigned size = sizeof(LocalData);
385
26.1M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
26.1M
    size = llvm::alignTo(size, extraAlign);
387
26.1M
    size += asDerived()->getExtraLocalDataSize();
388
26.1M
    return size;
389
26.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getLocalDataSize() const
Line
Count
Source
383
157M
  unsigned getLocalDataSize() const {
384
157M
    unsigned size = sizeof(LocalData);
385
157M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
157M
    size = llvm::alignTo(size, extraAlign);
387
157M
    size += asDerived()->getExtraLocalDataSize();
388
157M
    return size;
389
157M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getLocalDataSize() const
Line
Count
Source
383
17.4M
  unsigned getLocalDataSize() const {
384
17.4M
    unsigned size = sizeof(LocalData);
385
17.4M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
17.4M
    size = llvm::alignTo(size, extraAlign);
387
17.4M
    size += asDerived()->getExtraLocalDataSize();
388
17.4M
    return size;
389
17.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
898k
  unsigned getLocalDataSize() const {
384
898k
    unsigned size = sizeof(LocalData);
385
898k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
898k
    size = llvm::alignTo(size, extraAlign);
387
898k
    size += asDerived()->getExtraLocalDataSize();
388
898k
    return size;
389
898k
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
631k
  unsigned getLocalDataSize() const {
384
631k
    unsigned size = sizeof(LocalData);
385
631k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
631k
    size = llvm::alignTo(size, extraAlign);
387
631k
    size += asDerived()->getExtraLocalDataSize();
388
631k
    return size;
389
631k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getLocalDataSize() const
Line
Count
Source
383
8.05M
  unsigned getLocalDataSize() const {
384
8.05M
    unsigned size = sizeof(LocalData);
385
8.05M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
8.05M
    size = llvm::alignTo(size, extraAlign);
387
8.05M
    size += asDerived()->getExtraLocalDataSize();
388
8.05M
    return size;
389
8.05M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getLocalDataSize() const
Line
Count
Source
383
149k
  unsigned getLocalDataSize() const {
384
149k
    unsigned size = sizeof(LocalData);
385
149k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
149k
    size = llvm::alignTo(size, extraAlign);
387
149k
    size += asDerived()->getExtraLocalDataSize();
388
149k
    return size;
389
149k
  }
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.91M
  unsigned getLocalDataSize() const {
384
1.91M
    unsigned size = sizeof(LocalData);
385
1.91M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.91M
    size = llvm::alignTo(size, extraAlign);
387
1.91M
    size += asDerived()->getExtraLocalDataSize();
388
1.91M
    return size;
389
1.91M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
133k
  unsigned getLocalDataSize() const {
384
133k
    unsigned size = sizeof(LocalData);
385
133k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
133k
    size = llvm::alignTo(size, extraAlign);
387
133k
    size += asDerived()->getExtraLocalDataSize();
388
133k
    return size;
389
133k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getLocalDataSize() const
Line
Count
Source
383
34.5M
  unsigned getLocalDataSize() const {
384
34.5M
    unsigned size = sizeof(LocalData);
385
34.5M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
34.5M
    size = llvm::alignTo(size, extraAlign);
387
34.5M
    size += asDerived()->getExtraLocalDataSize();
388
34.5M
    return size;
389
34.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
4.43k
  unsigned getLocalDataSize() const {
384
4.43k
    unsigned size = sizeof(LocalData);
385
4.43k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
4.43k
    size = llvm::alignTo(size, extraAlign);
387
4.43k
    size += asDerived()->getExtraLocalDataSize();
388
4.43k
    return size;
389
4.43k
  }
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.21k
  unsigned getLocalDataSize() const {
384
5.21k
    unsigned size = sizeof(LocalData);
385
5.21k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
5.21k
    size = llvm::alignTo(size, extraAlign);
387
5.21k
    size += asDerived()->getExtraLocalDataSize();
388
5.21k
    return size;
389
5.21k
  }
390
391
2.73k
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
2.73k
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
2.73k
    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.73k
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
2.73k
           asDerived()->getExtraLocalDataSize());
403
2.73k
  }
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.72k
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
1.72k
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
1.72k
    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.72k
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
1.72k
           asDerived()->getExtraLocalDataSize());
403
1.72k
  }
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
919
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
919
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
919
    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
919
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
919
           asDerived()->getExtraLocalDataSize());
403
919
  }
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
513M
  TypeLoc getNextTypeLoc() const {
406
513M
    return getNextTypeLoc(asDerived()->getInnerType());
407
513M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
10.7k
  TypeLoc getNextTypeLoc() const {
406
10.7k
    return getNextTypeLoc(asDerived()->getInnerType());
407
10.7k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
1.20M
  TypeLoc getNextTypeLoc() const {
406
1.20M
    return getNextTypeLoc(asDerived()->getInnerType());
407
1.20M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
17.2k
  TypeLoc getNextTypeLoc() const {
406
17.2k
    return getNextTypeLoc(asDerived()->getInnerType());
407
17.2k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
5.76M
  TypeLoc getNextTypeLoc() const {
406
5.76M
    return getNextTypeLoc(asDerived()->getInnerType());
407
5.76M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
104
  TypeLoc getNextTypeLoc() const {
406
104
    return getNextTypeLoc(asDerived()->getInnerType());
407
104
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
233M
  TypeLoc getNextTypeLoc() const {
406
233M
    return getNextTypeLoc(asDerived()->getInnerType());
407
233M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
161k
  TypeLoc getNextTypeLoc() const {
406
161k
    return getNextTypeLoc(asDerived()->getInnerType());
407
161k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
29.1M
  TypeLoc getNextTypeLoc() const {
406
29.1M
    return getNextTypeLoc(asDerived()->getInnerType());
407
29.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
1.46M
  TypeLoc getNextTypeLoc() const {
406
1.46M
    return getNextTypeLoc(asDerived()->getInnerType());
407
1.46M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
727k
  TypeLoc getNextTypeLoc() const {
406
727k
    return getNextTypeLoc(asDerived()->getInnerType());
407
727k
  }
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
12.0M
  TypeLoc getNextTypeLoc() const {
406
12.0M
    return getNextTypeLoc(asDerived()->getInnerType());
407
12.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
656
  TypeLoc getNextTypeLoc() const {
406
656
    return getNextTypeLoc(asDerived()->getInnerType());
407
656
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
213k
  TypeLoc getNextTypeLoc() const {
406
213k
    return getNextTypeLoc(asDerived()->getInnerType());
407
213k
  }
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
8.60M
  TypeLoc getNextTypeLoc() const {
406
8.60M
    return getNextTypeLoc(asDerived()->getInnerType());
407
8.60M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
68.2M
  TypeLoc getNextTypeLoc() const {
406
68.2M
    return getNextTypeLoc(asDerived()->getInnerType());
407
68.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
348k
  TypeLoc getNextTypeLoc() const {
406
348k
    return getNextTypeLoc(asDerived()->getInnerType());
407
348k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
2.82k
  TypeLoc getNextTypeLoc() const {
406
2.82k
    return getNextTypeLoc(asDerived()->getInnerType());
407
2.82k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
214k
  TypeLoc getNextTypeLoc() const {
406
214k
    return getNextTypeLoc(asDerived()->getInnerType());
407
214k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
3.12M
  TypeLoc getNextTypeLoc() const {
406
3.12M
    return getNextTypeLoc(asDerived()->getInnerType());
407
3.12M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
931k
  TypeLoc getNextTypeLoc() const {
406
931k
    return getNextTypeLoc(asDerived()->getInnerType());
407
931k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
3.00M
  TypeLoc getNextTypeLoc() const {
406
3.00M
    return getNextTypeLoc(asDerived()->getInnerType());
407
3.00M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
289k
  TypeLoc getNextTypeLoc() const {
406
289k
    return getNextTypeLoc(asDerived()->getInnerType());
407
289k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
1.91M
  TypeLoc getNextTypeLoc() const {
406
1.91M
    return getNextTypeLoc(asDerived()->getInnerType());
407
1.91M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
880k
  TypeLoc getNextTypeLoc() const {
406
880k
    return getNextTypeLoc(asDerived()->getInnerType());
407
880k
  }
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
19.8M
  TypeLoc getNextTypeLoc() const {
406
19.8M
    return getNextTypeLoc(asDerived()->getInnerType());
407
19.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
15.9M
  TypeLoc getNextTypeLoc() const {
406
15.9M
    return getNextTypeLoc(asDerived()->getInnerType());
407
15.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
105M
  TypeLoc getNextTypeLoc() const {
406
105M
    return getNextTypeLoc(asDerived()->getInnerType());
407
105M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
7.59k
  TypeLoc getNextTypeLoc() const {
406
7.59k
    return getNextTypeLoc(asDerived()->getInnerType());
407
7.59k
  }
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.95k
  TypeLoc getNextTypeLoc() const {
406
6.95k
    return getNextTypeLoc(asDerived()->getInnerType());
407
6.95k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
325k
  TypeLoc getNextTypeLoc() const {
406
325k
    return getNextTypeLoc(asDerived()->getInnerType());
407
325k
  }
408
409
928M
  const TypeClass *getTypePtr() const {
410
928M
    return cast<TypeClass>(Base::getTypePtr());
411
928M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getTypePtr() const
Line
Count
Source
409
120M
  const TypeClass *getTypePtr() const {
410
120M
    return cast<TypeClass>(Base::getTypePtr());
411
120M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getTypePtr() const
Line
Count
Source
409
12.4M
  const TypeClass *getTypePtr() const {
410
12.4M
    return cast<TypeClass>(Base::getTypePtr());
411
12.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
333k
  const TypeClass *getTypePtr() const {
410
333k
    return cast<TypeClass>(Base::getTypePtr());
411
333k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getTypePtr() const
Line
Count
Source
409
18.4M
  const TypeClass *getTypePtr() const {
410
18.4M
    return cast<TypeClass>(Base::getTypePtr());
411
18.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getTypePtr() const
Line
Count
Source
409
340
  const TypeClass *getTypePtr() const {
410
340
    return cast<TypeClass>(Base::getTypePtr());
411
340
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
6.84M
  const TypeClass *getTypePtr() const {
410
6.84M
    return cast<TypeClass>(Base::getTypePtr());
411
6.84M
  }
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.27M
  const TypeClass *getTypePtr() const {
410
1.27M
    return cast<TypeClass>(Base::getTypePtr());
411
1.27M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getTypePtr() const
Line
Count
Source
409
1.92M
  const TypeClass *getTypePtr() const {
410
1.92M
    return cast<TypeClass>(Base::getTypePtr());
411
1.92M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getTypePtr() const
Line
Count
Source
409
25.7k
  const TypeClass *getTypePtr() const {
410
25.7k
    return cast<TypeClass>(Base::getTypePtr());
411
25.7k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getTypePtr() const
Line
Count
Source
409
472k
  const TypeClass *getTypePtr() const {
410
472k
    return cast<TypeClass>(Base::getTypePtr());
411
472k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getTypePtr() const
Line
Count
Source
409
36.3M
  const TypeClass *getTypePtr() const {
410
36.3M
    return cast<TypeClass>(Base::getTypePtr());
411
36.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getTypePtr() const
Line
Count
Source
409
569M
  const TypeClass *getTypePtr() const {
410
569M
    return cast<TypeClass>(Base::getTypePtr());
411
569M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getTypePtr() const
Line
Count
Source
409
2.59M
  const TypeClass *getTypePtr() const {
410
2.59M
    return cast<TypeClass>(Base::getTypePtr());
411
2.59M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getTypePtr() const
Line
Count
Source
409
69.8M
  const TypeClass *getTypePtr() const {
410
69.8M
    return cast<TypeClass>(Base::getTypePtr());
411
69.8M
  }
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
660k
  const TypeClass *getTypePtr() const {
410
660k
    return cast<TypeClass>(Base::getTypePtr());
411
660k
  }
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
1.68k
  const TypeClass *getTypePtr() const {
410
1.68k
    return cast<TypeClass>(Base::getTypePtr());
411
1.68k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
4.36k
  const TypeClass *getTypePtr() const {
410
4.36k
    return cast<TypeClass>(Base::getTypePtr());
411
4.36k
  }
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
195k
  const TypeClass *getTypePtr() const {
410
195k
    return cast<TypeClass>(Base::getTypePtr());
411
195k
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
1.25M
  const TypeClass *getTypePtr() const {
410
1.25M
    return cast<TypeClass>(Base::getTypePtr());
411
1.25M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getTypePtr() const
Line
Count
Source
409
23.0M
  const TypeClass *getTypePtr() const {
410
23.0M
    return cast<TypeClass>(Base::getTypePtr());
411
23.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getTypePtr() const
Line
Count
Source
409
7.51M
  const TypeClass *getTypePtr() const {
410
7.51M
    return cast<TypeClass>(Base::getTypePtr());
411
7.51M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getTypePtr() const
Line
Count
Source
409
493k
  const TypeClass *getTypePtr() const {
410
493k
    return cast<TypeClass>(Base::getTypePtr());
411
493k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
4.94M
  const TypeClass *getTypePtr() const {
410
4.94M
    return cast<TypeClass>(Base::getTypePtr());
411
4.94M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
45.7k
  const TypeClass *getTypePtr() const {
410
45.7k
    return cast<TypeClass>(Base::getTypePtr());
411
45.7k
  }
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
329k
  const TypeClass *getTypePtr() const {
410
329k
    return cast<TypeClass>(Base::getTypePtr());
411
329k
  }
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.40M
  const TypeClass *getTypePtr() const {
410
6.40M
    return cast<TypeClass>(Base::getTypePtr());
411
6.40M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getTypePtr() const
Line
Count
Source
409
42.9M
  const TypeClass *getTypePtr() const {
410
42.9M
    return cast<TypeClass>(Base::getTypePtr());
411
42.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
1.28k
  const TypeClass *getTypePtr() const {
410
1.28k
    return cast<TypeClass>(Base::getTypePtr());
411
1.28k
  }
412
413
protected:
414
264M
  unsigned getExtraLocalDataSize() const {
415
264M
    return 0;
416
264M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
10.8M
  unsigned getExtraLocalDataSize() const {
415
10.8M
    return 0;
416
10.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
214
  unsigned getExtraLocalDataSize() const {
415
214
    return 0;
416
214
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
755k
  unsigned getExtraLocalDataSize() const {
415
755k
    return 0;
416
755k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
1.32M
  unsigned getExtraLocalDataSize() const {
415
1.32M
    return 0;
416
1.32M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
1.83M
  unsigned getExtraLocalDataSize() const {
415
1.83M
    return 0;
416
1.83M
  }
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
473k
  unsigned getExtraLocalDataSize() const {
415
473k
    return 0;
416
473k
  }
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
1.08k
  unsigned getExtraLocalDataSize() const {
415
1.08k
    return 0;
416
1.08k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
15.0M
  unsigned getExtraLocalDataSize() const {
415
15.0M
    return 0;
416
15.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
3.44M
  unsigned getExtraLocalDataSize() const {
415
3.44M
    return 0;
416
3.44M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
32.8k
  unsigned getExtraLocalDataSize() const {
415
32.8k
    return 0;
416
32.8k
  }
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
226k
  unsigned getExtraLocalDataSize() const {
415
226k
    return 0;
416
226k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
273k
  unsigned getExtraLocalDataSize() const {
415
273k
    return 0;
416
273k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
4.49M
  unsigned getExtraLocalDataSize() const {
415
4.49M
    return 0;
416
4.49M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
31.0M
  unsigned getExtraLocalDataSize() const {
415
31.0M
    return 0;
416
31.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
26.1M
  unsigned getExtraLocalDataSize() const {
415
26.1M
    return 0;
416
26.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
157M
  unsigned getExtraLocalDataSize() const {
415
157M
    return 0;
416
157M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
898k
  unsigned getExtraLocalDataSize() const {
415
898k
    return 0;
416
898k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
8.05M
  unsigned getExtraLocalDataSize() const {
415
8.05M
    return 0;
416
8.05M
  }
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.91M
  unsigned getExtraLocalDataSize() const {
415
1.91M
    return 0;
416
1.91M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
4.43k
  unsigned getExtraLocalDataSize() const {
415
4.43k
    return 0;
416
4.43k
  }
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.21k
  unsigned getExtraLocalDataSize() const {
415
5.21k
    return 0;
416
5.21k
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getExtraLocalDataSize() const
417
418
573M
  unsigned getExtraLocalDataAlignment() const {
419
573M
    return 1;
420
573M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
15.3M
  unsigned getExtraLocalDataAlignment() const {
419
15.3M
    return 1;
420
15.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
431
  unsigned getExtraLocalDataAlignment() const {
419
431
    return 1;
420
431
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
999k
  unsigned getExtraLocalDataAlignment() const {
419
999k
    return 1;
420
999k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
2.60M
  unsigned getExtraLocalDataAlignment() const {
419
2.60M
    return 1;
420
2.60M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
2.65M
  unsigned getExtraLocalDataAlignment() const {
419
2.65M
    return 1;
420
2.65M
  }
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
671k
  unsigned getExtraLocalDataAlignment() const {
419
671k
    return 1;
420
671k
  }
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
1.38k
  unsigned getExtraLocalDataAlignment() const {
419
1.38k
    return 1;
420
1.38k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
23.0M
  unsigned getExtraLocalDataAlignment() const {
419
23.0M
    return 1;
420
23.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
4.58M
  unsigned getExtraLocalDataAlignment() const {
419
4.58M
    return 1;
420
4.58M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
44.5k
  unsigned getExtraLocalDataAlignment() const {
419
44.5k
    return 1;
420
44.5k
  }
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
417k
  unsigned getExtraLocalDataAlignment() const {
419
417k
    return 1;
420
417k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
334k
  unsigned getExtraLocalDataAlignment() const {
419
334k
    return 1;
420
334k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
8.46M
  unsigned getExtraLocalDataAlignment() const {
419
8.46M
    return 1;
420
8.46M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
43.7M
  unsigned getExtraLocalDataAlignment() const {
419
43.7M
    return 1;
420
43.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
38.2M
  unsigned getExtraLocalDataAlignment() const {
419
38.2M
    return 1;
420
38.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
7.45k
  unsigned getExtraLocalDataAlignment() const {
419
7.45k
    return 1;
420
7.45k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
404M
  unsigned getExtraLocalDataAlignment() const {
419
404M
    return 1;
420
404M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
2.04M
  unsigned getExtraLocalDataAlignment() const {
419
2.04M
    return 1;
420
2.04M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
18.2M
  unsigned getExtraLocalDataAlignment() const {
419
18.2M
    return 1;
420
18.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
3.89k
  unsigned getExtraLocalDataAlignment() const {
419
3.89k
    return 1;
420
3.89k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
7.33M
  unsigned getExtraLocalDataAlignment() const {
419
7.33M
    return 1;
420
7.33M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
18.1k
  unsigned getExtraLocalDataAlignment() const {
419
18.1k
    return 1;
420
18.1k
  }
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.4k
  unsigned getExtraLocalDataAlignment() const {
419
10.4k
    return 1;
420
10.4k
  }
421
422
1.12G
  LocalData *getLocalData() const {
423
1.12G
    return static_cast<LocalData*>(Base::Data);
424
1.12G
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getLocalData() const
Line
Count
Source
422
376M
  LocalData *getLocalData() const {
423
376M
    return static_cast<LocalData*>(Base::Data);
424
376M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getLocalData() const
Line
Count
Source
422
31.4M
  LocalData *getLocalData() const {
423
31.4M
    return static_cast<LocalData*>(Base::Data);
424
31.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getLocalData() const
Line
Count
Source
422
177k
  LocalData *getLocalData() const {
423
177k
    return static_cast<LocalData*>(Base::Data);
424
177k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getLocalData() const
Line
Count
Source
422
4.96M
  LocalData *getLocalData() const {
423
4.96M
    return static_cast<LocalData*>(Base::Data);
424
4.96M
  }
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.93M
  LocalData *getLocalData() const {
423
5.93M
    return static_cast<LocalData*>(Base::Data);
424
5.93M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getLocalData() const
Line
Count
Source
422
251k
  LocalData *getLocalData() const {
423
251k
    return static_cast<LocalData*>(Base::Data);
424
251k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getLocalData() const
Line
Count
Source
422
974k
  LocalData *getLocalData() const {
423
974k
    return static_cast<LocalData*>(Base::Data);
424
974k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
13.5M
  LocalData *getLocalData() const {
423
13.5M
    return static_cast<LocalData*>(Base::Data);
424
13.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
131k
  LocalData *getLocalData() const {
423
131k
    return static_cast<LocalData*>(Base::Data);
424
131k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getLocalData() const
Line
Count
Source
422
250k
  LocalData *getLocalData() const {
423
250k
    return static_cast<LocalData*>(Base::Data);
424
250k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
2.37M
  LocalData *getLocalData() const {
423
2.37M
    return static_cast<LocalData*>(Base::Data);
424
2.37M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
13.5M
  LocalData *getLocalData() const {
423
13.5M
    return static_cast<LocalData*>(Base::Data);
424
13.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getLocalData() const
Line
Count
Source
422
129M
  LocalData *getLocalData() const {
423
129M
    return static_cast<LocalData*>(Base::Data);
424
129M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getLocalData() const
Line
Count
Source
422
1.88M
  LocalData *getLocalData() const {
423
1.88M
    return static_cast<LocalData*>(Base::Data);
424
1.88M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getLocalData() const
Line
Count
Source
422
495M
  LocalData *getLocalData() const {
423
495M
    return static_cast<LocalData*>(Base::Data);
424
495M
  }
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
271k
  LocalData *getLocalData() const {
423
271k
    return static_cast<LocalData*>(Base::Data);
424
271k
  }
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
1.03k
  LocalData *getLocalData() const {
423
1.03k
    return static_cast<LocalData*>(Base::Data);
424
1.03k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getLocalData() const
Line
Count
Source
422
6.48k
  LocalData *getLocalData() const {
423
6.48k
    return static_cast<LocalData*>(Base::Data);
424
6.48k
  }
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
3.06M
  LocalData *getLocalData() const {
423
3.06M
    return static_cast<LocalData*>(Base::Data);
424
3.06M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getLocalData() const
Line
Count
Source
422
19.8k
  LocalData *getLocalData() const {
423
19.8k
    return static_cast<LocalData*>(Base::Data);
424
19.8k
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getLocalData() const
Line
Count
Source
422
361k
  LocalData *getLocalData() const {
423
361k
    return static_cast<LocalData*>(Base::Data);
424
361k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getLocalData() const
Line
Count
Source
422
9.58M
  LocalData *getLocalData() const {
423
9.58M
    return static_cast<LocalData*>(Base::Data);
424
9.58M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getLocalData() const
Line
Count
Source
422
34.3M
  LocalData *getLocalData() const {
423
34.3M
    return static_cast<LocalData*>(Base::Data);
424
34.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getLocalData() const
Line
Count
Source
422
963k
  LocalData *getLocalData() const {
423
963k
    return static_cast<LocalData*>(Base::Data);
424
963k
  }
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
33.2k
  LocalData *getLocalData() const {
423
33.2k
    return static_cast<LocalData*>(Base::Data);
424
33.2k
  }
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.8k
  LocalData *getLocalData() const {
423
29.8k
    return static_cast<LocalData*>(Base::Data);
424
29.8k
  }
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
129M
  void *getExtraLocalData() const {
430
129M
    unsigned size = sizeof(LocalData);
431
129M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
129M
    size = llvm::alignTo(size, extraAlign);
433
129M
    return reinterpret_cast<char*>(Base::Data) + size;
434
129M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getExtraLocalData() const
Line
Count
Source
429
17.0M
  void *getExtraLocalData() const {
430
17.0M
    unsigned size = sizeof(LocalData);
431
17.0M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
17.0M
    size = llvm::alignTo(size, extraAlign);
433
17.0M
    return reinterpret_cast<char*>(Base::Data) + size;
434
17.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
13.1k
  void *getExtraLocalData() const {
430
13.1k
    unsigned size = sizeof(LocalData);
431
13.1k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
13.1k
    size = llvm::alignTo(size, extraAlign);
433
13.1k
    return reinterpret_cast<char*>(Base::Data) + size;
434
13.1k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
198k
  void *getExtraLocalData() const {
430
198k
    unsigned size = sizeof(LocalData);
431
198k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
198k
    size = llvm::alignTo(size, extraAlign);
433
198k
    return reinterpret_cast<char*>(Base::Data) + size;
434
198k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getExtraLocalData() const
Line
Count
Source
429
82.1M
  void *getExtraLocalData() const {
430
82.1M
    unsigned size = sizeof(LocalData);
431
82.1M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
82.1M
    size = llvm::alignTo(size, extraAlign);
433
82.1M
    return reinterpret_cast<char*>(Base::Data) + size;
434
82.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getExtraLocalData() const
Line
Count
Source
429
29.9M
  void *getExtraLocalData() const {
430
29.9M
    unsigned size = sizeof(LocalData);
431
29.9M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
29.9M
    size = llvm::alignTo(size, extraAlign);
433
29.9M
    return reinterpret_cast<char*>(Base::Data) + size;
434
29.9M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
36.8k
  void *getExtraLocalData() const {
430
36.8k
    unsigned size = sizeof(LocalData);
431
36.8k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
36.8k
    size = llvm::alignTo(size, extraAlign);
433
36.8k
    return reinterpret_cast<char*>(Base::Data) + size;
434
36.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getExtraLocalData() const
Line
Count
Source
429
116k
  void *getExtraLocalData() const {
430
116k
    unsigned size = sizeof(LocalData);
431
116k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
116k
    size = llvm::alignTo(size, extraAlign);
433
116k
    return reinterpret_cast<char*>(Base::Data) + size;
434
116k
  }
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.45k
  void *getExtraLocalData() const {
430
3.45k
    unsigned size = sizeof(LocalData);
431
3.45k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
3.45k
    size = llvm::alignTo(size, extraAlign);
433
3.45k
    return reinterpret_cast<char*>(Base::Data) + size;
434
3.45k
  }
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
135M
  void *getNonLocalData() const {
437
135M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
135M
    data += asDerived()->getLocalDataSize();
439
135M
    data = llvm::alignTo(data, getNextTypeAlign());
440
135M
    return reinterpret_cast<void*>(data);
441
135M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNonLocalData() const
Line
Count
Source
436
7.55M
  void *getNonLocalData() const {
437
7.55M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
7.55M
    data += asDerived()->getLocalDataSize();
439
7.55M
    data = llvm::alignTo(data, getNextTypeAlign());
440
7.55M
    return reinterpret_cast<void*>(data);
441
7.55M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::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::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
1.08M
  void *getNonLocalData() const {
437
1.08M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
1.08M
    data += asDerived()->getLocalDataSize();
439
1.08M
    data = llvm::alignTo(data, getNextTypeAlign());
440
1.08M
    return reinterpret_cast<void*>(data);
441
1.08M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNonLocalData() const
Line
Count
Source
436
513k
  void *getNonLocalData() const {
437
513k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
513k
    data += asDerived()->getLocalDataSize();
439
513k
    data = llvm::alignTo(data, getNextTypeAlign());
440
513k
    return reinterpret_cast<void*>(data);
441
513k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNonLocalData() const
Line
Count
Source
436
943k
  void *getNonLocalData() const {
437
943k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
943k
    data += asDerived()->getLocalDataSize();
439
943k
    data = llvm::alignTo(data, getNextTypeAlign());
440
943k
    return reinterpret_cast<void*>(data);
441
943k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNonLocalData() const
Line
Count
Source
436
12.8k
  void *getNonLocalData() const {
437
12.8k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
12.8k
    data += asDerived()->getLocalDataSize();
439
12.8k
    data = llvm::alignTo(data, getNextTypeAlign());
440
12.8k
    return reinterpret_cast<void*>(data);
441
12.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNonLocalData() const
Line
Count
Source
436
70.1M
  void *getNonLocalData() const {
437
70.1M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
70.1M
    data += asDerived()->getLocalDataSize();
439
70.1M
    data = llvm::alignTo(data, getNextTypeAlign());
440
70.1M
    return reinterpret_cast<void*>(data);
441
70.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNonLocalData() const
Line
Count
Source
436
1.26M
  void *getNonLocalData() const {
437
1.26M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
1.26M
    data += asDerived()->getLocalDataSize();
439
1.26M
    data = llvm::alignTo(data, getNextTypeAlign());
440
1.26M
    return reinterpret_cast<void*>(data);
441
1.26M
  }
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
325k
  void *getNonLocalData() const {
437
325k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
325k
    data += asDerived()->getLocalDataSize();
439
325k
    data = llvm::alignTo(data, getNextTypeAlign());
440
325k
    return reinterpret_cast<void*>(data);
441
325k
  }
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
779
  void *getNonLocalData() const {
437
779
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
779
    data += asDerived()->getLocalDataSize();
439
779
    data = llvm::alignTo(data, getNextTypeAlign());
440
779
    return reinterpret_cast<void*>(data);
441
779
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getNonLocalData() const
Line
Count
Source
436
8.85M
  void *getNonLocalData() const {
437
8.85M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
8.85M
    data += asDerived()->getLocalDataSize();
439
8.85M
    data = llvm::alignTo(data, getNextTypeAlign());
440
8.85M
    return reinterpret_cast<void*>(data);
441
8.85M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
2.30M
  void *getNonLocalData() const {
437
2.30M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
2.30M
    data += asDerived()->getLocalDataSize();
439
2.30M
    data = llvm::alignTo(data, getNextTypeAlign());
440
2.30M
    return reinterpret_cast<void*>(data);
441
2.30M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
22.4k
  void *getNonLocalData() const {
437
22.4k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
22.4k
    data += asDerived()->getLocalDataSize();
439
22.4k
    data = llvm::alignTo(data, getNextTypeAlign());
440
22.4k
    return reinterpret_cast<void*>(data);
441
22.4k
  }
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
164k
  void *getNonLocalData() const {
437
164k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
164k
    data += asDerived()->getLocalDataSize();
439
164k
    data = llvm::alignTo(data, getNextTypeAlign());
440
164k
    return reinterpret_cast<void*>(data);
441
164k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNonLocalData() const
Line
Count
Source
436
218k
  void *getNonLocalData() const {
437
218k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
218k
    data += asDerived()->getLocalDataSize();
439
218k
    data = llvm::alignTo(data, getNextTypeAlign());
440
218k
    return reinterpret_cast<void*>(data);
441
218k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
3.18M
  void *getNonLocalData() const {
437
3.18M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
3.18M
    data += asDerived()->getLocalDataSize();
439
3.18M
    data = llvm::alignTo(data, getNextTypeAlign());
440
3.18M
    return reinterpret_cast<void*>(data);
441
3.18M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
21.2M
  void *getNonLocalData() const {
437
21.2M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
21.2M
    data += asDerived()->getLocalDataSize();
439
21.2M
    data = llvm::alignTo(data, getNextTypeAlign());
440
21.2M
    return reinterpret_cast<void*>(data);
441
21.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
17.4M
  void *getNonLocalData() const {
437
17.4M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
17.4M
    data += asDerived()->getLocalDataSize();
439
17.4M
    data = llvm::alignTo(data, getNextTypeAlign());
440
17.4M
    return reinterpret_cast<void*>(data);
441
17.4M
  }
442
443
  struct HasNoInnerType {};
444
385M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getInnerType() const
Line
Count
Source
444
233M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getInnerType() const
Line
Count
Source
444
29.1M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getInnerType() const
Line
Count
Source
444
1.46M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getInnerType() const
Line
Count
Source
444
727k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getInnerType() const
Line
Count
Source
444
12.0M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getInnerType() const
Line
Count
Source
444
213k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getInnerType() const
Line
Count
Source
444
2.82k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getInnerType() const
Line
Count
Source
444
3.00M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getInnerType() const
Line
Count
Source
444
289k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getInnerType() const
Line
Count
Source
444
105M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getInnerType() const
Line
Count
Source
444
7.59k
  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.95k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
445
446
7.83M
  TypeLoc getInnerTypeLoc() const {
447
7.83M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
7.83M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1.79M
  TypeLoc getInnerTypeLoc() const {
447
1.79M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.79M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
46
  TypeLoc getInnerTypeLoc() const {
447
46
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
46
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
156k
  TypeLoc getInnerTypeLoc() const {
447
156k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
156k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
165k
  TypeLoc getInnerTypeLoc() const {
447
165k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
165k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
62.2k
  TypeLoc getInnerTypeLoc() const {
447
62.2k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
62.2k
  }
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.89M
  TypeLoc getInnerTypeLoc() const {
447
1.89M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.89M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
59.9k
  TypeLoc getInnerTypeLoc() const {
447
59.9k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
59.9k
  }
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
123
  TypeLoc getInnerTypeLoc() const {
447
123
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
123
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
250k
  TypeLoc getInnerTypeLoc() const {
447
250k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
250k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
393k
  TypeLoc getInnerTypeLoc() const {
447
393k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
393k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
5.20k
  TypeLoc getInnerTypeLoc() const {
447
5.20k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
5.20k
  }
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
3.31k
  TypeLoc getInnerTypeLoc() const {
447
3.31k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
3.31k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
58.4k
  TypeLoc getInnerTypeLoc() const {
447
58.4k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
58.4k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1.43M
  TypeLoc getInnerTypeLoc() const {
447
1.43M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.43M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1.53M
  TypeLoc getInnerTypeLoc() const {
447
1.53M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.53M
  }
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
135M
  unsigned getNextTypeAlign() const {
464
135M
    return getNextTypeAlign(asDerived()->getInnerType());
465
135M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
7.55M
  unsigned getNextTypeAlign() const {
464
7.55M
    return getNextTypeAlign(asDerived()->getInnerType());
465
7.55M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
150
  unsigned getNextTypeAlign() const {
464
150
    return getNextTypeAlign(asDerived()->getInnerType());
465
150
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
1.08M
  unsigned getNextTypeAlign() const {
464
1.08M
    return getNextTypeAlign(asDerived()->getInnerType());
465
1.08M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
513k
  unsigned getNextTypeAlign() const {
464
513k
    return getNextTypeAlign(asDerived()->getInnerType());
465
513k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
943k
  unsigned getNextTypeAlign() const {
464
943k
    return getNextTypeAlign(asDerived()->getInnerType());
465
943k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
12.8k
  unsigned getNextTypeAlign() const {
464
12.8k
    return getNextTypeAlign(asDerived()->getInnerType());
465
12.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
70.1M
  unsigned getNextTypeAlign() const {
464
70.1M
    return getNextTypeAlign(asDerived()->getInnerType());
465
70.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
1.26M
  unsigned getNextTypeAlign() const {
464
1.26M
    return getNextTypeAlign(asDerived()->getInnerType());
465
1.26M
  }
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
325k
  unsigned getNextTypeAlign() const {
464
325k
    return getNextTypeAlign(asDerived()->getInnerType());
465
325k
  }
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
779
  unsigned getNextTypeAlign() const {
464
779
    return getNextTypeAlign(asDerived()->getInnerType());
465
779
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
8.85M
  unsigned getNextTypeAlign() const {
464
8.85M
    return getNextTypeAlign(asDerived()->getInnerType());
465
8.85M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
2.30M
  unsigned getNextTypeAlign() const {
464
2.30M
    return getNextTypeAlign(asDerived()->getInnerType());
465
2.30M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
22.4k
  unsigned getNextTypeAlign() const {
464
22.4k
    return getNextTypeAlign(asDerived()->getInnerType());
465
22.4k
  }
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
164k
  unsigned getNextTypeAlign() const {
464
164k
    return getNextTypeAlign(asDerived()->getInnerType());
465
164k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
218k
  unsigned getNextTypeAlign() const {
464
218k
    return getNextTypeAlign(asDerived()->getInnerType());
465
218k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
3.18M
  unsigned getNextTypeAlign() const {
464
3.18M
    return getNextTypeAlign(asDerived()->getInnerType());
465
3.18M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
21.2M
  unsigned getNextTypeAlign() const {
464
21.2M
    return getNextTypeAlign(asDerived()->getInnerType());
465
21.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
17.4M
  unsigned getNextTypeAlign() const {
464
17.4M
    return getNextTypeAlign(asDerived()->getInnerType());
465
17.4M
  }
466
467
  unsigned getNextTypeAlign(HasNoInnerType _) const {
468
    return 1;
469
  }
470
471
135M
  unsigned getNextTypeAlign(QualType T) const {
472
135M
    return TypeLoc::getLocalAlignmentForType(T);
473
135M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
7.55M
  unsigned getNextTypeAlign(QualType T) const {
472
7.55M
    return TypeLoc::getLocalAlignmentForType(T);
473
7.55M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::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::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
1.08M
  unsigned getNextTypeAlign(QualType T) const {
472
1.08M
    return TypeLoc::getLocalAlignmentForType(T);
473
1.08M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
513k
  unsigned getNextTypeAlign(QualType T) const {
472
513k
    return TypeLoc::getLocalAlignmentForType(T);
473
513k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
943k
  unsigned getNextTypeAlign(QualType T) const {
472
943k
    return TypeLoc::getLocalAlignmentForType(T);
473
943k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
12.8k
  unsigned getNextTypeAlign(QualType T) const {
472
12.8k
    return TypeLoc::getLocalAlignmentForType(T);
473
12.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
70.1M
  unsigned getNextTypeAlign(QualType T) const {
472
70.1M
    return TypeLoc::getLocalAlignmentForType(T);
473
70.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
1.26M
  unsigned getNextTypeAlign(QualType T) const {
472
1.26M
    return TypeLoc::getLocalAlignmentForType(T);
473
1.26M
  }
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
325k
  unsigned getNextTypeAlign(QualType T) const {
472
325k
    return TypeLoc::getLocalAlignmentForType(T);
473
325k
  }
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
779
  unsigned getNextTypeAlign(QualType T) const {
472
779
    return TypeLoc::getLocalAlignmentForType(T);
473
779
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
8.85M
  unsigned getNextTypeAlign(QualType T) const {
472
8.85M
    return TypeLoc::getLocalAlignmentForType(T);
473
8.85M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
2.30M
  unsigned getNextTypeAlign(QualType T) const {
472
2.30M
    return TypeLoc::getLocalAlignmentForType(T);
473
2.30M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
22.4k
  unsigned getNextTypeAlign(QualType T) const {
472
22.4k
    return TypeLoc::getLocalAlignmentForType(T);
473
22.4k
  }
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
164k
  unsigned getNextTypeAlign(QualType T) const {
472
164k
    return TypeLoc::getLocalAlignmentForType(T);
473
164k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
218k
  unsigned getNextTypeAlign(QualType T) const {
472
218k
    return TypeLoc::getLocalAlignmentForType(T);
473
218k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
3.18M
  unsigned getNextTypeAlign(QualType T) const {
472
3.18M
    return TypeLoc::getLocalAlignmentForType(T);
473
3.18M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
21.2M
  unsigned getNextTypeAlign(QualType T) const {
472
21.2M
    return TypeLoc::getLocalAlignmentForType(T);
473
21.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
17.4M
  unsigned getNextTypeAlign(QualType T) const {
472
17.4M
    return TypeLoc::getLocalAlignmentForType(T);
473
17.4M
  }
474
475
385M
  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
233M
  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
29.1M
  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.46M
  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
727k
  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
12.0M
  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
213k
  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.82k
  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.00M
  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
289k
  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
105M
  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.59k
  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.95k
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
476
477
127M
  TypeLoc getNextTypeLoc(QualType T) const {
478
127M
    return TypeLoc(T, getNonLocalData());
479
127M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
10.7k
  TypeLoc getNextTypeLoc(QualType T) const {
478
10.7k
    return TypeLoc(T, getNonLocalData());
479
10.7k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
1.20M
  TypeLoc getNextTypeLoc(QualType T) const {
478
1.20M
    return TypeLoc(T, getNonLocalData());
479
1.20M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
17.2k
  TypeLoc getNextTypeLoc(QualType T) const {
478
17.2k
    return TypeLoc(T, getNonLocalData());
479
17.2k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
5.76M
  TypeLoc getNextTypeLoc(QualType T) const {
478
5.76M
    return TypeLoc(T, getNonLocalData());
479
5.76M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BTFTagAttributedTypeLoc, clang::BTFTagAttributedType, clang::BTFTagAttributedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
104
  TypeLoc getNextTypeLoc(QualType T) const {
478
104
    return TypeLoc(T, getNonLocalData());
479
104
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
161k
  TypeLoc getNextTypeLoc(QualType T) const {
478
161k
    return TypeLoc(T, getNonLocalData());
479
161k
  }
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
656
  TypeLoc getNextTypeLoc(QualType T) const {
478
656
    return TypeLoc(T, getNonLocalData());
479
656
  }
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
8.60M
  TypeLoc getNextTypeLoc(QualType T) const {
478
8.60M
    return TypeLoc(T, getNonLocalData());
479
8.60M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
68.2M
  TypeLoc getNextTypeLoc(QualType T) const {
478
68.2M
    return TypeLoc(T, getNonLocalData());
479
68.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
348k
  TypeLoc getNextTypeLoc(QualType T) const {
478
348k
    return TypeLoc(T, getNonLocalData());
479
348k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
214k
  TypeLoc getNextTypeLoc(QualType T) const {
478
214k
    return TypeLoc(T, getNonLocalData());
479
214k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
3.12M
  TypeLoc getNextTypeLoc(QualType T) const {
478
3.12M
    return TypeLoc(T, getNonLocalData());
479
3.12M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
931k
  TypeLoc getNextTypeLoc(QualType T) const {
478
931k
    return TypeLoc(T, getNonLocalData());
479
931k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
1.91M
  TypeLoc getNextTypeLoc(QualType T) const {
478
1.91M
    return TypeLoc(T, getNonLocalData());
479
1.91M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
880k
  TypeLoc getNextTypeLoc(QualType T) const {
478
880k
    return TypeLoc(T, getNonLocalData());
479
880k
  }
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
19.8M
  TypeLoc getNextTypeLoc(QualType T) const {
478
19.8M
    return TypeLoc(T, getNonLocalData());
479
19.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
15.9M
  TypeLoc getNextTypeLoc(QualType T) const {
478
15.9M
    return TypeLoc(T, getNonLocalData());
479
15.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
325k
  TypeLoc getNextTypeLoc(QualType T) const {
478
325k
    return TypeLoc(T, getNonLocalData());
479
325k
  }
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.10G
  static bool classofType(const Type *Ty) {
490
1.10G
    return TypeClass::classof(Ty);
491
1.10G
  }
clang::InheritingConcreteTypeLoc<clang::AdjustedTypeLoc, clang::DecayedTypeLoc, clang::DecayedType>::classofType(clang::Type const*)
Line
Count
Source
489
27.4k
  static bool classofType(const Type *Ty) {
490
27.4k
    return TypeClass::classof(Ty);
491
27.4k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::ConstantArrayTypeLoc, clang::ConstantArrayType>::classofType(clang::Type const*)
Line
Count
Source
489
2.14M
  static bool classofType(const Type *Ty) {
490
2.14M
    return TypeClass::classof(Ty);
491
2.14M
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::DependentSizedArrayTypeLoc, clang::DependentSizedArrayType>::classofType(clang::Type const*)
Line
Count
Source
489
249k
  static bool classofType(const Type *Ty) {
490
249k
    return TypeClass::classof(Ty);
491
249k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::IncompleteArrayTypeLoc, clang::IncompleteArrayType>::classofType(clang::Type const*)
Line
Count
Source
489
529k
  static bool classofType(const Type *Ty) {
490
529k
    return TypeClass::classof(Ty);
491
529k
  }
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
8.73k
  static bool classofType(const Type *Ty) {
490
8.73k
    return TypeClass::classof(Ty);
491
8.73k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::ComplexTypeLoc, clang::ComplexType>::classofType(clang::Type const*)
Line
Count
Source
489
145k
  static bool classofType(const Type *Ty) {
490
145k
    return TypeClass::classof(Ty);
491
145k
  }
clang::InheritingConcreteTypeLoc<clang::DeducedTypeLoc, clang::DeducedTemplateSpecializationTypeLoc, clang::DeducedTemplateSpecializationType>::classofType(clang::Type const*)
Line
Count
Source
489
438k
  static bool classofType(const Type *Ty) {
490
438k
    return TypeClass::classof(Ty);
491
438k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DependentBitIntTypeLoc, clang::DependentBitIntType>::classofType(clang::Type const*)
Line
Count
Source
489
1.04k
  static bool classofType(const Type *Ty) {
490
1.04k
    return TypeClass::classof(Ty);
491
1.04k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionNoProtoTypeLoc, clang::FunctionNoProtoType>::classofType(clang::Type const*)
Line
Count
Source
489
58.0k
  static bool classofType(const Type *Ty) {
490
58.0k
    return TypeClass::classof(Ty);
491
58.0k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionProtoTypeLoc, clang::FunctionProtoType>::classofType(clang::Type const*)
Line
Count
Source
489
177M
  static bool classofType(const Type *Ty) {
490
177M
    return TypeClass::classof(Ty);
491
177M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::InjectedClassNameTypeLoc, clang::InjectedClassNameType>::classofType(clang::Type const*)
Line
Count
Source
489
12.8M
  static bool classofType(const Type *Ty) {
490
12.8M
    return TypeClass::classof(Ty);
491
12.8M
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::ConstantMatrixTypeLoc, clang::ConstantMatrixType>::classofType(clang::Type const*)
Line
Count
Source
489
4.65k
  static bool classofType(const Type *Ty) {
490
4.65k
    return TypeClass::classof(Ty);
491
4.65k
  }
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
34.5M
  static bool classofType(const Type *Ty) {
490
34.5M
    return TypeClass::classof(Ty);
491
34.5M
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::RValueReferenceTypeLoc, clang::RValueReferenceType>::classofType(clang::Type const*)
Line
Count
Source
489
9.60M
  static bool classofType(const Type *Ty) {
490
9.60M
    return TypeClass::classof(Ty);
491
9.60M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmPackTypeLoc, clang::SubstTemplateTypeParmPackType>::classofType(clang::Type const*)
Line
Count
Source
489
225k
  static bool classofType(const Type *Ty) {
490
225k
    return TypeClass::classof(Ty);
491
225k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmTypeLoc, clang::SubstTemplateTypeParmType>::classofType(clang::Type const*)
Line
Count
Source
489
93.8M
  static bool classofType(const Type *Ty) {
490
93.8M
    return TypeClass::classof(Ty);
491
93.8M
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::EnumTypeLoc, clang::EnumType>::classofType(clang::Type const*)
Line
Count
Source
489
4.07M
  static bool classofType(const Type *Ty) {
490
4.07M
    return TypeClass::classof(Ty);
491
4.07M
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::RecordTypeLoc, clang::RecordType>::classofType(clang::Type const*)
Line
Count
Source
489
49.0M
  static bool classofType(const Type *Ty) {
490
49.0M
    return TypeClass::classof(Ty);
491
49.0M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TemplateTypeParmTypeLoc, clang::TemplateTypeParmType>::classofType(clang::Type const*)
Line
Count
Source
489
175M
  static bool classofType(const Type *Ty) {
490
175M
    return TypeClass::classof(Ty);
491
175M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TypedefTypeLoc, clang::TypedefType>::classofType(clang::Type const*)
Line
Count
Source
489
535M
  static bool classofType(const Type *Ty) {
490
535M
    return TypeClass::classof(Ty);
491
535M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UnresolvedUsingTypeLoc, clang::UnresolvedUsingType>::classofType(clang::Type const*)
Line
Count
Source
489
16.8k
  static bool classofType(const Type *Ty) {
490
16.8k
    return TypeClass::classof(Ty);
491
16.8k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UsingTypeLoc, clang::UsingType>::classofType(clang::Type const*)
Line
Count
Source
489
5.76M
  static bool classofType(const Type *Ty) {
490
5.76M
    return TypeClass::classof(Ty);
491
5.76M
  }
clang::InheritingConcreteTypeLoc<clang::VectorTypeLoc, clang::ExtVectorTypeLoc, clang::ExtVectorType>::classofType(clang::Type const*)
Line
Count
Source
489
27.0k
  static bool classofType(const Type *Ty) {
490
27.0k
    return TypeClass::classof(Ty);
491
27.0k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DeducedTypeLoc, clang::DeducedType>::classofType(clang::Type const*)
Line
Count
Source
489
1.30k
  static bool classofType(const Type *Ty) {
490
1.30k
    return TypeClass::classof(Ty);
491
1.30k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TagTypeLoc, clang::TagType>::classofType(clang::Type const*)
Line
Count
Source
489
1.92M
  static bool classofType(const Type *Ty) {
490
1.92M
    return TypeClass::classof(Ty);
491
1.92M
  }
492
493
1.10G
  static bool isKind(const TypeLoc &TL) {
494
1.10G
    return !TL.getType().hasLocalQualifiers() &&
495
1.10G
           
Derived::classofType(TL.getTypePtr())1.10G
;
496
1.10G
  }
clang::InheritingConcreteTypeLoc<clang::AdjustedTypeLoc, clang::DecayedTypeLoc, clang::DecayedType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
27.4k
  static bool isKind(const TypeLoc &TL) {
494
27.4k
    return !TL.getType().hasLocalQualifiers() &&
495
27.4k
           Derived::classofType(TL.getTypePtr());
496
27.4k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::ConstantArrayTypeLoc, clang::ConstantArrayType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
2.14M
  static bool isKind(const TypeLoc &TL) {
494
2.14M
    return !TL.getType().hasLocalQualifiers() &&
495
2.14M
           Derived::classofType(TL.getTypePtr());
496
2.14M
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::DependentSizedArrayTypeLoc, clang::DependentSizedArrayType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
249k
  static bool isKind(const TypeLoc &TL) {
494
249k
    return !TL.getType().hasLocalQualifiers() &&
495
249k
           Derived::classofType(TL.getTypePtr());
496
249k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::IncompleteArrayTypeLoc, clang::IncompleteArrayType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
529k
  static bool isKind(const TypeLoc &TL) {
494
529k
    return !TL.getType().hasLocalQualifiers() &&
495
529k
           
Derived::classofType(TL.getTypePtr())529k
;
496
529k
  }
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
8.73k
  static bool isKind(const TypeLoc &TL) {
494
8.73k
    return !TL.getType().hasLocalQualifiers() &&
495
8.73k
           Derived::classofType(TL.getTypePtr());
496
8.73k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::ComplexTypeLoc, clang::ComplexType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
145k
  static bool isKind(const TypeLoc &TL) {
494
145k
    return !TL.getType().hasLocalQualifiers() &&
495
145k
           Derived::classofType(TL.getTypePtr());
496
145k
  }
clang::InheritingConcreteTypeLoc<clang::DeducedTypeLoc, clang::DeducedTemplateSpecializationTypeLoc, clang::DeducedTemplateSpecializationType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
441k
  static bool isKind(const TypeLoc &TL) {
494
441k
    return !TL.getType().hasLocalQualifiers() &&
495
441k
           
Derived::classofType(TL.getTypePtr())438k
;
496
441k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DependentBitIntTypeLoc, clang::DependentBitIntType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
1.04k
  static bool isKind(const TypeLoc &TL) {
494
1.04k
    return !TL.getType().hasLocalQualifiers() &&
495
1.04k
           Derived::classofType(TL.getTypePtr());
496
1.04k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionNoProtoTypeLoc, clang::FunctionNoProtoType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
58.0k
  static bool isKind(const TypeLoc &TL) {
494
58.0k
    return !TL.getType().hasLocalQualifiers() &&
495
58.0k
           Derived::classofType(TL.getTypePtr());
496
58.0k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionProtoTypeLoc, clang::FunctionProtoType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
177M
  static bool isKind(const TypeLoc &TL) {
494
177M
    return !TL.getType().hasLocalQualifiers() &&
495
177M
           Derived::classofType(TL.getTypePtr());
496
177M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::InjectedClassNameTypeLoc, clang::InjectedClassNameType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
12.8M
  static bool isKind(const TypeLoc &TL) {
494
12.8M
    return !TL.getType().hasLocalQualifiers() &&
495
12.8M
           Derived::classofType(TL.getTypePtr());
496
12.8M
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::ConstantMatrixTypeLoc, clang::ConstantMatrixType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
4.65k
  static bool isKind(const TypeLoc &TL) {
494
4.65k
    return !TL.getType().hasLocalQualifiers() &&
495
4.65k
           Derived::classofType(TL.getTypePtr());
496
4.65k
  }
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
34.5M
  static bool isKind(const TypeLoc &TL) {
494
34.5M
    return !TL.getType().hasLocalQualifiers() &&
495
34.5M
           Derived::classofType(TL.getTypePtr());
496
34.5M
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::RValueReferenceTypeLoc, clang::RValueReferenceType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
9.60M
  static bool isKind(const TypeLoc &TL) {
494
9.60M
    return !TL.getType().hasLocalQualifiers() &&
495
9.60M
           Derived::classofType(TL.getTypePtr());
496
9.60M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmPackTypeLoc, clang::SubstTemplateTypeParmPackType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
225k
  static bool isKind(const TypeLoc &TL) {
494
225k
    return !TL.getType().hasLocalQualifiers() &&
495
225k
           Derived::classofType(TL.getTypePtr());
496
225k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmTypeLoc, clang::SubstTemplateTypeParmType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
93.8M
  static bool isKind(const TypeLoc &TL) {
494
93.8M
    return !TL.getType().hasLocalQualifiers() &&
495
93.8M
           Derived::classofType(TL.getTypePtr());
496
93.8M
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::EnumTypeLoc, clang::EnumType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
4.07M
  static bool isKind(const TypeLoc &TL) {
494
4.07M
    return !TL.getType().hasLocalQualifiers() &&
495
4.07M
           Derived::classofType(TL.getTypePtr());
496
4.07M
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::RecordTypeLoc, clang::RecordType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
49.0M
  static bool isKind(const TypeLoc &TL) {
494
49.0M
    return !TL.getType().hasLocalQualifiers() &&
495
49.0M
           Derived::classofType(TL.getTypePtr());
496
49.0M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TemplateTypeParmTypeLoc, clang::TemplateTypeParmType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
175M
  static bool isKind(const TypeLoc &TL) {
494
175M
    return !TL.getType().hasLocalQualifiers() &&
495
175M
           Derived::classofType(TL.getTypePtr());
496
175M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TypedefTypeLoc, clang::TypedefType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
535M
  static bool isKind(const TypeLoc &TL) {
494
535M
    return !TL.getType().hasLocalQualifiers() &&
495
535M
           Derived::classofType(TL.getTypePtr());
496
535M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UnresolvedUsingTypeLoc, clang::UnresolvedUsingType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
16.8k
  static bool isKind(const TypeLoc &TL) {
494
16.8k
    return !TL.getType().hasLocalQualifiers() &&
495
16.8k
           Derived::classofType(TL.getTypePtr());
496
16.8k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UsingTypeLoc, clang::UsingType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
5.76M
  static bool isKind(const TypeLoc &TL) {
494
5.76M
    return !TL.getType().hasLocalQualifiers() &&
495
5.76M
           Derived::classofType(TL.getTypePtr());
496
5.76M
  }
clang::InheritingConcreteTypeLoc<clang::VectorTypeLoc, clang::ExtVectorTypeLoc, clang::ExtVectorType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
27.0k
  static bool isKind(const TypeLoc &TL) {
494
27.0k
    return !TL.getType().hasLocalQualifiers() &&
495
27.0k
           Derived::classofType(TL.getTypePtr());
496
27.0k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DeducedTypeLoc, clang::DeducedType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
1.30k
  static bool isKind(const TypeLoc &TL) {
494
1.30k
    return !TL.getType().hasLocalQualifiers() &&
495
1.30k
           Derived::classofType(TL.getTypePtr());
496
1.30k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TagTypeLoc, clang::TagType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
1.92M
  static bool isKind(const TypeLoc &TL) {
494
1.92M
    return !TL.getType().hasLocalQualifiers() &&
495
1.92M
           Derived::classofType(TL.getTypePtr());
496
1.92M
  }
497
  static bool isKind(const UnqualTypeLoc &TL) {
498
    return Derived::classofType(TL.getTypePtr());
499
  }
500
501
public:
502
22.6M
  const TypeClass *getTypePtr() const {
503
22.6M
    return cast<TypeClass>(Base::getTypePtr());
504
22.6M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UsingTypeLoc, clang::UsingType>::getTypePtr() const
Line
Count
Source
502
39.7k
  const TypeClass *getTypePtr() const {
503
39.7k
    return cast<TypeClass>(Base::getTypePtr());
504
39.7k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TypedefTypeLoc, clang::TypedefType>::getTypePtr() const
Line
Count
Source
502
2.28M
  const TypeClass *getTypePtr() const {
503
2.28M
    return cast<TypeClass>(Base::getTypePtr());
504
2.28M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::InjectedClassNameTypeLoc, clang::InjectedClassNameType>::getTypePtr() const
Line
Count
Source
502
645k
  const TypeClass *getTypePtr() const {
503
645k
    return cast<TypeClass>(Base::getTypePtr());
504
645k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UnresolvedUsingTypeLoc, clang::UnresolvedUsingType>::getTypePtr() const
Line
Count
Source
502
417
  const TypeClass *getTypePtr() const {
503
417
    return cast<TypeClass>(Base::getTypePtr());
504
417
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TagTypeLoc, clang::TagType>::getTypePtr() const
Line
Count
Source
502
287k
  const TypeClass *getTypePtr() const {
503
287k
    return cast<TypeClass>(Base::getTypePtr());
504
287k
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::RecordTypeLoc, clang::RecordType>::getTypePtr() const
Line
Count
Source
502
271k
  const TypeClass *getTypePtr() const {
503
271k
    return cast<TypeClass>(Base::getTypePtr());
504
271k
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::EnumTypeLoc, clang::EnumType>::getTypePtr() const
Line
Count
Source
502
14.5k
  const TypeClass *getTypePtr() const {
503
14.5k
    return cast<TypeClass>(Base::getTypePtr());
504
14.5k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TemplateTypeParmTypeLoc, clang::TemplateTypeParmType>::getTypePtr() const
Line
Count
Source
502
7.80M
  const TypeClass *getTypePtr() const {
503
7.80M
    return cast<TypeClass>(Base::getTypePtr());
504
7.80M
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::DependentSizedArrayTypeLoc, clang::DependentSizedArrayType>::getTypePtr() const
Line
Count
Source
502
15.3k
  const TypeClass *getTypePtr() const {
503
15.3k
    return cast<TypeClass>(Base::getTypePtr());
504
15.3k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DeducedTypeLoc, clang::DeducedType>::getTypePtr() const
Line
Count
Source
502
1.25M
  const TypeClass *getTypePtr() const {
503
1.25M
    return cast<TypeClass>(Base::getTypePtr());
504
1.25M
  }
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
37.5k
  const TypeClass *getTypePtr() const {
503
37.5k
    return cast<TypeClass>(Base::getTypePtr());
504
37.5k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::IncompleteArrayTypeLoc, clang::IncompleteArrayType>::getTypePtr() const
Line
Count
Source
502
8.59k
  const TypeClass *getTypePtr() const {
503
8.59k
    return cast<TypeClass>(Base::getTypePtr());
504
8.59k
  }
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
2.37k
  const TypeClass *getTypePtr() const {
503
2.37k
    return cast<TypeClass>(Base::getTypePtr());
504
2.37k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DependentBitIntTypeLoc, clang::DependentBitIntType>::getTypePtr() const
Line
Count
Source
502
156
  const TypeClass *getTypePtr() const {
503
156
    return cast<TypeClass>(Base::getTypePtr());
504
156
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionNoProtoTypeLoc, clang::FunctionNoProtoType>::getTypePtr() const
Line
Count
Source
502
1.62k
  const TypeClass *getTypePtr() const {
503
1.62k
    return cast<TypeClass>(Base::getTypePtr());
504
1.62k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionProtoTypeLoc, clang::FunctionProtoType>::getTypePtr() const
Line
Count
Source
502
9.48M
  const TypeClass *getTypePtr() const {
503
9.48M
    return cast<TypeClass>(Base::getTypePtr());
504
9.48M
  }
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
202k
  const TypeClass *getTypePtr() const {
503
202k
    return cast<TypeClass>(Base::getTypePtr());
504
202k
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::RValueReferenceTypeLoc, clang::RValueReferenceType>::getTypePtr() const
Line
Count
Source
502
89.6k
  const TypeClass *getTypePtr() const {
503
89.6k
    return cast<TypeClass>(Base::getTypePtr());
504
89.6k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmPackTypeLoc, clang::SubstTemplateTypeParmPackType>::getTypePtr() const
Line
Count
Source
502
9.86k
  const TypeClass *getTypePtr() const {
503
9.86k
    return cast<TypeClass>(Base::getTypePtr());
504
9.86k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmTypeLoc, clang::SubstTemplateTypeParmType>::getTypePtr() const
Line
Count
Source
502
165k
  const TypeClass *getTypePtr() const {
503
165k
    return cast<TypeClass>(Base::getTypePtr());
504
165k
  }
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
253M
  SourceLocation getNameLoc() const {
524
253M
    return this->getLocalData()->NameLoc;
525
253M
  }
526
527
123M
  void setNameLoc(SourceLocation Loc) {
528
123M
    this->getLocalData()->NameLoc = Loc;
529
123M
  }
530
531
119M
  SourceRange getLocalSourceRange() const {
532
119M
    return SourceRange(getNameLoc(), getNameLoc());
533
119M
  }
534
535
13.5M
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
536
13.5M
    setNameLoc(Loc);
537
13.5M
  }
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.09M
  SourceLocation getBuiltinLoc() const {
556
1.09M
    return getLocalData()->BuiltinRange.getBegin();
557
1.09M
  }
558
559
15.4M
  void setBuiltinLoc(SourceLocation Loc) {
560
15.4M
    getLocalData()->BuiltinRange = Loc;
561
15.4M
  }
562
563
1.70M
  void expandBuiltinRange(SourceRange Range) {
564
1.70M
    SourceRange &BuiltinRange = getLocalData()->BuiltinRange;
565
1.70M
    if (!BuiltinRange.getBegin().isValid()) {
566
705k
      BuiltinRange = Range;
567
997k
    } else {
568
997k
      BuiltinRange.setBegin(std::min(Range.getBegin(), BuiltinRange.getBegin()));
569
997k
      BuiltinRange.setEnd(std::max(Range.getEnd(), BuiltinRange.getEnd()));
570
997k
    }
571
1.70M
  }
572
573
0
  SourceLocation getNameLoc() const { return getBuiltinLoc(); }
574
575
7.68M
  WrittenBuiltinSpecs& getWrittenBuiltinSpecs() {
576
7.68M
    return *(static_cast<WrittenBuiltinSpecs*>(getExtraLocalData()));
577
7.68M
  }
578
9.39M
  const WrittenBuiltinSpecs& getWrittenBuiltinSpecs() const {
579
9.39M
    return *(static_cast<WrittenBuiltinSpecs*>(getExtraLocalData()));
580
9.39M
  }
581
582
119M
  bool needsExtraLocalData() const {
583
119M
    BuiltinType::Kind bk = getTypePtr()->getKind();
584
119M
    return (bk >= BuiltinType::UShort && 
bk <= BuiltinType::UInt12865.7M
) ||
585
119M
           
(111M
bk >= BuiltinType::Short111M
&&
bk <= BuiltinType::Ibm12850.1M
) ||
586
119M
           
bk == BuiltinType::UChar62.5M
||
bk == BuiltinType::SChar61.0M
;
587
119M
  }
588
589
17.4M
  unsigned getExtraLocalDataSize() const {
590
17.4M
    return needsExtraLocalData() ? 
sizeof(WrittenBuiltinSpecs)6.57M
:
010.9M
;
591
17.4M
  }
592
593
74.9M
  unsigned getExtraLocalDataAlignment() const {
594
74.9M
    return needsExtraLocalData() ? 
alignof(WrittenBuiltinSpecs)34.6M
:
140.2M
;
595
74.9M
  }
596
597
13.1M
  SourceRange getLocalSourceRange() const {
598
13.1M
    return getLocalData()->BuiltinRange;
599
13.1M
  }
600
601
4.36M
  TypeSpecifierSign getWrittenSignSpec() const {
602
4.36M
    if (needsExtraLocalData())
603
4.36M
      return static_cast<TypeSpecifierSign>(getWrittenBuiltinSpecs().Sign);
604
0
    else
605
0
      return TypeSpecifierSign::Unspecified;
606
4.36M
  }
607
608
0
  bool hasWrittenSignSpec() const {
609
0
    return getWrittenSignSpec() != TypeSpecifierSign::Unspecified;
610
0
  }
611
612
408k
  void setWrittenSignSpec(TypeSpecifierSign written) {
613
408k
    if (needsExtraLocalData())
614
408k
      getWrittenBuiltinSpecs().Sign = static_cast<unsigned>(written);
615
408k
  }
616
617
4.36M
  TypeSpecifierWidth getWrittenWidthSpec() const {
618
4.36M
    if (needsExtraLocalData())
619
4.36M
      return static_cast<TypeSpecifierWidth>(getWrittenBuiltinSpecs().Width);
620
0
    else
621
0
      return TypeSpecifierWidth::Unspecified;
622
4.36M
  }
623
624
0
  bool hasWrittenWidthSpec() const {
625
0
    return getWrittenWidthSpec() != TypeSpecifierWidth::Unspecified;
626
0
  }
627
628
408k
  void setWrittenWidthSpec(TypeSpecifierWidth written) {
629
408k
    if (needsExtraLocalData())
630
408k
      getWrittenBuiltinSpecs().Width = static_cast<unsigned>(written);
631
408k
  }
632
633
  TypeSpecifierType getWrittenTypeSpec() const;
634
635
0
  bool hasWrittenTypeSpec() const {
636
0
    return getWrittenTypeSpec() != TST_unspecified;
637
0
  }
638
639
408k
  void setWrittenTypeSpec(TypeSpecifierType written) {
640
408k
    if (needsExtraLocalData())
641
408k
      getWrittenBuiltinSpecs().Type = written;
642
408k
  }
643
644
335k
  bool hasModeAttr() const {
645
335k
    if (needsExtraLocalData())
646
335k
      return getWrittenBuiltinSpecs().ModeAttr;
647
0
    else
648
0
      return false;
649
335k
  }
650
651
408k
  void setModeAttr(bool written) {
652
408k
    if (needsExtraLocalData())
653
408k
      getWrittenBuiltinSpecs().ModeAttr = written;
654
408k
  }
655
656
3.91M
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
657
3.91M
    setBuiltinLoc(Loc);
658
3.91M
    if (needsExtraLocalData()) {
659
1.96M
      WrittenBuiltinSpecs &wbs = getWrittenBuiltinSpecs();
660
1.96M
      wbs.Sign = static_cast<unsigned>(TypeSpecifierSign::Unspecified);
661
1.96M
      wbs.Width = static_cast<unsigned>(TypeSpecifierWidth::Unspecified);
662
1.96M
      wbs.Type = TST_unspecified;
663
1.96M
      wbs.ModeAttr = false;
664
1.96M
    }
665
3.91M
  }
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
11.2k
  TypedefNameDecl *getTypedefNameDecl() const {
684
11.2k
    return getTypePtr()->getDecl();
685
11.2k
  }
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.54k
  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
708
  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.68k
  SourceLocation *getProtocolLocArray() const {
763
3.68k
    return (SourceLocation*)this->getExtraLocalData() + 2;
764
3.68k
  }
765
766
public:
767
5
  ObjCTypeParamDecl *getDecl() const { return getTypePtr()->getDecl(); }
768
769
46.4k
  SourceLocation getNameLoc() const {
770
46.4k
    return this->getLocalData()->NameLoc;
771
46.4k
  }
772
773
130k
  void setNameLoc(SourceLocation Loc) {
774
130k
    this->getLocalData()->NameLoc = Loc;
775
130k
  }
776
777
46
  SourceLocation getProtocolLAngleLoc() const {
778
46
    return getNumProtocols()  ?
779
46
      *((SourceLocation*)this->getExtraLocalData()) :
780
46
      
SourceLocation()0
;
781
46
  }
782
783
3.60k
  void setProtocolLAngleLoc(SourceLocation Loc) {
784
3.60k
    *((SourceLocation*)this->getExtraLocalData()) = Loc;
785
3.60k
  }
786
787
46.4k
  SourceLocation getProtocolRAngleLoc() const {
788
46.4k
    return getNumProtocols()  ?
789
2.24k
      *((SourceLocation*)this->getExtraLocalData() + 1) :
790
46.4k
      
SourceLocation()44.2k
;
791
46.4k
  }
792
793
3.60k
  void setProtocolRAngleLoc(SourceLocation Loc) {
794
3.60k
    *((SourceLocation*)this->getExtraLocalData() + 1) = Loc;
795
3.60k
  }
796
797
331k
  unsigned getNumProtocols() const {
798
331k
    return this->getTypePtr()->getNumProtocols();
799
331k
  }
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.60k
  void setProtocolLoc(unsigned i, SourceLocation Loc) {
807
3.60k
    assert(i < getNumProtocols() && "Index is out of bounds!");
808
0
    getProtocolLocArray()[i] = Loc;
809
3.60k
  }
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
133k
  unsigned getExtraLocalDataSize() const {
823
133k
    if (!this->getNumProtocols()) 
return 0130k
;
824
    // When there are protocol qualifers, we have LAngleLoc and RAngleLoc
825
    // as well.
826
3.60k
    return (this->getNumProtocols() + 2) * sizeof(SourceLocation) ;
827
133k
  }
828
829
370k
  unsigned getExtraLocalDataAlignment() const {
830
370k
    return alignof(SourceLocation);
831
370k
  }
832
833
46.4k
  SourceRange getLocalSourceRange() const {
834
46.4k
    SourceLocation start = getNameLoc();
835
46.4k
    SourceLocation end = getProtocolRAngleLoc();
836
46.4k
    if (end.isInvalid()) 
return SourceRange(start, start)44.2k
;
837
2.19k
    return SourceRange(start, end);
838
46.4k
  }
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
342
  attr::Kind getAttrKind() const {
866
342
    return getTypePtr()->getAttrKind();
867
342
  }
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.79M
  TypeLoc getModifiedLoc() const {
878
1.79M
    return getInnerTypeLoc();
879
1.79M
  }
880
881
  /// The type attribute.
882
1.68M
  const Attr *getAttr() const {
883
1.68M
    return getLocalData()->TypeAttr;
884
1.68M
  }
885
3.28M
  void setAttr(const Attr *A) {
886
3.28M
    getLocalData()->TypeAttr = A;
887
3.28M
  }
888
889
14.8k
  template<typename T> const T *getAttrAs() {
890
14.8k
    return dyn_cast_or_null<T>(getAttr());
891
14.8k
  }
clang::LifetimeBoundAttr const* clang::AttributedTypeLoc::getAttrAs<clang::LifetimeBoundAttr>()
Line
Count
Source
889
14.5k
  template<typename T> const T *getAttrAs() {
890
14.5k
    return dyn_cast_or_null<T>(getAttr());
891
14.5k
  }
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.1M
  QualType getInnerType() const {
900
15.1M
    return getTypePtr()->getModifiedType();
901
15.1M
  }
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
46
  TypeLoc getWrappedLoc() const { return getInnerTypeLoc(); }
912
913
  /// The btf_type_tag attribute.
914
40
  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
300
  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
198k
  TypeSourceInfo **getTypeArgLocArray() const {
946
198k
    return (TypeSourceInfo**)this->getExtraLocalData();
947
198k
  }
948
949
  // SourceLocations are stored after the type argument information, one for
950
  // each Protocol.
951
24.8k
  SourceLocation *getProtocolLocArray() const {
952
24.8k
    return (SourceLocation*)(getTypeArgLocArray() + getNumTypeArgs());
953
24.8k
  }
954
955
public:
956
68.7k
  SourceLocation getTypeArgsLAngleLoc() const {
957
68.7k
    return this->getLocalData()->TypeArgsLAngleLoc;
958
68.7k
  }
959
960
210k
  void setTypeArgsLAngleLoc(SourceLocation Loc) {
961
210k
    this->getLocalData()->TypeArgsLAngleLoc = Loc;
962
210k
  }
963
964
60.2k
  SourceLocation getTypeArgsRAngleLoc() const {
965
60.2k
    return this->getLocalData()->TypeArgsRAngleLoc;
966
60.2k
  }
967
968
210k
  void setTypeArgsRAngleLoc(SourceLocation Loc) {
969
210k
    this->getLocalData()->TypeArgsRAngleLoc = Loc;
970
210k
  }
971
972
2.44M
  unsigned getNumTypeArgs() const {
973
2.44M
    return this->getTypePtr()->getTypeArgsAsWritten().size();
974
2.44M
  }
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
162k
  void setTypeArgTInfo(unsigned i, TypeSourceInfo *TInfo) {
982
162k
    assert(i < getNumTypeArgs() && "Index is out of bounds!");
983
0
    getTypeArgLocArray()[i] = TInfo;
984
162k
  }
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
68.7k
  SourceLocation getProtocolRAngleLoc() const {
995
68.7k
    return this->getLocalData()->ProtocolRAngleLoc;
996
68.7k
  }
997
998
210k
  void setProtocolRAngleLoc(SourceLocation Loc) {
999
210k
    this->getLocalData()->ProtocolRAngleLoc = Loc;
1000
210k
  }
1001
1002
2.16M
  unsigned getNumProtocols() const {
1003
2.16M
    return this->getTypePtr()->getNumProtocols();
1004
2.16M
  }
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
21.8k
  void setProtocolLoc(unsigned i, SourceLocation Loc) {
1012
21.8k
    assert(i < getNumProtocols() && "Index is out of bounds!");
1013
0
    getProtocolLocArray()[i] = Loc;
1014
21.8k
  }
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
156k
  TypeLoc getBaseLoc() const {
1035
156k
    return getInnerTypeLoc();
1036
156k
  }
1037
1038
62.2k
  SourceRange getLocalSourceRange() const {
1039
62.2k
    SourceLocation start = getTypeArgsLAngleLoc();
1040
62.2k
    if (start.isInvalid())
1041
8.68k
      start = getProtocolLAngleLoc();
1042
62.2k
    SourceLocation end = getProtocolRAngleLoc();
1043
62.2k
    if (end.isInvalid())
1044
53.7k
      end = getTypeArgsRAngleLoc();
1045
62.2k
    return SourceRange(start, end);
1046
62.2k
  }
1047
1048
  void initializeLocal(ASTContext &Context, SourceLocation Loc);
1049
1050
1.89M
  unsigned getExtraLocalDataSize() const {
1051
1.89M
    return this->getNumTypeArgs() * sizeof(TypeSourceInfo *)
1052
1.89M
         + this->getNumProtocols() * sizeof(SourceLocation);
1053
1.89M
  }
1054
1055
3.44M
  unsigned getExtraLocalDataAlignment() const {
1056
3.44M
    static_assert(alignof(ObjCObjectTypeLoc) >= alignof(TypeSourceInfo *),
1057
3.44M
                  "not enough alignment for tail-allocated data");
1058
3.44M
    return alignof(TypeSourceInfo *);
1059
3.44M
  }
1060
1061
2.17M
  QualType getInnerType() const {
1062
2.17M
    return getTypePtr()->getBaseType();
1063
2.17M
  }
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.61M
  SourceLocation getNameLoc() const {
1082
1.61M
    return getLocalData()->NameLoc;
1083
1.61M
  }
1084
1085
1.38M
  void setNameLoc(SourceLocation Loc) {
1086
1.38M
    getLocalData()->NameLoc = Loc;
1087
1.38M
  }
1088
1089
1.56M
  SourceRange getLocalSourceRange() const {
1090
1.56M
    return SourceRange(getNameLoc(), getNameEndLoc());
1091
1.56M
  }
1092
1093
1.56M
  SourceLocation getNameEndLoc() const {
1094
1.56M
    return getLocalData()->NameEndLoc;
1095
1.56M
  }
1096
1097
1.36M
  void setNameEndLoc(SourceLocation Loc) {
1098
1.36M
    getLocalData()->NameEndLoc = Loc;
1099
1.36M
  }
1100
1101
341k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1102
341k
    setNameLoc(Loc);
1103
341k
    setNameEndLoc(Loc);
1104
341k
  }
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
165k
  TypeLoc getInnerLoc() const { return getInnerTypeLoc(); }
1120
1121
23
  const IdentifierInfo *getMacroIdentifier() const {
1122
23
    return getTypePtr()->getMacroIdentifier();
1123
23
  }
1124
1125
8.87k
  SourceLocation getExpansionLoc() const {
1126
8.87k
    return this->getLocalData()->ExpansionLoc;
1127
8.87k
  }
1128
1129
242k
  void setExpansionLoc(SourceLocation Loc) {
1130
242k
    this->getLocalData()->ExpansionLoc = Loc;
1131
242k
  }
1132
1133
1.02M
  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
144k
  SourceLocation getLParenLoc() const {
1150
144k
    return this->getLocalData()->LParenLoc;
1151
144k
  }
1152
1153
144k
  SourceLocation getRParenLoc() const {
1154
144k
    return this->getLocalData()->RParenLoc;
1155
144k
  }
1156
1157
342k
  void setLParenLoc(SourceLocation Loc) {
1158
342k
    this->getLocalData()->LParenLoc = Loc;
1159
342k
  }
1160
1161
342k
  void setRParenLoc(SourceLocation Loc) {
1162
342k
    this->getLocalData()->RParenLoc = Loc;
1163
342k
  }
1164
1165
104k
  SourceRange getLocalSourceRange() const {
1166
104k
    return SourceRange(getLParenLoc(), getRParenLoc());
1167
104k
  }
1168
1169
5.35k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1170
5.35k
    setLParenLoc(Loc);
1171
5.35k
    setRParenLoc(Loc);
1172
5.35k
  }
1173
1174
62.2k
  TypeLoc getInnerLoc() const {
1175
62.2k
    return getInnerTypeLoc();
1176
62.2k
  }
1177
1178
1.88M
  QualType getInnerType() const {
1179
1.88M
    return this->getTypePtr()->getInnerType();
1180
1.88M
  }
1181
};
1182
1183
4.99M
inline TypeLoc TypeLoc::IgnoreParens() const {
1184
4.99M
  if (ParenTypeLoc::isKind(*this))
1185
173
    return IgnoreParensImpl(*this);
1186
4.99M
  return *this;
1187
4.99M
}
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.48k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1199
    // do nothing
1200
2.48k
  }
1201
1202
25.7k
  QualType getInnerType() const {
1203
    // The inner type is the undecayed type, since that's what we have source
1204
    // location information for.
1205
25.7k
    return getTypePtr()->getOriginalType();
1206
25.7k
  }
1207
1208
1.07k
  SourceRange getLocalSourceRange() const { return {}; }
1209
1210
19.7k
  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.7k
    return 0;  // No data.
1214
19.7k
  }
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
15.1M
  SourceLocation getSigilLoc() const {
1233
15.1M
    return this->getLocalData()->StarLoc;
1234
15.1M
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1232
5.28M
  SourceLocation getSigilLoc() const {
1233
5.28M
    return this->getLocalData()->StarLoc;
1234
5.28M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1232
68.3k
  SourceLocation getSigilLoc() const {
1233
68.3k
    return this->getLocalData()->StarLoc;
1234
68.3k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getSigilLoc() const
Line
Count
Source
1232
70.2k
  SourceLocation getSigilLoc() const {
1233
70.2k
    return this->getLocalData()->StarLoc;
1234
70.2k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1232
1.12M
  SourceLocation getSigilLoc() const {
1233
1.12M
    return this->getLocalData()->StarLoc;
1234
1.12M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1232
8.56M
  SourceLocation getSigilLoc() const {
1233
8.56M
    return this->getLocalData()->StarLoc;
1234
8.56M
  }
1235
1236
14.5M
  void setSigilLoc(SourceLocation Loc) {
1237
14.5M
    this->getLocalData()->StarLoc = Loc;
1238
14.5M
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1236
8.22M
  void setSigilLoc(SourceLocation Loc) {
1237
8.22M
    this->getLocalData()->StarLoc = Loc;
1238
8.22M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1236
62.6k
  void setSigilLoc(SourceLocation Loc) {
1237
62.6k
    this->getLocalData()->StarLoc = Loc;
1238
62.6k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1236
53.9k
  void setSigilLoc(SourceLocation Loc) {
1237
53.9k
    this->getLocalData()->StarLoc = Loc;
1238
53.9k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1236
1.24M
  void setSigilLoc(SourceLocation Loc) {
1237
1.24M
    this->getLocalData()->StarLoc = Loc;
1238
1.24M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1236
5.00M
  void setSigilLoc(SourceLocation Loc) {
1237
5.00M
    this->getLocalData()->StarLoc = Loc;
1238
5.00M
  }
1239
1240
3.04M
  TypeLoc getPointeeLoc() const {
1241
3.04M
    return this->getInnerTypeLoc();
1242
3.04M
  }
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
3.31k
  TypeLoc getPointeeLoc() const {
1241
3.31k
    return this->getInnerTypeLoc();
1242
3.31k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1240
58.4k
  TypeLoc getPointeeLoc() const {
1241
58.4k
    return this->getInnerTypeLoc();
1242
58.4k
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1240
1.43M
  TypeLoc getPointeeLoc() const {
1241
1.43M
    return this->getInnerTypeLoc();
1242
1.43M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1240
1.53M
  TypeLoc getPointeeLoc() const {
1241
1.53M
    return this->getInnerTypeLoc();
1242
1.53M
  }
1243
1244
5.66M
  SourceRange getLocalSourceRange() const {
1245
5.66M
    return SourceRange(getSigilLoc(), getSigilLoc());
1246
5.66M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1244
33.1k
  SourceRange getLocalSourceRange() const {
1245
33.1k
    return SourceRange(getSigilLoc(), getSigilLoc());
1246
33.1k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1244
539k
  SourceRange getLocalSourceRange() const {
1245
539k
    return SourceRange(getSigilLoc(), getSigilLoc());
1246
539k
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1244
2.01M
  SourceRange getLocalSourceRange() const {
1245
2.01M
    return SourceRange(getSigilLoc(), getSigilLoc());
1246
2.01M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1244
3.07M
  SourceRange getLocalSourceRange() const {
1245
3.07M
    return SourceRange(getSigilLoc(), getSigilLoc());
1246
3.07M
  }
1247
1248
2.04M
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1249
2.04M
    setSigilLoc(Loc);
1250
2.04M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1248
901
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1249
901
    setSigilLoc(Loc);
1250
901
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1248
61.1k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1249
61.1k
    setSigilLoc(Loc);
1250
61.1k
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1248
773k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1249
773k
    setSigilLoc(Loc);
1250
773k
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1248
1.21M
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1249
1.21M
    setSigilLoc(Loc);
1250
1.21M
  }
1251
1252
49.7M
  QualType getInnerType() const {
1253
49.7M
    return this->getTypePtr()->getPointeeType();
1254
49.7M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getInnerType() const
Line
Count
Source
1252
328k
  QualType getInnerType() const {
1253
328k
    return this->getTypePtr()->getPointeeType();
1254
328k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getInnerType() const
Line
Count
Source
1252
436k
  QualType getInnerType() const {
1253
436k
    return this->getTypePtr()->getPointeeType();
1254
436k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getInnerType() const
Line
Count
Source
1252
6.36M
  QualType getInnerType() const {
1253
6.36M
    return this->getTypePtr()->getPointeeType();
1254
6.36M
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getInnerType() const
Line
Count
Source
1252
42.5M
  QualType getInnerType() const {
1253
42.5M
    return this->getTypePtr()->getPointeeType();
1254
42.5M
  }
1255
};
1256
1257
/// Wrapper for source info for pointers.
1258
class PointerTypeLoc : public PointerLikeTypeLoc<PointerTypeLoc,
1259
                                                 PointerType> {
1260
public:
1261
311k
  SourceLocation getStarLoc() const {
1262
311k
    return getSigilLoc();
1263
311k
  }
1264
1265
6.97M
  void setStarLoc(SourceLocation Loc) {
1266
6.97M
    setSigilLoc(Loc);
1267
6.97M
  }
1268
};
1269
1270
/// Wrapper for source info for block pointers.
1271
class BlockPointerTypeLoc : public PointerLikeTypeLoc<BlockPointerTypeLoc,
1272
                                                      BlockPointerType> {
1273
public:
1274
2.10k
  SourceLocation getCaretLoc() const {
1275
2.10k
    return getSigilLoc();
1276
2.10k
  }
1277
1278
61.7k
  void setCaretLoc(SourceLocation Loc) {
1279
61.7k
    setSigilLoc(Loc);
1280
61.7k
  }
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
69.7k
  SourceLocation getStarLoc() const {
1293
69.7k
    return getSigilLoc();
1294
69.7k
  }
1295
1296
33.0k
  void setStarLoc(SourceLocation Loc) {
1297
33.0k
    setSigilLoc(Loc);
1298
33.0k
  }
1299
1300
32.9k
  const Type *getClass() const {
1301
32.9k
    return getTypePtr()->getClass();
1302
32.9k
  }
1303
1304
72.1k
  TypeSourceInfo *getClassTInfo() const {
1305
72.1k
    return getLocalData()->ClassTInfo;
1306
72.1k
  }
1307
1308
53.9k
  void setClassTInfo(TypeSourceInfo* TI) {
1309
53.9k
    getLocalData()->ClassTInfo = TI;
1310
53.9k
  }
1311
1312
20.3k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1313
20.3k
    setSigilLoc(Loc);
1314
20.3k
    setClassTInfo(nullptr);
1315
20.3k
  }
1316
1317
67.8k
  SourceRange getLocalSourceRange() const {
1318
67.8k
    if (TypeSourceInfo *TI = getClassTInfo())
1319
45.7k
      return SourceRange(TI->getTypeLoc().getBeginLoc(), getStarLoc());
1320
22.0k
    else
1321
22.0k
      return SourceRange(getStarLoc());
1322
67.8k
  }
1323
};
1324
1325
/// Wraps an ObjCPointerType with source location information.
1326
class ObjCObjectPointerTypeLoc :