Coverage Report

Created: 2022-01-18 06:27

/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.74G
  TypeLoc() = default;
67
  TypeLoc(QualType ty, void *opaqueData)
68
1.03G
      : Ty(ty.getAsOpaquePtr()), Data(opaqueData) {}
69
  TypeLoc(const Type *ty, void *opaqueData)
70
76.6M
      : 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.78G
  T castAs() const {
78
1.78G
    assert(T::isKind(*this));
79
0
    T t;
80
1.78G
    TypeLoc& tl = t;
81
1.78G
    tl = *this;
82
1.78G
    return t;
83
1.78G
  }
clang::UnqualTypeLoc clang::TypeLoc::castAs<clang::UnqualTypeLoc>() const
Line
Count
Source
77
158M
  T castAs() const {
78
158M
    assert(T::isKind(*this));
79
0
    T t;
80
158M
    TypeLoc& tl = t;
81
158M
    tl = *this;
82
158M
    return t;
83
158M
  }
clang::TemplateSpecializationTypeLoc clang::TypeLoc::castAs<clang::TemplateSpecializationTypeLoc>() const
Line
Count
Source
77
245M
  T castAs() const {
78
245M
    assert(T::isKind(*this));
79
0
    T t;
80
245M
    TypeLoc& tl = t;
81
245M
    tl = *this;
82
245M
    return t;
83
245M
  }
clang::QualifiedTypeLoc clang::TypeLoc::castAs<clang::QualifiedTypeLoc>() const
Line
Count
Source
77
42.1M
  T castAs() const {
78
42.1M
    assert(T::isKind(*this));
79
0
    T t;
80
42.1M
    TypeLoc& tl = t;
81
42.1M
    tl = *this;
82
42.1M
    return t;
83
42.1M
  }
clang::AdjustedTypeLoc clang::TypeLoc::castAs<clang::AdjustedTypeLoc>() const
Line
Count
Source
77
76
  T castAs() const {
78
76
    assert(T::isKind(*this));
79
0
    T t;
80
76
    TypeLoc& tl = t;
81
76
    tl = *this;
82
76
    return t;
83
76
  }
clang::DecayedTypeLoc clang::TypeLoc::castAs<clang::DecayedTypeLoc>() const
Line
Count
Source
77
26.8k
  T castAs() const {
78
26.8k
    assert(T::isKind(*this));
79
0
    T t;
80
26.8k
    TypeLoc& tl = t;
81
26.8k
    tl = *this;
82
26.8k
    return t;
83
26.8k
  }
clang::ConstantArrayTypeLoc clang::TypeLoc::castAs<clang::ConstantArrayTypeLoc>() const
Line
Count
Source
77
2.03M
  T castAs() const {
78
2.03M
    assert(T::isKind(*this));
79
0
    T t;
80
2.03M
    TypeLoc& tl = t;
81
2.03M
    tl = *this;
82
2.03M
    return t;
83
2.03M
  }
clang::DependentSizedArrayTypeLoc clang::TypeLoc::castAs<clang::DependentSizedArrayTypeLoc>() const
Line
Count
Source
77
197k
  T castAs() const {
78
197k
    assert(T::isKind(*this));
79
0
    T t;
80
197k
    TypeLoc& tl = t;
81
197k
    tl = *this;
82
197k
    return t;
83
197k
  }
clang::IncompleteArrayTypeLoc clang::TypeLoc::castAs<clang::IncompleteArrayTypeLoc>() const
Line
Count
Source
77
478k
  T castAs() const {
78
478k
    assert(T::isKind(*this));
79
0
    T t;
80
478k
    TypeLoc& tl = t;
81
478k
    tl = *this;
82
478k
    return t;
83
478k
  }
clang::VariableArrayTypeLoc clang::TypeLoc::castAs<clang::VariableArrayTypeLoc>() const
Line
Count
Source
77
118k
  T castAs() const {
78
118k
    assert(T::isKind(*this));
79
0
    T t;
80
118k
    TypeLoc& tl = t;
81
118k
    tl = *this;
82
118k
    return t;
83
118k
  }
clang::AtomicTypeLoc clang::TypeLoc::castAs<clang::AtomicTypeLoc>() const
Line
Count
Source
77
40.6k
  T castAs() const {
78
40.6k
    assert(T::isKind(*this));
79
0
    T t;
80
40.6k
    TypeLoc& tl = t;
81
40.6k
    tl = *this;
82
40.6k
    return t;
83
40.6k
  }
clang::AttributedTypeLoc clang::TypeLoc::castAs<clang::AttributedTypeLoc>() const
Line
Count
Source
77
14.3M
  T castAs() const {
78
14.3M
    assert(T::isKind(*this));
79
0
    T t;
80
14.3M
    TypeLoc& tl = t;
81
14.3M
    tl = *this;
82
14.3M
    return t;
83
14.3M
  }
clang::BitIntTypeLoc clang::TypeLoc::castAs<clang::BitIntTypeLoc>() const
Line
Count
Source
77
9.03k
  T castAs() const {
78
9.03k
    assert(T::isKind(*this));
79
0
    T t;
80
9.03k
    TypeLoc& tl = t;
81
9.03k
    tl = *this;
82
9.03k
    return t;
83
9.03k
  }
clang::BlockPointerTypeLoc clang::TypeLoc::castAs<clang::BlockPointerTypeLoc>() const
Line
Count
Source
77
506k
  T castAs() const {
78
506k
    assert(T::isKind(*this));
79
0
    T t;
80
506k
    TypeLoc& tl = t;
81
506k
    tl = *this;
82
506k
    return t;
83
506k
  }
clang::BuiltinTypeLoc clang::TypeLoc::castAs<clang::BuiltinTypeLoc>() const
Line
Count
Source
77
99.7M
  T castAs() const {
78
99.7M
    assert(T::isKind(*this));
79
0
    T t;
80
99.7M
    TypeLoc& tl = t;
81
99.7M
    tl = *this;
82
99.7M
    return t;
83
99.7M
  }
clang::ComplexTypeLoc clang::TypeLoc::castAs<clang::ComplexTypeLoc>() const
Line
Count
Source
77
89.1k
  T castAs() const {
78
89.1k
    assert(T::isKind(*this));
79
0
    T t;
80
89.1k
    TypeLoc& tl = t;
81
89.1k
    tl = *this;
82
89.1k
    return t;
83
89.1k
  }
clang::DecltypeTypeLoc clang::TypeLoc::castAs<clang::DecltypeTypeLoc>() const
Line
Count
Source
77
3.48M
  T castAs() const {
78
3.48M
    assert(T::isKind(*this));
79
0
    T t;
80
3.48M
    TypeLoc& tl = t;
81
3.48M
    tl = *this;
82
3.48M
    return t;
83
3.48M
  }
clang::AutoTypeLoc clang::TypeLoc::castAs<clang::AutoTypeLoc>() const
Line
Count
Source
77
1.59M
  T castAs() const {
78
1.59M
    assert(T::isKind(*this));
79
0
    T t;
80
1.59M
    TypeLoc& tl = t;
81
1.59M
    tl = *this;
82
1.59M
    return t;
83
1.59M
  }
clang::DeducedTemplateSpecializationTypeLoc clang::TypeLoc::castAs<clang::DeducedTemplateSpecializationTypeLoc>() const
Line
Count
Source
77
28.5k
  T castAs() const {
78
28.5k
    assert(T::isKind(*this));
79
0
    T t;
80
28.5k
    TypeLoc& tl = t;
81
28.5k
    tl = *this;
82
28.5k
    return t;
83
28.5k
  }
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
258
  T castAs() const {
78
258
    assert(T::isKind(*this));
79
0
    T t;
80
258
    TypeLoc& tl = t;
81
258
    tl = *this;
82
258
    return t;
83
258
  }
clang::DependentNameTypeLoc clang::TypeLoc::castAs<clang::DependentNameTypeLoc>() const
Line
Count
Source
77
29.5M
  T castAs() const {
78
29.5M
    assert(T::isKind(*this));
79
0
    T t;
80
29.5M
    TypeLoc& tl = t;
81
29.5M
    tl = *this;
82
29.5M
    return t;
83
29.5M
  }
clang::DependentSizedExtVectorTypeLoc clang::TypeLoc::castAs<clang::DependentSizedExtVectorTypeLoc>() const
Line
Count
Source
77
344
  T castAs() const {
78
344
    assert(T::isKind(*this));
79
0
    T t;
80
344
    TypeLoc& tl = t;
81
344
    tl = *this;
82
344
    return t;
83
344
  }
clang::DependentTemplateSpecializationTypeLoc clang::TypeLoc::castAs<clang::DependentTemplateSpecializationTypeLoc>() const
Line
Count
Source
77
790k
  T castAs() const {
78
790k
    assert(T::isKind(*this));
79
0
    T t;
80
790k
    TypeLoc& tl = t;
81
790k
    tl = *this;
82
790k
    return t;
83
790k
  }
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
19.8M
  T castAs() const {
78
19.8M
    assert(T::isKind(*this));
79
0
    T t;
80
19.8M
    TypeLoc& tl = t;
81
19.8M
    tl = *this;
82
19.8M
    return t;
83
19.8M
  }
clang::FunctionNoProtoTypeLoc clang::TypeLoc::castAs<clang::FunctionNoProtoTypeLoc>() const
Line
Count
Source
77
613k
  T castAs() const {
78
613k
    assert(T::isKind(*this));
79
0
    T t;
80
613k
    TypeLoc& tl = t;
81
613k
    tl = *this;
82
613k
    return t;
83
613k
  }
clang::FunctionProtoTypeLoc clang::TypeLoc::castAs<clang::FunctionProtoTypeLoc>() const
Line
Count
Source
77
176M
  T castAs() const {
78
176M
    assert(T::isKind(*this));
79
0
    T t;
80
176M
    TypeLoc& tl = t;
81
176M
    tl = *this;
82
176M
    return t;
83
176M
  }
clang::InjectedClassNameTypeLoc clang::TypeLoc::castAs<clang::InjectedClassNameTypeLoc>() const
Line
Count
Source
77
10.0M
  T castAs() const {
78
10.0M
    assert(T::isKind(*this));
79
0
    T t;
80
10.0M
    TypeLoc& tl = t;
81
10.0M
    tl = *this;
82
10.0M
    return t;
83
10.0M
  }
clang::MacroQualifiedTypeLoc clang::TypeLoc::castAs<clang::MacroQualifiedTypeLoc>() const
Line
Count
Source
77
798k
  T castAs() const {
78
798k
    assert(T::isKind(*this));
79
0
    T t;
80
798k
    TypeLoc& tl = t;
81
798k
    tl = *this;
82
798k
    return t;
83
798k
  }
clang::ConstantMatrixTypeLoc clang::TypeLoc::castAs<clang::ConstantMatrixTypeLoc>() const
Line
Count
Source
77
4.63k
  T castAs() const {
78
4.63k
    assert(T::isKind(*this));
79
0
    T t;
80
4.63k
    TypeLoc& tl = t;
81
4.63k
    tl = *this;
82
4.63k
    return t;
83
4.63k
  }
clang::DependentSizedMatrixTypeLoc clang::TypeLoc::castAs<clang::DependentSizedMatrixTypeLoc>() const
Line
Count
Source
77
2.88k
  T castAs() const {
78
2.88k
    assert(T::isKind(*this));
79
0
    T t;
80
2.88k
    TypeLoc& tl = t;
81
2.88k
    tl = *this;
82
2.88k
    return t;
83
2.88k
  }
clang::MemberPointerTypeLoc clang::TypeLoc::castAs<clang::MemberPointerTypeLoc>() const
Line
Count
Source
77
413k
  T castAs() const {
78
413k
    assert(T::isKind(*this));
79
0
    T t;
80
413k
    TypeLoc& tl = t;
81
413k
    tl = *this;
82
413k
    return t;
83
413k
  }
clang::ObjCObjectPointerTypeLoc clang::TypeLoc::castAs<clang::ObjCObjectPointerTypeLoc>() const
Line
Count
Source
77
10.0M
  T castAs() const {
78
10.0M
    assert(T::isKind(*this));
79
0
    T t;
80
10.0M
    TypeLoc& tl = t;
81
10.0M
    tl = *this;
82
10.0M
    return t;
83
10.0M
  }
clang::ObjCObjectTypeLoc clang::TypeLoc::castAs<clang::ObjCObjectTypeLoc>() const
Line
Count
Source
77
3.40M
  T castAs() const {
78
3.40M
    assert(T::isKind(*this));
79
0
    T t;
80
3.40M
    TypeLoc& tl = t;
81
3.40M
    tl = *this;
82
3.40M
    return t;
83
3.40M
  }
clang::ObjCInterfaceTypeLoc clang::TypeLoc::castAs<clang::ObjCInterfaceTypeLoc>() 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::ObjCTypeParamTypeLoc clang::TypeLoc::castAs<clang::ObjCTypeParamTypeLoc>() const
Line
Count
Source
77
769k
  T castAs() const {
78
769k
    assert(T::isKind(*this));
79
0
    T t;
80
769k
    TypeLoc& tl = t;
81
769k
    tl = *this;
82
769k
    return t;
83
769k
  }
clang::PackExpansionTypeLoc clang::TypeLoc::castAs<clang::PackExpansionTypeLoc>() const
Line
Count
Source
77
5.52M
  T castAs() const {
78
5.52M
    assert(T::isKind(*this));
79
0
    T t;
80
5.52M
    TypeLoc& tl = t;
81
5.52M
    tl = *this;
82
5.52M
    return t;
83
5.52M
  }
clang::ParenTypeLoc clang::TypeLoc::castAs<clang::ParenTypeLoc>() const
Line
Count
Source
77
2.89M
  T castAs() const {
78
2.89M
    assert(T::isKind(*this));
79
0
    T t;
80
2.89M
    TypeLoc& tl = t;
81
2.89M
    tl = *this;
82
2.89M
    return t;
83
2.89M
  }
clang::PipeTypeLoc clang::TypeLoc::castAs<clang::PipeTypeLoc>() const
Line
Count
Source
77
1.33k
  T castAs() const {
78
1.33k
    assert(T::isKind(*this));
79
0
    T t;
80
1.33k
    TypeLoc& tl = t;
81
1.33k
    tl = *this;
82
1.33k
    return t;
83
1.33k
  }
clang::PointerTypeLoc clang::TypeLoc::castAs<clang::PointerTypeLoc>() const
Line
Count
Source
77
50.9M
  T castAs() const {
78
50.9M
    assert(T::isKind(*this));
79
0
    T t;
80
50.9M
    TypeLoc& tl = t;
81
50.9M
    tl = *this;
82
50.9M
    return t;
83
50.9M
  }
clang::LValueReferenceTypeLoc clang::TypeLoc::castAs<clang::LValueReferenceTypeLoc>() 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::RValueReferenceTypeLoc clang::TypeLoc::castAs<clang::RValueReferenceTypeLoc>() const
Line
Count
Source
77
6.73M
  T castAs() const {
78
6.73M
    assert(T::isKind(*this));
79
0
    T t;
80
6.73M
    TypeLoc& tl = t;
81
6.73M
    tl = *this;
82
6.73M
    return t;
83
6.73M
  }
clang::SubstTemplateTypeParmPackTypeLoc clang::TypeLoc::castAs<clang::SubstTemplateTypeParmPackTypeLoc>() const
Line
Count
Source
77
441k
  T castAs() const {
78
441k
    assert(T::isKind(*this));
79
0
    T t;
80
441k
    TypeLoc& tl = t;
81
441k
    tl = *this;
82
441k
    return t;
83
441k
  }
clang::SubstTemplateTypeParmTypeLoc clang::TypeLoc::castAs<clang::SubstTemplateTypeParmTypeLoc>() const
Line
Count
Source
77
72.8M
  T castAs() const {
78
72.8M
    assert(T::isKind(*this));
79
0
    T t;
80
72.8M
    TypeLoc& tl = t;
81
72.8M
    tl = *this;
82
72.8M
    return t;
83
72.8M
  }
clang::EnumTypeLoc clang::TypeLoc::castAs<clang::EnumTypeLoc>() const
Line
Count
Source
77
4.00M
  T castAs() const {
78
4.00M
    assert(T::isKind(*this));
79
0
    T t;
80
4.00M
    TypeLoc& tl = t;
81
4.00M
    tl = *this;
82
4.00M
    return t;
83
4.00M
  }
clang::RecordTypeLoc clang::TypeLoc::castAs<clang::RecordTypeLoc>() const
Line
Count
Source
77
39.0M
  T castAs() const {
78
39.0M
    assert(T::isKind(*this));
79
0
    T t;
80
39.0M
    TypeLoc& tl = t;
81
39.0M
    tl = *this;
82
39.0M
    return t;
83
39.0M
  }
clang::TemplateTypeParmTypeLoc clang::TypeLoc::castAs<clang::TemplateTypeParmTypeLoc>() const
Line
Count
Source
77
135M
  T castAs() const {
78
135M
    assert(T::isKind(*this));
79
0
    T t;
80
135M
    TypeLoc& tl = t;
81
135M
    tl = *this;
82
135M
    return t;
83
135M
  }
clang::TypeOfExprTypeLoc clang::TypeLoc::castAs<clang::TypeOfExprTypeLoc>() const
Line
Count
Source
77
36.7k
  T castAs() const {
78
36.7k
    assert(T::isKind(*this));
79
0
    T t;
80
36.7k
    TypeLoc& tl = t;
81
36.7k
    tl = *this;
82
36.7k
    return t;
83
36.7k
  }
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
566M
  T castAs() const {
78
566M
    assert(T::isKind(*this));
79
0
    T t;
80
566M
    TypeLoc& tl = t;
81
566M
    tl = *this;
82
566M
    return t;
83
566M
  }
clang::UnaryTransformTypeLoc clang::TypeLoc::castAs<clang::UnaryTransformTypeLoc>() const
Line
Count
Source
77
19.5k
  T castAs() const {
78
19.5k
    assert(T::isKind(*this));
79
0
    T t;
80
19.5k
    TypeLoc& tl = t;
81
19.5k
    tl = *this;
82
19.5k
    return t;
83
19.5k
  }
clang::UnresolvedUsingTypeLoc clang::TypeLoc::castAs<clang::UnresolvedUsingTypeLoc>() const
Line
Count
Source
77
13.8k
  T castAs() const {
78
13.8k
    assert(T::isKind(*this));
79
0
    T t;
80
13.8k
    TypeLoc& tl = t;
81
13.8k
    tl = *this;
82
13.8k
    return t;
83
13.8k
  }
clang::UsingTypeLoc clang::TypeLoc::castAs<clang::UsingTypeLoc>() const
Line
Count
Source
77
4.18M
  T castAs() const {
78
4.18M
    assert(T::isKind(*this));
79
0
    T t;
80
4.18M
    TypeLoc& tl = t;
81
4.18M
    tl = *this;
82
4.18M
    return t;
83
4.18M
  }
clang::VectorTypeLoc clang::TypeLoc::castAs<clang::VectorTypeLoc>() const
Line
Count
Source
77
841k
  T castAs() const {
78
841k
    assert(T::isKind(*this));
79
0
    T t;
80
841k
    TypeLoc& tl = t;
81
841k
    tl = *this;
82
841k
    return t;
83
841k
  }
clang::ExtVectorTypeLoc clang::TypeLoc::castAs<clang::ExtVectorTypeLoc>() const
Line
Count
Source
77
22.2k
  T castAs() const {
78
22.2k
    assert(T::isKind(*this));
79
0
    T t;
80
22.2k
    TypeLoc& tl = t;
81
22.2k
    tl = *this;
82
22.2k
    return t;
83
22.2k
  }
clang::ArrayTypeLoc clang::TypeLoc::castAs<clang::ArrayTypeLoc>() const
Line
Count
Source
77
333k
  T castAs() const {
78
333k
    assert(T::isKind(*this));
79
0
    T t;
80
333k
    TypeLoc& tl = t;
81
333k
    tl = *this;
82
333k
    return t;
83
333k
  }
clang::TypeLoc clang::TypeLoc::castAs<clang::TypeLoc>() const
Line
Count
Source
77
5.23M
  T castAs() const {
78
5.23M
    assert(T::isKind(*this));
79
0
    T t;
80
5.23M
    TypeLoc& tl = t;
81
5.23M
    tl = *this;
82
5.23M
    return t;
83
5.23M
  }
clang::DeducedTypeLoc clang::TypeLoc::castAs<clang::DeducedTypeLoc>() const
Line
Count
Source
77
822
  T castAs() const {
78
822
    assert(T::isKind(*this));
79
0
    T t;
80
822
    TypeLoc& tl = t;
81
822
    tl = *this;
82
822
    return t;
83
822
  }
clang::FunctionTypeLoc clang::TypeLoc::castAs<clang::FunctionTypeLoc>() const
Line
Count
Source
77
28.3M
  T castAs() const {
78
28.3M
    assert(T::isKind(*this));
79
0
    T t;
80
28.3M
    TypeLoc& tl = t;
81
28.3M
    tl = *this;
82
28.3M
    return t;
83
28.3M
  }
clang::MatrixTypeLoc clang::TypeLoc::castAs<clang::MatrixTypeLoc>() const
Line
Count
Source
77
627
  T castAs() const {
78
627
    assert(T::isKind(*this));
79
0
    T t;
80
627
    TypeLoc& tl = t;
81
627
    tl = *this;
82
627
    return t;
83
627
  }
clang::ReferenceTypeLoc clang::TypeLoc::castAs<clang::ReferenceTypeLoc>() const
Line
Count
Source
77
2.65k
  T castAs() const {
78
2.65k
    assert(T::isKind(*this));
79
0
    T t;
80
2.65k
    TypeLoc& tl = t;
81
2.65k
    tl = *this;
82
2.65k
    return t;
83
2.65k
  }
clang::TagTypeLoc clang::TypeLoc::castAs<clang::TagTypeLoc>() const
Line
Count
Source
77
1.90M
  T castAs() const {
78
1.90M
    assert(T::isKind(*this));
79
0
    T t;
80
1.90M
    TypeLoc& tl = t;
81
1.90M
    tl = *this;
82
1.90M
    return t;
83
1.90M
  }
clang::TypeSpecTypeLoc clang::TypeLoc::castAs<clang::TypeSpecTypeLoc>() const
Line
Count
Source
77
1.36M
  T castAs() const {
78
1.36M
    assert(T::isKind(*this));
79
0
    T t;
80
1.36M
    TypeLoc& tl = t;
81
1.36M
    tl = *this;
82
1.36M
    return t;
83
1.36M
  }
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
572M
  T getAs() const {
89
572M
    if (!T::isKind(*this))
90
561M
      return {};
91
10.7M
    T t;
92
10.7M
    TypeLoc& tl = t;
93
10.7M
    tl = *this;
94
10.7M
    return t;
95
572M
  }
clang::QualifiedTypeLoc clang::TypeLoc::getAs<clang::QualifiedTypeLoc>() const
Line
Count
Source
88
163M
  T getAs() const {
89
163M
    if (!T::isKind(*this))
90
158M
      return {};
91
4.96M
    T t;
92
4.96M
    TypeLoc& tl = t;
93
4.96M
    tl = *this;
94
4.96M
    return t;
95
163M
  }
clang::PointerTypeLoc clang::TypeLoc::getAs<clang::PointerTypeLoc>() const
Line
Count
Source
88
16.0k
  T getAs() const {
89
16.0k
    if (!T::isKind(*this))
90
1.36k
      return {};
91
14.7k
    T t;
92
14.7k
    TypeLoc& tl = t;
93
14.7k
    tl = *this;
94
14.7k
    return t;
95
16.0k
  }
clang::ReferenceTypeLoc clang::TypeLoc::getAs<clang::ReferenceTypeLoc>() const
Line
Count
Source
88
1.08k
  T getAs() const {
89
1.08k
    if (!T::isKind(*this))
90
1.06k
      return {};
91
18
    T t;
92
18
    TypeLoc& tl = t;
93
18
    tl = *this;
94
18
    return t;
95
1.08k
  }
clang::BlockPointerTypeLoc clang::TypeLoc::getAs<clang::BlockPointerTypeLoc>() const
Line
Count
Source
88
718
  T getAs() const {
89
718
    if (!T::isKind(*this))
90
621
      return {};
91
97
    T t;
92
97
    TypeLoc& tl = t;
93
97
    tl = *this;
94
97
    return t;
95
718
  }
clang::MemberPointerTypeLoc clang::TypeLoc::getAs<clang::MemberPointerTypeLoc>() const
Line
Count
Source
88
616
  T getAs() const {
89
616
    if (!T::isKind(*this))
90
610
      return {};
91
6
    T t;
92
6
    TypeLoc& tl = t;
93
6
    tl = *this;
94
6
    return t;
95
616
  }
clang::TemplateSpecializationTypeLoc clang::TypeLoc::getAs<clang::TemplateSpecializationTypeLoc>() const
Line
Count
Source
88
94.3k
  T getAs() const {
89
94.3k
    if (!T::isKind(*this))
90
348
      return {};
91
94.0k
    T t;
92
94.0k
    TypeLoc& tl = t;
93
94.0k
    tl = *this;
94
94.0k
    return t;
95
94.3k
  }
clang::FunctionTypeLoc clang::TypeLoc::getAs<clang::FunctionTypeLoc>() const
Line
Count
Source
88
343k
  T getAs() const {
89
343k
    if (!T::isKind(*this))
90
25.5k
      return {};
91
317k
    T t;
92
317k
    TypeLoc& tl = t;
93
317k
    tl = *this;
94
317k
    return t;
95
343k
  }
clang::ParenTypeLoc clang::TypeLoc::getAs<clang::ParenTypeLoc>() const
Line
Count
Source
88
28.0M
  T getAs() const {
89
28.0M
    if (!T::isKind(*this))
90
28.0M
      return {};
91
302
    T t;
92
302
    TypeLoc& tl = t;
93
302
    tl = *this;
94
302
    return t;
95
28.0M
  }
clang::AttributedTypeLoc clang::TypeLoc::getAs<clang::AttributedTypeLoc>() const
Line
Count
Source
88
96.5M
  T getAs() const {
89
96.5M
    if (!T::isKind(*this))
90
94.9M
      return {};
91
1.55M
    T t;
92
1.55M
    TypeLoc& tl = t;
93
1.55M
    tl = *this;
94
1.55M
    return t;
95
96.5M
  }
clang::ElaboratedTypeLoc clang::TypeLoc::getAs<clang::ElaboratedTypeLoc>() const
Line
Count
Source
88
28.1M
  T getAs() const {
89
28.1M
    if (!T::isKind(*this))
90
28.1M
      return {};
91
877
    T t;
92
877
    TypeLoc& tl = t;
93
877
    tl = *this;
94
877
    return t;
95
28.1M
  }
clang::AdjustedTypeLoc clang::TypeLoc::getAs<clang::AdjustedTypeLoc>() const
Line
Count
Source
88
66.5M
  T getAs() const {
89
66.5M
    if (!T::isKind(*this))
90
66.5M
      return {};
91
0
    T t;
92
0
    TypeLoc& tl = t;
93
0
    tl = *this;
94
0
    return t;
95
66.5M
  }
clang::MacroQualifiedTypeLoc clang::TypeLoc::getAs<clang::MacroQualifiedTypeLoc>() const
Line
Count
Source
88
66.8M
  T getAs() const {
89
66.8M
    if (!T::isKind(*this))
90
66.7M
      return {};
91
80.2k
    T t;
92
80.2k
    TypeLoc& tl = t;
93
80.2k
    tl = *this;
94
80.2k
    return t;
95
66.8M
  }
clang::FunctionProtoTypeLoc clang::TypeLoc::getAs<clang::FunctionProtoTypeLoc>() const
Line
Count
Source
88
3.67M
  T getAs() const {
89
3.67M
    if (!T::isKind(*this))
90
1.41k
      return {};
91
3.67M
    T t;
92
3.67M
    TypeLoc& tl = t;
93
3.67M
    tl = *this;
94
3.67M
    return t;
95
3.67M
  }
clang::AtomicTypeLoc clang::TypeLoc::getAs<clang::AtomicTypeLoc>() const
Line
Count
Source
88
38.6M
  T getAs() const {
89
38.6M
    if (!T::isKind(*this))
90
38.6M
      return {};
91
14
    T t;
92
14
    TypeLoc& tl = t;
93
14
    tl = *this;
94
14
    return t;
95
38.6M
  }
clang::AutoTypeLoc clang::TypeLoc::getAs<clang::AutoTypeLoc>() const
Line
Count
Source
88
244
  T getAs() const {
89
244
    if (!T::isKind(*this))
90
0
      return {};
91
244
    T t;
92
244
    TypeLoc& tl = t;
93
244
    tl = *this;
94
244
    return t;
95
244
  }
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.19k
  T getAs() const {
89
1.19k
    if (!T::isKind(*this))
90
1.16k
      return {};
91
31
    T t;
92
31
    TypeLoc& tl = t;
93
31
    tl = *this;
94
31
    return t;
95
1.19k
  }
clang::VariableArrayTypeLoc clang::TypeLoc::getAs<clang::VariableArrayTypeLoc>() const
Line
Count
Source
88
279
  T getAs() const {
89
279
    if (!T::isKind(*this))
90
276
      return {};
91
3
    T t;
92
3
    TypeLoc& tl = t;
93
3
    tl = *this;
94
3
    return t;
95
279
  }
clang::FunctionNoProtoTypeLoc clang::TypeLoc::getAs<clang::FunctionNoProtoTypeLoc>() const
Line
Count
Source
88
213
  T getAs() const {
89
213
    if (!T::isKind(*this))
90
5
      return {};
91
208
    T t;
92
208
    TypeLoc& tl = t;
93
208
    tl = *this;
94
208
    return t;
95
213
  }
clang::DecayedTypeLoc clang::TypeLoc::getAs<clang::DecayedTypeLoc>() const
Line
Count
Source
88
6
  T getAs() const {
89
6
    if (!T::isKind(*this))
90
6
      return {};
91
0
    T t;
92
0
    TypeLoc& tl = t;
93
0
    tl = *this;
94
0
    return t;
95
6
  }
clang::ArrayTypeLoc clang::TypeLoc::getAs<clang::ArrayTypeLoc>() const
Line
Count
Source
88
517
  T getAs() const {
89
517
    if (!T::isKind(*this))
90
507
      return {};
91
10
    T t;
92
10
    TypeLoc& tl = t;
93
10
    tl = *this;
94
10
    return t;
95
517
  }
clang::PackExpansionTypeLoc clang::TypeLoc::getAs<clang::PackExpansionTypeLoc>() const
Line
Count
Source
88
2.05M
  T getAs() const {
89
2.05M
    if (!T::isKind(*this))
90
2.01M
      return {};
91
44.3k
    T t;
92
44.3k
    TypeLoc& tl = t;
93
44.3k
    tl = *this;
94
44.3k
    return t;
95
2.05M
  }
clang::IncompleteArrayTypeLoc clang::TypeLoc::getAs<clang::IncompleteArrayTypeLoc>() const
Line
Count
Source
88
45
  T getAs() const {
89
45
    if (!T::isKind(*this))
90
14
      return {};
91
31
    T t;
92
31
    TypeLoc& tl = t;
93
31
    tl = *this;
94
31
    return t;
95
45
  }
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
106k
  T getAs() const {
89
106k
    if (!T::isKind(*this))
90
105k
      return {};
91
418
    T t;
92
418
    TypeLoc& tl = t;
93
418
    tl = *this;
94
418
    return t;
95
106k
  }
clang::DependentAddressSpaceTypeLoc clang::TypeLoc::getAs<clang::DependentAddressSpaceTypeLoc>() const
Line
Count
Source
88
38.5M
  T getAs() const {
89
38.5M
    if (!T::isKind(*this))
90
38.5M
      return {};
91
1
    T t;
92
1
    TypeLoc& tl = t;
93
1
    tl = *this;
94
1
    return t;
95
38.5M
  }
clang::MatrixTypeLoc clang::TypeLoc::getAs<clang::MatrixTypeLoc>() const
Line
Count
Source
88
38.5M
  T getAs() const {
89
38.5M
    if (!T::isKind(*this))
90
38.5M
      return {};
91
0
    T t;
92
0
    TypeLoc& tl = t;
93
0
    tl = *this;
94
0
    return t;
95
38.5M
  }
clang::ObjCObjectPointerTypeLoc clang::TypeLoc::getAs<clang::ObjCObjectPointerTypeLoc>() const
Line
Count
Source
88
149k
  T getAs() const {
89
149k
    if (!T::isKind(*this))
90
134k
      return {};
91
15.3k
    T t;
92
15.3k
    TypeLoc& tl = t;
93
15.3k
    tl = *this;
94
15.3k
    return t;
95
149k
  }
clang::ObjCTypeParamTypeLoc clang::TypeLoc::getAs<clang::ObjCTypeParamTypeLoc>() const
Line
Count
Source
88
149k
  T getAs() const {
89
149k
    if (!T::isKind(*this))
90
147k
      return {};
91
1.74k
    T t;
92
1.74k
    TypeLoc& tl = t;
93
1.74k
    tl = *this;
94
1.74k
    return t;
95
149k
  }
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.50G
  TypeLocClass getTypeLocClass() const {
116
1.50G
    if (getType().hasLocalQualifiers()) 
return Qualified44.2M
;
117
1.46G
    return (TypeLocClass) getType()->getTypeClass();
118
1.50G
  }
119
120
800M
  bool isNull() const { return !Ty; }
121
614M
  explicit operator bool() const { return Ty; }
122
123
  /// Returns the size of type source info data block for the given type.
124
  static unsigned getFullDataSizeForType(QualType Ty);
125
126
  /// Returns the alignment of type source info data block for
127
  /// the given type.
128
  static unsigned getLocalAlignmentForType(QualType Ty);
129
130
  /// Get the type for which this source info wrapper provides
131
  /// information.
132
5.67G
  QualType getType() const {
133
5.67G
    return QualType::getFromOpaquePtr(Ty);
134
5.67G
  }
135
136
2.05G
  const Type *getTypePtr() const {
137
2.05G
    return QualType::getFromOpaquePtr(Ty).getTypePtr();
138
2.05G
  }
139
140
  /// Get the pointer where source information is stored.
141
22.6M
  void *getOpaqueData() const {
142
22.6M
    return Data;
143
22.6M
  }
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
15.9M
  SourceRange getSourceRange() const LLVM_READONLY {
153
15.9M
    return SourceRange(getBeginLoc(), getEndLoc());
154
15.9M
  }
155
156
157
  /// Get the local source range.
158
220M
  SourceRange getLocalSourceRange() const {
159
220M
    return getLocalSourceRangeImpl(*this);
160
220M
  }
161
162
  /// Returns the size of the type source info data block.
163
15.4M
  unsigned getFullDataSize() const {
164
15.4M
    return getFullDataSizeForType(getType());
165
15.4M
  }
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
442M
  TypeLoc getNextTypeLoc() const {
170
442M
    return getNextTypeLocImpl(*this);
171
442M
  }
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
15.2M
  void initialize(ASTContext &Context, SourceLocation Loc) const {
197
15.2M
    initializeImpl(Context, *this, Loc);
198
15.2M
  }
199
200
  /// Initializes this by copying its information from another
201
  /// TypeLoc of the same type.
202
35.3k
  void initializeFullCopy(TypeLoc Other) {
203
35.3k
    assert(getType() == Other.getType());
204
0
    copy(Other);
205
35.3k
  }
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
727
  void initializeFullCopy(TypeLoc Other, unsigned Size) {
211
727
    assert(getType() == Other.getType());
212
0
    assert(getFullDataSize() == Size);
213
0
    copy(Other);
214
727
  }
215
216
  /// Copies the other type loc into this one.
217
  void copy(TypeLoc other);
218
219
10.4k
  friend bool operator==(const TypeLoc &LHS, const TypeLoc &RHS) {
220
10.4k
    return LHS.Ty == RHS.Ty && 
LHS.Data == RHS.Data7.57k
;
221
10.4k
  }
222
223
1.21k
  friend bool operator!=(const TypeLoc &LHS, const TypeLoc &RHS) {
224
1.21k
    return !(LHS == RHS);
225
1.21k
  }
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
5.23M
  static bool isKind(const TypeLoc&) {
233
5.23M
    return true;
234
5.23M
  }
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
251M
inline TypeLoc TypeSourceInfo::getTypeLoc() const {
245
  // TODO: is this alignment already sufficient?
246
251M
  return TypeLoc(Ty, const_cast<void*>(static_cast<const void*>(this + 1)));
247
251M
}
248
249
/// Wrapper of type source information for a type with
250
/// no direct qualifiers.
251
class UnqualTypeLoc : public TypeLoc {
252
public:
253
2.17G
  UnqualTypeLoc() = default;
254
16.9M
  UnqualTypeLoc(const Type *Ty, void *Data) : TypeLoc(Ty, Data) {}
255
256
1.04G
  const Type *getTypePtr() const {
257
1.04G
    return reinterpret_cast<const Type*>(Ty);
258
1.04G
  }
259
260
162M
  TypeLocClass getTypeLocClass() const {
261
162M
    return (TypeLocClass) getTypePtr()->getTypeClass();
262
162M
  }
263
264
private:
265
  friend class TypeLoc;
266
267
158M
  static bool isKind(const TypeLoc &TL) {
268
158M
    return !TL.getType().hasLocalQualifiers();
269
158M
  }
270
};
271
272
/// Wrapper of type source information for a type with
273
/// non-trivial direct qualifiers.
274
///
275
/// Currently, we intentionally do not provide source location for
276
/// type qualifiers.
277
class QualifiedTypeLoc : public TypeLoc {
278
public:
279
8.31k
  SourceRange getLocalSourceRange() const { return {}; }
280
281
16.9M
  UnqualTypeLoc getUnqualifiedLoc() const {
282
16.9M
    unsigned align =
283
16.9M
        TypeLoc::getLocalAlignmentForType(QualType(getTypePtr(), 0));
284
16.9M
    auto dataInt = reinterpret_cast<uintptr_t>(Data);
285
16.9M
    dataInt = llvm::alignTo(dataInt, align);
286
16.9M
    return UnqualTypeLoc(getTypePtr(), reinterpret_cast<void*>(dataInt));
287
16.9M
  }
288
289
  /// Initializes the local data of this type source info block to
290
  /// provide no information.
291
300k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
292
    // do nothing
293
300k
  }
294
295
4
  void copyLocal(TypeLoc other) {
296
    // do nothing
297
4
  }
298
299
10.8M
  TypeLoc getNextTypeLoc() const {
300
10.8M
    return getUnqualifiedLoc();
301
10.8M
  }
302
303
  /// Returns the size of the type source info data block that is
304
  /// specific to this type.
305
7.61M
  unsigned getLocalDataSize() const {
306
    // In fact, we don't currently preserve any location information
307
    // for qualifiers.
308
7.61M
    return 0;
309
7.61M
  }
310
311
  /// Returns the alignment of the type source info data block that is
312
  /// specific to this type.
313
21.7M
  unsigned getLocalDataAlignment() const {
314
    // We don't preserve any location information.
315
21.7M
    return 1;
316
21.7M
  }
317
318
private:
319
  friend class TypeLoc;
320
321
205M
  static bool isKind(const TypeLoc &TL) {
322
205M
    return TL.getType().hasLocalQualifiers();
323
205M
  }
324
};
325
326
163M
inline UnqualTypeLoc TypeLoc::getUnqualifiedLoc() const {
327
163M
  if (QualifiedTypeLoc Loc = getAs<QualifiedTypeLoc>())
328
4.91M
    return Loc.getUnqualifiedLoc();
329
158M
  return castAs<UnqualTypeLoc>();
330
163M
}
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.04G
  const Derived *asDerived() const {
365
2.04G
    return static_cast<const Derived*>(this);
366
2.04G
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::asDerived() const
Line
Count
Source
364
108M
  const Derived *asDerived() const {
365
108M
    return static_cast<const Derived*>(this);
366
108M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::asDerived() const
Line
Count
Source
364
782k
  const Derived *asDerived() const {
365
782k
    return static_cast<const Derived*>(this);
366
782k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::asDerived() const
Line
Count
Source
364
47.9M
  const Derived *asDerived() const {
365
47.9M
    return static_cast<const Derived*>(this);
366
47.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::asDerived() const
Line
Count
Source
364
8.47M
  const Derived *asDerived() const {
365
8.47M
    return static_cast<const Derived*>(this);
366
8.47M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::asDerived() const
Line
Count
Source
364
2.87M
  const Derived *asDerived() const {
365
2.87M
    return static_cast<const Derived*>(this);
366
2.87M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::asDerived() const
Line
Count
Source
364
6.33M
  const Derived *asDerived() const {
365
6.33M
    return static_cast<const Derived*>(this);
366
6.33M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::asDerived() const
Line
Count
Source
364
45.0k
  const Derived *asDerived() const {
365
45.0k
    return static_cast<const Derived*>(this);
366
45.0k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::asDerived() const
Line
Count
Source
364
551M
  const Derived *asDerived() const {
365
551M
    return static_cast<const Derived*>(this);
366
551M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::asDerived() const
Line
Count
Source
364
7.64M
  const Derived *asDerived() const {
365
7.64M
    return static_cast<const Derived*>(this);
366
7.64M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::asDerived() const
Line
Count
Source
364
184M
  const Derived *asDerived() const {
365
184M
    return static_cast<const Derived*>(this);
366
184M
  }
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.05M
  const Derived *asDerived() const {
365
2.05M
    return static_cast<const Derived*>(this);
366
2.05M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::asDerived() const
Line
Count
Source
364
2.11k
  const Derived *asDerived() const {
365
2.11k
    return static_cast<const Derived*>(this);
366
2.11k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::asDerived() const
Line
Count
Source
364
933
  const Derived *asDerived() const {
365
933
    return static_cast<const Derived*>(this);
366
933
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::asDerived() const
Line
Count
Source
364
1.84M
  const Derived *asDerived() const {
365
1.84M
    return static_cast<const Derived*>(this);
366
1.84M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::asDerived() const
Line
Count
Source
364
52.6M
  const Derived *asDerived() const {
365
52.6M
    return static_cast<const Derived*>(this);
366
52.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::asDerived() const
Line
Count
Source
364
940k
  const Derived *asDerived() const {
365
940k
    return static_cast<const Derived*>(this);
366
940k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::asDerived() const
Line
Count
Source
364
15.8M
  const Derived *asDerived() const {
365
15.8M
    return static_cast<const Derived*>(this);
366
15.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::asDerived() const
Line
Count
Source
364
127k
  const Derived *asDerived() const {
365
127k
    return static_cast<const Derived*>(this);
366
127k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::asDerived() const
Line
Count
Source
364
3.46k
  const Derived *asDerived() const {
365
3.46k
    return static_cast<const Derived*>(this);
366
3.46k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
1.11M
  const Derived *asDerived() const {
365
1.11M
    return static_cast<const Derived*>(this);
366
1.11M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::asDerived() const
Line
Count
Source
364
1.19M
  const Derived *asDerived() const {
365
1.19M
    return static_cast<const Derived*>(this);
366
1.19M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
22.1M
  const Derived *asDerived() const {
365
22.1M
    return static_cast<const Derived*>(this);
366
22.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
133M
  const Derived *asDerived() const {
365
133M
    return static_cast<const Derived*>(this);
366
133M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
84.5M
  const Derived *asDerived() const {
365
84.5M
    return static_cast<const Derived*>(this);
366
84.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::asDerived() const
Line
Count
Source
364
767M
  const Derived *asDerived() const {
365
767M
    return static_cast<const Derived*>(this);
366
767M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::asDerived() const
Line
Count
Source
364
3.48M
  const Derived *asDerived() const {
365
3.48M
    return static_cast<const Derived*>(this);
366
3.48M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::asDerived() const
Line
Count
Source
364
27.7M
  const Derived *asDerived() const {
365
27.7M
    return static_cast<const Derived*>(this);
366
27.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::asDerived() const
Line
Count
Source
364
8.58k
  const Derived *asDerived() const {
365
8.58k
    return static_cast<const Derived*>(this);
366
8.58k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::asDerived() const
Line
Count
Source
364
12.0M
  const Derived *asDerived() const {
365
12.0M
    return static_cast<const Derived*>(this);
366
12.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::asDerived() const
Line
Count
Source
364
28.5k
  const Derived *asDerived() const {
365
28.5k
    return static_cast<const Derived*>(this);
366
28.5k
  }
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
20.2k
  const Derived *asDerived() const {
365
20.2k
    return static_cast<const Derived*>(this);
366
20.2k
  }
367
368
969M
  static bool isKind(const TypeLoc &TL) {
369
969M
    return !TL.getType().hasLocalQualifiers() &&
370
969M
           
Derived::classofType(TL.getTypePtr())969M
;
371
969M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
35.0M
  static bool isKind(const TypeLoc &TL) {
369
35.0M
    return !TL.getType().hasLocalQualifiers() &&
370
35.0M
           Derived::classofType(TL.getTypePtr());
371
35.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
245M
  static bool isKind(const TypeLoc &TL) {
369
245M
    return !TL.getType().hasLocalQualifiers() &&
370
245M
           
Derived::classofType(TL.getTypePtr())245M
;
371
245M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
28.7M
  static bool isKind(const TypeLoc &TL) {
369
28.7M
    return !TL.getType().hasLocalQualifiers() &&
370
28.7M
           Derived::classofType(TL.getTypePtr());
371
28.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
66.5M
  static bool isKind(const TypeLoc &TL) {
369
66.5M
    return !TL.getType().hasLocalQualifiers() &&
370
66.5M
           Derived::classofType(TL.getTypePtr());
371
66.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
38.7M
  static bool isKind(const TypeLoc &TL) {
369
38.7M
    return !TL.getType().hasLocalQualifiers() &&
370
38.7M
           Derived::classofType(TL.getTypePtr());
371
38.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
138M
  static bool isKind(const TypeLoc &TL) {
369
138M
    return !TL.getType().hasLocalQualifiers() &&
370
138M
           
Derived::classofType(TL.getTypePtr())138M
;
371
138M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
507k
  static bool isKind(const TypeLoc &TL) {
369
507k
    return !TL.getType().hasLocalQualifiers() &&
370
507k
           Derived::classofType(TL.getTypePtr());
371
507k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
99.7M
  static bool isKind(const TypeLoc &TL) {
369
99.7M
    return !TL.getType().hasLocalQualifiers() &&
370
99.7M
           
Derived::classofType(TL.getTypePtr())99.7M
;
371
99.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
3.48M
  static bool isKind(const TypeLoc &TL) {
369
3.48M
    return !TL.getType().hasLocalQualifiers() &&
370
3.48M
           Derived::classofType(TL.getTypePtr());
371
3.48M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
1.59M
  static bool isKind(const TypeLoc &TL) {
369
1.59M
    return !TL.getType().hasLocalQualifiers() &&
370
1.59M
           Derived::classofType(TL.getTypePtr());
371
1.59M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
38.5M
  static bool isKind(const TypeLoc &TL) {
369
38.5M
    return !TL.getType().hasLocalQualifiers() &&
370
38.5M
           Derived::classofType(TL.getTypePtr());
371
38.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
29.5M
  static bool isKind(const TypeLoc &TL) {
369
29.5M
    return !TL.getType().hasLocalQualifiers() &&
370
29.5M
           Derived::classofType(TL.getTypePtr());
371
29.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
344
  static bool isKind(const TypeLoc &TL) {
369
344
    return !TL.getType().hasLocalQualifiers() &&
370
344
           Derived::classofType(TL.getTypePtr());
371
344
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
790k
  static bool isKind(const TypeLoc &TL) {
369
790k
    return !TL.getType().hasLocalQualifiers() &&
370
790k
           Derived::classofType(TL.getTypePtr());
371
790k
  }
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
48.0M
  static bool isKind(const TypeLoc &TL) {
369
48.0M
    return !TL.getType().hasLocalQualifiers() &&
370
48.0M
           
Derived::classofType(TL.getTypePtr())48.0M
;
371
48.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
67.6M
  static bool isKind(const TypeLoc &TL) {
369
67.6M
    return !TL.getType().hasLocalQualifiers() &&
370
67.6M
           
Derived::classofType(TL.getTypePtr())67.6M
;
371
67.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
414k
  static bool isKind(const TypeLoc &TL) {
369
414k
    return !TL.getType().hasLocalQualifiers() &&
370
414k
           Derived::classofType(TL.getTypePtr());
371
414k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
10.2M
  static bool isKind(const TypeLoc &TL) {
369
10.2M
    return !TL.getType().hasLocalQualifiers() &&
370
10.2M
           Derived::classofType(TL.getTypePtr());
371
10.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
3.40M
  static bool isKind(const TypeLoc &TL) {
369
3.40M
    return !TL.getType().hasLocalQualifiers() &&
370
3.40M
           Derived::classofType(TL.getTypePtr());
371
3.40M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
12.8M
  static bool isKind(const TypeLoc &TL) {
369
12.8M
    return !TL.getType().hasLocalQualifiers() &&
370
12.8M
           Derived::classofType(TL.getTypePtr());
371
12.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
918k
  static bool isKind(const TypeLoc &TL) {
369
918k
    return !TL.getType().hasLocalQualifiers() &&
370
918k
           Derived::classofType(TL.getTypePtr());
371
918k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
7.58M
  static bool isKind(const TypeLoc &TL) {
369
7.58M
    return !TL.getType().hasLocalQualifiers() &&
370
7.58M
           
Derived::classofType(TL.getTypePtr())7.57M
;
371
7.58M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
1.33k
  static bool isKind(const TypeLoc &TL) {
369
1.33k
    return !TL.getType().hasLocalQualifiers() &&
370
1.33k
           Derived::classofType(TL.getTypePtr());
371
1.33k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
50.9M
  static bool isKind(const TypeLoc &TL) {
369
50.9M
    return !TL.getType().hasLocalQualifiers() &&
370
50.9M
           
Derived::classofType(TL.getTypePtr())50.9M
;
371
50.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
36.7k
  static bool isKind(const TypeLoc &TL) {
369
36.7k
    return !TL.getType().hasLocalQualifiers() &&
370
36.7k
           Derived::classofType(TL.getTypePtr());
371
36.7k
  }
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
19.5k
  static bool isKind(const TypeLoc &TL) {
369
19.5k
    return !TL.getType().hasLocalQualifiers() &&
370
19.5k
           Derived::classofType(TL.getTypePtr());
371
19.5k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
841k
  static bool isKind(const TypeLoc &TL) {
369
841k
    return !TL.getType().hasLocalQualifiers() &&
370
841k
           Derived::classofType(TL.getTypePtr());
371
841k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
333k
  static bool isKind(const TypeLoc &TL) {
369
333k
    return !TL.getType().hasLocalQualifiers() &&
370
333k
           Derived::classofType(TL.getTypePtr());
371
333k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
38.5M
  static bool isKind(const TypeLoc &TL) {
369
38.5M
    return !TL.getType().hasLocalQualifiers() &&
370
38.5M
           Derived::classofType(TL.getTypePtr());
371
38.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
3.74k
  static bool isKind(const TypeLoc &TL) {
369
3.74k
    return !TL.getType().hasLocalQualifiers() &&
370
3.74k
           Derived::classofType(TL.getTypePtr());
371
3.74k
  }
372
373
969M
  static bool classofType(const Type *Ty) {
374
969M
    return TypeClass::classof(Ty);
375
969M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
35.0M
  static bool classofType(const Type *Ty) {
374
35.0M
    return TypeClass::classof(Ty);
375
35.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
245M
  static bool classofType(const Type *Ty) {
374
245M
    return TypeClass::classof(Ty);
375
245M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
28.7M
  static bool classofType(const Type *Ty) {
374
28.7M
    return TypeClass::classof(Ty);
375
28.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
66.5M
  static bool classofType(const Type *Ty) {
374
66.5M
    return TypeClass::classof(Ty);
375
66.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
38.7M
  static bool classofType(const Type *Ty) {
374
38.7M
    return TypeClass::classof(Ty);
375
38.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
138M
  static bool classofType(const Type *Ty) {
374
138M
    return TypeClass::classof(Ty);
375
138M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
507k
  static bool classofType(const Type *Ty) {
374
507k
    return TypeClass::classof(Ty);
375
507k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
99.7M
  static bool classofType(const Type *Ty) {
374
99.7M
    return TypeClass::classof(Ty);
375
99.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
3.48M
  static bool classofType(const Type *Ty) {
374
3.48M
    return TypeClass::classof(Ty);
375
3.48M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
1.59M
  static bool classofType(const Type *Ty) {
374
1.59M
    return TypeClass::classof(Ty);
375
1.59M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
38.5M
  static bool classofType(const Type *Ty) {
374
38.5M
    return TypeClass::classof(Ty);
375
38.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
29.5M
  static bool classofType(const Type *Ty) {
374
29.5M
    return TypeClass::classof(Ty);
375
29.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
344
  static bool classofType(const Type *Ty) {
374
344
    return TypeClass::classof(Ty);
375
344
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
790k
  static bool classofType(const Type *Ty) {
374
790k
    return TypeClass::classof(Ty);
375
790k
  }
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
48.0M
  static bool classofType(const Type *Ty) {
374
48.0M
    return TypeClass::classof(Ty);
375
48.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
67.6M
  static bool classofType(const Type *Ty) {
374
67.6M
    return TypeClass::classof(Ty);
375
67.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
414k
  static bool classofType(const Type *Ty) {
374
414k
    return TypeClass::classof(Ty);
375
414k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
10.2M
  static bool classofType(const Type *Ty) {
374
10.2M
    return TypeClass::classof(Ty);
375
10.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
3.40M
  static bool classofType(const Type *Ty) {
374
3.40M
    return TypeClass::classof(Ty);
375
3.40M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
12.8M
  static bool classofType(const Type *Ty) {
374
12.8M
    return TypeClass::classof(Ty);
375
12.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
918k
  static bool classofType(const Type *Ty) {
374
918k
    return TypeClass::classof(Ty);
375
918k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
7.57M
  static bool classofType(const Type *Ty) {
374
7.57M
    return TypeClass::classof(Ty);
375
7.57M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
1.33k
  static bool classofType(const Type *Ty) {
374
1.33k
    return TypeClass::classof(Ty);
375
1.33k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
50.9M
  static bool classofType(const Type *Ty) {
374
50.9M
    return TypeClass::classof(Ty);
375
50.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
36.7k
  static bool classofType(const Type *Ty) {
374
36.7k
    return TypeClass::classof(Ty);
375
36.7k
  }
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
19.5k
  static bool classofType(const Type *Ty) {
374
19.5k
    return TypeClass::classof(Ty);
375
19.5k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
841k
  static bool classofType(const Type *Ty) {
374
841k
    return TypeClass::classof(Ty);
375
841k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
333k
  static bool classofType(const Type *Ty) {
374
333k
    return TypeClass::classof(Ty);
375
333k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
38.5M
  static bool classofType(const Type *Ty) {
374
38.5M
    return TypeClass::classof(Ty);
375
38.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
3.74k
  static bool classofType(const Type *Ty) {
374
3.74k
    return TypeClass::classof(Ty);
375
3.74k
  }
376
377
public:
378
401M
  unsigned getLocalDataAlignment() const {
379
401M
    return std::max(unsigned(alignof(LocalData)),
380
401M
                    asDerived()->getExtraLocalDataAlignment());
381
401M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
7.23k
  unsigned getLocalDataAlignment() const {
379
7.23k
    return std::max(unsigned(alignof(LocalData)),
380
7.23k
                    asDerived()->getExtraLocalDataAlignment());
381
7.23k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
767k
  unsigned getLocalDataAlignment() const {
379
767k
    return std::max(unsigned(alignof(LocalData)),
380
767k
                    asDerived()->getExtraLocalDataAlignment());
381
767k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
10.1k
  unsigned getLocalDataAlignment() const {
379
10.1k
    return std::max(unsigned(alignof(LocalData)),
380
10.1k
                    asDerived()->getExtraLocalDataAlignment());
381
10.1k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
4.34M
  unsigned getLocalDataAlignment() const {
379
4.34M
    return std::max(unsigned(alignof(LocalData)),
380
4.34M
                    asDerived()->getExtraLocalDataAlignment());
381
4.34M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
244M
  unsigned getLocalDataAlignment() const {
379
244M
    return std::max(unsigned(alignof(LocalData)),
380
244M
                    asDerived()->getExtraLocalDataAlignment());
381
244M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
187k
  unsigned getLocalDataAlignment() const {
379
187k
    return std::max(unsigned(alignof(LocalData)),
380
187k
                    asDerived()->getExtraLocalDataAlignment());
381
187k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
35.9M
  unsigned getLocalDataAlignment() const {
379
35.9M
    return std::max(unsigned(alignof(LocalData)),
380
35.9M
                    asDerived()->getExtraLocalDataAlignment());
381
35.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
933k
  unsigned getLocalDataAlignment() const {
379
933k
    return std::max(unsigned(alignof(LocalData)),
380
933k
                    asDerived()->getExtraLocalDataAlignment());
381
933k
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
557k
  unsigned getLocalDataAlignment() const {
379
557k
    return std::max(unsigned(alignof(LocalData)),
380
557k
                    asDerived()->getExtraLocalDataAlignment());
381
557k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
250
  unsigned getLocalDataAlignment() const {
379
250
    return std::max(unsigned(alignof(LocalData)),
380
250
                    asDerived()->getExtraLocalDataAlignment());
381
250
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
7.35M
  unsigned getLocalDataAlignment() const {
379
7.35M
    return std::max(unsigned(alignof(LocalData)),
380
7.35M
                    asDerived()->getExtraLocalDataAlignment());
381
7.35M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
61
  unsigned getLocalDataAlignment() const {
379
61
    return std::max(unsigned(alignof(LocalData)),
380
61
                    asDerived()->getExtraLocalDataAlignment());
381
61
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
190k
  unsigned getLocalDataAlignment() const {
379
190k
    return std::max(unsigned(alignof(LocalData)),
380
190k
                    asDerived()->getExtraLocalDataAlignment());
381
190k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
130
  unsigned getLocalDataAlignment() const {
379
130
    return std::max(unsigned(alignof(LocalData)),
380
130
                    asDerived()->getExtraLocalDataAlignment());
381
130
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
6.42M
  unsigned getLocalDataAlignment() const {
379
6.42M
    return std::max(unsigned(alignof(LocalData)),
380
6.42M
                    asDerived()->getExtraLocalDataAlignment());
381
6.42M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
35.7M
  unsigned getLocalDataAlignment() const {
379
35.7M
    return std::max(unsigned(alignof(LocalData)),
380
35.7M
                    asDerived()->getExtraLocalDataAlignment());
381
35.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
211k
  unsigned getLocalDataAlignment() const {
379
211k
    return std::max(unsigned(alignof(LocalData)),
380
211k
                    asDerived()->getExtraLocalDataAlignment());
381
211k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
1.92k
  unsigned getLocalDataAlignment() const {
379
1.92k
    return std::max(unsigned(alignof(LocalData)),
380
1.92k
                    asDerived()->getExtraLocalDataAlignment());
381
1.92k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
58.3k
  unsigned getLocalDataAlignment() const {
379
58.3k
    return std::max(unsigned(alignof(LocalData)),
380
58.3k
                    asDerived()->getExtraLocalDataAlignment());
381
58.3k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
3.90M
  unsigned getLocalDataAlignment() const {
379
3.90M
    return std::max(unsigned(alignof(LocalData)),
380
3.90M
                    asDerived()->getExtraLocalDataAlignment());
381
3.90M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
1.33M
  unsigned getLocalDataAlignment() const {
379
1.33M
    return std::max(unsigned(alignof(LocalData)),
380
1.33M
                    asDerived()->getExtraLocalDataAlignment());
381
1.33M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
5.33M
  unsigned getLocalDataAlignment() const {
379
5.33M
    return std::max(unsigned(alignof(LocalData)),
380
5.33M
                    asDerived()->getExtraLocalDataAlignment());
381
5.33M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
220k
  unsigned getLocalDataAlignment() const {
379
220k
    return std::max(unsigned(alignof(LocalData)),
380
220k
                    asDerived()->getExtraLocalDataAlignment());
381
220k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
1.24M
  unsigned getLocalDataAlignment() const {
379
1.24M
    return std::max(unsigned(alignof(LocalData)),
380
1.24M
                    asDerived()->getExtraLocalDataAlignment());
381
1.24M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
1.22M
  unsigned getLocalDataAlignment() const {
379
1.22M
    return std::max(unsigned(alignof(LocalData)),
380
1.22M
                    asDerived()->getExtraLocalDataAlignment());
381
1.22M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
269
  unsigned getLocalDataAlignment() const {
379
269
    return std::max(unsigned(alignof(LocalData)),
380
269
                    asDerived()->getExtraLocalDataAlignment());
381
269
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
12.2M
  unsigned getLocalDataAlignment() const {
379
12.2M
    return std::max(unsigned(alignof(LocalData)),
380
12.2M
                    asDerived()->getExtraLocalDataAlignment());
381
12.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
8.95M
  unsigned getLocalDataAlignment() const {
379
8.95M
    return std::max(unsigned(alignof(LocalData)),
380
8.95M
                    asDerived()->getExtraLocalDataAlignment());
381
8.95M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
30.1M
  unsigned getLocalDataAlignment() const {
379
30.1M
    return std::max(unsigned(alignof(LocalData)),
380
30.1M
                    asDerived()->getExtraLocalDataAlignment());
381
30.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
12.9k
  unsigned getLocalDataAlignment() const {
379
12.9k
    return std::max(unsigned(alignof(LocalData)),
380
12.9k
                    asDerived()->getExtraLocalDataAlignment());
381
12.9k
  }
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
4.71k
  unsigned getLocalDataAlignment() const {
379
4.71k
    return std::max(unsigned(alignof(LocalData)),
380
4.71k
                    asDerived()->getExtraLocalDataAlignment());
381
4.71k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
193k
  unsigned getLocalDataAlignment() const {
379
193k
    return std::max(unsigned(alignof(LocalData)),
380
193k
                    asDerived()->getExtraLocalDataAlignment());
381
193k
  }
382
383
399M
  unsigned getLocalDataSize() const {
384
399M
    unsigned size = sizeof(LocalData);
385
399M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
399M
    size = llvm::alignTo(size, extraAlign);
387
399M
    size += asDerived()->getExtraLocalDataSize();
388
399M
    return size;
389
399M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getLocalDataSize() const
Line
Count
Source
383
10.6M
  unsigned getLocalDataSize() const {
384
10.6M
    unsigned size = sizeof(LocalData);
385
10.6M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
10.6M
    size = llvm::alignTo(size, extraAlign);
387
10.6M
    size += asDerived()->getExtraLocalDataSize();
388
10.6M
    return size;
389
10.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
1.86M
  unsigned getLocalDataSize() const {
384
1.86M
    unsigned size = sizeof(LocalData);
385
1.86M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.86M
    size = llvm::alignTo(size, extraAlign);
387
1.86M
    size += asDerived()->getExtraLocalDataSize();
388
1.86M
    return size;
389
1.86M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getLocalDataSize() const
Line
Count
Source
383
659k
  unsigned getLocalDataSize() const {
384
659k
    unsigned size = sizeof(LocalData);
385
659k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
659k
    size = llvm::alignTo(size, extraAlign);
387
659k
    size += asDerived()->getExtraLocalDataSize();
388
659k
    return size;
389
659k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getLocalDataSize() const
Line
Count
Source
383
1.23M
  unsigned getLocalDataSize() const {
384
1.23M
    unsigned size = sizeof(LocalData);
385
1.23M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.23M
    size = llvm::alignTo(size, extraAlign);
387
1.23M
    size += asDerived()->getExtraLocalDataSize();
388
1.23M
    return size;
389
1.23M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getLocalDataSize() const
Line
Count
Source
383
106M
  unsigned getLocalDataSize() const {
384
106M
    unsigned size = sizeof(LocalData);
385
106M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
106M
    size = llvm::alignTo(size, extraAlign);
387
106M
    size += asDerived()->getExtraLocalDataSize();
388
106M
    return size;
389
106M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getLocalDataSize() const
Line
Count
Source
383
1.69M
  unsigned getLocalDataSize() const {
384
1.69M
    unsigned size = sizeof(LocalData);
385
1.69M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.69M
    size = llvm::alignTo(size, extraAlign);
387
1.69M
    size += asDerived()->getExtraLocalDataSize();
388
1.69M
    return size;
389
1.69M
  }
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
458k
  unsigned getLocalDataSize() const {
384
458k
    unsigned size = sizeof(LocalData);
385
458k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
458k
    size = llvm::alignTo(size, extraAlign);
387
458k
    size += asDerived()->getExtraLocalDataSize();
388
458k
    return size;
389
458k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
475
  unsigned getLocalDataSize() const {
384
475
    unsigned size = sizeof(LocalData);
385
475
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
475
    size = llvm::alignTo(size, extraAlign);
387
475
    size += asDerived()->getExtraLocalDataSize();
388
475
    return size;
389
475
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
211
  unsigned getLocalDataSize() const {
384
211
    unsigned size = sizeof(LocalData);
385
211
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
211
    size = llvm::alignTo(size, extraAlign);
387
211
    size += asDerived()->getExtraLocalDataSize();
388
211
    return size;
389
211
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getLocalDataSize() const
Line
Count
Source
383
12.2M
  unsigned getLocalDataSize() const {
384
12.2M
    unsigned size = sizeof(LocalData);
385
12.2M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
12.2M
    size = llvm::alignTo(size, extraAlign);
387
12.2M
    size += asDerived()->getExtraLocalDataSize();
388
12.2M
    return size;
389
12.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
3.66M
  unsigned getLocalDataSize() const {
384
3.66M
    unsigned size = sizeof(LocalData);
385
3.66M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
3.66M
    size = llvm::alignTo(size, extraAlign);
387
3.66M
    size += asDerived()->getExtraLocalDataSize();
388
3.66M
    return size;
389
3.66M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
29.0k
  unsigned getLocalDataSize() const {
384
29.0k
    unsigned size = sizeof(LocalData);
385
29.0k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
29.0k
    size = llvm::alignTo(size, extraAlign);
387
29.0k
    size += asDerived()->getExtraLocalDataSize();
388
29.0k
    return size;
389
29.0k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
794
  unsigned getLocalDataSize() const {
384
794
    unsigned size = sizeof(LocalData);
385
794
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
794
    size = llvm::alignTo(size, extraAlign);
387
794
    size += asDerived()->getExtraLocalDataSize();
388
794
    return size;
389
794
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
223k
  unsigned getLocalDataSize() const {
384
223k
    unsigned size = sizeof(LocalData);
385
223k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
223k
    size = llvm::alignTo(size, extraAlign);
387
223k
    size += asDerived()->getExtraLocalDataSize();
388
223k
    return size;
389
223k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getLocalDataSize() const
Line
Count
Source
383
258k
  unsigned getLocalDataSize() const {
384
258k
    unsigned size = sizeof(LocalData);
385
258k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
258k
    size = llvm::alignTo(size, extraAlign);
387
258k
    size += asDerived()->getExtraLocalDataSize();
388
258k
    return size;
389
258k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
4.42M
  unsigned getLocalDataSize() const {
384
4.42M
    unsigned size = sizeof(LocalData);
385
4.42M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
4.42M
    size = llvm::alignTo(size, extraAlign);
387
4.42M
    size += asDerived()->getExtraLocalDataSize();
388
4.42M
    return size;
389
4.42M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
29.9M
  unsigned getLocalDataSize() const {
384
29.9M
    unsigned size = sizeof(LocalData);
385
29.9M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
29.9M
    size = llvm::alignTo(size, extraAlign);
387
29.9M
    size += asDerived()->getExtraLocalDataSize();
388
29.9M
    return size;
389
29.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
19.0M
  unsigned getLocalDataSize() const {
384
19.0M
    unsigned size = sizeof(LocalData);
385
19.0M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
19.0M
    size = llvm::alignTo(size, extraAlign);
387
19.0M
    size += asDerived()->getExtraLocalDataSize();
388
19.0M
    return size;
389
19.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getLocalDataSize() const
Line
Count
Source
383
155M
  unsigned getLocalDataSize() const {
384
155M
    unsigned size = sizeof(LocalData);
385
155M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
155M
    size = llvm::alignTo(size, extraAlign);
387
155M
    size += asDerived()->getExtraLocalDataSize();
388
155M
    return size;
389
155M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getLocalDataSize() const
Line
Count
Source
383
15.6M
  unsigned getLocalDataSize() const {
384
15.6M
    unsigned size = sizeof(LocalData);
385
15.6M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
15.6M
    size = llvm::alignTo(size, extraAlign);
387
15.6M
    size += asDerived()->getExtraLocalDataSize();
388
15.6M
    return size;
389
15.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
733k
  unsigned getLocalDataSize() const {
384
733k
    unsigned size = sizeof(LocalData);
385
733k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
733k
    size = llvm::alignTo(size, extraAlign);
387
733k
    size += asDerived()->getExtraLocalDataSize();
388
733k
    return size;
389
733k
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
394k
  unsigned getLocalDataSize() const {
384
394k
    unsigned size = sizeof(LocalData);
385
394k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
394k
    size = llvm::alignTo(size, extraAlign);
387
394k
    size += asDerived()->getExtraLocalDataSize();
388
394k
    return size;
389
394k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getLocalDataSize() const
Line
Count
Source
383
5.84M
  unsigned getLocalDataSize() const {
384
5.84M
    unsigned size = sizeof(LocalData);
385
5.84M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
5.84M
    size = llvm::alignTo(size, extraAlign);
387
5.84M
    size += asDerived()->getExtraLocalDataSize();
388
5.84M
    return size;
389
5.84M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getLocalDataSize() const
Line
Count
Source
383
185k
  unsigned getLocalDataSize() const {
384
185k
    unsigned size = sizeof(LocalData);
385
185k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
185k
    size = llvm::alignTo(size, extraAlign);
387
185k
    size += asDerived()->getExtraLocalDataSize();
388
185k
    return size;
389
185k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
1.92k
  unsigned getLocalDataSize() const {
384
1.92k
    unsigned size = sizeof(LocalData);
385
1.92k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.92k
    size = llvm::alignTo(size, extraAlign);
387
1.92k
    size += asDerived()->getExtraLocalDataSize();
388
1.92k
    return size;
389
1.92k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::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::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
131k
  unsigned getLocalDataSize() const {
384
131k
    unsigned size = sizeof(LocalData);
385
131k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
131k
    size = llvm::alignTo(size, extraAlign);
387
131k
    size += asDerived()->getExtraLocalDataSize();
388
131k
    return size;
389
131k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getLocalDataSize() const
Line
Count
Source
383
26.3M
  unsigned getLocalDataSize() const {
384
26.3M
    unsigned size = sizeof(LocalData);
385
26.3M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
26.3M
    size = llvm::alignTo(size, extraAlign);
387
26.3M
    size += asDerived()->getExtraLocalDataSize();
388
26.3M
    return size;
389
26.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
4.18k
  unsigned getLocalDataSize() const {
384
4.18k
    unsigned size = sizeof(LocalData);
385
4.18k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
4.18k
    size = llvm::alignTo(size, extraAlign);
387
4.18k
    size += asDerived()->getExtraLocalDataSize();
388
4.18k
    return size;
389
4.18k
  }
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
4.70k
  unsigned getLocalDataSize() const {
384
4.70k
    unsigned size = sizeof(LocalData);
385
4.70k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
4.70k
    size = llvm::alignTo(size, extraAlign);
387
4.70k
    size += asDerived()->getExtraLocalDataSize();
388
4.70k
    return size;
389
4.70k
  }
390
391
2.21k
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
2.21k
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
2.21k
    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.21k
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
2.21k
           asDerived()->getExtraLocalDataSize());
403
2.21k
  }
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)
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::copyLocal(clang::TypeSpecTypeLoc)
Line
Count
Source
391
1.40k
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
1.40k
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
1.40k
    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.40k
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
1.40k
           asDerived()->getExtraLocalDataSize());
403
1.40k
  }
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
734
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
734
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
734
    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
734
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
734
           asDerived()->getExtraLocalDataSize());
403
734
  }
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
32
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
32
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
32
    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
32
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
32
           asDerived()->getExtraLocalDataSize());
403
32
  }
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
453M
  TypeLoc getNextTypeLoc() const {
406
453M
    return getNextTypeLoc(asDerived()->getInnerType());
407
453M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
10.4k
  TypeLoc getNextTypeLoc() const {
406
10.4k
    return getNextTypeLoc(asDerived()->getInnerType());
407
10.4k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
1.11M
  TypeLoc getNextTypeLoc() const {
406
1.11M
    return getNextTypeLoc(asDerived()->getInnerType());
407
1.11M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
15.3k
  TypeLoc getNextTypeLoc() const {
406
15.3k
    return getNextTypeLoc(asDerived()->getInnerType());
407
15.3k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
5.66M
  TypeLoc getNextTypeLoc() const {
406
5.66M
    return getNextTypeLoc(asDerived()->getInnerType());
407
5.66M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
213M
  TypeLoc getNextTypeLoc() const {
406
213M
    return getNextTypeLoc(asDerived()->getInnerType());
407
213M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
159k
  TypeLoc getNextTypeLoc() const {
406
159k
    return getNextTypeLoc(asDerived()->getInnerType());
407
159k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
25.1M
  TypeLoc getNextTypeLoc() const {
406
25.1M
    return getNextTypeLoc(asDerived()->getInnerType());
407
25.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
1.08M
  TypeLoc getNextTypeLoc() const {
406
1.08M
    return getNextTypeLoc(asDerived()->getInnerType());
407
1.08M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
470k
  TypeLoc getNextTypeLoc() const {
406
470k
    return getNextTypeLoc(asDerived()->getInnerType());
407
470k
  }
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
8.66M
  TypeLoc getNextTypeLoc() const {
406
8.66M
    return getNextTypeLoc(asDerived()->getInnerType());
407
8.66M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
132
  TypeLoc getNextTypeLoc() const {
406
132
    return getNextTypeLoc(asDerived()->getInnerType());
407
132
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
263k
  TypeLoc getNextTypeLoc() const {
406
263k
    return getNextTypeLoc(asDerived()->getInnerType());
407
263k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
260
  TypeLoc getNextTypeLoc() const {
406
260
    return getNextTypeLoc(asDerived()->getInnerType());
407
260
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
7.10M
  TypeLoc getNextTypeLoc() const {
406
7.10M
    return getNextTypeLoc(asDerived()->getInnerType());
407
7.10M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
70.0M
  TypeLoc getNextTypeLoc() const {
406
70.0M
    return getNextTypeLoc(asDerived()->getInnerType());
407
70.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
287k
  TypeLoc getNextTypeLoc() const {
406
287k
    return getNextTypeLoc(asDerived()->getInnerType());
407
287k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
2.80k
  TypeLoc getNextTypeLoc() const {
406
2.80k
    return getNextTypeLoc(asDerived()->getInnerType());
407
2.80k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
203k
  TypeLoc getNextTypeLoc() const {
406
203k
    return getNextTypeLoc(asDerived()->getInnerType());
407
203k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
3.08M
  TypeLoc getNextTypeLoc() const {
406
3.08M
    return getNextTypeLoc(asDerived()->getInnerType());
407
3.08M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
917k
  TypeLoc getNextTypeLoc() const {
406
917k
    return getNextTypeLoc(asDerived()->getInnerType());
407
917k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
2.96M
  TypeLoc getNextTypeLoc() const {
406
2.96M
    return getNextTypeLoc(asDerived()->getInnerType());
407
2.96M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
285k
  TypeLoc getNextTypeLoc() const {
406
285k
    return getNextTypeLoc(asDerived()->getInnerType());
407
285k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
2.02M
  TypeLoc getNextTypeLoc() const {
406
2.02M
    return getNextTypeLoc(asDerived()->getInnerType());
407
2.02M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
831k
  TypeLoc getNextTypeLoc() const {
406
831k
    return getNextTypeLoc(asDerived()->getInnerType());
407
831k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
535
  TypeLoc getNextTypeLoc() const {
406
535
    return getNextTypeLoc(asDerived()->getInnerType());
407
535
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
19.3M
  TypeLoc getNextTypeLoc() const {
406
19.3M
    return getNextTypeLoc(asDerived()->getInnerType());
407
19.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
11.3M
  TypeLoc getNextTypeLoc() const {
406
11.3M
    return getNextTypeLoc(asDerived()->getInnerType());
407
11.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
79.2M
  TypeLoc getNextTypeLoc() const {
406
79.2M
    return getNextTypeLoc(asDerived()->getInnerType());
407
79.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
7.18k
  TypeLoc getNextTypeLoc() const {
406
7.18k
    return getNextTypeLoc(asDerived()->getInnerType());
407
7.18k
  }
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.15k
  TypeLoc getNextTypeLoc() const {
406
6.15k
    return getNextTypeLoc(asDerived()->getInnerType());
407
6.15k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
315k
  TypeLoc getNextTypeLoc() const {
406
315k
    return getNextTypeLoc(asDerived()->getInnerType());
407
315k
  }
408
409
885M
  const TypeClass *getTypePtr() const {
410
885M
    return cast<TypeClass>(Base::getTypePtr());
411
885M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getTypePtr() const
Line
Count
Source
409
108M
  const TypeClass *getTypePtr() const {
410
108M
    return cast<TypeClass>(Base::getTypePtr());
411
108M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getTypePtr() const
Line
Count
Source
409
9.78M
  const TypeClass *getTypePtr() const {
410
9.78M
    return cast<TypeClass>(Base::getTypePtr());
411
9.78M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
325k
  const TypeClass *getTypePtr() const {
410
325k
    return cast<TypeClass>(Base::getTypePtr());
411
325k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getTypePtr() const
Line
Count
Source
409
18.1M
  const TypeClass *getTypePtr() const {
410
18.1M
    return cast<TypeClass>(Base::getTypePtr());
411
18.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
6.71M
  const TypeClass *getTypePtr() const {
410
6.71M
    return cast<TypeClass>(Base::getTypePtr());
411
6.71M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getTypePtr() const
Line
Count
Source
409
34.1k
  const TypeClass *getTypePtr() const {
410
34.1k
    return cast<TypeClass>(Base::getTypePtr());
411
34.1k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getTypePtr() const
Line
Count
Source
409
1.11M
  const TypeClass *getTypePtr() const {
410
1.11M
    return cast<TypeClass>(Base::getTypePtr());
411
1.11M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getTypePtr() const
Line
Count
Source
409
1.79M
  const TypeClass *getTypePtr() const {
410
1.79M
    return cast<TypeClass>(Base::getTypePtr());
411
1.79M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getTypePtr() const
Line
Count
Source
409
25.2k
  const TypeClass *getTypePtr() const {
410
25.2k
    return cast<TypeClass>(Base::getTypePtr());
411
25.2k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getTypePtr() const
Line
Count
Source
409
444k
  const TypeClass *getTypePtr() const {
410
444k
    return cast<TypeClass>(Base::getTypePtr());
411
444k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getTypePtr() const
Line
Count
Source
409
26.0M
  const TypeClass *getTypePtr() const {
410
26.0M
    return cast<TypeClass>(Base::getTypePtr());
411
26.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getTypePtr() const
Line
Count
Source
409
580M
  const TypeClass *getTypePtr() const {
410
580M
    return cast<TypeClass>(Base::getTypePtr());
411
580M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getTypePtr() const
Line
Count
Source
409
2.37M
  const TypeClass *getTypePtr() const {
410
2.37M
    return cast<TypeClass>(Base::getTypePtr());
411
2.37M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getTypePtr() const
Line
Count
Source
409
51.2M
  const TypeClass *getTypePtr() const {
410
51.2M
    return cast<TypeClass>(Base::getTypePtr());
411
51.2M
  }
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
636k
  const TypeClass *getTypePtr() const {
410
636k
    return cast<TypeClass>(Base::getTypePtr());
411
636k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
775
  const TypeClass *getTypePtr() const {
410
775
    return cast<TypeClass>(Base::getTypePtr());
411
775
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
321
  const TypeClass *getTypePtr() const {
410
321
    return cast<TypeClass>(Base::getTypePtr());
411
321
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
4.10k
  const TypeClass *getTypePtr() const {
410
4.10k
    return cast<TypeClass>(Base::getTypePtr());
411
4.10k
  }
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
138k
  const TypeClass *getTypePtr() const {
410
138k
    return cast<TypeClass>(Base::getTypePtr());
411
138k
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
830k
  const TypeClass *getTypePtr() const {
410
830k
    return cast<TypeClass>(Base::getTypePtr());
411
830k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getTypePtr() const
Line
Count
Source
409
18.5M
  const TypeClass *getTypePtr() const {
410
18.5M
    return cast<TypeClass>(Base::getTypePtr());
411
18.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getTypePtr() const
Line
Count
Source
409
5.14M
  const TypeClass *getTypePtr() const {
410
5.14M
    return cast<TypeClass>(Base::getTypePtr());
411
5.14M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getTypePtr() const
Line
Count
Source
409
588k
  const TypeClass *getTypePtr() const {
410
588k
    return cast<TypeClass>(Base::getTypePtr());
411
588k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
5.17M
  const TypeClass *getTypePtr() const {
410
5.17M
    return cast<TypeClass>(Base::getTypePtr());
411
5.17M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
40.5k
  const TypeClass *getTypePtr() const {
410
40.5k
    return cast<TypeClass>(Base::getTypePtr());
411
40.5k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
1.07k
  const TypeClass *getTypePtr() const {
410
1.07k
    return cast<TypeClass>(Base::getTypePtr());
411
1.07k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getTypePtr() const
Line
Count
Source
409
325k
  const TypeClass *getTypePtr() const {
410
325k
    return cast<TypeClass>(Base::getTypePtr());
411
325k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
371
  const TypeClass *getTypePtr() const {
410
371
    return cast<TypeClass>(Base::getTypePtr());
411
371
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getTypePtr() const
Line
Count
Source
409
6.29M
  const TypeClass *getTypePtr() const {
410
6.29M
    return cast<TypeClass>(Base::getTypePtr());
411
6.29M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getTypePtr() const
Line
Count
Source
409
41.3M
  const TypeClass *getTypePtr() const {
410
41.3M
    return cast<TypeClass>(Base::getTypePtr());
411
41.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
1.12k
  const TypeClass *getTypePtr() const {
410
1.12k
    return cast<TypeClass>(Base::getTypePtr());
411
1.12k
  }
412
413
protected:
414
248M
  unsigned getExtraLocalDataSize() const {
415
248M
    return 0;
416
248M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
10.6M
  unsigned getExtraLocalDataSize() const {
415
10.6M
    return 0;
416
10.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
659k
  unsigned getExtraLocalDataSize() const {
415
659k
    return 0;
416
659k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
1.23M
  unsigned getExtraLocalDataSize() const {
415
1.23M
    return 0;
416
1.23M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
1.69M
  unsigned getExtraLocalDataSize() const {
415
1.69M
    return 0;
416
1.69M
  }
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
458k
  unsigned getExtraLocalDataSize() const {
415
458k
    return 0;
416
458k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
475
  unsigned getExtraLocalDataSize() const {
415
475
    return 0;
416
475
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
211
  unsigned getExtraLocalDataSize() const {
415
211
    return 0;
416
211
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
12.2M
  unsigned getExtraLocalDataSize() const {
415
12.2M
    return 0;
416
12.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
3.66M
  unsigned getExtraLocalDataSize() const {
415
3.66M
    return 0;
416
3.66M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
29.0k
  unsigned getExtraLocalDataSize() const {
415
29.0k
    return 0;
416
29.0k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
794
  unsigned getExtraLocalDataSize() const {
415
794
    return 0;
416
794
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
223k
  unsigned getExtraLocalDataSize() const {
415
223k
    return 0;
416
223k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
258k
  unsigned getExtraLocalDataSize() const {
415
258k
    return 0;
416
258k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
4.42M
  unsigned getExtraLocalDataSize() const {
415
4.42M
    return 0;
416
4.42M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
29.9M
  unsigned getExtraLocalDataSize() const {
415
29.9M
    return 0;
416
29.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
19.0M
  unsigned getExtraLocalDataSize() const {
415
19.0M
    return 0;
416
19.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
155M
  unsigned getExtraLocalDataSize() const {
415
155M
    return 0;
416
155M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
733k
  unsigned getExtraLocalDataSize() const {
415
733k
    return 0;
416
733k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
5.84M
  unsigned getExtraLocalDataSize() const {
415
5.84M
    return 0;
416
5.84M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
1.92k
  unsigned getExtraLocalDataSize() const {
415
1.92k
    return 0;
416
1.92k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
1.89M
  unsigned getExtraLocalDataSize() const {
415
1.89M
    return 0;
416
1.89M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
4.18k
  unsigned getExtraLocalDataSize() const {
415
4.18k
    return 0;
416
4.18k
  }
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
4.70k
  unsigned getExtraLocalDataSize() const {
415
4.70k
    return 0;
416
4.70k
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getExtraLocalDataSize() const
417
418
545M
  unsigned getExtraLocalDataAlignment() const {
419
545M
    return 1;
420
545M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
15.0M
  unsigned getExtraLocalDataAlignment() const {
419
15.0M
    return 1;
420
15.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
871k
  unsigned getExtraLocalDataAlignment() const {
419
871k
    return 1;
420
871k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
2.46M
  unsigned getExtraLocalDataAlignment() const {
419
2.46M
    return 1;
420
2.46M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
2.45M
  unsigned getExtraLocalDataAlignment() const {
419
2.45M
    return 1;
420
2.45M
  }
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
651k
  unsigned getExtraLocalDataAlignment() const {
419
651k
    return 1;
420
651k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
605
  unsigned getExtraLocalDataAlignment() const {
419
605
    return 1;
420
605
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
272
  unsigned getExtraLocalDataAlignment() const {
419
272
    return 1;
420
272
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
18.6M
  unsigned getExtraLocalDataAlignment() const {
419
18.6M
    return 1;
420
18.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
4.90M
  unsigned getExtraLocalDataAlignment() const {
419
4.90M
    return 1;
420
4.90M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
39.2k
  unsigned getExtraLocalDataAlignment() const {
419
39.2k
    return 1;
420
39.2k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
1.06k
  unsigned getExtraLocalDataAlignment() const {
419
1.06k
    return 1;
420
1.06k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
410k
  unsigned getExtraLocalDataAlignment() const {
419
410k
    return 1;
420
410k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
316k
  unsigned getExtraLocalDataAlignment() const {
419
316k
    return 1;
420
316k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
8.33M
  unsigned getExtraLocalDataAlignment() const {
419
8.33M
    return 1;
420
8.33M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
42.1M
  unsigned getExtraLocalDataAlignment() const {
419
42.1M
    return 1;
420
42.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
27.9M
  unsigned getExtraLocalDataAlignment() const {
419
27.9M
    return 1;
420
27.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
7.23k
  unsigned getExtraLocalDataAlignment() const {
419
7.23k
    return 1;
420
7.23k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
399M
  unsigned getExtraLocalDataAlignment() const {
419
399M
    return 1;
420
399M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
1.66M
  unsigned getExtraLocalDataAlignment() const {
419
1.66M
    return 1;
420
1.66M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
13.2M
  unsigned getExtraLocalDataAlignment() const {
419
13.2M
    return 1;
420
13.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
3.85k
  unsigned getExtraLocalDataAlignment() const {
419
3.85k
    return 1;
420
3.85k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
7.23M
  unsigned getExtraLocalDataAlignment() const {
419
7.23M
    return 1;
420
7.23M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
17.1k
  unsigned getExtraLocalDataAlignment() const {
419
17.1k
    return 1;
420
17.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
9.41k
  unsigned getExtraLocalDataAlignment() const {
419
9.41k
    return 1;
420
9.41k
  }
421
422
940M
  LocalData *getLocalData() const {
423
940M
    return static_cast<LocalData*>(Base::Data);
424
940M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getLocalData() const
Line
Count
Source
422
327M
  LocalData *getLocalData() const {
423
327M
    return static_cast<LocalData*>(Base::Data);
424
327M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getLocalData() const
Line
Count
Source
422
27.3M
  LocalData *getLocalData() const {
423
27.3M
    return static_cast<LocalData*>(Base::Data);
424
27.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getLocalData() const
Line
Count
Source
422
174k
  LocalData *getLocalData() const {
423
174k
    return static_cast<LocalData*>(Base::Data);
424
174k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getLocalData() const
Line
Count
Source
422
4.87M
  LocalData *getLocalData() const {
423
4.87M
    return static_cast<LocalData*>(Base::Data);
424
4.87M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getLocalData() const
Line
Count
Source
422
1.24M
  LocalData *getLocalData() const {
423
1.24M
    return static_cast<LocalData*>(Base::Data);
424
1.24M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getLocalData() const
Line
Count
Source
422
5.85M
  LocalData *getLocalData() const {
423
5.85M
    return static_cast<LocalData*>(Base::Data);
424
5.85M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getLocalData() const
Line
Count
Source
422
218k
  LocalData *getLocalData() const {
423
218k
    return static_cast<LocalData*>(Base::Data);
424
218k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getLocalData() const
Line
Count
Source
422
918k
  LocalData *getLocalData() const {
423
918k
    return static_cast<LocalData*>(Base::Data);
424
918k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
12.4M
  LocalData *getLocalData() const {
423
12.4M
    return static_cast<LocalData*>(Base::Data);
424
12.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
129k
  LocalData *getLocalData() const {
423
129k
    return static_cast<LocalData*>(Base::Data);
424
129k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getLocalData() const
Line
Count
Source
422
234k
  LocalData *getLocalData() const {
423
234k
    return static_cast<LocalData*>(Base::Data);
424
234k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
2.33M
  LocalData *getLocalData() const {
423
2.33M
    return static_cast<LocalData*>(Base::Data);
424
2.33M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::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::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getLocalData() const
Line
Count
Source
422
134M
  LocalData *getLocalData() const {
423
134M
    return static_cast<LocalData*>(Base::Data);
424
134M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getLocalData() const
Line
Count
Source
422
1.73M
  LocalData *getLocalData() const {
423
1.73M
    return static_cast<LocalData*>(Base::Data);
424
1.73M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getLocalData() const
Line
Count
Source
422
373M
  LocalData *getLocalData() const {
423
373M
    return static_cast<LocalData*>(Base::Data);
424
373M
  }
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
266k
  LocalData *getLocalData() const {
423
266k
    return static_cast<LocalData*>(Base::Data);
424
266k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getLocalData() const
Line
Count
Source
422
260
  LocalData *getLocalData() const {
423
260
    return static_cast<LocalData*>(Base::Data);
424
260
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getLocalData() const
Line
Count
Source
422
125
  LocalData *getLocalData() const {
423
125
    return static_cast<LocalData*>(Base::Data);
424
125
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getLocalData() const
Line
Count
Source
422
6.41k
  LocalData *getLocalData() const {
423
6.41k
    return static_cast<LocalData*>(Base::Data);
424
6.41k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getLocalData() const
Line
Count
Source
422
672
  LocalData *getLocalData() const {
423
672
    return static_cast<LocalData*>(Base::Data);
424
672
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getLocalData() const
Line
Count
Source
422
2.02M
  LocalData *getLocalData() const {
423
2.02M
    return static_cast<LocalData*>(Base::Data);
424
2.02M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getLocalData() const
Line
Count
Source
422
17.6k
  LocalData *getLocalData() const {
423
17.6k
    return static_cast<LocalData*>(Base::Data);
424
17.6k
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getLocalData() const
Line
Count
Source
422
323k
  LocalData *getLocalData() const {
423
323k
    return static_cast<LocalData*>(Base::Data);
424
323k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getLocalData() const
Line
Count
Source
422
7.62M
  LocalData *getLocalData() const {
423
7.62M
    return static_cast<LocalData*>(Base::Data);
424
7.62M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getLocalData() const
Line
Count
Source
422
25.1M
  LocalData *getLocalData() const {
423
25.1M
    return static_cast<LocalData*>(Base::Data);
424
25.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getLocalData() const
Line
Count
Source
422
1.17M
  LocalData *getLocalData() const {
423
1.17M
    return static_cast<LocalData*>(Base::Data);
424
1.17M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getLocalData() const
Line
Count
Source
422
1.90M
  LocalData *getLocalData() const {
423
1.90M
    return static_cast<LocalData*>(Base::Data);
424
1.90M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getLocalData() const
Line
Count
Source
422
29.3k
  LocalData *getLocalData() const {
423
29.3k
    return static_cast<LocalData*>(Base::Data);
424
29.3k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getLocalData() const
Line
Count
Source
422
278
  LocalData *getLocalData() const {
423
278
    return static_cast<LocalData*>(Base::Data);
424
278
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getLocalData() const
Line
Count
Source
422
28.2k
  LocalData *getLocalData() const {
423
28.2k
    return static_cast<LocalData*>(Base::Data);
424
28.2k
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::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
125M
  void *getExtraLocalData() const {
430
125M
    unsigned size = sizeof(LocalData);
431
125M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
125M
    size = llvm::alignTo(size, extraAlign);
433
125M
    return reinterpret_cast<char*>(Base::Data) + size;
434
125M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getExtraLocalData() const
Line
Count
Source
429
15.6M
  void *getExtraLocalData() const {
430
15.6M
    unsigned size = sizeof(LocalData);
431
15.6M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
15.6M
    size = llvm::alignTo(size, extraAlign);
433
15.6M
    return reinterpret_cast<char*>(Base::Data) + size;
434
15.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
12.9k
  void *getExtraLocalData() const {
430
12.9k
    unsigned size = sizeof(LocalData);
431
12.9k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
12.9k
    size = llvm::alignTo(size, extraAlign);
433
12.9k
    return reinterpret_cast<char*>(Base::Data) + size;
434
12.9k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
192k
  void *getExtraLocalData() const {
430
192k
    unsigned size = sizeof(LocalData);
431
192k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
192k
    size = llvm::alignTo(size, extraAlign);
433
192k
    return reinterpret_cast<char*>(Base::Data) + size;
434
192k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getExtraLocalData() const
Line
Count
Source
429
87.6M
  void *getExtraLocalData() const {
430
87.6M
    unsigned size = sizeof(LocalData);
431
87.6M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
87.6M
    size = llvm::alignTo(size, extraAlign);
433
87.6M
    return reinterpret_cast<char*>(Base::Data) + size;
434
87.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getExtraLocalData() const
Line
Count
Source
429
21.9M
  void *getExtraLocalData() const {
430
21.9M
    unsigned size = sizeof(LocalData);
431
21.9M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
21.9M
    size = llvm::alignTo(size, extraAlign);
433
21.9M
    return reinterpret_cast<char*>(Base::Data) + size;
434
21.9M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
32.6k
  void *getExtraLocalData() const {
430
32.6k
    unsigned size = sizeof(LocalData);
431
32.6k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
32.6k
    size = llvm::alignTo(size, extraAlign);
433
32.6k
    return reinterpret_cast<char*>(Base::Data) + size;
434
32.6k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getExtraLocalData() const
Line
Count
Source
429
115k
  void *getExtraLocalData() const {
430
115k
    unsigned size = sizeof(LocalData);
431
115k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
115k
    size = llvm::alignTo(size, extraAlign);
433
115k
    return reinterpret_cast<char*>(Base::Data) + size;
434
115k
  }
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
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getExtraLocalData() const
Line
Count
Source
429
2.80k
  void *getExtraLocalData() const {
430
2.80k
    unsigned size = sizeof(LocalData);
431
2.80k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
2.80k
    size = llvm::alignTo(size, extraAlign);
433
2.80k
    return reinterpret_cast<char*>(Base::Data) + size;
434
2.80k
  }
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
64
  void *getExtraLocalData() const {
430
64
    unsigned size = sizeof(LocalData);
431
64
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
64
    size = llvm::alignTo(size, extraAlign);
433
64
    return reinterpret_cast<char*>(Base::Data) + size;
434
64
  }
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
129M
  void *getNonLocalData() const {
437
129M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
129M
    data += asDerived()->getLocalDataSize();
439
129M
    data = llvm::alignTo(data, getNextTypeAlign());
440
129M
    return reinterpret_cast<void*>(data);
441
129M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNonLocalData() const
Line
Count
Source
436
7.43M
  void *getNonLocalData() const {
437
7.43M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
7.43M
    data += asDerived()->getLocalDataSize();
439
7.43M
    data = llvm::alignTo(data, getNextTypeAlign());
440
7.43M
    return reinterpret_cast<void*>(data);
441
7.43M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
1.07M
  void *getNonLocalData() const {
437
1.07M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
1.07M
    data += asDerived()->getLocalDataSize();
439
1.07M
    data = llvm::alignTo(data, getNextTypeAlign());
440
1.07M
    return reinterpret_cast<void*>(data);
441
1.07M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNonLocalData() const
Line
Count
Source
436
448k
  void *getNonLocalData() const {
437
448k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
448k
    data += asDerived()->getLocalDataSize();
439
448k
    data = llvm::alignTo(data, getNextTypeAlign());
440
448k
    return reinterpret_cast<void*>(data);
441
448k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNonLocalData() const
Line
Count
Source
436
880k
  void *getNonLocalData() const {
437
880k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
880k
    data += asDerived()->getLocalDataSize();
439
880k
    data = llvm::alignTo(data, getNextTypeAlign());
440
880k
    return reinterpret_cast<void*>(data);
441
880k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNonLocalData() const
Line
Count
Source
436
12.6k
  void *getNonLocalData() const {
437
12.6k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
12.6k
    data += asDerived()->getLocalDataSize();
439
12.6k
    data = llvm::alignTo(data, getNextTypeAlign());
440
12.6k
    return reinterpret_cast<void*>(data);
441
12.6k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNonLocalData() const
Line
Count
Source
436
71.7M
  void *getNonLocalData() const {
437
71.7M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
71.7M
    data += asDerived()->getLocalDataSize();
439
71.7M
    data = llvm::alignTo(data, getNextTypeAlign());
440
71.7M
    return reinterpret_cast<void*>(data);
441
71.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNonLocalData() const
Line
Count
Source
436
1.16M
  void *getNonLocalData() const {
437
1.16M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
1.16M
    data += asDerived()->getLocalDataSize();
439
1.16M
    data = llvm::alignTo(data, getNextTypeAlign());
440
1.16M
    return reinterpret_cast<void*>(data);
441
1.16M
  }
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
315k
  void *getNonLocalData() const {
437
315k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
315k
    data += asDerived()->getLocalDataSize();
439
315k
    data = llvm::alignTo(data, getNextTypeAlign());
440
315k
    return reinterpret_cast<void*>(data);
441
315k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
345
  void *getNonLocalData() const {
437
345
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
345
    data += asDerived()->getLocalDataSize();
439
345
    data = llvm::alignTo(data, getNextTypeAlign());
440
345
    return reinterpret_cast<void*>(data);
441
345
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
150
  void *getNonLocalData() const {
437
150
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
150
    data += asDerived()->getLocalDataSize();
439
150
    data = llvm::alignTo(data, getNextTypeAlign());
440
150
    return reinterpret_cast<void*>(data);
441
150
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getNonLocalData() const
Line
Count
Source
436
7.23M
  void *getNonLocalData() const {
437
7.23M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
7.23M
    data += asDerived()->getLocalDataSize();
439
7.23M
    data = llvm::alignTo(data, getNextTypeAlign());
440
7.23M
    return reinterpret_cast<void*>(data);
441
7.23M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
2.41M
  void *getNonLocalData() const {
437
2.41M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
2.41M
    data += asDerived()->getLocalDataSize();
439
2.41M
    data = llvm::alignTo(data, getNextTypeAlign());
440
2.41M
    return reinterpret_cast<void*>(data);
441
2.41M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
19.8k
  void *getNonLocalData() const {
437
19.8k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
19.8k
    data += asDerived()->getLocalDataSize();
439
19.8k
    data = llvm::alignTo(data, getNextTypeAlign());
440
19.8k
    return reinterpret_cast<void*>(data);
441
19.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
537
  void *getNonLocalData() const {
437
537
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
537
    data += asDerived()->getLocalDataSize();
439
537
    data = llvm::alignTo(data, getNextTypeAlign());
440
537
    return reinterpret_cast<void*>(data);
441
537
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
161k
  void *getNonLocalData() const {
437
161k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
161k
    data += asDerived()->getLocalDataSize();
439
161k
    data = llvm::alignTo(data, getNextTypeAlign());
440
161k
    return reinterpret_cast<void*>(data);
441
161k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNonLocalData() const
Line
Count
Source
436
205k
  void *getNonLocalData() const {
437
205k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
205k
    data += asDerived()->getLocalDataSize();
439
205k
    data = llvm::alignTo(data, getNextTypeAlign());
440
205k
    return reinterpret_cast<void*>(data);
441
205k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
3.13M
  void *getNonLocalData() const {
437
3.13M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
3.13M
    data += asDerived()->getLocalDataSize();
439
3.13M
    data = llvm::alignTo(data, getNextTypeAlign());
440
3.13M
    return reinterpret_cast<void*>(data);
441
3.13M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
20.5M
  void *getNonLocalData() const {
437
20.5M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
20.5M
    data += asDerived()->getLocalDataSize();
439
20.5M
    data = llvm::alignTo(data, getNextTypeAlign());
440
20.5M
    return reinterpret_cast<void*>(data);
441
20.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
12.5M
  void *getNonLocalData() const {
437
12.5M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
12.5M
    data += asDerived()->getLocalDataSize();
439
12.5M
    data = llvm::alignTo(data, getNextTypeAlign());
440
12.5M
    return reinterpret_cast<void*>(data);
441
12.5M
  }
442
443
  struct HasNoInnerType {};
444
331M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getInnerType() const
Line
Count
Source
444
213M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getInnerType() const
Line
Count
Source
444
25.1M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType, clang::DecltypeTypeLocInfo>::getInnerType() const
Line
Count
Source
444
1.08M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getInnerType() const
Line
Count
Source
444
470k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getInnerType() const
Line
Count
Source
444
8.66M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getInnerType() const
Line
Count
Source
444
263k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getInnerType() const
Line
Count
Source
444
2.80k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getInnerType() const
Line
Count
Source
444
2.96M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getInnerType() const
Line
Count
Source
444
285k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getInnerType() const
Line
Count
Source
444
79.2M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getInnerType() const
Line
Count
Source
444
7.18k
  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.15k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
445
446
6.82M
  TypeLoc getInnerTypeLoc() const {
447
6.82M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
6.82M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1.76M
  TypeLoc getInnerTypeLoc() const {
447
1.76M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.76M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
153k
  TypeLoc getInnerTypeLoc() const {
447
153k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
153k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
160k
  TypeLoc getInnerTypeLoc() const {
447
160k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
160k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
49.7k
  TypeLoc getInnerTypeLoc() const {
447
49.7k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
49.7k
  }
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.74M
  TypeLoc getInnerTypeLoc() const {
447
1.74M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.74M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
52.0k
  TypeLoc getInnerTypeLoc() const {
447
52.0k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
52.0k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1
  TypeLoc getInnerTypeLoc() const {
447
1
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
4
  TypeLoc getInnerTypeLoc() const {
447
4
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
4
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
85
  TypeLoc getInnerTypeLoc() const {
447
85
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
85
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
18
  TypeLoc getInnerTypeLoc() const {
447
18
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
18
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
132k
  TypeLoc getInnerTypeLoc() const {
447
132k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
132k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
395k
  TypeLoc getInnerTypeLoc() const {
447
395k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
395k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
4.50k
  TypeLoc getInnerTypeLoc() const {
447
4.50k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
4.50k
  }
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.03k
  TypeLoc getInnerTypeLoc() const {
447
2.03k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
2.03k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1.97k
  TypeLoc getInnerTypeLoc() const {
447
1.97k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.97k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
53.0k
  TypeLoc getInnerTypeLoc() const {
447
53.0k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
53.0k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1.18M
  TypeLoc getInnerTypeLoc() const {
447
1.18M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.18M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1.12M
  TypeLoc getInnerTypeLoc() const {
447
1.12M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.12M
  }
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
129M
  unsigned getNextTypeAlign() const {
464
129M
    return getNextTypeAlign(asDerived()->getInnerType());
465
129M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
7.43M
  unsigned getNextTypeAlign() const {
464
7.43M
    return getNextTypeAlign(asDerived()->getInnerType());
465
7.43M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
1.07M
  unsigned getNextTypeAlign() const {
464
1.07M
    return getNextTypeAlign(asDerived()->getInnerType());
465
1.07M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
448k
  unsigned getNextTypeAlign() const {
464
448k
    return getNextTypeAlign(asDerived()->getInnerType());
465
448k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
880k
  unsigned getNextTypeAlign() const {
464
880k
    return getNextTypeAlign(asDerived()->getInnerType());
465
880k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
12.6k
  unsigned getNextTypeAlign() const {
464
12.6k
    return getNextTypeAlign(asDerived()->getInnerType());
465
12.6k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
71.7M
  unsigned getNextTypeAlign() const {
464
71.7M
    return getNextTypeAlign(asDerived()->getInnerType());
465
71.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
1.16M
  unsigned getNextTypeAlign() const {
464
1.16M
    return getNextTypeAlign(asDerived()->getInnerType());
465
1.16M
  }
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
315k
  unsigned getNextTypeAlign() const {
464
315k
    return getNextTypeAlign(asDerived()->getInnerType());
465
315k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
345
  unsigned getNextTypeAlign() const {
464
345
    return getNextTypeAlign(asDerived()->getInnerType());
465
345
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
150
  unsigned getNextTypeAlign() const {
464
150
    return getNextTypeAlign(asDerived()->getInnerType());
465
150
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
7.23M
  unsigned getNextTypeAlign() const {
464
7.23M
    return getNextTypeAlign(asDerived()->getInnerType());
465
7.23M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
2.41M
  unsigned getNextTypeAlign() const {
464
2.41M
    return getNextTypeAlign(asDerived()->getInnerType());
465
2.41M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
19.8k
  unsigned getNextTypeAlign() const {
464
19.8k
    return getNextTypeAlign(asDerived()->getInnerType());
465
19.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
537
  unsigned getNextTypeAlign() const {
464
537
    return getNextTypeAlign(asDerived()->getInnerType());
465
537
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
161k
  unsigned getNextTypeAlign() const {
464
161k
    return getNextTypeAlign(asDerived()->getInnerType());
465
161k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
205k
  unsigned getNextTypeAlign() const {
464
205k
    return getNextTypeAlign(asDerived()->getInnerType());
465
205k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
3.13M
  unsigned getNextTypeAlign() const {
464
3.13M
    return getNextTypeAlign(asDerived()->getInnerType());
465
3.13M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
20.5M
  unsigned getNextTypeAlign() const {
464
20.5M
    return getNextTypeAlign(asDerived()->getInnerType());
465
20.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
12.5M
  unsigned getNextTypeAlign() const {
464
12.5M
    return getNextTypeAlign(asDerived()->getInnerType());
465
12.5M
  }
466
467
  unsigned getNextTypeAlign(HasNoInnerType _) const {
468
    return 1;
469
  }
470
471
129M
  unsigned getNextTypeAlign(QualType T) const {
472
129M
    return TypeLoc::getLocalAlignmentForType(T);
473
129M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
7.43M
  unsigned getNextTypeAlign(QualType T) const {
472
7.43M
    return TypeLoc::getLocalAlignmentForType(T);
473
7.43M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
1.07M
  unsigned getNextTypeAlign(QualType T) const {
472
1.07M
    return TypeLoc::getLocalAlignmentForType(T);
473
1.07M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
448k
  unsigned getNextTypeAlign(QualType T) const {
472
448k
    return TypeLoc::getLocalAlignmentForType(T);
473
448k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
880k
  unsigned getNextTypeAlign(QualType T) const {
472
880k
    return TypeLoc::getLocalAlignmentForType(T);
473
880k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
12.6k
  unsigned getNextTypeAlign(QualType T) const {
472
12.6k
    return TypeLoc::getLocalAlignmentForType(T);
473
12.6k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
71.7M
  unsigned getNextTypeAlign(QualType T) const {
472
71.7M
    return TypeLoc::getLocalAlignmentForType(T);
473
71.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
1.16M
  unsigned getNextTypeAlign(QualType T) const {
472
1.16M
    return TypeLoc::getLocalAlignmentForType(T);
473
1.16M
  }
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
315k
  unsigned getNextTypeAlign(QualType T) const {
472
315k
    return TypeLoc::getLocalAlignmentForType(T);
473
315k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
345
  unsigned getNextTypeAlign(QualType T) const {
472
345
    return TypeLoc::getLocalAlignmentForType(T);
473
345
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
150
  unsigned getNextTypeAlign(QualType T) const {
472
150
    return TypeLoc::getLocalAlignmentForType(T);
473
150
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
7.23M
  unsigned getNextTypeAlign(QualType T) const {
472
7.23M
    return TypeLoc::getLocalAlignmentForType(T);
473
7.23M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
2.41M
  unsigned getNextTypeAlign(QualType T) const {
472
2.41M
    return TypeLoc::getLocalAlignmentForType(T);
473
2.41M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
19.8k
  unsigned getNextTypeAlign(QualType T) const {
472
19.8k
    return TypeLoc::getLocalAlignmentForType(T);
473
19.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
537
  unsigned getNextTypeAlign(QualType T) const {
472
537
    return TypeLoc::getLocalAlignmentForType(T);
473
537
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
161k
  unsigned getNextTypeAlign(QualType T) const {
472
161k
    return TypeLoc::getLocalAlignmentForType(T);
473
161k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
205k
  unsigned getNextTypeAlign(QualType T) const {
472
205k
    return TypeLoc::getLocalAlignmentForType(T);
473
205k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
3.13M
  unsigned getNextTypeAlign(QualType T) const {
472
3.13M
    return TypeLoc::getLocalAlignmentForType(T);
473
3.13M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
20.5M
  unsigned getNextTypeAlign(QualType T) const {
472
20.5M
    return TypeLoc::getLocalAlignmentForType(T);
473
20.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
12.5M
  unsigned getNextTypeAlign(QualType T) const {
472
12.5M
    return TypeLoc::getLocalAlignmentForType(T);
473
12.5M
  }
474
475
331M
  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
213M
  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
25.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.08M
  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
470k
  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
8.66M
  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
263k
  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.80k
  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
2.96M
  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
285k
  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
79.2M
  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.18k
  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.15k
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
476
477
122M
  TypeLoc getNextTypeLoc(QualType T) const {
478
122M
    return TypeLoc(T, getNonLocalData());
479
122M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
10.4k
  TypeLoc getNextTypeLoc(QualType T) const {
478
10.4k
    return TypeLoc(T, getNonLocalData());
479
10.4k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
1.11M
  TypeLoc getNextTypeLoc(QualType T) const {
478
1.11M
    return TypeLoc(T, getNonLocalData());
479
1.11M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
15.3k
  TypeLoc getNextTypeLoc(QualType T) const {
478
15.3k
    return TypeLoc(T, getNonLocalData());
479
15.3k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
5.66M
  TypeLoc getNextTypeLoc(QualType T) const {
478
5.66M
    return TypeLoc(T, getNonLocalData());
479
5.66M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
159k
  TypeLoc getNextTypeLoc(QualType T) const {
478
159k
    return TypeLoc(T, getNonLocalData());
479
159k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
194
  TypeLoc getNextTypeLoc(QualType T) const {
478
194
    return TypeLoc(T, getNonLocalData());
479
194
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentSizedExtVectorTypeLoc, clang::DependentSizedExtVectorType, clang::VectorTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
132
  TypeLoc getNextTypeLoc(QualType T) const {
478
132
    return TypeLoc(T, getNonLocalData());
479
132
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentVectorTypeLoc, clang::DependentVectorType, clang::VectorTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
260
  TypeLoc getNextTypeLoc(QualType T) const {
478
260
    return TypeLoc(T, getNonLocalData());
479
260
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
7.10M
  TypeLoc getNextTypeLoc(QualType T) const {
478
7.10M
    return TypeLoc(T, getNonLocalData());
479
7.10M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
70.0M
  TypeLoc getNextTypeLoc(QualType T) const {
478
70.0M
    return TypeLoc(T, getNonLocalData());
479
70.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
287k
  TypeLoc getNextTypeLoc(QualType T) const {
478
287k
    return TypeLoc(T, getNonLocalData());
479
287k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
203k
  TypeLoc getNextTypeLoc(QualType T) const {
478
203k
    return TypeLoc(T, getNonLocalData());
479
203k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
3.08M
  TypeLoc getNextTypeLoc(QualType T) const {
478
3.08M
    return TypeLoc(T, getNonLocalData());
479
3.08M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
917k
  TypeLoc getNextTypeLoc(QualType T) const {
478
917k
    return TypeLoc(T, getNonLocalData());
479
917k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
2.02M
  TypeLoc getNextTypeLoc(QualType T) const {
478
2.02M
    return TypeLoc(T, getNonLocalData());
479
2.02M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
831k
  TypeLoc getNextTypeLoc(QualType T) const {
478
831k
    return TypeLoc(T, getNonLocalData());
479
831k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
535
  TypeLoc getNextTypeLoc(QualType T) const {
478
535
    return TypeLoc(T, getNonLocalData());
479
535
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
19.3M
  TypeLoc getNextTypeLoc(QualType T) const {
478
19.3M
    return TypeLoc(T, getNonLocalData());
479
19.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
11.3M
  TypeLoc getNextTypeLoc(QualType T) const {
478
11.3M
    return TypeLoc(T, getNonLocalData());
479
11.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
315k
  TypeLoc getNextTypeLoc(QualType T) const {
478
315k
    return TypeLoc(T, getNonLocalData());
479
315k
  }
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.05G
  static bool classofType(const Type *Ty) {
490
1.05G
    return TypeClass::classof(Ty);
491
1.05G
  }
clang::InheritingConcreteTypeLoc<clang::AdjustedTypeLoc, clang::DecayedTypeLoc, clang::DecayedType>::classofType(clang::Type const*)
Line
Count
Source
489
26.8k
  static bool classofType(const Type *Ty) {
490
26.8k
    return TypeClass::classof(Ty);
491
26.8k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::ConstantArrayTypeLoc, clang::ConstantArrayType>::classofType(clang::Type const*)
Line
Count
Source
489
2.03M
  static bool classofType(const Type *Ty) {
490
2.03M
    return TypeClass::classof(Ty);
491
2.03M
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::DependentSizedArrayTypeLoc, clang::DependentSizedArrayType>::classofType(clang::Type const*)
Line
Count
Source
489
197k
  static bool classofType(const Type *Ty) {
490
197k
    return TypeClass::classof(Ty);
491
197k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::IncompleteArrayTypeLoc, clang::IncompleteArrayType>::classofType(clang::Type const*)
Line
Count
Source
489
478k
  static bool classofType(const Type *Ty) {
490
478k
    return TypeClass::classof(Ty);
491
478k
  }
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
9.03k
  static bool classofType(const Type *Ty) {
490
9.03k
    return TypeClass::classof(Ty);
491
9.03k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::ComplexTypeLoc, clang::ComplexType>::classofType(clang::Type const*)
Line
Count
Source
489
89.1k
  static bool classofType(const Type *Ty) {
490
89.1k
    return TypeClass::classof(Ty);
491
89.1k
  }
clang::InheritingConcreteTypeLoc<clang::DeducedTypeLoc, clang::DeducedTemplateSpecializationTypeLoc, clang::DeducedTemplateSpecializationType>::classofType(clang::Type const*)
Line
Count
Source
489
133k
  static bool classofType(const Type *Ty) {
490
133k
    return TypeClass::classof(Ty);
491
133k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DependentBitIntTypeLoc, clang::DependentBitIntType>::classofType(clang::Type const*)
Line
Count
Source
489
258
  static bool classofType(const Type *Ty) {
490
258
    return TypeClass::classof(Ty);
491
258
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionNoProtoTypeLoc, clang::FunctionNoProtoType>::classofType(clang::Type const*)
Line
Count
Source
489
613k
  static bool classofType(const Type *Ty) {
490
613k
    return TypeClass::classof(Ty);
491
613k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionProtoTypeLoc, clang::FunctionProtoType>::classofType(clang::Type const*)
Line
Count
Source
489
180M
  static bool classofType(const Type *Ty) {
490
180M
    return TypeClass::classof(Ty);
491
180M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::InjectedClassNameTypeLoc, clang::InjectedClassNameType>::classofType(clang::Type const*)
Line
Count
Source
489
10.0M
  static bool classofType(const Type *Ty) {
490
10.0M
    return TypeClass::classof(Ty);
491
10.0M
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::ConstantMatrixTypeLoc, clang::ConstantMatrixType>::classofType(clang::Type const*)
Line
Count
Source
489
4.63k
  static bool classofType(const Type *Ty) {
490
4.63k
    return TypeClass::classof(Ty);
491
4.63k
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::DependentSizedMatrixTypeLoc, clang::DependentSizedMatrixType>::classofType(clang::Type const*)
Line
Count
Source
489
2.88k
  static bool classofType(const Type *Ty) {
490
2.88k
    return TypeClass::classof(Ty);
491
2.88k
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::LValueReferenceTypeLoc, clang::LValueReferenceType>::classofType(clang::Type const*)
Line
Count
Source
489
25.3M
  static bool classofType(const Type *Ty) {
490
25.3M
    return TypeClass::classof(Ty);
491
25.3M
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::RValueReferenceTypeLoc, clang::RValueReferenceType>::classofType(clang::Type const*)
Line
Count
Source
489
6.73M
  static bool classofType(const Type *Ty) {
490
6.73M
    return TypeClass::classof(Ty);
491
6.73M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmPackTypeLoc, clang::SubstTemplateTypeParmPackType>::classofType(clang::Type const*)
Line
Count
Source
489
441k
  static bool classofType(const Type *Ty) {
490
441k
    return TypeClass::classof(Ty);
491
441k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmTypeLoc, clang::SubstTemplateTypeParmType>::classofType(clang::Type const*)
Line
Count
Source
489
72.8M
  static bool classofType(const Type *Ty) {
490
72.8M
    return TypeClass::classof(Ty);
491
72.8M
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::EnumTypeLoc, clang::EnumType>::classofType(clang::Type const*)
Line
Count
Source
489
4.00M
  static bool classofType(const Type *Ty) {
490
4.00M
    return TypeClass::classof(Ty);
491
4.00M
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::RecordTypeLoc, clang::RecordType>::classofType(clang::Type const*)
Line
Count
Source
489
39.0M
  static bool classofType(const Type *Ty) {
490
39.0M
    return TypeClass::classof(Ty);
491
39.0M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TemplateTypeParmTypeLoc, clang::TemplateTypeParmType>::classofType(clang::Type const*)
Line
Count
Source
489
135M
  static bool classofType(const Type *Ty) {
490
135M
    return TypeClass::classof(Ty);
491
135M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TypedefTypeLoc, clang::TypedefType>::classofType(clang::Type const*)
Line
Count
Source
489
566M
  static bool classofType(const Type *Ty) {
490
566M
    return TypeClass::classof(Ty);
491
566M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UnresolvedUsingTypeLoc, clang::UnresolvedUsingType>::classofType(clang::Type const*)
Line
Count
Source
489
13.8k
  static bool classofType(const Type *Ty) {
490
13.8k
    return TypeClass::classof(Ty);
491
13.8k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UsingTypeLoc, clang::UsingType>::classofType(clang::Type const*)
Line
Count
Source
489
4.18M
  static bool classofType(const Type *Ty) {
490
4.18M
    return TypeClass::classof(Ty);
491
4.18M
  }
clang::InheritingConcreteTypeLoc<clang::VectorTypeLoc, clang::ExtVectorTypeLoc, clang::ExtVectorType>::classofType(clang::Type const*)
Line
Count
Source
489
22.2k
  static bool classofType(const Type *Ty) {
490
22.2k
    return TypeClass::classof(Ty);
491
22.2k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DeducedTypeLoc, clang::DeducedType>::classofType(clang::Type const*)
Line
Count
Source
489
822
  static bool classofType(const Type *Ty) {
490
822
    return TypeClass::classof(Ty);
491
822
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TagTypeLoc, clang::TagType>::classofType(clang::Type const*)
Line
Count
Source
489
1.90M
  static bool classofType(const Type *Ty) {
490
1.90M
    return TypeClass::classof(Ty);
491
1.90M
  }
492
493
1.05G
  static bool isKind(const TypeLoc &TL) {
494
1.05G
    return !TL.getType().hasLocalQualifiers() &&
495
1.05G
           
Derived::classofType(TL.getTypePtr())1.05G
;
496
1.05G
  }
clang::InheritingConcreteTypeLoc<clang::AdjustedTypeLoc, clang::DecayedTypeLoc, clang::DecayedType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
26.8k
  static bool isKind(const TypeLoc &TL) {
494
26.8k
    return !TL.getType().hasLocalQualifiers() &&
495
26.8k
           Derived::classofType(TL.getTypePtr());
496
26.8k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::ConstantArrayTypeLoc, clang::ConstantArrayType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
2.03M
  static bool isKind(const TypeLoc &TL) {
494
2.03M
    return !TL.getType().hasLocalQualifiers() &&
495
2.03M
           
Derived::classofType(TL.getTypePtr())2.03M
;
496
2.03M
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::DependentSizedArrayTypeLoc, clang::DependentSizedArrayType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
197k
  static bool isKind(const TypeLoc &TL) {
494
197k
    return !TL.getType().hasLocalQualifiers() &&
495
197k
           Derived::classofType(TL.getTypePtr());
496
197k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::IncompleteArrayTypeLoc, clang::IncompleteArrayType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
478k
  static bool isKind(const TypeLoc &TL) {
494
478k
    return !TL.getType().hasLocalQualifiers() &&
495
478k
           
Derived::classofType(TL.getTypePtr())478k
;
496
478k
  }
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
9.03k
  static bool isKind(const TypeLoc &TL) {
494
9.03k
    return !TL.getType().hasLocalQualifiers() &&
495
9.03k
           Derived::classofType(TL.getTypePtr());
496
9.03k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::ComplexTypeLoc, clang::ComplexType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
89.1k
  static bool isKind(const TypeLoc &TL) {
494
89.1k
    return !TL.getType().hasLocalQualifiers() &&
495
89.1k
           Derived::classofType(TL.getTypePtr());
496
89.1k
  }
clang::InheritingConcreteTypeLoc<clang::DeducedTypeLoc, clang::DeducedTemplateSpecializationTypeLoc, clang::DeducedTemplateSpecializationType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
134k
  static bool isKind(const TypeLoc &TL) {
494
134k
    return !TL.getType().hasLocalQualifiers() &&
495
134k
           
Derived::classofType(TL.getTypePtr())133k
;
496
134k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DependentBitIntTypeLoc, clang::DependentBitIntType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
258
  static bool isKind(const TypeLoc &TL) {
494
258
    return !TL.getType().hasLocalQualifiers() &&
495
258
           Derived::classofType(TL.getTypePtr());
496
258
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionNoProtoTypeLoc, clang::FunctionNoProtoType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
613k
  static bool isKind(const TypeLoc &TL) {
494
613k
    return !TL.getType().hasLocalQualifiers() &&
495
613k
           Derived::classofType(TL.getTypePtr());
496
613k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionProtoTypeLoc, clang::FunctionProtoType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
180M
  static bool isKind(const TypeLoc &TL) {
494
180M
    return !TL.getType().hasLocalQualifiers() &&
495
180M
           Derived::classofType(TL.getTypePtr());
496
180M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::InjectedClassNameTypeLoc, clang::InjectedClassNameType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
10.0M
  static bool isKind(const TypeLoc &TL) {
494
10.0M
    return !TL.getType().hasLocalQualifiers() &&
495
10.0M
           Derived::classofType(TL.getTypePtr());
496
10.0M
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::ConstantMatrixTypeLoc, clang::ConstantMatrixType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
4.63k
  static bool isKind(const TypeLoc &TL) {
494
4.63k
    return !TL.getType().hasLocalQualifiers() &&
495
4.63k
           Derived::classofType(TL.getTypePtr());
496
4.63k
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::DependentSizedMatrixTypeLoc, clang::DependentSizedMatrixType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
2.88k
  static bool isKind(const TypeLoc &TL) {
494
2.88k
    return !TL.getType().hasLocalQualifiers() &&
495
2.88k
           Derived::classofType(TL.getTypePtr());
496
2.88k
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::LValueReferenceTypeLoc, clang::LValueReferenceType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
25.3M
  static bool isKind(const TypeLoc &TL) {
494
25.3M
    return !TL.getType().hasLocalQualifiers() &&
495
25.3M
           Derived::classofType(TL.getTypePtr());
496
25.3M
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::RValueReferenceTypeLoc, clang::RValueReferenceType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
6.73M
  static bool isKind(const TypeLoc &TL) {
494
6.73M
    return !TL.getType().hasLocalQualifiers() &&
495
6.73M
           Derived::classofType(TL.getTypePtr());
496
6.73M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmPackTypeLoc, clang::SubstTemplateTypeParmPackType>::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());
496
441k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmTypeLoc, clang::SubstTemplateTypeParmType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
72.8M
  static bool isKind(const TypeLoc &TL) {
494
72.8M
    return !TL.getType().hasLocalQualifiers() &&
495
72.8M
           Derived::classofType(TL.getTypePtr());
496
72.8M
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::EnumTypeLoc, clang::EnumType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
4.00M
  static bool isKind(const TypeLoc &TL) {
494
4.00M
    return !TL.getType().hasLocalQualifiers() &&
495
4.00M
           Derived::classofType(TL.getTypePtr());
496
4.00M
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::RecordTypeLoc, clang::RecordType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
39.0M
  static bool isKind(const TypeLoc &TL) {
494
39.0M
    return !TL.getType().hasLocalQualifiers() &&
495
39.0M
           
Derived::classofType(TL.getTypePtr())39.0M
;
496
39.0M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TemplateTypeParmTypeLoc, clang::TemplateTypeParmType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
135M
  static bool isKind(const TypeLoc &TL) {
494
135M
    return !TL.getType().hasLocalQualifiers() &&
495
135M
           Derived::classofType(TL.getTypePtr());
496
135M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TypedefTypeLoc, clang::TypedefType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
566M
  static bool isKind(const TypeLoc &TL) {
494
566M
    return !TL.getType().hasLocalQualifiers() &&
495
566M
           Derived::classofType(TL.getTypePtr());
496
566M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UnresolvedUsingTypeLoc, clang::UnresolvedUsingType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
13.8k
  static bool isKind(const TypeLoc &TL) {
494
13.8k
    return !TL.getType().hasLocalQualifiers() &&
495
13.8k
           Derived::classofType(TL.getTypePtr());
496
13.8k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UsingTypeLoc, clang::UsingType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
4.18M
  static bool isKind(const TypeLoc &TL) {
494
4.18M
    return !TL.getType().hasLocalQualifiers() &&
495
4.18M
           Derived::classofType(TL.getTypePtr());
496
4.18M
  }
clang::InheritingConcreteTypeLoc<clang::VectorTypeLoc, clang::ExtVectorTypeLoc, clang::ExtVectorType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
22.2k
  static bool isKind(const TypeLoc &TL) {
494
22.2k
    return !TL.getType().hasLocalQualifiers() &&
495
22.2k
           Derived::classofType(TL.getTypePtr());
496
22.2k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DeducedTypeLoc, clang::DeducedType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
822
  static bool isKind(const TypeLoc &TL) {
494
822
    return !TL.getType().hasLocalQualifiers() &&
495
822
           Derived::classofType(TL.getTypePtr());
496
822
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TagTypeLoc, clang::TagType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
1.90M
  static bool isKind(const TypeLoc &TL) {
494
1.90M
    return !TL.getType().hasLocalQualifiers() &&
495
1.90M
           Derived::classofType(TL.getTypePtr());
496
1.90M
  }
497
  static bool isKind(const UnqualTypeLoc &TL) {
498
    return Derived::classofType(TL.getTypePtr());
499
  }
500
501
public:
502
18.0M
  const TypeClass *getTypePtr() const {
503
18.0M
    return cast<TypeClass>(Base::getTypePtr());
504
18.0M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UsingTypeLoc, clang::UsingType>::getTypePtr() const
Line
Count
Source
502
33.1k
  const TypeClass *getTypePtr() const {
503
33.1k
    return cast<TypeClass>(Base::getTypePtr());
504
33.1k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TypedefTypeLoc, clang::TypedefType>::getTypePtr() const
Line
Count
Source
502
1.99M
  const TypeClass *getTypePtr() const {
503
1.99M
    return cast<TypeClass>(Base::getTypePtr());
504
1.99M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::InjectedClassNameTypeLoc, clang::InjectedClassNameType>::getTypePtr() const
Line
Count
Source
502
551k
  const TypeClass *getTypePtr() const {
503
551k
    return cast<TypeClass>(Base::getTypePtr());
504
551k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UnresolvedUsingTypeLoc, clang::UnresolvedUsingType>::getTypePtr() const
Line
Count
Source
502
359
  const TypeClass *getTypePtr() const {
503
359
    return cast<TypeClass>(Base::getTypePtr());
504
359
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TagTypeLoc, clang::TagType>::getTypePtr() const
Line
Count
Source
502
225k
  const TypeClass *getTypePtr() const {
503
225k
    return cast<TypeClass>(Base::getTypePtr());
504
225k
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::RecordTypeLoc, clang::RecordType>::getTypePtr() const
Line
Count
Source
502
212k
  const TypeClass *getTypePtr() const {
503
212k
    return cast<TypeClass>(Base::getTypePtr());
504
212k
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::EnumTypeLoc, clang::EnumType>::getTypePtr() const
Line
Count
Source
502
11.6k
  const TypeClass *getTypePtr() const {
503
11.6k
    return cast<TypeClass>(Base::getTypePtr());
504
11.6k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TemplateTypeParmTypeLoc, clang::TemplateTypeParmType>::getTypePtr() const
Line
Count
Source
502
6.08M
  const TypeClass *getTypePtr() const {
503
6.08M
    return cast<TypeClass>(Base::getTypePtr());
504
6.08M
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::DependentSizedArrayTypeLoc, clang::DependentSizedArrayType>::getTypePtr() const
Line
Count
Source
502
10.8k
  const TypeClass *getTypePtr() const {
503
10.8k
    return cast<TypeClass>(Base::getTypePtr());
504
10.8k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DeducedTypeLoc, clang::DeducedType>::getTypePtr() const
Line
Count
Source
502
831k
  const TypeClass *getTypePtr() const {
503
831k
    return cast<TypeClass>(Base::getTypePtr());
504
831k
  }
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
33.7k
  const TypeClass *getTypePtr() const {
503
33.7k
    return cast<TypeClass>(Base::getTypePtr());
504
33.7k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::IncompleteArrayTypeLoc, clang::IncompleteArrayType>::getTypePtr() const
Line
Count
Source
502
7.15k
  const TypeClass *getTypePtr() const {
503
7.15k
    return cast<TypeClass>(Base::getTypePtr());
504
7.15k
  }
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
7.77k
  const TypeClass *getTypePtr() const {
503
7.77k
    return cast<TypeClass>(Base::getTypePtr());
504
7.77k
  }
clang::InheritingConcreteTypeLoc<clang::DeducedTypeLoc, clang::DeducedTemplateSpecializationTypeLoc, clang::DeducedTemplateSpecializationType>::getTypePtr() const
Line
Count
Source
502
1.10k
  const TypeClass *getTypePtr() const {
503
1.10k
    return cast<TypeClass>(Base::getTypePtr());
504
1.10k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DependentBitIntTypeLoc, clang::DependentBitIntType>::getTypePtr() const
Line
Count
Source
502
25
  const TypeClass *getTypePtr() const {
503
25
    return cast<TypeClass>(Base::getTypePtr());
504
25
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionNoProtoTypeLoc, clang::FunctionNoProtoType>::getTypePtr() const
Line
Count
Source
502
2.58k
  const TypeClass *getTypePtr() const {
503
2.58k
    return cast<TypeClass>(Base::getTypePtr());
504
2.58k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionProtoTypeLoc, clang::FunctionProtoType>::getTypePtr() const
Line
Count
Source
502
7.84M
  const TypeClass *getTypePtr() const {
503
7.84M
    return cast<TypeClass>(Base::getTypePtr());
504
7.84M
  }
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
233
  const TypeClass *getTypePtr() const {
503
233
    return cast<TypeClass>(Base::getTypePtr());
504
233
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::LValueReferenceTypeLoc, clang::LValueReferenceType>::getTypePtr() const
Line
Count
Source
502
112k
  const TypeClass *getTypePtr() const {
503
112k
    return cast<TypeClass>(Base::getTypePtr());
504
112k
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::RValueReferenceTypeLoc, clang::RValueReferenceType>::getTypePtr() const
Line
Count
Source
502
17.9k
  const TypeClass *getTypePtr() const {
503
17.9k
    return cast<TypeClass>(Base::getTypePtr());
504
17.9k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmPackTypeLoc, clang::SubstTemplateTypeParmPackType>::getTypePtr() const
Line
Count
Source
502
11.6k
  const TypeClass *getTypePtr() const {
503
11.6k
    return cast<TypeClass>(Base::getTypePtr());
504
11.6k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmTypeLoc, clang::SubstTemplateTypeParmType>::getTypePtr() const
Line
Count
Source
502
41.6k
  const TypeClass *getTypePtr() const {
503
41.6k
    return cast<TypeClass>(Base::getTypePtr());
504
41.6k
  }
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
200M
  SourceLocation getNameLoc() const {
524
200M
    return this->getLocalData()->NameLoc;
525
200M
  }
526
527
126M
  void setNameLoc(SourceLocation Loc) {
528
126M
    this->getLocalData()->NameLoc = Loc;
529
126M
  }
530
531
94.3M
  SourceRange getLocalSourceRange() const {
532
94.3M
    return SourceRange(getNameLoc(), getNameLoc());
533
94.3M
  }
534
535
9.54M
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
536
9.54M
    setNameLoc(Loc);
537
9.54M
  }
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
985k
  SourceLocation getBuiltinLoc() const {
556
985k
    return getLocalData()->BuiltinRange.getBegin();
557
985k
  }
558
559
13.8M
  void setBuiltinLoc(SourceLocation Loc) {
560
13.8M
    getLocalData()->BuiltinRange = Loc;
561
13.8M
  }
562
563
1.62M
  void expandBuiltinRange(SourceRange Range) {
564
1.62M
    SourceRange &BuiltinRange = getLocalData()->BuiltinRange;
565
1.62M
    if (!BuiltinRange.getBegin().isValid()) {
566
663k
      BuiltinRange = Range;
567
959k
    } else {
568
959k
      BuiltinRange.setBegin(std::min(Range.getBegin(), BuiltinRange.getBegin()));
569
959k
      BuiltinRange.setEnd(std::max(Range.getEnd(), BuiltinRange.getEnd()));
570
959k
    }
571
1.62M
  }
572
573
0
  SourceLocation getNameLoc() const { return getBuiltinLoc(); }
574
575
6.79M
  WrittenBuiltinSpecs& getWrittenBuiltinSpecs() {
576
6.79M
    return *(static_cast<WrittenBuiltinSpecs*>(getExtraLocalData()));
577
6.79M
  }
578
8.87M
  const WrittenBuiltinSpecs& getWrittenBuiltinSpecs() const {
579
8.87M
    return *(static_cast<WrittenBuiltinSpecs*>(getExtraLocalData()));
580
8.87M
  }
581
582
107M
  bool needsExtraLocalData() const {
583
107M
    BuiltinType::Kind bk = getTypePtr()->getKind();
584
107M
    return (bk >= BuiltinType::UShort && 
bk <= BuiltinType::UInt12860.2M
) ||
585
107M
           
(100M
bk >= BuiltinType::Short100M
&&
bk <= BuiltinType::Ibm12845.9M
) ||
586
107M
           
bk == BuiltinType::UChar55.2M
||
bk == BuiltinType::SChar53.8M
;
587
107M
  }
588
589
15.6M
  unsigned getExtraLocalDataSize() const {
590
15.6M
    return needsExtraLocalData() ? 
sizeof(WrittenBuiltinSpecs)6.01M
:
09.64M
;
591
15.6M
  }
592
593
67.3M
  unsigned getExtraLocalDataAlignment() const {
594
67.3M
    return needsExtraLocalData() ? 
alignof(WrittenBuiltinSpecs)31.8M
:
135.4M
;
595
67.3M
  }
596
597
10.8M
  SourceRange getLocalSourceRange() const {
598
10.8M
    return getLocalData()->BuiltinRange;
599
10.8M
  }
600
601
4.12M
  TypeSpecifierSign getWrittenSignSpec() const {
602
4.12M
    if (needsExtraLocalData())
603
4.12M
      return static_cast<TypeSpecifierSign>(getWrittenBuiltinSpecs().Sign);
604
0
    else
605
0
      return TypeSpecifierSign::Unspecified;
606
4.12M
  }
607
608
0
  bool hasWrittenSignSpec() const {
609
0
    return getWrittenSignSpec() != TypeSpecifierSign::Unspecified;
610
0
  }
611
612
292k
  void setWrittenSignSpec(TypeSpecifierSign written) {
613
292k
    if (needsExtraLocalData())
614
292k
      getWrittenBuiltinSpecs().Sign = static_cast<unsigned>(written);
615
292k
  }
616
617
4.12M
  TypeSpecifierWidth getWrittenWidthSpec() const {
618
4.12M
    if (needsExtraLocalData())
619
4.12M
      return static_cast<TypeSpecifierWidth>(getWrittenBuiltinSpecs().Width);
620
0
    else
621
0
      return TypeSpecifierWidth::Unspecified;
622
4.12M
  }
623
624
0
  bool hasWrittenWidthSpec() const {
625
0
    return getWrittenWidthSpec() != TypeSpecifierWidth::Unspecified;
626
0
  }
627
628
292k
  void setWrittenWidthSpec(TypeSpecifierWidth written) {
629
292k
    if (needsExtraLocalData())
630
292k
      getWrittenBuiltinSpecs().Width = static_cast<unsigned>(written);
631
292k
  }
632
633
  TypeSpecifierType getWrittenTypeSpec() const;
634
635
0
  bool hasWrittenTypeSpec() const {
636
0
    return getWrittenTypeSpec() != TST_unspecified;
637
0
  }
638
639
292k
  void setWrittenTypeSpec(TypeSpecifierType written) {
640
292k
    if (needsExtraLocalData())
641
292k
      getWrittenBuiltinSpecs().Type = written;
642
292k
  }
643
644
312k
  bool hasModeAttr() const {
645
312k
    if (needsExtraLocalData())
646
312k
      return getWrittenBuiltinSpecs().ModeAttr;
647
0
    else
648
0
      return false;
649
312k
  }
650
651
292k
  void setModeAttr(bool written) {
652
292k
    if (needsExtraLocalData())
653
292k
      getWrittenBuiltinSpecs().ModeAttr = written;
654
292k
  }
655
656
3.19M
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
657
3.19M
    setBuiltinLoc(Loc);
658
3.19M
    if (needsExtraLocalData()) {
659
1.74M
      WrittenBuiltinSpecs &wbs = getWrittenBuiltinSpecs();
660
1.74M
      wbs.Sign = static_cast<unsigned>(TypeSpecifierSign::Unspecified);
661
1.74M
      wbs.Width = static_cast<unsigned>(TypeSpecifierWidth::Unspecified);
662
1.74M
      wbs.Type = TST_unspecified;
663
1.74M
      wbs.ModeAttr = false;
664
1.74M
    }
665
3.19M
  }
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
0
  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
3.24k
  TypedefNameDecl *getTypedefNameDecl() const {
684
3.24k
    return getTypePtr()->getDecl();
685
3.24k
  }
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.55k
  TagDecl *getDecl() const { return getTypePtr()->getDecl(); }
721
722
  /// True if the tag was defined in this type specifier.
723
  bool isDefinition() const;
724
};
725
726
/// Wrapper for source info for record types.
727
class RecordTypeLoc : public InheritingConcreteTypeLoc<TagTypeLoc,
728
                                                       RecordTypeLoc,
729
                                                       RecordType> {
730
public:
731
47
  RecordDecl *getDecl() const { return getTypePtr()->getDecl(); }
732
};
733
734
/// Wrapper for source info for enum types.
735
class EnumTypeLoc : public InheritingConcreteTypeLoc<TagTypeLoc,
736
                                                     EnumTypeLoc,
737
                                                     EnumType> {
738
public:
739
0
  EnumDecl *getDecl() const { return getTypePtr()->getDecl(); }
740
};
741
742
/// Wrapper for template type parameters.
743
class TemplateTypeParmTypeLoc :
744
    public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
745
                                     TemplateTypeParmTypeLoc,
746
                                     TemplateTypeParmType> {
747
public:
748
400
  TemplateTypeParmDecl *getDecl() const { return getTypePtr()->getDecl(); }
749
};
750
751
struct ObjCTypeParamTypeLocInfo {
752
  SourceLocation NameLoc;
753
};
754
755
/// ProtocolLAngleLoc, ProtocolRAngleLoc, and the source locations for
756
/// protocol qualifiers are stored after Info.
757
class ObjCTypeParamTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc,
758
                                     ObjCTypeParamTypeLoc,
759
                                     ObjCTypeParamType,
760
                                     ObjCTypeParamTypeLocInfo> {
761
  // SourceLocations are stored after Info, one for each protocol qualifier.
762
3.59k
  SourceLocation *getProtocolLocArray() const {
763
3.59k
    return (SourceLocation*)this->getExtraLocalData() + 2;
764
3.59k
  }
765
766
public:
767
5
  ObjCTypeParamDecl *getDecl() const { return getTypePtr()->getDecl(); }
768
769
45.7k
  SourceLocation getNameLoc() const {
770
45.7k
    return this->getLocalData()->NameLoc;
771
45.7k
  }
772
773
129k
  void setNameLoc(SourceLocation Loc) {
774
129k
    this->getLocalData()->NameLoc = Loc;
775
129k
  }
776
777
38
  SourceLocation getProtocolLAngleLoc() const {
778
38
    return getNumProtocols()  ?
779
38
      *((SourceLocation*)this->getExtraLocalData()) :
780
38
      
SourceLocation()0
;
781
38
  }
782
783
3.55k
  void setProtocolLAngleLoc(SourceLocation Loc) {
784
3.55k
    *((SourceLocation*)this->getExtraLocalData()) = Loc;
785
3.55k
  }
786
787
45.8k
  SourceLocation getProtocolRAngleLoc() const {
788
45.8k
    return getNumProtocols()  ?
789
2.20k
      *((SourceLocation*)this->getExtraLocalData() + 1) :
790
45.8k
      
SourceLocation()43.6k
;
791
45.8k
  }
792
793
3.55k
  void setProtocolRAngleLoc(SourceLocation Loc) {
794
3.55k
    *((SourceLocation*)this->getExtraLocalData() + 1) = Loc;
795
3.55k
  }
796
797
324k
  unsigned getNumProtocols() const {
798
324k
    return this->getTypePtr()->getNumProtocols();
799
324k
  }
800
801
39
  SourceLocation getProtocolLoc(unsigned i) const {
802
39
    assert(i < getNumProtocols() && "Index is out of bounds!");
803
0
    return getProtocolLocArray()[i];
804
39
  }
805
806
3.56k
  void setProtocolLoc(unsigned i, SourceLocation Loc) {
807
3.56k
    assert(i < getNumProtocols() && "Index is out of bounds!");
808
0
    getProtocolLocArray()[i] = Loc;
809
3.56k
  }
810
811
0
  ObjCProtocolDecl *getProtocol(unsigned i) const {
812
0
    assert(i < getNumProtocols() && "Index is out of bounds!");
813
0
    return *(this->getTypePtr()->qual_begin() + i);
814
0
  }
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
131k
  unsigned getExtraLocalDataSize() const {
823
131k
    if (!this->getNumProtocols()) 
return 0128k
;
824
    // When there are protocol qualifers, we have LAngleLoc and RAngleLoc
825
    // as well.
826
3.55k
    return (this->getNumProtocols() + 2) * sizeof(SourceLocation) ;
827
131k
  }
828
829
365k
  unsigned getExtraLocalDataAlignment() const {
830
365k
    return alignof(SourceLocation);
831
365k
  }
832
833
45.7k
  SourceRange getLocalSourceRange() const {
834
45.7k
    SourceLocation start = getNameLoc();
835
45.7k
    SourceLocation end = getProtocolRAngleLoc();
836
45.7k
    if (end.isInvalid()) 
return SourceRange(start, start)43.6k
;
837
2.16k
    return SourceRange(start, end);
838
45.7k
  }
839
};
840
841
/// Wrapper for substituted template type parameters.
842
class SubstTemplateTypeParmTypeLoc :
843
    public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
844
                                     SubstTemplateTypeParmTypeLoc,
845
                                     SubstTemplateTypeParmType> {
846
};
847
848
  /// Wrapper for substituted template type parameters.
849
class SubstTemplateTypeParmPackTypeLoc :
850
    public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
851
                                     SubstTemplateTypeParmPackTypeLoc,
852
                                     SubstTemplateTypeParmPackType> {
853
};
854
855
struct AttributedLocInfo {
856
  const Attr *TypeAttr;
857
};
858
859
/// Type source information for an attributed type.
860
class AttributedTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc,
861
                                                 AttributedTypeLoc,
862
                                                 AttributedType,
863
                                                 AttributedLocInfo> {
864
public:
865
340
  attr::Kind getAttrKind() const {
866
340
    return getTypePtr()->getAttrKind();
867
340
  }
868
869
23
  bool isQualifier() const {
870
23
    return getTypePtr()->isQualifier();
871
23
  }
872
873
  /// The modified type, which is generally canonically different from
874
  /// the attribute type.
875
  ///    int main(int, char**) __attribute__((noreturn))
876
  ///    ~~~     ~~~~~~~~~~~~~
877
1.76M
  TypeLoc getModifiedLoc() const {
878
1.76M
    return getInnerTypeLoc();
879
1.76M
  }
880
881
  /// The type attribute.
882
1.64M
  const Attr *getAttr() const {
883
1.64M
    return getLocalData()->TypeAttr;
884
1.64M
  }
885
3.23M
  void setAttr(const Attr *A) {
886
3.23M
    getLocalData()->TypeAttr = A;
887
3.23M
  }
888
889
14.7k
  template<typename T> const T *getAttrAs() {
890
14.7k
    return dyn_cast_or_null<T>(getAttr());
891
14.7k
  }
clang::LifetimeBoundAttr const* clang::AttributedTypeLoc::getAttrAs<clang::LifetimeBoundAttr>()
Line
Count
Source
889
14.3k
  template<typename T> const T *getAttrAs() {
890
14.3k
    return dyn_cast_or_null<T>(getAttr());
891
14.3k
  }
clang::BTFTypeTagAttr const* clang::AttributedTypeLoc::getAttrAs<clang::BTFTypeTagAttr>()
Line
Count
Source
889
95
  template<typename T> const T *getAttrAs() {
890
95
    return dyn_cast_or_null<T>(getAttr());
891
95
  }
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
3.84k
  void initializeLocal(ASTContext &Context, SourceLocation loc) {
896
3.84k
    setAttr(nullptr);
897
3.84k
  }
898
899
14.8M
  QualType getInnerType() const {
900
14.8M
    return getTypePtr()->getModifiedType();
901
14.8M
  }
902
};
903
904
struct ObjCObjectTypeLocInfo {
905
  SourceLocation TypeArgsLAngleLoc;
906
  SourceLocation TypeArgsRAngleLoc;
907
  SourceLocation ProtocolLAngleLoc;
908
  SourceLocation ProtocolRAngleLoc;
909
  bool HasBaseTypeAsWritten;
910
};
911
912
// A helper class for defining ObjC TypeLocs that can qualified with
913
// protocols.
914
//
915
// TypeClass basically has to be either ObjCInterfaceType or
916
// ObjCObjectPointerType.
917
class ObjCObjectTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc,
918
                                                 ObjCObjectTypeLoc,
919
                                                 ObjCObjectType,
920
                                                 ObjCObjectTypeLocInfo> {
921
  // TypeSourceInfo*'s are stored after Info, one for each type argument.
922
192k
  TypeSourceInfo **getTypeArgLocArray() const {
923
192k
    return (TypeSourceInfo**)this->getExtraLocalData();
924
192k
  }
925
926
  // SourceLocations are stored after the type argument information, one for
927
  // each Protocol.
928
23.2k
  SourceLocation *getProtocolLocArray() const {
929
23.2k
    return (SourceLocation*)(getTypeArgLocArray() + getNumTypeArgs());
930
23.2k
  }
931
932
public:
933
67.2k
  SourceLocation getTypeArgsLAngleLoc() const {
934
67.2k
    return this->getLocalData()->TypeArgsLAngleLoc;
935
67.2k
  }
936
937
207k
  void setTypeArgsLAngleLoc(SourceLocation Loc) {
938
207k
    this->getLocalData()->TypeArgsLAngleLoc = Loc;
939
207k
  }
940
941
58.9k
  SourceLocation getTypeArgsRAngleLoc() const {
942
58.9k
    return this->getLocalData()->TypeArgsRAngleLoc;
943
58.9k
  }
944
945
207k
  void setTypeArgsRAngleLoc(SourceLocation Loc) {
946
207k
    this->getLocalData()->TypeArgsRAngleLoc = Loc;
947
207k
  }
948
949
2.40M
  unsigned getNumTypeArgs() const {
950
2.40M
    return this->getTypePtr()->getTypeArgsAsWritten().size();
951
2.40M
  }
952
953
9.06k
  TypeSourceInfo *getTypeArgTInfo(unsigned i) const {
954
9.06k
    assert(i < getNumTypeArgs() && "Index is out of bounds!");
955
0
    return getTypeArgLocArray()[i];
956
9.06k
  }
957
958
160k
  void setTypeArgTInfo(unsigned i, TypeSourceInfo *TInfo) {
959
160k
    assert(i < getNumTypeArgs() && "Index is out of bounds!");
960
0
    getTypeArgLocArray()[i] = TInfo;
961
160k
  }
962
963
14.4k
  SourceLocation getProtocolLAngleLoc() const {
964
14.4k
    return this->getLocalData()->ProtocolLAngleLoc;
965
14.4k
  }
966
967
207k
  void setProtocolLAngleLoc(SourceLocation Loc) {
968
207k
    this->getLocalData()->ProtocolLAngleLoc = Loc;
969
207k
  }
970
971
67.2k
  SourceLocation getProtocolRAngleLoc() const {
972
67.2k
    return this->getLocalData()->ProtocolRAngleLoc;
973
67.2k
  }
974
975
207k
  void setProtocolRAngleLoc(SourceLocation Loc) {
976
207k
    this->getLocalData()->ProtocolRAngleLoc = Loc;
977
207k
  }
978
979
2.12M
  unsigned getNumProtocols() const {
980
2.12M
    return this->getTypePtr()->getNumProtocols();
981
2.12M
  }
982
983
1.71k
  SourceLocation getProtocolLoc(unsigned i) const {
984
1.71k
    assert(i < getNumProtocols() && "Index is out of bounds!");
985
0
    return getProtocolLocArray()[i];
986
1.71k
  }
987
988
21.5k
  void setProtocolLoc(unsigned i, SourceLocation Loc) {
989
21.5k
    assert(i < getNumProtocols() && "Index is out of bounds!");
990
0
    getProtocolLocArray()[i] = Loc;
991
21.5k
  }
992
993
68
  ObjCProtocolDecl *getProtocol(unsigned i) const {
994
68
    assert(i < getNumProtocols() && "Index is out of bounds!");
995
0
    return *(this->getTypePtr()->qual_begin() + i);
996
68
  }
997
998
999
17
  ArrayRef<SourceLocation> getProtocolLocs() const {
1000
17
    return llvm::makeArrayRef(getProtocolLocArray(), getNumProtocols());
1001
17
  }
1002
1003
5.88k
  bool hasBaseTypeAsWritten() const {
1004
5.88k
    return getLocalData()->HasBaseTypeAsWritten;
1005
5.88k
  }
1006
1007
207k
  void setHasBaseTypeAsWritten(bool HasBaseType) {
1008
207k
    getLocalData()->HasBaseTypeAsWritten = HasBaseType;
1009
207k
  }
1010
1011
153k
  TypeLoc getBaseLoc() const {
1012
153k
    return getInnerTypeLoc();
1013
153k
  }
1014
1015
61.4k
  SourceRange getLocalSourceRange() const {
1016
61.4k
    SourceLocation start = getTypeArgsLAngleLoc();
1017
61.4k
    if (start.isInvalid())
1018
8.59k
      start = getProtocolLAngleLoc();
1019
61.4k
    SourceLocation end = getProtocolRAngleLoc();
1020
61.4k
    if (end.isInvalid())
1021
53.0k
      end = getTypeArgsRAngleLoc();
1022
61.4k
    return SourceRange(start, end);
1023
61.4k
  }
1024
1025
  void initializeLocal(ASTContext &Context, SourceLocation Loc);
1026
1027
1.86M
  unsigned getExtraLocalDataSize() const {
1028
1.86M
    return this->getNumTypeArgs() * sizeof(TypeSourceInfo *)
1029
1.86M
         + this->getNumProtocols() * sizeof(SourceLocation);
1030
1.86M
  }
1031
1032
3.39M
  unsigned getExtraLocalDataAlignment() const {
1033
3.39M
    static_assert(alignof(ObjCObjectTypeLoc) >= alignof(TypeSourceInfo *),
1034
3.39M
                  "not enough alignment for tail-allocated data");
1035
3.39M
    return alignof(TypeSourceInfo *);
1036
3.39M
  }
1037
1038
2.14M
  QualType getInnerType() const {
1039
2.14M
    return getTypePtr()->getBaseType();
1040
2.14M
  }
1041
};
1042
1043
struct ObjCInterfaceLocInfo {
1044
  SourceLocation NameLoc;
1045
  SourceLocation NameEndLoc;
1046
};
1047
1048
/// Wrapper for source info for ObjC interfaces.
1049
class ObjCInterfaceTypeLoc : public ConcreteTypeLoc<ObjCObjectTypeLoc,
1050
                                                    ObjCInterfaceTypeLoc,
1051
                                                    ObjCInterfaceType,
1052
                                                    ObjCInterfaceLocInfo> {
1053
public:
1054
393
  ObjCInterfaceDecl *getIFaceDecl() const {
1055
393
    return getTypePtr()->getDecl();
1056
393
  }
1057
1058
1.58M
  SourceLocation getNameLoc() const {
1059
1.58M
    return getLocalData()->NameLoc;
1060
1.58M
  }
1061
1062
1.36M
  void setNameLoc(SourceLocation Loc) {
1063
1.36M
    getLocalData()->NameLoc = Loc;
1064
1.36M
  }
1065
1066
1.54M
  SourceRange getLocalSourceRange() const {
1067
1.54M
    return SourceRange(getNameLoc(), getNameEndLoc());
1068
1.54M
  }
1069
1070
1.54M
  SourceLocation getNameEndLoc() const {
1071
1.54M
    return getLocalData()->NameEndLoc;
1072
1.54M
  }
1073
1074
1.34M
  void setNameEndLoc(SourceLocation Loc) {
1075
1.34M
    getLocalData()->NameEndLoc = Loc;
1076
1.34M
  }
1077
1078
336k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1079
336k
    setNameLoc(Loc);
1080
336k
    setNameEndLoc(Loc);
1081
336k
  }
1082
};
1083
1084
struct MacroQualifiedLocInfo {
1085
  SourceLocation ExpansionLoc;
1086
};
1087
1088
class MacroQualifiedTypeLoc
1089
    : public ConcreteTypeLoc<UnqualTypeLoc, MacroQualifiedTypeLoc,
1090
                             MacroQualifiedType, MacroQualifiedLocInfo> {
1091
public:
1092
2
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1093
2
    setExpansionLoc(Loc);
1094
2
  }
1095
1096
160k
  TypeLoc getInnerLoc() const { return getInnerTypeLoc(); }
1097
1098
23
  const IdentifierInfo *getMacroIdentifier() const {
1099
23
    return getTypePtr()->getMacroIdentifier();
1100
23
  }
1101
1102
7.18k
  SourceLocation getExpansionLoc() const {
1103
7.18k
    return this->getLocalData()->ExpansionLoc;
1104
7.18k
  }
1105
1106
211k
  void setExpansionLoc(SourceLocation Loc) {
1107
211k
    this->getLocalData()->ExpansionLoc = Loc;
1108
211k
  }
1109
1110
896k
  QualType getInnerType() const { return getTypePtr()->getUnderlyingType(); }
1111
1112
419
  SourceRange getLocalSourceRange() const {
1113
419
    return getInnerLoc().getLocalSourceRange();
1114
419
  }
1115
};
1116
1117
struct ParenLocInfo {
1118
  SourceLocation LParenLoc;
1119
  SourceLocation RParenLoc;
1120
};
1121
1122
class ParenTypeLoc
1123
  : public ConcreteTypeLoc<UnqualTypeLoc, ParenTypeLoc, ParenType,
1124
                           ParenLocInfo> {
1125
public:
1126
130k
  SourceLocation getLParenLoc() const {
1127
130k
    return this->getLocalData()->LParenLoc;
1128
130k
  }
1129
1130
130k
  SourceLocation getRParenLoc() const {
1131
130k
    return this->getLocalData()->RParenLoc;
1132
130k
  }
1133
1134
328k
  void setLParenLoc(SourceLocation Loc) {
1135
328k
    this->getLocalData()->LParenLoc = Loc;
1136
328k
  }
1137
1138
328k
  void setRParenLoc(SourceLocation Loc) {
1139
328k
    this->getLocalData()->RParenLoc = Loc;
1140
328k
  }
1141
1142
96.3k
  SourceRange getLocalSourceRange() const {
1143
96.3k
    return SourceRange(getLParenLoc(), getRParenLoc());
1144
96.3k
  }
1145
1146
3.56k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1147
3.56k
    setLParenLoc(Loc);
1148
3.56k
    setRParenLoc(Loc);
1149
3.56k
  }
1150
1151
49.7k
  TypeLoc getInnerLoc() const {
1152
49.7k
    return getInnerTypeLoc();
1153
49.7k
  }
1154
1155
1.76M
  QualType getInnerType() const {
1156
1.76M
    return this->getTypePtr()->getInnerType();
1157
1.76M
  }
1158
};
1159
1160
4.11M
inline TypeLoc TypeLoc::IgnoreParens() const {
1161
4.11M
  if (ParenTypeLoc::isKind(*this))
1162
172
    return IgnoreParensImpl(*this);
1163
4.11M
  return *this;
1164
4.11M
}
1165
1166
struct AdjustedLocInfo {}; // Nothing.
1167
1168
class AdjustedTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc, AdjustedTypeLoc,
1169
                                               AdjustedType, AdjustedLocInfo> {
1170
public:
1171
2.13k
  TypeLoc getOriginalLoc() const {
1172
2.13k
    return getInnerTypeLoc();
1173
2.13k
  }
1174
1175
2.36k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1176
    // do nothing
1177
2.36k
  }
1178
1179
25.2k
  QualType getInnerType() const {
1180
    // The inner type is the undecayed type, since that's what we have source
1181
    // location information for.
1182
25.2k
    return getTypePtr()->getOriginalType();
1183
25.2k
  }
1184
1185
1.07k
  SourceRange getLocalSourceRange() const { return {}; }
1186
1187
19.3k
  unsigned getLocalDataSize() const {
1188
    // sizeof(AdjustedLocInfo) is 1, but we don't need its address to be unique
1189
    // anyway.  TypeLocBuilder can't handle data sizes of 1.
1190
19.3k
    return 0;  // No data.
1191
19.3k
  }
1192
};
1193
1194
/// Wrapper for source info for pointers decayed from arrays and
1195
/// functions.
1196
class DecayedTypeLoc : public InheritingConcreteTypeLoc<
1197
                           AdjustedTypeLoc, DecayedTypeLoc, DecayedType> {
1198
};
1199
1200
struct PointerLikeLocInfo {
1201
  SourceLocation StarLoc;
1202
};
1203
1204
/// A base class for
1205
template <class Derived, class TypeClass, class LocalData = PointerLikeLocInfo>
1206
class PointerLikeTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc, Derived,
1207
                                                  TypeClass, LocalData> {
1208
public:
1209
11.5M
  SourceLocation getSigilLoc() const {
1210
11.5M
    return this->getLocalData()->StarLoc;
1211
11.5M
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1209
4.22M
  SourceLocation getSigilLoc() const {
1210
4.22M
    return this->getLocalData()->StarLoc;
1211
4.22M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1209
67.5k
  SourceLocation getSigilLoc() const {
1210
67.5k
    return this->getLocalData()->StarLoc;
1211
67.5k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getSigilLoc() const
Line
Count
Source
1209
64.7k
  SourceLocation getSigilLoc() const {
1210
64.7k
    return this->getLocalData()->StarLoc;
1211
64.7k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1209
1.10M
  SourceLocation getSigilLoc() const {
1210
1.10M
    return this->getLocalData()->StarLoc;
1211
1.10M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1209
6.04M
  SourceLocation getSigilLoc() const {
1210
6.04M
    return this->getLocalData()->StarLoc;
1211
6.04M
  }
1212
1213
13.0M
  void setSigilLoc(SourceLocation Loc) {
1214
13.0M
    this->getLocalData()->StarLoc = Loc;
1215
13.0M
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1213
8.21M
  void setSigilLoc(SourceLocation Loc) {
1214
8.21M
    this->getLocalData()->StarLoc = Loc;
1215
8.21M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1213
61.8k
  void setSigilLoc(SourceLocation Loc) {
1214
61.8k
    this->getLocalData()->StarLoc = Loc;
1215
61.8k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1213
52.0k
  void setSigilLoc(SourceLocation Loc) {
1214
52.0k
    this->getLocalData()->StarLoc = Loc;
1215
52.0k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1213
1.23M
  void setSigilLoc(SourceLocation Loc) {
1214
1.23M
    this->getLocalData()->StarLoc = Loc;
1215
1.23M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1213
3.53M
  void setSigilLoc(SourceLocation Loc) {
1214
3.53M
    this->getLocalData()->StarLoc = Loc;
1215
3.53M
  }
1216
1217
2.36M
  TypeLoc getPointeeLoc() const {
1218
2.36M
    return this->getInnerTypeLoc();
1219
2.36M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1217
2.03k
  TypeLoc getPointeeLoc() const {
1218
2.03k
    return this->getInnerTypeLoc();
1219
2.03k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getPointeeLoc() const
Line
Count
Source
1217
1.97k
  TypeLoc getPointeeLoc() const {
1218
1.97k
    return this->getInnerTypeLoc();
1219
1.97k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1217
53.0k
  TypeLoc getPointeeLoc() const {
1218
53.0k
    return this->getInnerTypeLoc();
1219
53.0k
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1217
1.18M
  TypeLoc getPointeeLoc() const {
1218
1.18M
    return this->getInnerTypeLoc();
1219
1.18M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1217
1.12M
  TypeLoc getPointeeLoc() const {
1218
1.12M
    return this->getInnerTypeLoc();
1219
1.12M
  }
1220
1221
4.22M
  SourceRange getLocalSourceRange() const {
1222
4.22M
    return SourceRange(getSigilLoc(), getSigilLoc());
1223
4.22M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1221
32.8k
  SourceRange getLocalSourceRange() const {
1222
32.8k
    return SourceRange(getSigilLoc(), getSigilLoc());
1223
32.8k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1221
532k
  SourceRange getLocalSourceRange() const {
1222
532k
    return SourceRange(getSigilLoc(), getSigilLoc());
1223
532k
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1221
1.58M
  SourceRange getLocalSourceRange() const {
1222
1.58M
    return SourceRange(getSigilLoc(), getSigilLoc());
1223
1.58M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1221
2.06M
  SourceRange getLocalSourceRange() const {
1222
2.06M
    return SourceRange(getSigilLoc(), getSigilLoc());
1223
2.06M
  }
1224
1225
1.31M
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1226
1.31M
    setSigilLoc(Loc);
1227
1.31M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1225
946
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1226
946
    setSigilLoc(Loc);
1227
946
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1225
59.9k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1226
59.9k
    setSigilLoc(Loc);
1227
59.9k
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1225
541k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1226
541k
    setSigilLoc(Loc);
1227
541k
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1225
712k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1226
712k
    setSigilLoc(Loc);
1227
712k
  }
1228
1229
48.0M
  QualType getInnerType() const {
1230
48.0M
    return this->getTypePtr()->getPointeeType();
1231
48.0M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getInnerType() const
Line
Count
Source
1229
323k
  QualType getInnerType() const {
1230
323k
    return this->getTypePtr()->getPointeeType();
1231
323k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getInnerType() const
Line
Count
Source
1229
410k
  QualType getInnerType() const {
1230
410k
    return this->getTypePtr()->getPointeeType();
1231
410k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getInnerType() const
Line
Count
Source
1229
6.26M
  QualType getInnerType() const {
1230
6.26M
    return this->getTypePtr()->getPointeeType();
1231
6.26M
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getInnerType() const
Line
Count
Source
1229
41.0M
  QualType getInnerType() const {
1230
41.0M
    return this->getTypePtr()->getPointeeType();
1231
41.0M
  }
1232
};
1233
1234
/// Wrapper for source info for pointers.
1235
class PointerTypeLoc : public PointerLikeTypeLoc<PointerTypeLoc,
1236
                                                 PointerType> {
1237
public:
1238
280k
  SourceLocation getStarLoc() const {
1239
280k
    return getSigilLoc();
1240
280k
  }
1241
1242
7.28M
  void setStarLoc(SourceLocation Loc) {
1243
7.28M
    setSigilLoc(Loc);
1244
7.28M
  }
1245
};
1246
1247
/// Wrapper for source info for block pointers.
1248
class BlockPointerTypeLoc : public PointerLikeTypeLoc<BlockPointerTypeLoc,
1249
                                                      BlockPointerType> {
1250
public:
1251
1.84k
  SourceLocation getCaretLoc() const {
1252
1.84k
    return getSigilLoc();
1253
1.84k
  }
1254
1255
60.9k
  void setCaretLoc(SourceLocation Loc) {
1256
60.9k
    setSigilLoc(Loc);
1257
60.9k
  }
1258
};
1259
1260
struct MemberPointerLocInfo : public PointerLikeLocInfo {
1261
  TypeSourceInfo *ClassTInfo;
1262
};
1263
1264
/// Wrapper for source info for member pointers.
1265
class MemberPointerTypeLoc : public PointerLikeTypeLoc<MemberPointerTypeLoc,
1266
                                                       MemberPointerType,
1267
                                                       MemberPointerLocInfo> {
1268
public:
1269
64.2k
  SourceLocation getStarLoc() const {
1270
64.2k
    return getSigilLoc();
1271
64.2k
  }
1272
1273
32.8k
  void setStarLoc(SourceLocation Loc) {
1274
32.8k
    setSigilLoc(Loc);
1275
32.8k
  }
1276
1277
32.7k
  const Type *getClass() const {
1278
32.7k
    return getTypePtr()->getClass();
1279
32.7k
  }
1280
1281
65.5k
  TypeSourceInfo *getClassTInfo() const {
1282
65.5k
    return getLocalData()->ClassTInfo;
1283
65.5k
  }
1284
1285
52.0k
  void setClassTInfo(TypeSourceInfo* TI) {
1286
52.0k
    getLocalData()->ClassTInfo = TI;
1287
52.0k
  }
1288
1289
18.7k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1290
18.7k
    setSigilLoc(Loc);
1291
18.7k
    setClassTInfo(nullptr);
1292
18.7k
  }
1293
1294
62.7k
  SourceRange getLocalSourceRange() const {
1295
62.7k
    if (TypeSourceInfo *TI = getClassTInfo())
1296
42.5k
      return SourceRange(TI->getTypeLoc().getBeginLoc(), getStarLoc());
1297
20.1k
    else
1298
20.1k
      return SourceRange(getStarLoc());
1299
62.7k
  }
1300
};
1301
1302
/// Wraps an ObjCPointerType with source location information.
1303
class ObjCObjectPointerTypeLoc :
1304
    public PointerLikeTypeLoc<ObjCObjectPointerTypeLoc,
1305
                              ObjCObjectPointerType> {
1306
public:
1307
39.1k
  SourceLocation getStarLoc() const {
1308
39.1k
    return getSigilLoc();
1309
39.1k
  }
1310
1311
1.17M
  void setStarLoc(SourceLocation Loc) {
1312
1.17M
    setSigilLoc(Loc);
1313
1.17M
  }
1314
};
1315
1316
class ReferenceTypeLoc : public PointerLikeTypeLoc<ReferenceTypeLoc,
1317
                                                   ReferenceType> {
1318
public:
1319
25.0M
  QualType getInnerType() const {
1320
25.0M
    return getTypePtr()->getPointeeTypeAsWritten();
1321
25.0M
  }
1322
};
1323
1324
class LValueReferenceTypeLoc :
1325
    public InheritingConcreteTypeLoc<ReferenceTypeLoc,
1326
                                     LValueReferenceTypeLoc,
1327
                                     LValueReferenceType> {
1328
public:
1329
131k
  SourceLocation getAmpLoc() const {
1330
131k
    return getSigilLoc();
1331
131k
  }
1332
1333
1.66M
  void setAmpLoc(SourceLocation Loc) {
1334
1.66M
    setSigilLoc(Loc);
1335
1.66M
  }
1336
};
1337
1338
class RValueReferenceTypeLoc :
1339
    public InheritingConcreteTypeLoc<ReferenceTypeLoc,
1340
                                     RValueReferenceTypeLoc,
1341
                                     RValueReferenceType> {
1342
public:
1343
17.4k
  SourceLocation getAmpAmpLoc() const {
1344
17.4k
    return getSigilLoc();
1345
17.4k
  }
1346
1347
275k
  void setAmpAmpLoc(SourceLocation Loc) {
1348
275k
    setSigilLoc(Loc);
1349
275k
  }
1350
};
1351
1352
struct FunctionLocInfo {
1353
  SourceLocation LocalRangeBegin;
1354
  SourceLocation LParenLoc;
1355
  SourceLocation RParenLoc;
1356
  SourceLocation LocalRangeEnd;
1357
};
1358
1359
/// Wrapper for source info for functions.
1360
class FunctionTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc,
1361
                                               FunctionTypeLoc,
1362
                                               FunctionType,
1363
                                               FunctionLocInfo> {
1364
141M
  bool hasExceptionSpec() const {
1365
141M
    if (auto *FPT = dyn_cast<FunctionProtoType>(getTypePtr())) {
1366
141M
      return FPT->hasExceptionSpec();
1367
141M
    }
1368
497k
    return false;
1369
141M
  }
1370
1371
2.16M
  SourceRange *getExceptionSpecRangePtr() const {
1372
2.16M
    assert(hasExceptionSpec() && "No exception spec range");
1373
    // After the Info comes the ParmVarDecl array, and after that comes the
1374
    // exception specification information.
1375
0
    return (SourceRange *)(getParmArray() + getNumParams());
1376
2.16M
  }
1377
1378
public:
1379
2.77M
  SourceLocation getLocalRangeBegin() const {
1380
2.77M
    return getLocalData()->LocalRangeBegin;
1381
2.77M
  }
1382
1383
31.6M
  void setLocalRangeBegin(SourceLocation L) {
1384
31.6M
    getLocalData()->LocalRangeBegin = L;
1385
31.6M
  }
1386
1387
2.77M
  SourceLocation getLocalRangeEnd() const {
1388
2.77M
    return getLocalData()->LocalRangeEnd;
1389
2.77M
  }
1390
1391
31.6M
  void setLocalRangeEnd(SourceLocation L) {
1392
31.6M
    getLocalData()->LocalRangeEnd = L;
1393
31.6M
  }
1394
1395
1.45M
  SourceLocation getLParenLoc() const {
1396
1.45M
    return this->getLocalData()->LParenLoc;
1397
1.45M
  }
1398
1399
31.6M
  void setLParenLoc(SourceLocation Loc) {
1400
31.6M
    this->getLocalData()->LParenLoc = Loc;
1401
31.6M
  }
1402
1403
1.43M
  SourceLocation getRParenLoc() const {
1404
1.43M
    return this->getLocalData()->RParenLoc;
1405
1.43M
  }
1406
1407
31.6M
  void setRParenLoc(SourceLocation Loc) {
1408
31.6M
    this->getLocalData()->RParenLoc = Loc;
1409
31.6M
  }
1410
1411
0
  SourceRange getParensRange() const {
1412
0
    return SourceRange(getLParenLoc(), getRParenLoc());
1413
0
  }
1414
1415
1.43M
  SourceRange getExceptionSpecRange() const {
1416
1.43M
    if (hasExceptionSpec())
1417
465k
      return *getExceptionSpecRangePtr();
1418
969k
    return {};
1419
1.43M
  }
1420
1421
30.5M
  void setExceptionSpecRange(SourceRange R) {
1422
30.5M
    if (hasExceptionSpec())
1423
1.70M
      *getExceptionSpecRangePtr() = R;
1424