Coverage Report

Created: 2021-01-19 06:58

/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
1.97G
  TypeLoc() = default;
67
  TypeLoc(QualType ty, void *opaqueData)
68
760M
      : Ty(ty.getAsOpaquePtr()), Data(opaqueData) {}
69
  TypeLoc(const Type *ty, void *opaqueData)
70
73.1M
      : 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.34G
  T castAs() const {
78
1.34G
    assert(T::isKind(*this));
79
1.34G
    T t;
80
1.34G
    TypeLoc& tl = t;
81
1.34G
    tl = *this;
82
1.34G
    return t;
83
1.34G
  }
clang::UnqualTypeLoc clang::TypeLoc::castAs<clang::UnqualTypeLoc>() const
Line
Count
Source
77
93.1M
  T castAs() const {
78
93.1M
    assert(T::isKind(*this));
79
93.1M
    T t;
80
93.1M
    TypeLoc& tl = t;
81
93.1M
    tl = *this;
82
93.1M
    return t;
83
93.1M
  }
clang::TemplateSpecializationTypeLoc clang::TypeLoc::castAs<clang::TemplateSpecializationTypeLoc>() const
Line
Count
Source
77
233M
  T castAs() const {
78
233M
    assert(T::isKind(*this));
79
233M
    T t;
80
233M
    TypeLoc& tl = t;
81
233M
    tl = *this;
82
233M
    return t;
83
233M
  }
clang::QualifiedTypeLoc clang::TypeLoc::castAs<clang::QualifiedTypeLoc>() const
Line
Count
Source
77
35.4M
  T castAs() const {
78
35.4M
    assert(T::isKind(*this));
79
35.4M
    T t;
80
35.4M
    TypeLoc& tl = t;
81
35.4M
    tl = *this;
82
35.4M
    return t;
83
35.4M
  }
clang::AdjustedTypeLoc clang::TypeLoc::castAs<clang::AdjustedTypeLoc>() const
Line
Count
Source
77
69
  T castAs() const {
78
69
    assert(T::isKind(*this));
79
69
    T t;
80
69
    TypeLoc& tl = t;
81
69
    tl = *this;
82
69
    return t;
83
69
  }
clang::DecayedTypeLoc clang::TypeLoc::castAs<clang::DecayedTypeLoc>() const
Line
Count
Source
77
26.7k
  T castAs() const {
78
26.7k
    assert(T::isKind(*this));
79
26.7k
    T t;
80
26.7k
    TypeLoc& tl = t;
81
26.7k
    tl = *this;
82
26.7k
    return t;
83
26.7k
  }
clang::ConstantArrayTypeLoc clang::TypeLoc::castAs<clang::ConstantArrayTypeLoc>() const
Line
Count
Source
77
2.19M
  T castAs() const {
78
2.19M
    assert(T::isKind(*this));
79
2.19M
    T t;
80
2.19M
    TypeLoc& tl = t;
81
2.19M
    tl = *this;
82
2.19M
    return t;
83
2.19M
  }
clang::DependentSizedArrayTypeLoc clang::TypeLoc::castAs<clang::DependentSizedArrayTypeLoc>() const
Line
Count
Source
77
176k
  T castAs() const {
78
176k
    assert(T::isKind(*this));
79
176k
    T t;
80
176k
    TypeLoc& tl = t;
81
176k
    tl = *this;
82
176k
    return t;
83
176k
  }
clang::IncompleteArrayTypeLoc clang::TypeLoc::castAs<clang::IncompleteArrayTypeLoc>() const
Line
Count
Source
77
515k
  T castAs() const {
78
515k
    assert(T::isKind(*this));
79
515k
    T t;
80
515k
    TypeLoc& tl = t;
81
515k
    tl = *this;
82
515k
    return t;
83
515k
  }
clang::VariableArrayTypeLoc clang::TypeLoc::castAs<clang::VariableArrayTypeLoc>() const
Line
Count
Source
77
125k
  T castAs() const {
78
125k
    assert(T::isKind(*this));
79
125k
    T t;
80
125k
    TypeLoc& tl = t;
81
125k
    tl = *this;
82
125k
    return t;
83
125k
  }
clang::AtomicTypeLoc clang::TypeLoc::castAs<clang::AtomicTypeLoc>() const
Line
Count
Source
77
33.4k
  T castAs() const {
78
33.4k
    assert(T::isKind(*this));
79
33.4k
    T t;
80
33.4k
    TypeLoc& tl = t;
81
33.4k
    tl = *this;
82
33.4k
    return t;
83
33.4k
  }
clang::AttributedTypeLoc clang::TypeLoc::castAs<clang::AttributedTypeLoc>() const
Line
Count
Source
77
19.0M
  T castAs() const {
78
19.0M
    assert(T::isKind(*this));
79
19.0M
    T t;
80
19.0M
    TypeLoc& tl = t;
81
19.0M
    tl = *this;
82
19.0M
    return t;
83
19.0M
  }
clang::BlockPointerTypeLoc clang::TypeLoc::castAs<clang::BlockPointerTypeLoc>() const
Line
Count
Source
77
652k
  T castAs() const {
78
652k
    assert(T::isKind(*this));
79
652k
    T t;
80
652k
    TypeLoc& tl = t;
81
652k
    tl = *this;
82
652k
    return t;
83
652k
  }
clang::BuiltinTypeLoc clang::TypeLoc::castAs<clang::BuiltinTypeLoc>() const
Line
Count
Source
77
91.2M
  T castAs() const {
78
91.2M
    assert(T::isKind(*this));
79
91.2M
    T t;
80
91.2M
    TypeLoc& tl = t;
81
91.2M
    tl = *this;
82
91.2M
    return t;
83
91.2M
  }
clang::ComplexTypeLoc clang::TypeLoc::castAs<clang::ComplexTypeLoc>() const
Line
Count
Source
77
89.2k
  T castAs() const {
78
89.2k
    assert(T::isKind(*this));
79
89.2k
    T t;
80
89.2k
    TypeLoc& tl = t;
81
89.2k
    tl = *this;
82
89.2k
    return t;
83
89.2k
  }
clang::DecltypeTypeLoc clang::TypeLoc::castAs<clang::DecltypeTypeLoc>() const
Line
Count
Source
77
2.13M
  T castAs() const {
78
2.13M
    assert(T::isKind(*this));
79
2.13M
    T t;
80
2.13M
    TypeLoc& tl = t;
81
2.13M
    tl = *this;
82
2.13M
    return t;
83
2.13M
  }
clang::AutoTypeLoc clang::TypeLoc::castAs<clang::AutoTypeLoc>() const
Line
Count
Source
77
1.11M
  T castAs() const {
78
1.11M
    assert(T::isKind(*this));
79
1.11M
    T t;
80
1.11M
    TypeLoc& tl = t;
81
1.11M
    tl = *this;
82
1.11M
    return t;
83
1.11M
  }
clang::DeducedTemplateSpecializationTypeLoc clang::TypeLoc::castAs<clang::DeducedTemplateSpecializationTypeLoc>() const
Line
Count
Source
77
26.9k
  T castAs() const {
78
26.9k
    assert(T::isKind(*this));
79
26.9k
    T t;
80
26.9k
    TypeLoc& tl = t;
81
26.9k
    tl = *this;
82
26.9k
    return t;
83
26.9k
  }
clang::DependentAddressSpaceTypeLoc clang::TypeLoc::castAs<clang::DependentAddressSpaceTypeLoc>() const
Line
Count
Source
77
659
  T castAs() const {
78
659
    assert(T::isKind(*this));
79
659
    T t;
80
659
    TypeLoc& tl = t;
81
659
    tl = *this;
82
659
    return t;
83
659
  }
clang::DependentExtIntTypeLoc clang::TypeLoc::castAs<clang::DependentExtIntTypeLoc>() const
Line
Count
Source
77
79
  T castAs() const {
78
79
    assert(T::isKind(*this));
79
79
    T t;
80
79
    TypeLoc& tl = t;
81
79
    tl = *this;
82
79
    return t;
83
79
  }
clang::DependentNameTypeLoc clang::TypeLoc::castAs<clang::DependentNameTypeLoc>() const
Line
Count
Source
77
26.0M
  T castAs() const {
78
26.0M
    assert(T::isKind(*this));
79
26.0M
    T t;
80
26.0M
    TypeLoc& tl = t;
81
26.0M
    tl = *this;
82
26.0M
    return t;
83
26.0M
  }
clang::DependentSizedExtVectorTypeLoc clang::TypeLoc::castAs<clang::DependentSizedExtVectorTypeLoc>() const
Line
Count
Source
77
344
  T castAs() const {
78
344
    assert(T::isKind(*this));
79
344
    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
2.73M
  T castAs() const {
78
2.73M
    assert(T::isKind(*this));
79
2.73M
    T t;
80
2.73M
    TypeLoc& tl = t;
81
2.73M
    tl = *this;
82
2.73M
    return t;
83
2.73M
  }
clang::DependentVectorTypeLoc clang::TypeLoc::castAs<clang::DependentVectorTypeLoc>() const
Line
Count
Source
77
735
  T castAs() const {
78
735
    assert(T::isKind(*this));
79
735
    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.4M
  T castAs() const {
78
19.4M
    assert(T::isKind(*this));
79
19.4M
    T t;
80
19.4M
    TypeLoc& tl = t;
81
19.4M
    tl = *this;
82
19.4M
    return t;
83
19.4M
  }
clang::ExtIntTypeLoc clang::TypeLoc::castAs<clang::ExtIntTypeLoc>() const
Line
Count
Source
77
6.26k
  T castAs() const {
78
6.26k
    assert(T::isKind(*this));
79
6.26k
    T t;
80
6.26k
    TypeLoc& tl = t;
81
6.26k
    tl = *this;
82
6.26k
    return t;
83
6.26k
  }
clang::FunctionNoProtoTypeLoc clang::TypeLoc::castAs<clang::FunctionNoProtoTypeLoc>() const
Line
Count
Source
77
167k
  T castAs() const {
78
167k
    assert(T::isKind(*this));
79
167k
    T t;
80
167k
    TypeLoc& tl = t;
81
167k
    tl = *this;
82
167k
    return t;
83
167k
  }
clang::FunctionProtoTypeLoc clang::TypeLoc::castAs<clang::FunctionProtoTypeLoc>() const
Line
Count
Source
77
102M
  T castAs() const {
78
102M
    assert(T::isKind(*this));
79
102M
    T t;
80
102M
    TypeLoc& tl = t;
81
102M
    tl = *this;
82
102M
    return t;
83
102M
  }
clang::InjectedClassNameTypeLoc clang::TypeLoc::castAs<clang::InjectedClassNameTypeLoc>() const
Line
Count
Source
77
9.91M
  T castAs() const {
78
9.91M
    assert(T::isKind(*this));
79
9.91M
    T t;
80
9.91M
    TypeLoc& tl = t;
81
9.91M
    tl = *this;
82
9.91M
    return t;
83
9.91M
  }
clang::MacroQualifiedTypeLoc clang::TypeLoc::castAs<clang::MacroQualifiedTypeLoc>() const
Line
Count
Source
77
1.17M
  T castAs() const {
78
1.17M
    assert(T::isKind(*this));
79
1.17M
    T t;
80
1.17M
    TypeLoc& tl = t;
81
1.17M
    tl = *this;
82
1.17M
    return t;
83
1.17M
  }
clang::ConstantMatrixTypeLoc clang::TypeLoc::castAs<clang::ConstantMatrixTypeLoc>() const
Line
Count
Source
77
1.43k
  T castAs() const {
78
1.43k
    assert(T::isKind(*this));
79
1.43k
    T t;
80
1.43k
    TypeLoc& tl = t;
81
1.43k
    tl = *this;
82
1.43k
    return t;
83
1.43k
  }
clang::DependentSizedMatrixTypeLoc clang::TypeLoc::castAs<clang::DependentSizedMatrixTypeLoc>() const
Line
Count
Source
77
2.08k
  T castAs() const {
78
2.08k
    assert(T::isKind(*this));
79
2.08k
    T t;
80
2.08k
    TypeLoc& tl = t;
81
2.08k
    tl = *this;
82
2.08k
    return t;
83
2.08k
  }
clang::MemberPointerTypeLoc clang::TypeLoc::castAs<clang::MemberPointerTypeLoc>() const
Line
Count
Source
77
398k
  T castAs() const {
78
398k
    assert(T::isKind(*this));
79
398k
    T t;
80
398k
    TypeLoc& tl = t;
81
398k
    tl = *this;
82
398k
    return t;
83
398k
  }
clang::ObjCObjectPointerTypeLoc clang::TypeLoc::castAs<clang::ObjCObjectPointerTypeLoc>() const
Line
Count
Source
77
13.2M
  T castAs() const {
78
13.2M
    assert(T::isKind(*this));
79
13.2M
    T t;
80
13.2M
    TypeLoc& tl = t;
81
13.2M
    tl = *this;
82
13.2M
    return t;
83
13.2M
  }
clang::ObjCObjectTypeLoc clang::TypeLoc::castAs<clang::ObjCObjectTypeLoc>() const
Line
Count
Source
77
4.37M
  T castAs() const {
78
4.37M
    assert(T::isKind(*this));
79
4.37M
    T t;
80
4.37M
    TypeLoc& tl = t;
81
4.37M
    tl = *this;
82
4.37M
    return t;
83
4.37M
  }
clang::ObjCInterfaceTypeLoc clang::TypeLoc::castAs<clang::ObjCInterfaceTypeLoc>() const
Line
Count
Source
77
17.0M
  T castAs() const {
78
17.0M
    assert(T::isKind(*this));
79
17.0M
    T t;
80
17.0M
    TypeLoc& tl = t;
81
17.0M
    tl = *this;
82
17.0M
    return t;
83
17.0M
  }
clang::ObjCTypeParamTypeLoc clang::TypeLoc::castAs<clang::ObjCTypeParamTypeLoc>() const
Line
Count
Source
77
1.03M
  T castAs() const {
78
1.03M
    assert(T::isKind(*this));
79
1.03M
    T t;
80
1.03M
    TypeLoc& tl = t;
81
1.03M
    tl = *this;
82
1.03M
    return t;
83
1.03M
  }
clang::PackExpansionTypeLoc clang::TypeLoc::castAs<clang::PackExpansionTypeLoc>() const
Line
Count
Source
77
3.52M
  T castAs() const {
78
3.52M
    assert(T::isKind(*this));
79
3.52M
    T t;
80
3.52M
    TypeLoc& tl = t;
81
3.52M
    tl = *this;
82
3.52M
    return t;
83
3.52M
  }
clang::ParenTypeLoc clang::TypeLoc::castAs<clang::ParenTypeLoc>() const
Line
Count
Source
77
3.30M
  T castAs() const {
78
3.30M
    assert(T::isKind(*this));
79
3.30M
    T t;
80
3.30M
    TypeLoc& tl = t;
81
3.30M
    tl = *this;
82
3.30M
    return t;
83
3.30M
  }
clang::PipeTypeLoc clang::TypeLoc::castAs<clang::PipeTypeLoc>() const
Line
Count
Source
77
683
  T castAs() const {
78
683
    assert(T::isKind(*this));
79
683
    T t;
80
683
    TypeLoc& tl = t;
81
683
    tl = *this;
82
683
    return t;
83
683
  }
clang::PointerTypeLoc clang::TypeLoc::castAs<clang::PointerTypeLoc>() const
Line
Count
Source
77
41.0M
  T castAs() const {
78
41.0M
    assert(T::isKind(*this));
79
41.0M
    T t;
80
41.0M
    TypeLoc& tl = t;
81
41.0M
    tl = *this;
82
41.0M
    return t;
83
41.0M
  }
clang::LValueReferenceTypeLoc clang::TypeLoc::castAs<clang::LValueReferenceTypeLoc>() const
Line
Count
Source
77
23.6M
  T castAs() const {
78
23.6M
    assert(T::isKind(*this));
79
23.6M
    T t;
80
23.6M
    TypeLoc& tl = t;
81
23.6M
    tl = *this;
82
23.6M
    return t;
83
23.6M
  }
clang::RValueReferenceTypeLoc clang::TypeLoc::castAs<clang::RValueReferenceTypeLoc>() const
Line
Count
Source
77
6.20M
  T castAs() const {
78
6.20M
    assert(T::isKind(*this));
79
6.20M
    T t;
80
6.20M
    TypeLoc& tl = t;
81
6.20M
    tl = *this;
82
6.20M
    return t;
83
6.20M
  }
clang::SubstTemplateTypeParmPackTypeLoc clang::TypeLoc::castAs<clang::SubstTemplateTypeParmPackTypeLoc>() const
Line
Count
Source
77
442k
  T castAs() const {
78
442k
    assert(T::isKind(*this));
79
442k
    T t;
80
442k
    TypeLoc& tl = t;
81
442k
    tl = *this;
82
442k
    return t;
83
442k
  }
clang::SubstTemplateTypeParmTypeLoc clang::TypeLoc::castAs<clang::SubstTemplateTypeParmTypeLoc>() const
Line
Count
Source
77
65.2M
  T castAs() const {
78
65.2M
    assert(T::isKind(*this));
79
65.2M
    T t;
80
65.2M
    TypeLoc& tl = t;
81
65.2M
    tl = *this;
82
65.2M
    return t;
83
65.2M
  }
clang::EnumTypeLoc clang::TypeLoc::castAs<clang::EnumTypeLoc>() const
Line
Count
Source
77
2.43M
  T castAs() const {
78
2.43M
    assert(T::isKind(*this));
79
2.43M
    T t;
80
2.43M
    TypeLoc& tl = t;
81
2.43M
    tl = *this;
82
2.43M
    return t;
83
2.43M
  }
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
39.0M
    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
124M
  T castAs() const {
78
124M
    assert(T::isKind(*this));
79
124M
    T t;
80
124M
    TypeLoc& tl = t;
81
124M
    tl = *this;
82
124M
    return t;
83
124M
  }
clang::TypeOfExprTypeLoc clang::TypeLoc::castAs<clang::TypeOfExprTypeLoc>() const
Line
Count
Source
77
38.1k
  T castAs() const {
78
38.1k
    assert(T::isKind(*this));
79
38.1k
    T t;
80
38.1k
    TypeLoc& tl = t;
81
38.1k
    tl = *this;
82
38.1k
    return t;
83
38.1k
  }
clang::TypeOfTypeLoc clang::TypeLoc::castAs<clang::TypeOfTypeLoc>() const
Line
Count
Source
77
605
  T castAs() const {
78
605
    assert(T::isKind(*this));
79
605
    T t;
80
605
    TypeLoc& tl = t;
81
605
    tl = *this;
82
605
    return t;
83
605
  }
clang::TypedefTypeLoc clang::TypeLoc::castAs<clang::TypedefTypeLoc>() const
Line
Count
Source
77
334M
  T castAs() const {
78
334M
    assert(T::isKind(*this));
79
334M
    T t;
80
334M
    TypeLoc& tl = t;
81
334M
    tl = *this;
82
334M
    return t;
83
334M
  }
clang::UnaryTransformTypeLoc clang::TypeLoc::castAs<clang::UnaryTransformTypeLoc>() const
Line
Count
Source
77
17.7k
  T castAs() const {
78
17.7k
    assert(T::isKind(*this));
79
17.7k
    T t;
80
17.7k
    TypeLoc& tl = t;
81
17.7k
    tl = *this;
82
17.7k
    return t;
83
17.7k
  }
clang::UnresolvedUsingTypeLoc clang::TypeLoc::castAs<clang::UnresolvedUsingTypeLoc>() const
Line
Count
Source
77
15.9k
  T castAs() const {
78
15.9k
    assert(T::isKind(*this));
79
15.9k
    T t;
80
15.9k
    TypeLoc& tl = t;
81
15.9k
    tl = *this;
82
15.9k
    return t;
83
15.9k
  }
clang::VectorTypeLoc clang::TypeLoc::castAs<clang::VectorTypeLoc>() const
Line
Count
Source
77
3.96M
  T castAs() const {
78
3.96M
    assert(T::isKind(*this));
79
3.96M
    T t;
80
3.96M
    TypeLoc& tl = t;
81
3.96M
    tl = *this;
82
3.96M
    return t;
83
3.96M
  }
clang::ExtVectorTypeLoc clang::TypeLoc::castAs<clang::ExtVectorTypeLoc>() const
Line
Count
Source
77
15.6k
  T castAs() const {
78
15.6k
    assert(T::isKind(*this));
79
15.6k
    T t;
80
15.6k
    TypeLoc& tl = t;
81
15.6k
    tl = *this;
82
15.6k
    return t;
83
15.6k
  }
clang::ArrayTypeLoc clang::TypeLoc::castAs<clang::ArrayTypeLoc>() const
Line
Count
Source
77
372k
  T castAs() const {
78
372k
    assert(T::isKind(*this));
79
372k
    T t;
80
372k
    TypeLoc& tl = t;
81
372k
    tl = *this;
82
372k
    return t;
83
372k
  }
clang::TypeLoc clang::TypeLoc::castAs<clang::TypeLoc>() const
Line
Count
Source
77
5.04M
  T castAs() const {
78
5.04M
    assert(T::isKind(*this));
79
5.04M
    T t;
80
5.04M
    TypeLoc& tl = t;
81
5.04M
    tl = *this;
82
5.04M
    return t;
83
5.04M
  }
clang::DeducedTypeLoc clang::TypeLoc::castAs<clang::DeducedTypeLoc>() const
Line
Count
Source
77
689
  T castAs() const {
78
689
    assert(T::isKind(*this));
79
689
    T t;
80
689
    TypeLoc& tl = t;
81
689
    tl = *this;
82
689
    return t;
83
689
  }
clang::FunctionTypeLoc clang::TypeLoc::castAs<clang::FunctionTypeLoc>() const
Line
Count
Source
77
14.5M
  T castAs() const {
78
14.5M
    assert(T::isKind(*this));
79
14.5M
    T t;
80
14.5M
    TypeLoc& tl = t;
81
14.5M
    tl = *this;
82
14.5M
    return t;
83
14.5M
  }
clang::MatrixTypeLoc clang::TypeLoc::castAs<clang::MatrixTypeLoc>() const
Line
Count
Source
77
436
  T castAs() const {
78
436
    assert(T::isKind(*this));
79
436
    T t;
80
436
    TypeLoc& tl = t;
81
436
    tl = *this;
82
436
    return t;
83
436
  }
clang::ReferenceTypeLoc clang::TypeLoc::castAs<clang::ReferenceTypeLoc>() const
Line
Count
Source
77
4.08k
  T castAs() const {
78
4.08k
    assert(T::isKind(*this));
79
4.08k
    T t;
80
4.08k
    TypeLoc& tl = t;
81
4.08k
    tl = *this;
82
4.08k
    return t;
83
4.08k
  }
clang::TagTypeLoc clang::TypeLoc::castAs<clang::TagTypeLoc>() const
Line
Count
Source
77
1.76M
  T castAs() const {
78
1.76M
    assert(T::isKind(*this));
79
1.76M
    T t;
80
1.76M
    TypeLoc& tl = t;
81
1.76M
    tl = *this;
82
1.76M
    return t;
83
1.76M
  }
clang::TypeSpecTypeLoc clang::TypeLoc::castAs<clang::TypeSpecTypeLoc>() const
Line
Count
Source
77
1.35M
  T castAs() const {
78
1.35M
    assert(T::isKind(*this));
79
1.35M
    T t;
80
1.35M
    TypeLoc& tl = t;
81
1.35M
    tl = *this;
82
1.35M
    return t;
83
1.35M
  }
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
329M
  T getAs() const {
89
329M
    if (!T::isKind(*this))
90
320M
      return {};
91
8.96M
    T t;
92
8.96M
    TypeLoc& tl = t;
93
8.96M
    tl = *this;
94
8.96M
    return t;
95
8.96M
  }
clang::QualifiedTypeLoc clang::TypeLoc::getAs<clang::QualifiedTypeLoc>() const
Line
Count
Source
88
96.8M
  T getAs() const {
89
96.8M
    if (!T::isKind(*this))
90
93.4M
      return {};
91
3.46M
    T t;
92
3.46M
    TypeLoc& tl = t;
93
3.46M
    tl = *this;
94
3.46M
    return t;
95
3.46M
  }
clang::PointerTypeLoc clang::TypeLoc::getAs<clang::PointerTypeLoc>() const
Line
Count
Source
88
14.9k
  T getAs() const {
89
14.9k
    if (!T::isKind(*this))
90
1.41k
      return {};
91
13.5k
    T t;
92
13.5k
    TypeLoc& tl = t;
93
13.5k
    tl = *this;
94
13.5k
    return t;
95
13.5k
  }
clang::ReferenceTypeLoc clang::TypeLoc::getAs<clang::ReferenceTypeLoc>() const
Line
Count
Source
88
1.06k
  T getAs() const {
89
1.06k
    if (!T::isKind(*this))
90
1.04k
      return {};
91
18
    T t;
92
18
    TypeLoc& tl = t;
93
18
    tl = *this;
94
18
    return t;
95
18
  }
clang::BlockPointerTypeLoc clang::TypeLoc::getAs<clang::BlockPointerTypeLoc>() const
Line
Count
Source
88
698
  T getAs() const {
89
698
    if (!T::isKind(*this))
90
601
      return {};
91
97
    T t;
92
97
    TypeLoc& tl = t;
93
97
    tl = *this;
94
97
    return t;
95
97
  }
clang::MemberPointerTypeLoc clang::TypeLoc::getAs<clang::MemberPointerTypeLoc>() const
Line
Count
Source
88
596
  T getAs() const {
89
596
    if (!T::isKind(*this))
90
590
      return {};
91
6
    T t;
92
6
    TypeLoc& tl = t;
93
6
    tl = *this;
94
6
    return t;
95
6
  }
clang::TemplateSpecializationTypeLoc clang::TypeLoc::getAs<clang::TemplateSpecializationTypeLoc>() const
Line
Count
Source
88
51.7k
  T getAs() const {
89
51.7k
    if (!T::isKind(*this))
90
348
      return {};
91
51.3k
    T t;
92
51.3k
    TypeLoc& tl = t;
93
51.3k
    tl = *this;
94
51.3k
    return t;
95
51.3k
  }
clang::FunctionTypeLoc clang::TypeLoc::getAs<clang::FunctionTypeLoc>() const
Line
Count
Source
88
16.8k
  T getAs() const {
89
16.8k
    if (!T::isKind(*this))
90
384
      return {};
91
16.4k
    T t;
92
16.4k
    TypeLoc& tl = t;
93
16.4k
    tl = *this;
94
16.4k
    return t;
95
16.4k
  }
clang::ParenTypeLoc clang::TypeLoc::getAs<clang::ParenTypeLoc>() const
Line
Count
Source
88
14.1M
  T getAs() const {
89
14.1M
    if (!T::isKind(*this))
90
14.1M
      return {};
91
280
    T t;
92
280
    TypeLoc& tl = t;
93
280
    tl = *this;
94
280
    return t;
95
280
  }
clang::AttributedTypeLoc clang::TypeLoc::getAs<clang::AttributedTypeLoc>() const
Line
Count
Source
88
53.6M
  T getAs() const {
89
53.6M
    if (!T::isKind(*this))
90
51.6M
      return {};
91
2.03M
    T t;
92
2.03M
    TypeLoc& tl = t;
93
2.03M
    tl = *this;
94
2.03M
    return t;
95
2.03M
  }
clang::ElaboratedTypeLoc clang::TypeLoc::getAs<clang::ElaboratedTypeLoc>() const
Line
Count
Source
88
14.2M
  T getAs() const {
89
14.2M
    if (!T::isKind(*this))
90
14.2M
      return {};
91
697
    T t;
92
697
    TypeLoc& tl = t;
93
697
    tl = *this;
94
697
    return t;
95
697
  }
clang::AdjustedTypeLoc clang::TypeLoc::getAs<clang::AdjustedTypeLoc>() const
Line
Count
Source
88
37.3M
  T getAs() const {
89
37.3M
    if (!T::isKind(*this))
90
37.3M
      return {};
91
18.4E
    T t;
92
18.4E
    TypeLoc& tl = t;
93
18.4E
    tl = *this;
94
18.4E
    return t;
95
18.4E
  }
clang::MacroQualifiedTypeLoc clang::TypeLoc::getAs<clang::MacroQualifiedTypeLoc>() const
Line
Count
Source
88
37.4M
  T getAs() const {
89
37.4M
    if (!T::isKind(*this))
90
37.3M
      return {};
91
141k
    T t;
92
141k
    TypeLoc& tl = t;
93
141k
    tl = *this;
94
141k
    return t;
95
141k
  }
clang::FunctionProtoTypeLoc clang::TypeLoc::getAs<clang::FunctionProtoTypeLoc>() const
Line
Count
Source
88
3.17M
  T getAs() const {
89
3.17M
    if (!T::isKind(*this))
90
1.36k
      return {};
91
3.17M
    T t;
92
3.17M
    TypeLoc& tl = t;
93
3.17M
    tl = *this;
94
3.17M
    return t;
95
3.17M
  }
clang::AtomicTypeLoc clang::TypeLoc::getAs<clang::AtomicTypeLoc>() const
Line
Count
Source
88
23.4M
  T getAs() const {
89
23.4M
    if (!T::isKind(*this))
90
23.4M
      return {};
91
12
    T t;
92
12
    TypeLoc& tl = t;
93
12
    tl = *this;
94
12
    return t;
95
12
  }
clang::AutoTypeLoc clang::TypeLoc::getAs<clang::AutoTypeLoc>() const
Line
Count
Source
88
203
  T getAs() const {
89
203
    if (!T::isKind(*this))
90
0
      return {};
91
203
    T t;
92
203
    TypeLoc& tl = t;
93
203
    tl = *this;
94
203
    return t;
95
203
  }
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
15
  }
clang::TypedefTypeLoc clang::TypeLoc::getAs<clang::TypedefTypeLoc>() const
Line
Count
Source
88
1.21k
  T getAs() const {
89
1.21k
    if (!T::isKind(*this))
90
1.17k
      return {};
91
31
    T t;
92
31
    TypeLoc& tl = t;
93
31
    tl = *this;
94
31
    return t;
95
31
  }
clang::VariableArrayTypeLoc clang::TypeLoc::getAs<clang::VariableArrayTypeLoc>() const
Line
Count
Source
88
343
  T getAs() const {
89
343
    if (!T::isKind(*this))
90
341
      return {};
91
2
    T t;
92
2
    TypeLoc& tl = t;
93
2
    tl = *this;
94
2
    return t;
95
2
  }
clang::FunctionNoProtoTypeLoc clang::TypeLoc::getAs<clang::FunctionNoProtoTypeLoc>() const
Line
Count
Source
88
212
  T getAs() const {
89
212
    if (!T::isKind(*this))
90
5
      return {};
91
207
    T t;
92
207
    TypeLoc& tl = t;
93
207
    tl = *this;
94
207
    return t;
95
207
  }
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
0
  }
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
10
  }
clang::PackExpansionTypeLoc clang::TypeLoc::getAs<clang::PackExpansionTypeLoc>() const
Line
Count
Source
88
1.99M
  T getAs() const {
89
1.99M
    if (!T::isKind(*this))
90
1.95M
      return {};
91
42.5k
    T t;
92
42.5k
    TypeLoc& tl = t;
93
42.5k
    tl = *this;
94
42.5k
    return t;
95
42.5k
  }
clang::IncompleteArrayTypeLoc clang::TypeLoc::getAs<clang::IncompleteArrayTypeLoc>() const
Line
Count
Source
88
43
  T getAs() const {
89
43
    if (!T::isKind(*this))
90
10
      return {};
91
33
    T t;
92
33
    TypeLoc& tl = t;
93
33
    tl = *this;
94
33
    return t;
95
33
  }
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
1
  }
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
24
  }
clang::DeducedTemplateSpecializationTypeLoc clang::TypeLoc::getAs<clang::DeducedTemplateSpecializationTypeLoc>() const
Line
Count
Source
88
97.1k
  T getAs() const {
89
97.1k
    if (!T::isKind(*this))
90
96.8k
      return {};
91
311
    T t;
92
311
    TypeLoc& tl = t;
93
311
    tl = *this;
94
311
    return t;
95
311
  }
clang::DependentAddressSpaceTypeLoc clang::TypeLoc::getAs<clang::DependentAddressSpaceTypeLoc>() const
Line
Count
Source
88
23.2M
  T getAs() const {
89
23.2M
    if (!T::isKind(*this))
90
23.2M
      return {};
91
0
    T t;
92
0
    TypeLoc& tl = t;
93
0
    tl = *this;
94
0
    return t;
95
0
  }
clang::MatrixTypeLoc clang::TypeLoc::getAs<clang::MatrixTypeLoc>() const
Line
Count
Source
88
23.2M
  T getAs() const {
89
23.2M
    if (!T::isKind(*this))
90
23.2M
      return {};
91
1
    T t;
92
1
    TypeLoc& tl = t;
93
1
    tl = *this;
94
1
    return t;
95
1
  }
clang::ObjCObjectPointerTypeLoc clang::TypeLoc::getAs<clang::ObjCObjectPointerTypeLoc>() const
Line
Count
Source
88
199k
  T getAs() const {
89
199k
    if (!T::isKind(*this))
90
179k
      return {};
91
20.0k
    T t;
92
20.0k
    TypeLoc& tl = t;
93
20.0k
    tl = *this;
94
20.0k
    return t;
95
20.0k
  }
clang::ObjCTypeParamTypeLoc clang::TypeLoc::getAs<clang::ObjCTypeParamTypeLoc>() const
Line
Count
Source
88
199k
  T getAs() const {
89
199k
    if (!T::isKind(*this))
90
197k
      return {};
91
2.33k
    T t;
92
2.33k
    TypeLoc& tl = t;
93
2.33k
    tl = *this;
94
2.33k
    return t;
95
2.33k
  }
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
5
  }
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
0
  }
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.21G
  TypeLocClass getTypeLocClass() const {
116
1.21G
    if (getType().hasLocalQualifiers()) 
return Qualified37.5M
;
117
1.17G
    return (TypeLocClass) getType()->getTypeClass();
118
1.17G
  }
119
120
657M
  bool isNull() const { return !Ty; }
121
365M
  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
4.32G
  QualType getType() const {
133
4.32G
    return QualType::getFromOpaquePtr(Ty);
134
4.32G
  }
135
136
1.49G
  const Type *getTypePtr() const {
137
1.49G
    return QualType::getFromOpaquePtr(Ty).getTypePtr();
138
1.49G
  }
139
140
  /// Get the pointer where source information is stored.
141
20.9M
  void *getOpaqueData() const {
142
20.9M
    return Data;
143
20.9M
  }
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
14.6M
  SourceRange getSourceRange() const LLVM_READONLY {
153
14.6M
    return SourceRange(getBeginLoc(), getEndLoc());
154
14.6M
  }
155
156
157
  /// Get the local source range.
158
211M
  SourceRange getLocalSourceRange() const {
159
211M
    return getLocalSourceRangeImpl(*this);
160
211M
  }
161
162
  /// Returns the size of the type source info data block.
163
14.2M
  unsigned getFullDataSize() const {
164
14.2M
    return getFullDataSizeForType(getType());
165
14.2M
  }
166
167
  /// Get the next TypeLoc pointed by this TypeLoc, e.g for "int*" the
168
  /// TypeLoc is a PointerLoc and next TypeLoc is for "int".
169
347M
  TypeLoc getNextTypeLoc() const {
170
347M
    return getNextTypeLocImpl(*this);
171
347M
  }
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
13.4M
  void initialize(ASTContext &Context, SourceLocation Loc) const {
197
13.4M
    initializeImpl(Context, *this, Loc);
198
13.4M
  }
199
200
  /// Initializes this by copying its information from another
201
  /// TypeLoc of the same type.
202
33.5k
  void initializeFullCopy(TypeLoc Other) {
203
33.5k
    assert(getType() == Other.getType());
204
33.5k
    copy(Other);
205
33.5k
  }
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
683
  void initializeFullCopy(TypeLoc Other, unsigned Size) {
211
683
    assert(getType() == Other.getType());
212
683
    assert(getFullDataSize() == Size);
213
683
    copy(Other);
214
683
  }
215
216
  /// Copies the other type loc into this one.
217
  void copy(TypeLoc other);
218
219
21.4k
  friend bool operator==(const TypeLoc &LHS, const TypeLoc &RHS) {
220
21.4k
    return LHS.Ty == RHS.Ty && 
LHS.Data == RHS.Data7.52k
;
221
21.4k
  }
222
223
1.17k
  friend bool operator!=(const TypeLoc &LHS, const TypeLoc &RHS) {
224
1.17k
    return !(LHS == RHS);
225
1.17k
  }
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.04M
  static bool isKind(const TypeLoc&) {
233
5.04M
    return true;
234
5.04M
  }
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
177M
inline TypeLoc TypeSourceInfo::getTypeLoc() const {
245
  // TODO: is this alignment already sufficient?
246
177M
  return TypeLoc(Ty, const_cast<void*>(static_cast<const void*>(this + 1)));
247
177M
}
248
249
/// Wrapper of type source information for a type with
250
/// no direct qualifiers.
251
class UnqualTypeLoc : public TypeLoc {
252
public:
253
1.55G
  UnqualTypeLoc() = default;
254
14.2M
  UnqualTypeLoc(const Type *Ty, void *Data) : TypeLoc(Ty, Data) {}
255
256
723M
  const Type *getTypePtr() const {
257
723M
    return reinterpret_cast<const Type*>(Ty);
258
723M
  }
259
260
95.0M
  TypeLocClass getTypeLocClass() const {
261
95.0M
    return (TypeLocClass) getTypePtr()->getTypeClass();
262
95.0M
  }
263
264
private:
265
  friend class TypeLoc;
266
267
93.1M
  static bool isKind(const TypeLoc &TL) {
268
93.1M
    return !TL.getType().hasLocalQualifiers();
269
93.1M
  }
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.49k
  SourceRange getLocalSourceRange() const { return {}; }
280
281
14.2M
  UnqualTypeLoc getUnqualifiedLoc() const {
282
14.2M
    unsigned align =
283
14.2M
        TypeLoc::getLocalAlignmentForType(QualType(getTypePtr(), 0));
284
14.2M
    auto dataInt = reinterpret_cast<uintptr_t>(Data);
285
14.2M
    dataInt = llvm::alignTo(dataInt, align);
286
14.2M
    return UnqualTypeLoc(getTypePtr(), reinterpret_cast<void*>(dataInt));
287
14.2M
  }
288
289
  /// Initializes the local data of this type source info block to
290
  /// provide no information.
291
282k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
292
    // do nothing
293
282k
  }
294
295
4
  void copyLocal(TypeLoc other) {
296
    // do nothing
297
4
  }
298
299
9.39M
  TypeLoc getNextTypeLoc() const {
300
9.39M
    return getUnqualifiedLoc();
301
9.39M
  }
302
303
  /// Returns the size of the type source info data block that is
304
  /// specific to this type.
305
6.31M
  unsigned getLocalDataSize() const {
306
    // In fact, we don't currently preserve any location information
307
    // for qualifiers.
308
6.31M
    return 0;
309
6.31M
  }
310
311
  /// Returns the alignment of the type source info data block that is
312
  /// specific to this type.
313
17.6M
  unsigned getLocalDataAlignment() const {
314
    // We don't preserve any location information.
315
17.6M
    return 1;
316
17.6M
  }
317
318
private:
319
  friend class TypeLoc;
320
321
132M
  static bool isKind(const TypeLoc &TL) {
322
132M
    return TL.getType().hasLocalQualifiers();
323
132M
  }
324
};
325
326
96.6M
inline UnqualTypeLoc TypeLoc::getUnqualifiedLoc() const {
327
96.6M
  if (QualifiedTypeLoc Loc = getAs<QualifiedTypeLoc>())
328
3.46M
    return Loc.getUnqualifiedLoc();
329
93.1M
  return castAs<UnqualTypeLoc>();
330
93.1M
}
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
1.52G
  const Derived *asDerived() const {
365
1.52G
    return static_cast<const Derived*>(this);
366
1.52G
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::asDerived() const
Line
Count
Source
364
100M
  const Derived *asDerived() const {
365
100M
    return static_cast<const Derived*>(this);
366
100M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::asDerived() const
Line
Count
Source
364
1.04M
  const Derived *asDerived() const {
365
1.04M
    return static_cast<const Derived*>(this);
366
1.04M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::asDerived() const
Line
Count
Source
364
63.4M
  const Derived *asDerived() const {
365
63.4M
    return static_cast<const Derived*>(this);
366
63.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::asDerived() const
Line
Count
Source
364
10.9M
  const Derived *asDerived() const {
365
10.9M
    return static_cast<const Derived*>(this);
366
10.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::asDerived() const
Line
Count
Source
364
4.30M
  const Derived *asDerived() const {
365
4.30M
    return static_cast<const Derived*>(this);
366
4.30M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::asDerived() const
Line
Count
Source
364
7.23M
  const Derived *asDerived() const {
365
7.23M
    return static_cast<const Derived*>(this);
366
7.23M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::asDerived() const
Line
Count
Source
364
44.9k
  const Derived *asDerived() const {
365
44.9k
    return static_cast<const Derived*>(this);
366
44.9k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::asDerived() const
Line
Count
Source
364
312M
  const Derived *asDerived() const {
365
312M
    return static_cast<const Derived*>(this);
366
312M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::asDerived() const
Line
Count
Source
364
8.10M
  const Derived *asDerived() const {
365
8.10M
    return static_cast<const Derived*>(this);
366
8.10M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::asDerived() const
Line
Count
Source
364
170M
  const Derived *asDerived() const {
365
170M
    return static_cast<const Derived*>(this);
366
170M
  }
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
9.35M
  const Derived *asDerived() const {
365
9.35M
    return static_cast<const Derived*>(this);
366
9.35M
  }
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.25M
  const Derived *asDerived() const {
365
1.25M
    return static_cast<const Derived*>(this);
366
1.25M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::asDerived() const
Line
Count
Source
364
51.1M
  const Derived *asDerived() const {
365
51.1M
    return static_cast<const Derived*>(this);
366
51.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::asDerived() const
Line
Count
Source
364
3.33M
  const Derived *asDerived() const {
365
3.33M
    return static_cast<const Derived*>(this);
366
3.33M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::asDerived() const
Line
Count
Source
364
10.2M
  const Derived *asDerived() const {
365
10.2M
    return static_cast<const Derived*>(this);
366
10.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::asDerived() const
Line
Count
Source
364
104k
  const Derived *asDerived() const {
365
104k
    return static_cast<const Derived*>(this);
366
104k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::asDerived() const
Line
Count
Source
364
1.77k
  const Derived *asDerived() const {
365
1.77k
    return static_cast<const Derived*>(this);
366
1.77k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
1.43M
  const Derived *asDerived() const {
365
1.43M
    return static_cast<const Derived*>(this);
366
1.43M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::asDerived() const
Line
Count
Source
364
1.14M
  const Derived *asDerived() const {
365
1.14M
    return static_cast<const Derived*>(this);
366
1.14M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
29.1M
  const Derived *asDerived() const {
365
29.1M
    return static_cast<const Derived*>(this);
366
29.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
106M
  const Derived *asDerived() const {
365
106M
    return static_cast<const Derived*>(this);
366
106M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::asDerived() const
Line
Count
Source
364
78.9M
  const Derived *asDerived() const {
365
78.9M
    return static_cast<const Derived*>(this);
366
78.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::asDerived() const
Line
Count
Source
364
515M
  const Derived *asDerived() const {
365
515M
    return static_cast<const Derived*>(this);
366
515M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::asDerived() const
Line
Count
Source
364
23.7M
  const Derived *asDerived() const {
365
23.7M
    return static_cast<const Derived*>(this);
366
23.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::asDerived() const
Line
Count
Source
364
4.09k
  const Derived *asDerived() const {
365
4.09k
    return static_cast<const Derived*>(this);
366
4.09k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::asDerived() const
Line
Count
Source
364
16.0M
  const Derived *asDerived() const {
365
16.0M
    return static_cast<const Derived*>(this);
366
16.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::asDerived() const
Line
Count
Source
364
29.5k
  const Derived *asDerived() const {
365
29.5k
    return static_cast<const Derived*>(this);
366
29.5k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::asDerived() const
Line
Count
Source
364
526
  const Derived *asDerived() const {
365
526
    return static_cast<const Derived*>(this);
366
526
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::asDerived() const
Line
Count
Source
364
18.4k
  const Derived *asDerived() const {
365
18.4k
    return static_cast<const Derived*>(this);
366
18.4k
  }
367
368
744M
  static bool isKind(const TypeLoc &TL) {
369
744M
    return !TL.getType().hasLocalQualifiers() &&
370
744M
           Derived::classofType(TL.getTypePtr());
371
744M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
21.0M
  static bool isKind(const TypeLoc &TL) {
369
21.0M
    return !TL.getType().hasLocalQualifiers() &&
370
21.0M
           Derived::classofType(TL.getTypePtr());
371
21.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
233M
  static bool isKind(const TypeLoc &TL) {
369
233M
    return !TL.getType().hasLocalQualifiers() &&
370
233M
           Derived::classofType(TL.getTypePtr());
371
233M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
14.5M
  static bool isKind(const TypeLoc &TL) {
369
14.5M
    return !TL.getType().hasLocalQualifiers() &&
370
14.5M
           Derived::classofType(TL.getTypePtr());
371
14.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
37.3M
  static bool isKind(const TypeLoc &TL) {
369
37.3M
    return !TL.getType().hasLocalQualifiers() &&
370
37.3M
           Derived::classofType(TL.getTypePtr());
371
37.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
23.4M
  static bool isKind(const TypeLoc &TL) {
369
23.4M
    return !TL.getType().hasLocalQualifiers() &&
370
23.4M
           Derived::classofType(TL.getTypePtr());
371
23.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
86.8M
  static bool isKind(const TypeLoc &TL) {
369
86.8M
    return !TL.getType().hasLocalQualifiers() &&
370
86.8M
           Derived::classofType(TL.getTypePtr());
371
86.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
653k
  static bool isKind(const TypeLoc &TL) {
369
653k
    return !TL.getType().hasLocalQualifiers() &&
370
653k
           Derived::classofType(TL.getTypePtr());
371
653k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
91.2M
  static bool isKind(const TypeLoc &TL) {
369
91.2M
    return !TL.getType().hasLocalQualifiers() &&
370
91.2M
           Derived::classofType(TL.getTypePtr());
371
91.2M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
1.11M
  static bool isKind(const TypeLoc &TL) {
369
1.11M
    return !TL.getType().hasLocalQualifiers() &&
370
1.11M
           Derived::classofType(TL.getTypePtr());
371
1.11M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
23.2M
  static bool isKind(const TypeLoc &TL) {
369
23.2M
    return !TL.getType().hasLocalQualifiers() &&
370
23.2M
           Derived::classofType(TL.getTypePtr());
371
23.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
26.0M
  static bool isKind(const TypeLoc &TL) {
369
26.0M
    return !TL.getType().hasLocalQualifiers() &&
370
26.0M
           Derived::classofType(TL.getTypePtr());
371
26.0M
  }
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
2.73M
  static bool isKind(const TypeLoc &TL) {
369
2.73M
    return !TL.getType().hasLocalQualifiers() &&
370
2.73M
           Derived::classofType(TL.getTypePtr());
371
2.73M
  }
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
33.6M
  static bool isKind(const TypeLoc &TL) {
369
33.6M
    return !TL.getType().hasLocalQualifiers() &&
370
33.6M
           Derived::classofType(TL.getTypePtr());
371
33.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
38.6M
  static bool isKind(const TypeLoc &TL) {
369
38.6M
    return !TL.getType().hasLocalQualifiers() &&
370
38.6M
           Derived::classofType(TL.getTypePtr());
371
38.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
399k
  static bool isKind(const TypeLoc &TL) {
369
399k
    return !TL.getType().hasLocalQualifiers() &&
370
399k
           Derived::classofType(TL.getTypePtr());
371
399k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
13.4M
  static bool isKind(const TypeLoc &TL) {
369
13.4M
    return !TL.getType().hasLocalQualifiers() &&
370
13.4M
           Derived::classofType(TL.getTypePtr());
371
13.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
4.37M
  static bool isKind(const TypeLoc &TL) {
369
4.37M
    return !TL.getType().hasLocalQualifiers() &&
370
4.37M
           Derived::classofType(TL.getTypePtr());
371
4.37M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
17.0M
  static bool isKind(const TypeLoc &TL) {
369
17.0M
    return !TL.getType().hasLocalQualifiers() &&
370
17.0M
           Derived::classofType(TL.getTypePtr());
371
17.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
1.23M
  static bool isKind(const TypeLoc &TL) {
369
1.23M
    return !TL.getType().hasLocalQualifiers() &&
370
1.23M
           Derived::classofType(TL.getTypePtr());
371
1.23M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
5.51M
  static bool isKind(const TypeLoc &TL) {
369
5.51M
    return !TL.getType().hasLocalQualifiers() &&
370
5.50M
           Derived::classofType(TL.getTypePtr());
371
5.51M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
683
  static bool isKind(const TypeLoc &TL) {
369
683
    return !TL.getType().hasLocalQualifiers() &&
370
683
           Derived::classofType(TL.getTypePtr());
371
683
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
41.0M
  static bool isKind(const TypeLoc &TL) {
369
41.0M
    return !TL.getType().hasLocalQualifiers() &&
370
41.0M
           Derived::classofType(TL.getTypePtr());
371
41.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
38.1k
  static bool isKind(const TypeLoc &TL) {
369
38.1k
    return !TL.getType().hasLocalQualifiers() &&
370
38.1k
           Derived::classofType(TL.getTypePtr());
371
38.1k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
605
  static bool isKind(const TypeLoc &TL) {
369
605
    return !TL.getType().hasLocalQualifiers() &&
370
605
           Derived::classofType(TL.getTypePtr());
371
605
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
17.7k
  static bool isKind(const TypeLoc &TL) {
369
17.7k
    return !TL.getType().hasLocalQualifiers() &&
370
17.7k
           Derived::classofType(TL.getTypePtr());
371
17.7k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
3.96M
  static bool isKind(const TypeLoc &TL) {
369
3.96M
    return !TL.getType().hasLocalQualifiers() &&
370
3.96M
           Derived::classofType(TL.getTypePtr());
371
3.96M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
373k
  static bool isKind(const TypeLoc &TL) {
369
373k
    return !TL.getType().hasLocalQualifiers() &&
370
373k
           Derived::classofType(TL.getTypePtr());
371
373k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
23.2M
  static bool isKind(const TypeLoc &TL) {
369
23.2M
    return !TL.getType().hasLocalQualifiers() &&
370
23.2M
           Derived::classofType(TL.getTypePtr());
371
23.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::isKind(clang::TypeLoc const&)
Line
Count
Source
368
5.15k
  static bool isKind(const TypeLoc &TL) {
369
5.15k
    return !TL.getType().hasLocalQualifiers() &&
370
5.15k
           Derived::classofType(TL.getTypePtr());
371
5.15k
  }
372
373
744M
  static bool classofType(const Type *Ty) {
374
744M
    return TypeClass::classof(Ty);
375
744M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
21.0M
  static bool classofType(const Type *Ty) {
374
21.0M
    return TypeClass::classof(Ty);
375
21.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
233M
  static bool classofType(const Type *Ty) {
374
233M
    return TypeClass::classof(Ty);
375
233M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
14.5M
  static bool classofType(const Type *Ty) {
374
14.5M
    return TypeClass::classof(Ty);
375
14.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
37.3M
  static bool classofType(const Type *Ty) {
374
37.3M
    return TypeClass::classof(Ty);
375
37.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
23.4M
  static bool classofType(const Type *Ty) {
374
23.4M
    return TypeClass::classof(Ty);
375
23.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
86.8M
  static bool classofType(const Type *Ty) {
374
86.8M
    return TypeClass::classof(Ty);
375
86.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
653k
  static bool classofType(const Type *Ty) {
374
653k
    return TypeClass::classof(Ty);
375
653k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
91.2M
  static bool classofType(const Type *Ty) {
374
91.2M
    return TypeClass::classof(Ty);
375
91.2M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
1.11M
  static bool classofType(const Type *Ty) {
374
1.11M
    return TypeClass::classof(Ty);
375
1.11M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentAddressSpaceTypeLoc, clang::DependentAddressSpaceType, clang::DependentAddressSpaceLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
23.2M
  static bool classofType(const Type *Ty) {
374
23.2M
    return TypeClass::classof(Ty);
375
23.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
26.0M
  static bool classofType(const Type *Ty) {
374
26.0M
    return TypeClass::classof(Ty);
375
26.0M
  }
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
2.73M
  static bool classofType(const Type *Ty) {
374
2.73M
    return TypeClass::classof(Ty);
375
2.73M
  }
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
33.6M
  static bool classofType(const Type *Ty) {
374
33.6M
    return TypeClass::classof(Ty);
375
33.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
38.6M
  static bool classofType(const Type *Ty) {
374
38.6M
    return TypeClass::classof(Ty);
375
38.6M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
399k
  static bool classofType(const Type *Ty) {
374
399k
    return TypeClass::classof(Ty);
375
399k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
13.4M
  static bool classofType(const Type *Ty) {
374
13.4M
    return TypeClass::classof(Ty);
375
13.4M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
4.37M
  static bool classofType(const Type *Ty) {
374
4.37M
    return TypeClass::classof(Ty);
375
4.37M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
17.0M
  static bool classofType(const Type *Ty) {
374
17.0M
    return TypeClass::classof(Ty);
375
17.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
1.23M
  static bool classofType(const Type *Ty) {
374
1.23M
    return TypeClass::classof(Ty);
375
1.23M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
5.50M
  static bool classofType(const Type *Ty) {
374
5.50M
    return TypeClass::classof(Ty);
375
5.50M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
683
  static bool classofType(const Type *Ty) {
374
683
    return TypeClass::classof(Ty);
375
683
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
41.0M
  static bool classofType(const Type *Ty) {
374
41.0M
    return TypeClass::classof(Ty);
375
41.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
38.1k
  static bool classofType(const Type *Ty) {
374
38.1k
    return TypeClass::classof(Ty);
375
38.1k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
605
  static bool classofType(const Type *Ty) {
374
605
    return TypeClass::classof(Ty);
375
605
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
17.7k
  static bool classofType(const Type *Ty) {
374
17.7k
    return TypeClass::classof(Ty);
375
17.7k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
3.96M
  static bool classofType(const Type *Ty) {
374
3.96M
    return TypeClass::classof(Ty);
375
3.96M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
373k
  static bool classofType(const Type *Ty) {
374
373k
    return TypeClass::classof(Ty);
375
373k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
23.2M
  static bool classofType(const Type *Ty) {
374
23.2M
    return TypeClass::classof(Ty);
375
23.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::classofType(clang::Type const*)
Line
Count
Source
373
5.15k
  static bool classofType(const Type *Ty) {
374
5.15k
    return TypeClass::classof(Ty);
375
5.15k
  }
376
377
public:
378
295M
  unsigned getLocalDataAlignment() const {
379
295M
    return std::max(unsigned(alignof(LocalData)),
380
295M
                    asDerived()->getExtraLocalDataAlignment());
381
295M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
7.19k
  unsigned getLocalDataAlignment() const {
379
7.19k
    return std::max(unsigned(alignof(LocalData)),
380
7.19k
                    asDerived()->getExtraLocalDataAlignment());
381
7.19k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
803k
  unsigned getLocalDataAlignment() const {
379
803k
    return std::max(unsigned(alignof(LocalData)),
380
803k
                    asDerived()->getExtraLocalDataAlignment());
381
803k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
8.14k
  unsigned getLocalDataAlignment() const {
379
8.14k
    return std::max(unsigned(alignof(LocalData)),
380
8.14k
                    asDerived()->getExtraLocalDataAlignment());
381
8.14k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
5.81M
  unsigned getLocalDataAlignment() const {
379
5.81M
    return std::max(unsigned(alignof(LocalData)),
380
5.81M
                    asDerived()->getExtraLocalDataAlignment());
381
5.81M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
242k
  unsigned getLocalDataAlignment() const {
379
242k
    return std::max(unsigned(alignof(LocalData)),
380
242k
                    asDerived()->getExtraLocalDataAlignment());
381
242k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
32.5M
  unsigned getLocalDataAlignment() const {
379
32.5M
    return std::max(unsigned(alignof(LocalData)),
380
32.5M
                    asDerived()->getExtraLocalDataAlignment());
381
32.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
158M
  unsigned getLocalDataAlignment() const {
379
158M
    return std::max(unsigned(alignof(LocalData)),
380
158M
                    asDerived()->getExtraLocalDataAlignment());
381
158M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
395k
  unsigned getLocalDataAlignment() const {
379
395k
    return std::max(unsigned(alignof(LocalData)),
380
395k
                    asDerived()->getExtraLocalDataAlignment());
381
395k
  }
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
6.30M
  unsigned getLocalDataAlignment() const {
379
6.30M
    return std::max(unsigned(alignof(LocalData)),
380
6.30M
                    asDerived()->getExtraLocalDataAlignment());
381
6.30M
  }
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
657k
  unsigned getLocalDataAlignment() const {
379
657k
    return std::max(unsigned(alignof(LocalData)),
380
657k
                    asDerived()->getExtraLocalDataAlignment());
381
657k
  }
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.31M
  unsigned getLocalDataAlignment() const {
379
6.31M
    return std::max(unsigned(alignof(LocalData)),
380
6.31M
                    asDerived()->getExtraLocalDataAlignment());
381
6.31M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
20.8M
  unsigned getLocalDataAlignment() const {
379
20.8M
    return std::max(unsigned(alignof(LocalData)),
380
20.8M
                    asDerived()->getExtraLocalDataAlignment());
381
20.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
319k
  unsigned getLocalDataAlignment() const {
379
319k
    return std::max(unsigned(alignof(LocalData)),
380
319k
                    asDerived()->getExtraLocalDataAlignment());
381
319k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
917
  unsigned getLocalDataAlignment() const {
379
917
    return std::max(unsigned(alignof(LocalData)),
380
917
                    asDerived()->getExtraLocalDataAlignment());
381
917
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
56.8k
  unsigned getLocalDataAlignment() const {
379
56.8k
    return std::max(unsigned(alignof(LocalData)),
380
56.8k
                    asDerived()->getExtraLocalDataAlignment());
381
56.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
5.18M
  unsigned getLocalDataAlignment() const {
379
5.18M
    return std::max(unsigned(alignof(LocalData)),
380
5.18M
                    asDerived()->getExtraLocalDataAlignment());
381
5.18M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
1.70M
  unsigned getLocalDataAlignment() const {
379
1.70M
    return std::max(unsigned(alignof(LocalData)),
380
1.70M
                    asDerived()->getExtraLocalDataAlignment());
381
1.70M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
7.10M
  unsigned getLocalDataAlignment() const {
379
7.10M
    return std::max(unsigned(alignof(LocalData)),
380
7.10M
                    asDerived()->getExtraLocalDataAlignment());
381
7.10M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
295k
  unsigned getLocalDataAlignment() const {
379
295k
    return std::max(unsigned(alignof(LocalData)),
380
295k
                    asDerived()->getExtraLocalDataAlignment());
381
295k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
771k
  unsigned getLocalDataAlignment() const {
379
771k
    return std::max(unsigned(alignof(LocalData)),
380
771k
                    asDerived()->getExtraLocalDataAlignment());
381
771k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
1.38M
  unsigned getLocalDataAlignment() const {
379
1.38M
    return std::max(unsigned(alignof(LocalData)),
380
1.38M
                    asDerived()->getExtraLocalDataAlignment());
381
1.38M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
133
  unsigned getLocalDataAlignment() const {
379
133
    return std::max(unsigned(alignof(LocalData)),
380
133
                    asDerived()->getExtraLocalDataAlignment());
381
133
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
10.2M
  unsigned getLocalDataAlignment() const {
379
10.2M
    return std::max(unsigned(alignof(LocalData)),
380
10.2M
                    asDerived()->getExtraLocalDataAlignment());
381
10.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
8.29M
  unsigned getLocalDataAlignment() const {
379
8.29M
    return std::max(unsigned(alignof(LocalData)),
380
8.29M
                    asDerived()->getExtraLocalDataAlignment());
381
8.29M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
27.1M
  unsigned getLocalDataAlignment() const {
379
27.1M
    return std::max(unsigned(alignof(LocalData)),
380
27.1M
                    asDerived()->getExtraLocalDataAlignment());
381
27.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
12.8k
  unsigned getLocalDataAlignment() const {
379
12.8k
    return std::max(unsigned(alignof(LocalData)),
380
12.8k
                    asDerived()->getExtraLocalDataAlignment());
381
12.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
121
  unsigned getLocalDataAlignment() const {
379
121
    return std::max(unsigned(alignof(LocalData)),
380
121
                    asDerived()->getExtraLocalDataAlignment());
381
121
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
4.31k
  unsigned getLocalDataAlignment() const {
379
4.31k
    return std::max(unsigned(alignof(LocalData)),
380
4.31k
                    asDerived()->getExtraLocalDataAlignment());
381
4.31k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getLocalDataAlignment() const
Line
Count
Source
378
910k
  unsigned getLocalDataAlignment() const {
379
910k
    return std::max(unsigned(alignof(LocalData)),
380
910k
                    asDerived()->getExtraLocalDataAlignment());
381
910k
  }
382
383
293M
  unsigned getLocalDataSize() const {
384
293M
    unsigned size = sizeof(LocalData);
385
293M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
293M
    size = llvm::alignTo(size, extraAlign);
387
293M
    size += asDerived()->getExtraLocalDataSize();
388
293M
    return size;
389
293M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getLocalDataSize() const
Line
Count
Source
383
14.0M
  unsigned getLocalDataSize() const {
384
14.0M
    unsigned size = sizeof(LocalData);
385
14.0M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
14.0M
    size = llvm::alignTo(size, extraAlign);
387
14.0M
    size += asDerived()->getExtraLocalDataSize();
388
14.0M
    return size;
389
14.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
2.40M
  unsigned getLocalDataSize() const {
384
2.40M
    unsigned size = sizeof(LocalData);
385
2.40M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
2.40M
    size = llvm::alignTo(size, extraAlign);
387
2.40M
    size += asDerived()->getExtraLocalDataSize();
388
2.40M
    return size;
389
2.40M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getLocalDataSize() const
Line
Count
Source
383
986k
  unsigned getLocalDataSize() const {
384
986k
    unsigned size = sizeof(LocalData);
385
986k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
986k
    size = llvm::alignTo(size, extraAlign);
387
986k
    size += asDerived()->getExtraLocalDataSize();
388
986k
    return size;
389
986k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getLocalDataSize() const
Line
Count
Source
383
1.41M
  unsigned getLocalDataSize() const {
384
1.41M
    unsigned size = sizeof(LocalData);
385
1.41M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.41M
    size = llvm::alignTo(size, extraAlign);
387
1.41M
    size += asDerived()->getExtraLocalDataSize();
388
1.41M
    return size;
389
1.41M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getLocalDataSize() const
Line
Count
Source
383
60.7M
  unsigned getLocalDataSize() const {
384
60.7M
    unsigned size = sizeof(LocalData);
385
60.7M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
60.7M
    size = llvm::alignTo(size, extraAlign);
387
60.7M
    size += asDerived()->getExtraLocalDataSize();
388
60.7M
    return size;
389
60.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getLocalDataSize() const
Line
Count
Source
383
1.79M
  unsigned getLocalDataSize() const {
384
1.79M
    unsigned size = sizeof(LocalData);
385
1.79M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
1.79M
    size = llvm::alignTo(size, extraAlign);
387
1.79M
    size += asDerived()->getExtraLocalDataSize();
388
1.79M
    return size;
389
1.79M
  }
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
2.06M
  unsigned getLocalDataSize() const {
384
2.06M
    unsigned size = sizeof(LocalData);
385
2.06M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
2.06M
    size = llvm::alignTo(size, extraAlign);
387
2.06M
    size += asDerived()->getExtraLocalDataSize();
388
2.06M
    return size;
389
2.06M
  }
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
11.9M
  unsigned getLocalDataSize() const {
384
11.9M
    unsigned size = sizeof(LocalData);
385
11.9M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
11.9M
    size = llvm::alignTo(size, extraAlign);
387
11.9M
    size += asDerived()->getExtraLocalDataSize();
388
11.9M
    return size;
389
11.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
2.36M
  unsigned getLocalDataSize() const {
384
2.36M
    unsigned size = sizeof(LocalData);
385
2.36M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
2.36M
    size = llvm::alignTo(size, extraAlign);
387
2.36M
    size += asDerived()->getExtraLocalDataSize();
388
2.36M
    return size;
389
2.36M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
23.8k
  unsigned getLocalDataSize() const {
384
23.8k
    unsigned size = sizeof(LocalData);
385
23.8k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
23.8k
    size = llvm::alignTo(size, extraAlign);
387
23.8k
    size += asDerived()->getExtraLocalDataSize();
388
23.8k
    return size;
389
23.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
406
  unsigned getLocalDataSize() const {
384
406
    unsigned size = sizeof(LocalData);
385
406
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
406
    size = llvm::alignTo(size, extraAlign);
387
406
    size += asDerived()->getExtraLocalDataSize();
388
406
    return size;
389
406
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
286k
  unsigned getLocalDataSize() const {
384
286k
    unsigned size = sizeof(LocalData);
385
286k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
286k
    size = llvm::alignTo(size, extraAlign);
387
286k
    size += asDerived()->getExtraLocalDataSize();
388
286k
    return size;
389
286k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getLocalDataSize() const
Line
Count
Source
383
248k
  unsigned getLocalDataSize() const {
384
248k
    unsigned size = sizeof(LocalData);
385
248k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
248k
    size = llvm::alignTo(size, extraAlign);
387
248k
    size += asDerived()->getExtraLocalDataSize();
388
248k
    return size;
389
248k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
5.80M
  unsigned getLocalDataSize() const {
384
5.80M
    unsigned size = sizeof(LocalData);
385
5.80M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
5.80M
    size = llvm::alignTo(size, extraAlign);
387
5.80M
    size += asDerived()->getExtraLocalDataSize();
388
5.80M
    return size;
389
5.80M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
23.7M
  unsigned getLocalDataSize() const {
384
23.7M
    unsigned size = sizeof(LocalData);
385
23.7M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
23.7M
    size = llvm::alignTo(size, extraAlign);
387
23.7M
    size += asDerived()->getExtraLocalDataSize();
388
23.7M
    return size;
389
23.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
17.7M
  unsigned getLocalDataSize() const {
384
17.7M
    unsigned size = sizeof(LocalData);
385
17.7M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
17.7M
    size = llvm::alignTo(size, extraAlign);
387
17.7M
    size += asDerived()->getExtraLocalDataSize();
388
17.7M
    return size;
389
17.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getLocalDataSize() const
Line
Count
Source
383
14.3M
  unsigned getLocalDataSize() const {
384
14.3M
    unsigned size = sizeof(LocalData);
385
14.3M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
14.3M
    size = llvm::alignTo(size, extraAlign);
387
14.3M
    size += asDerived()->getExtraLocalDataSize();
388
14.3M
    return size;
389
14.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getLocalDataSize() const
Line
Count
Source
383
100M
  unsigned getLocalDataSize() const {
384
100M
    unsigned size = sizeof(LocalData);
385
100M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
100M
    size = llvm::alignTo(size, extraAlign);
387
100M
    size += asDerived()->getExtraLocalDataSize();
388
100M
    return size;
389
100M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::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::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getLocalDataSize() const
Line
Count
Source
383
4.98M
  unsigned getLocalDataSize() const {
384
4.98M
    unsigned size = sizeof(LocalData);
385
4.98M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
4.98M
    size = llvm::alignTo(size, extraAlign);
387
4.98M
    size += asDerived()->getExtraLocalDataSize();
388
4.98M
    return size;
389
4.98M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getLocalDataSize() const
Line
Count
Source
383
648k
  unsigned getLocalDataSize() const {
384
648k
    unsigned size = sizeof(LocalData);
385
648k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
648k
    size = llvm::alignTo(size, extraAlign);
387
648k
    size += asDerived()->getExtraLocalDataSize();
388
648k
    return size;
389
648k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
917
  unsigned getLocalDataSize() const {
384
917
    unsigned size = sizeof(LocalData);
385
917
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
917
    size = llvm::alignTo(size, extraAlign);
387
917
    size += asDerived()->getExtraLocalDataSize();
388
917
    return size;
389
917
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getLocalDataSize() const
Line
Count
Source
383
2.52M
  unsigned getLocalDataSize() const {
384
2.52M
    unsigned size = sizeof(LocalData);
385
2.52M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
2.52M
    size = llvm::alignTo(size, extraAlign);
387
2.52M
    size += asDerived()->getExtraLocalDataSize();
388
2.52M
    return size;
389
2.52M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
176k
  unsigned getLocalDataSize() const {
384
176k
    unsigned size = sizeof(LocalData);
385
176k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
176k
    size = llvm::alignTo(size, extraAlign);
387
176k
    size += asDerived()->getExtraLocalDataSize();
388
176k
    return size;
389
176k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getLocalDataSize() const
Line
Count
Source
383
23.9M
  unsigned getLocalDataSize() const {
384
23.9M
    unsigned size = sizeof(LocalData);
385
23.9M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
23.9M
    size = llvm::alignTo(size, extraAlign);
387
23.9M
    size += asDerived()->getExtraLocalDataSize();
388
23.9M
    return size;
389
23.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
4.47k
  unsigned getLocalDataSize() const {
384
4.47k
    unsigned size = sizeof(LocalData);
385
4.47k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
4.47k
    size = llvm::alignTo(size, extraAlign);
387
4.47k
    size += asDerived()->getExtraLocalDataSize();
388
4.47k
    return size;
389
4.47k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
113
  unsigned getLocalDataSize() const {
384
113
    unsigned size = sizeof(LocalData);
385
113
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
113
    size = llvm::alignTo(size, extraAlign);
387
113
    size += asDerived()->getExtraLocalDataSize();
388
113
    return size;
389
113
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getLocalDataSize() const
Line
Count
Source
383
4.30k
  unsigned getLocalDataSize() const {
384
4.30k
    unsigned size = sizeof(LocalData);
385
4.30k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
386
4.30k
    size = llvm::alignTo(size, extraAlign);
387
4.30k
    size += asDerived()->getExtraLocalDataSize();
388
4.30k
    return size;
389
4.30k
  }
390
391
2.07k
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
2.07k
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
2.07k
    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.07k
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
2.07k
           asDerived()->getExtraLocalDataSize());
403
2.07k
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::copyLocal(clang::AdjustedTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::copyLocal(clang::ArrayTypeLoc)
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::copyLocal(clang::AtomicTypeLoc)
Line
Count
Source
391
1
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
1
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
1
    memcpy(getLocalData(), other.getLocalData(), sizeof(LocalData));
397
398
    // Copy the variable-sized local data. We need to do this
399
    // separately because the padding in the source and the padding in
400
    // the destination might be different.
401
1
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
1
           asDerived()->getExtraLocalDataSize());
403
1
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::copyLocal(clang::AttributedTypeLoc)
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::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
685
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
685
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
685
    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
685
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
685
           asDerived()->getExtraLocalDataSize());
403
685
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::copyLocal(clang::TypeSpecTypeLoc)
Line
Count
Source
391
1.32k
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
1.32k
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
1.32k
    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.32k
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
1.32k
           asDerived()->getExtraLocalDataSize());
403
1.32k
  }
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
26
  void copyLocal(Derived other) {
392
    // Some subclasses have no data to copy.
393
26
    if (asDerived()->getLocalDataSize() == 0) 
return0
;
394
395
    // Copy the fixed-sized local data.
396
26
    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
26
    memcpy(getExtraLocalData(), other.getExtraLocalData(),
402
26
           asDerived()->getExtraLocalDataSize());
403
26
  }
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
357M
  TypeLoc getNextTypeLoc() const {
406
357M
    return getNextTypeLoc(asDerived()->getInnerType());
407
357M
  }
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.18M
  TypeLoc getNextTypeLoc() const {
406
1.18M
    return getNextTypeLoc(asDerived()->getInnerType());
407
1.18M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
12.1k
  TypeLoc getNextTypeLoc() const {
406
12.1k
    return getNextTypeLoc(asDerived()->getInnerType());
407
12.1k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
7.46M
  TypeLoc getNextTypeLoc() const {
406
7.46M
    return getNextTypeLoc(asDerived()->getInnerType());
407
7.46M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
204k
  TypeLoc getNextTypeLoc() const {
406
204k
    return getNextTypeLoc(asDerived()->getInnerType());
407
204k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
23.3M
  TypeLoc getNextTypeLoc() const {
406
23.3M
    return getNextTypeLoc(asDerived()->getInnerType());
407
23.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
155M
  TypeLoc getNextTypeLoc() const {
406
155M
    return getNextTypeLoc(asDerived()->getInnerType());
407
155M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
318k
  TypeLoc getNextTypeLoc() const {
406
318k
    return getNextTypeLoc(asDerived()->getInnerType());
407
318k
  }
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
7.48M
  TypeLoc getNextTypeLoc() const {
406
7.48M
    return getNextTypeLoc(asDerived()->getInnerType());
407
7.48M
  }
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
946k
  TypeLoc getNextTypeLoc() const {
406
946k
    return getNextTypeLoc(asDerived()->getInnerType());
407
946k
  }
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
6.87M
  TypeLoc getNextTypeLoc() const {
406
6.87M
    return getNextTypeLoc(asDerived()->getInnerType());
407
6.87M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
39.5M
  TypeLoc getNextTypeLoc() const {
406
39.5M
    return getNextTypeLoc(asDerived()->getInnerType());
407
39.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
453k
  TypeLoc getNextTypeLoc() const {
406
453k
    return getNextTypeLoc(asDerived()->getInnerType());
407
453k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
1.34k
  TypeLoc getNextTypeLoc() const {
406
1.34k
    return getNextTypeLoc(asDerived()->getInnerType());
407
1.34k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
195k
  TypeLoc getNextTypeLoc() const {
406
195k
    return getNextTypeLoc(asDerived()->getInnerType());
407
195k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
4.04M
  TypeLoc getNextTypeLoc() const {
406
4.04M
    return getNextTypeLoc(asDerived()->getInnerType());
407
4.04M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
1.17M
  TypeLoc getNextTypeLoc() const {
406
1.17M
    return getNextTypeLoc(asDerived()->getInnerType());
407
1.17M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
3.93M
  TypeLoc getNextTypeLoc() const {
406
3.93M
    return getNextTypeLoc(asDerived()->getInnerType());
407
3.93M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
382k
  TypeLoc getNextTypeLoc() const {
406
382k
    return getNextTypeLoc(asDerived()->getInnerType());
407
382k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
1.29M
  TypeLoc getNextTypeLoc() const {
406
1.29M
    return getNextTypeLoc(asDerived()->getInnerType());
407
1.29M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
950k
  TypeLoc getNextTypeLoc() const {
406
950k
    return getNextTypeLoc(asDerived()->getInnerType());
407
950k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
275
  TypeLoc getNextTypeLoc() const {
406
275
    return getNextTypeLoc(asDerived()->getInnerType());
407
275
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
15.3M
  TypeLoc getNextTypeLoc() const {
406
15.3M
    return getNextTypeLoc(asDerived()->getInnerType());
407
15.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
10.5M
  TypeLoc getNextTypeLoc() const {
406
10.5M
    return getNextTypeLoc(asDerived()->getInnerType());
407
10.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
75.5M
  TypeLoc getNextTypeLoc() const {
406
75.5M
    return getNextTypeLoc(asDerived()->getInnerType());
407
75.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
7.75k
  TypeLoc getNextTypeLoc() const {
406
7.75k
    return getNextTypeLoc(asDerived()->getInnerType());
407
7.75k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
179
  TypeLoc getNextTypeLoc() const {
406
179
    return getNextTypeLoc(asDerived()->getInnerType());
407
179
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
5.56k
  TypeLoc getNextTypeLoc() const {
406
5.56k
    return getNextTypeLoc(asDerived()->getInnerType());
407
5.56k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getNextTypeLoc() const
Line
Count
Source
405
1.43M
  TypeLoc getNextTypeLoc() const {
406
1.43M
    return getNextTypeLoc(asDerived()->getInnerType());
407
1.43M
  }
408
409
628M
  const TypeClass *getTypePtr() const {
410
628M
    return cast<TypeClass>(Base::getTypePtr());
411
628M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getTypePtr() const
Line
Count
Source
409
100M
  const TypeClass *getTypePtr() const {
410
100M
    return cast<TypeClass>(Base::getTypePtr());
411
100M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getTypePtr() const
Line
Count
Source
409
9.09M
  const TypeClass *getTypePtr() const {
410
9.09M
    return cast<TypeClass>(Base::getTypePtr());
411
9.09M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
437k
  const TypeClass *getTypePtr() const {
410
437k
    return cast<TypeClass>(Base::getTypePtr());
411
437k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getTypePtr() const
Line
Count
Source
409
23.9M
  const TypeClass *getTypePtr() const {
410
23.9M
    return cast<TypeClass>(Base::getTypePtr());
411
23.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
8.64M
  const TypeClass *getTypePtr() const {
410
8.64M
    return cast<TypeClass>(Base::getTypePtr());
411
8.64M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getTypePtr() const
Line
Count
Source
409
45.5k
  const TypeClass *getTypePtr() const {
410
45.5k
    return cast<TypeClass>(Base::getTypePtr());
411
45.5k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getTypePtr() const
Line
Count
Source
409
1.66M
  const TypeClass *getTypePtr() const {
410
1.66M
    return cast<TypeClass>(Base::getTypePtr());
411
1.66M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getTypePtr() const
Line
Count
Source
409
2.06M
  const TypeClass *getTypePtr() const {
410
2.06M
    return cast<TypeClass>(Base::getTypePtr());
411
2.06M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getTypePtr() const
Line
Count
Source
409
25.1k
  const TypeClass *getTypePtr() const {
410
25.1k
    return cast<TypeClass>(Base::getTypePtr());
411
25.1k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getTypePtr() const
Line
Count
Source
409
427k
  const TypeClass *getTypePtr() const {
410
427k
    return cast<TypeClass>(Base::getTypePtr());
411
427k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getTypePtr() const
Line
Count
Source
409
24.3M
  const TypeClass *getTypePtr() const {
410
24.3M
    return cast<TypeClass>(Base::getTypePtr());
411
24.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getTypePtr() const
Line
Count
Source
409
335M
  const TypeClass *getTypePtr() const {
410
335M
    return cast<TypeClass>(Base::getTypePtr());
411
335M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getTypePtr() const
Line
Count
Source
409
2.52M
  const TypeClass *getTypePtr() const {
410
2.52M
    return cast<TypeClass>(Base::getTypePtr());
411
2.52M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getTypePtr() const
Line
Count
Source
409
47.2M
  const TypeClass *getTypePtr() const {
410
47.2M
    return cast<TypeClass>(Base::getTypePtr());
411
47.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
2.87M
  const TypeClass *getTypePtr() const {
410
2.87M
    return cast<TypeClass>(Base::getTypePtr());
411
2.87M
  }
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
3.88k
  const TypeClass *getTypePtr() const {
410
3.88k
    return cast<TypeClass>(Base::getTypePtr());
411
3.88k
  }
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::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
500k
  const TypeClass *getTypePtr() const {
410
500k
    return cast<TypeClass>(Base::getTypePtr());
411
500k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getTypePtr() const
Line
Count
Source
409
17.9M
  const TypeClass *getTypePtr() const {
410
17.9M
    return cast<TypeClass>(Base::getTypePtr());
411
17.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getTypePtr() const
Line
Count
Source
409
4.25M
  const TypeClass *getTypePtr() const {
410
4.25M
    return cast<TypeClass>(Base::getTypePtr());
411
4.25M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getTypePtr() const
Line
Count
Source
409
2.23M
  const TypeClass *getTypePtr() const {
410
2.23M
    return cast<TypeClass>(Base::getTypePtr());
411
2.23M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
3.41M
  const TypeClass *getTypePtr() const {
410
3.41M
    return cast<TypeClass>(Base::getTypePtr());
411
3.41M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
33.5k
  const TypeClass *getTypePtr() const {
410
33.5k
    return cast<TypeClass>(Base::getTypePtr());
411
33.5k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
554
  const TypeClass *getTypePtr() const {
410
554
    return cast<TypeClass>(Base::getTypePtr());
411
554
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getTypePtr() const
Line
Count
Source
409
416k
  const TypeClass *getTypePtr() const {
410
416k
    return cast<TypeClass>(Base::getTypePtr());
411
416k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
173
  const TypeClass *getTypePtr() const {
410
173
    return cast<TypeClass>(Base::getTypePtr());
411
173
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getTypePtr() const
Line
Count
Source
409
8.26M
  const TypeClass *getTypePtr() const {
410
8.26M
    return cast<TypeClass>(Base::getTypePtr());
411
8.26M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getTypePtr() const
Line
Count
Source
409
33.1M
  const TypeClass *getTypePtr() const {
410
33.1M
    return cast<TypeClass>(Base::getTypePtr());
411
33.1M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getTypePtr() const
Line
Count
Source
409
1.01k
  const TypeClass *getTypePtr() const {
410
1.01k
    return cast<TypeClass>(Base::getTypePtr());
411
1.01k
  }
412
413
protected:
414
190M
  unsigned getExtraLocalDataSize() const {
415
190M
    return 0;
416
190M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
14.0M
  unsigned getExtraLocalDataSize() const {
415
14.0M
    return 0;
416
14.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
986k
  unsigned getExtraLocalDataSize() const {
415
986k
    return 0;
416
986k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
1.41M
  unsigned getExtraLocalDataSize() const {
415
1.41M
    return 0;
416
1.41M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
1.79M
  unsigned getExtraLocalDataSize() const {
415
1.79M
    return 0;
416
1.79M
  }
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
2.06M
  unsigned getExtraLocalDataSize() const {
415
2.06M
    return 0;
416
2.06M
  }
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
11.9M
  unsigned getExtraLocalDataSize() const {
415
11.9M
    return 0;
416
11.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
2.36M
  unsigned getExtraLocalDataSize() const {
415
2.36M
    return 0;
416
2.36M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
23.8k
  unsigned getExtraLocalDataSize() const {
415
23.8k
    return 0;
416
23.8k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
406
  unsigned getExtraLocalDataSize() const {
415
406
    return 0;
416
406
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
286k
  unsigned getExtraLocalDataSize() const {
415
286k
    return 0;
416
286k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
248k
  unsigned getExtraLocalDataSize() const {
415
248k
    return 0;
416
248k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
5.80M
  unsigned getExtraLocalDataSize() const {
415
5.80M
    return 0;
416
5.80M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
23.7M
  unsigned getExtraLocalDataSize() const {
415
23.7M
    return 0;
416
23.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
17.7M
  unsigned getExtraLocalDataSize() const {
415
17.7M
    return 0;
416
17.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
100M
  unsigned getExtraLocalDataSize() const {
415
100M
    return 0;
416
100M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
4.98M
  unsigned getExtraLocalDataSize() const {
415
4.98M
    return 0;
416
4.98M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
917
  unsigned getExtraLocalDataSize() const {
415
917
    return 0;
416
917
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
2.52M
  unsigned getExtraLocalDataSize() const {
415
2.52M
    return 0;
416
2.52M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
4.47k
  unsigned getExtraLocalDataSize() const {
415
4.47k
    return 0;
416
4.47k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
113
  unsigned getExtraLocalDataSize() const {
415
113
    return 0;
416
113
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getExtraLocalDataSize() const
Line
Count
Source
414
4.30k
  unsigned getExtraLocalDataSize() const {
415
4.30k
    return 0;
416
4.30k
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getExtraLocalDataSize() const
417
418
402M
  unsigned getExtraLocalDataAlignment() const {
419
402M
    return 1;
420
402M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
19.8M
  unsigned getExtraLocalDataAlignment() const {
419
19.8M
    return 1;
420
19.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
1.30M
  unsigned getExtraLocalDataAlignment() const {
419
1.30M
    return 1;
420
1.30M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
2.79M
  unsigned getExtraLocalDataAlignment() const {
419
2.79M
    return 1;
420
2.79M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
2.60M
  unsigned getExtraLocalDataAlignment() const {
419
2.60M
    return 1;
420
2.60M
  }
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
2.97M
  unsigned getExtraLocalDataAlignment() const {
419
2.97M
    return 1;
420
2.97M
  }
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.2M
  unsigned getExtraLocalDataAlignment() const {
419
18.2M
    return 1;
420
18.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
3.13M
  unsigned getExtraLocalDataAlignment() const {
419
3.13M
    return 1;
420
3.13M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
31.9k
  unsigned getExtraLocalDataAlignment() const {
419
31.9k
    return 1;
420
31.9k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
539
  unsigned getExtraLocalDataAlignment() const {
419
539
    return 1;
420
539
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
529k
  unsigned getExtraLocalDataAlignment() const {
419
529k
    return 1;
420
529k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
305k
  unsigned getExtraLocalDataAlignment() const {
419
305k
    return 1;
420
305k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
10.9M
  unsigned getExtraLocalDataAlignment() const {
419
10.9M
    return 1;
420
10.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
33.9M
  unsigned getExtraLocalDataAlignment() const {
419
33.9M
    return 1;
420
33.9M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
26.0M
  unsigned getExtraLocalDataAlignment() const {
419
26.0M
    return 1;
420
26.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
7.19k
  unsigned getExtraLocalDataAlignment() const {
419
7.19k
    return 1;
420
7.19k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
259M
  unsigned getExtraLocalDataAlignment() const {
419
259M
    return 1;
420
259M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
11.2M
  unsigned getExtraLocalDataAlignment() const {
419
11.2M
    return 1;
420
11.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
1.83k
  unsigned getExtraLocalDataAlignment() const {
419
1.83k
    return 1;
420
1.83k
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
9.62M
  unsigned getExtraLocalDataAlignment() const {
419
9.62M
    return 1;
420
9.62M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
17.2k
  unsigned getExtraLocalDataAlignment() const {
419
17.2k
    return 1;
420
17.2k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
234
  unsigned getExtraLocalDataAlignment() const {
419
234
    return 1;
420
234
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getExtraLocalDataAlignment() const
Line
Count
Source
418
8.61k
  unsigned getExtraLocalDataAlignment() const {
419
8.61k
    return 1;
420
8.61k
  }
421
422
805M
  LocalData *getLocalData() const {
423
805M
    return static_cast<LocalData*>(Base::Data);
424
805M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getLocalData() const
Line
Count
Source
422
264M
  LocalData *getLocalData() const {
423
264M
    return static_cast<LocalData*>(Base::Data);
424
264M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getLocalData() const
Line
Count
Source
422
25.2M
  LocalData *getLocalData() const {
423
25.2M
    return static_cast<LocalData*>(Base::Data);
424
25.2M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::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::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getLocalData() const
Line
Count
Source
422
6.45M
  LocalData *getLocalData() const {
423
6.45M
    return static_cast<LocalData*>(Base::Data);
424
6.45M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getLocalData() const
Line
Count
Source
422
1.53M
  LocalData *getLocalData() const {
423
1.53M
    return static_cast<LocalData*>(Base::Data);
424
1.53M
  }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getLocalData() const
Line
Count
Source
422
7.76M
  LocalData *getLocalData() const {
423
7.76M
    return static_cast<LocalData*>(Base::Data);
424
7.76M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getLocalData() const
Line
Count
Source
422
327k
  LocalData *getLocalData() const {
423
327k
    return static_cast<LocalData*>(Base::Data);
424
327k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getLocalData() const
Line
Count
Source
422
1.05M
  LocalData *getLocalData() const {
423
1.05M
    return static_cast<LocalData*>(Base::Data);
424
1.05M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
10.5M
  LocalData *getLocalData() const {
423
10.5M
    return static_cast<LocalData*>(Base::Data);
424
10.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
167k
  LocalData *getLocalData() const {
423
167k
    return static_cast<LocalData*>(Base::Data);
424
167k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getLocalData() const
Line
Count
Source
422
225k
  LocalData *getLocalData() const {
423
225k
    return static_cast<LocalData*>(Base::Data);
424
225k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
3.08M
  LocalData *getLocalData() const {
423
3.08M
    return static_cast<LocalData*>(Base::Data);
424
3.08M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalData() const
Line
Count
Source
422
8.82M
  LocalData *getLocalData() const {
423
8.82M
    return static_cast<LocalData*>(Base::Data);
424
8.82M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getLocalData() const
Line
Count
Source
422
74.5M
  LocalData *getLocalData() const {
423
74.5M
    return static_cast<LocalData*>(Base::Data);
424
74.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getLocalData() const
Line
Count
Source
422
1.85M
  LocalData *getLocalData() const {
423
1.85M
    return static_cast<LocalData*>(Base::Data);
424
1.85M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getLocalData() const
Line
Count
Source
422
361M
  LocalData *getLocalData() const {
423
361M
    return static_cast<LocalData*>(Base::Data);
424
361M
  }
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
1.36M
  LocalData *getLocalData() const {
423
1.36M
    return static_cast<LocalData*>(Base::Data);
424
1.36M
  }
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
3.11k
  LocalData *getLocalData() const {
423
3.11k
    return static_cast<LocalData*>(Base::Data);
424
3.11k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getLocalData() const
Line
Count
Source
422
644
  LocalData *getLocalData() const {
423
644
    return static_cast<LocalData*>(Base::Data);
424
644
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getLocalData() const
Line
Count
Source
422
16.0k
  LocalData *getLocalData() const {
423
16.0k
    return static_cast<LocalData*>(Base::Data);
424
16.0k
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getLocalData() const
Line
Count
Source
422
226k
  LocalData *getLocalData() const {
423
226k
    return static_cast<LocalData*>(Base::Data);
424
226k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ElaboratedTypeLoc, clang::ElaboratedType, clang::ElaboratedLocInfo>::getLocalData() const
Line
Count
Source
422
7.45M
  LocalData *getLocalData() const {
423
7.45M
    return static_cast<LocalData*>(Base::Data);
424
7.45M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getLocalData() const
Line
Count
Source
422
22.8M
  LocalData *getLocalData() const {
423
22.8M
    return static_cast<LocalData*>(Base::Data);
424
22.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getLocalData() const
Line
Count
Source
422
4.31M
  LocalData *getLocalData() const {
423
4.31M
    return static_cast<LocalData*>(Base::Data);
424
4.31M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getLocalData() const
Line
Count
Source
422
1.23M
  LocalData *getLocalData() const {
423
1.23M
    return static_cast<LocalData*>(Base::Data);
424
1.23M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getLocalData() const
Line
Count
Source
422
24.2k
  LocalData *getLocalData() const {
423
24.2k
    return static_cast<LocalData*>(Base::Data);
424
24.2k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getLocalData() const
Line
Count
Source
422
146
  LocalData *getLocalData() const {
423
146
    return static_cast<LocalData*>(Base::Data);
424
146
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getLocalData() const
Line
Count
Source
422
31.2k
  LocalData *getLocalData() const {
423
31.2k
    return static_cast<LocalData*>(Base::Data);
424
31.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
83.3M
  void *getExtraLocalData() const {
430
83.3M
    unsigned size = sizeof(LocalData);
431
83.3M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
83.3M
    size = llvm::alignTo(size, extraAlign);
433
83.3M
    return reinterpret_cast<char*>(Base::Data) + size;
434
83.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getExtraLocalData() const
Line
Count
Source
429
15.5M
  void *getExtraLocalData() const {
430
15.5M
    unsigned size = sizeof(LocalData);
431
15.5M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
15.5M
    size = llvm::alignTo(size, extraAlign);
433
15.5M
    return reinterpret_cast<char*>(Base::Data) + size;
434
15.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
17.3k
  void *getExtraLocalData() const {
430
17.3k
    unsigned size = sizeof(LocalData);
431
17.3k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
17.3k
    size = llvm::alignTo(size, extraAlign);
433
17.3k
    return reinterpret_cast<char*>(Base::Data) + size;
434
17.3k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
256k
  void *getExtraLocalData() const {
430
256k
    unsigned size = sizeof(LocalData);
431
256k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
256k
    size = llvm::alignTo(size, extraAlign);
433
256k
    return reinterpret_cast<char*>(Base::Data) + size;
434
256k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getExtraLocalData() const
Line
Count
Source
429
46.7M
  void *getExtraLocalData() const {
430
46.7M
    unsigned size = sizeof(LocalData);
431
46.7M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
46.7M
    size = llvm::alignTo(size, extraAlign);
433
46.7M
    return reinterpret_cast<char*>(Base::Data) + size;
434
46.7M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getExtraLocalData() const
Line
Count
Source
429
20.3M
  void *getExtraLocalData() const {
430
20.3M
    unsigned size = sizeof(LocalData);
431
20.3M
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
20.3M
    size = llvm::alignTo(size, extraAlign);
433
20.3M
    return reinterpret_cast<char*>(Base::Data) + size;
434
20.3M
  }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
25.6k
  void *getExtraLocalData() const {
430
25.6k
    unsigned size = sizeof(LocalData);
431
25.6k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
25.6k
    size = llvm::alignTo(size, extraAlign);
433
25.6k
    return reinterpret_cast<char*>(Base::Data) + size;
434
25.6k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getExtraLocalData() const
Line
Count
Source
429
430k
  void *getExtraLocalData() const {
430
430k
    unsigned size = sizeof(LocalData);
431
430k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
430k
    size = llvm::alignTo(size, extraAlign);
433
430k
    return reinterpret_cast<char*>(Base::Data) + size;
434
430k
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getExtraLocalData() const
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getExtraLocalData() const
Line
Count
Source
429
2
  void *getExtraLocalData() const {
430
2
    unsigned size = sizeof(LocalData);
431
2
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
2
    size = llvm::alignTo(size, extraAlign);
433
2
    return reinterpret_cast<char*>(Base::Data) + size;
434
2
  }
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getExtraLocalData() const
Unexecuted instantiation: clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getExtraLocalData() const
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getExtraLocalData() const
Line
Count
Source
429
2.64k
  void *getExtraLocalData() const {
430
2.64k
    unsigned size = sizeof(LocalData);
431
2.64k
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
2.64k
    size = llvm::alignTo(size, extraAlign);
433
2.64k
    return reinterpret_cast<char*>(Base::Data) + size;
434
2.64k
  }
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
52
  void *getExtraLocalData() const {
430
52
    unsigned size = sizeof(LocalData);
431
52
    unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
432
52
    size = llvm::alignTo(size, extraAlign);
433
52
    return reinterpret_cast<char*>(Base::Data) + size;
434
52
  }
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
97.8M
  void *getNonLocalData() const {
437
97.8M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
97.8M
    data += asDerived()->getLocalDataSize();
439
97.8M
    data = llvm::alignTo(data, getNextTypeAlign());
440
97.8M
    return reinterpret_cast<void*>(data);
441
97.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNonLocalData() const
Line
Count
Source
436
9.81M
  void *getNonLocalData() const {
437
9.81M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
9.81M
    data += asDerived()->getLocalDataSize();
439
9.81M
    data = llvm::alignTo(data, getNextTypeAlign());
440
9.81M
    return reinterpret_cast<void*>(data);
441
9.81M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
1.37M
  void *getNonLocalData() const {
437
1.37M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
1.37M
    data += asDerived()->getLocalDataSize();
439
1.37M
    data = llvm::alignTo(data, getNextTypeAlign());
440
1.37M
    return reinterpret_cast<void*>(data);
441
1.37M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNonLocalData() const
Line
Count
Source
436
669k
  void *getNonLocalData() const {
437
669k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
669k
    data += asDerived()->getLocalDataSize();
439
669k
    data = llvm::alignTo(data, getNextTypeAlign());
440
669k
    return reinterpret_cast<void*>(data);
441
669k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNonLocalData() const
Line
Count
Source
436
1.00M
  void *getNonLocalData() const {
437
1.00M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
1.00M
    data += asDerived()->getLocalDataSize();
439
1.00M
    data = llvm::alignTo(data, getNextTypeAlign());
440
1.00M
    return reinterpret_cast<void*>(data);
441
1.00M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNonLocalData() const
Line
Count
Source
436
12.5k
  void *getNonLocalData() const {
437
12.5k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
12.5k
    data += asDerived()->getLocalDataSize();
439
12.5k
    data = llvm::alignTo(data, getNextTypeAlign());
440
12.5k
    return reinterpret_cast<void*>(data);
441
12.5k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNonLocalData() const
Line
Count
Source
436
41.0M
  void *getNonLocalData() const {
437
41.0M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
41.0M
    data += asDerived()->getLocalDataSize();
439
41.0M
    data = llvm::alignTo(data, getNextTypeAlign());
440
41.0M
    return reinterpret_cast<void*>(data);
441
41.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNonLocalData() const
Line
Count
Source
436
1.23M
  void *getNonLocalData() const {
437
1.23M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
1.23M
    data += asDerived()->getLocalDataSize();
439
1.23M
    data = llvm::alignTo(data, getNextTypeAlign());
440
1.23M
    return reinterpret_cast<void*>(data);
441
1.23M
  }
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
1.43M
  void *getNonLocalData() const {
437
1.43M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
1.43M
    data += asDerived()->getLocalDataSize();
439
1.43M
    data = llvm::alignTo(data, getNextTypeAlign());
440
1.43M
    return reinterpret_cast<void*>(data);
441
1.43M
  }
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.01M
  void *getNonLocalData() const {
437
7.01M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
7.01M
    data += asDerived()->getLocalDataSize();
439
7.01M
    data = llvm::alignTo(data, getNextTypeAlign());
440
7.01M
    return reinterpret_cast<void*>(data);
441
7.01M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
1.59M
  void *getNonLocalData() const {
437
1.59M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
1.59M
    data += asDerived()->getLocalDataSize();
439
1.59M
    data = llvm::alignTo(data, getNextTypeAlign());
440
1.59M
    return reinterpret_cast<void*>(data);
441
1.59M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
16.3k
  void *getNonLocalData() const {
437
16.3k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
16.3k
    data += asDerived()->getLocalDataSize();
439
16.3k
    data = llvm::alignTo(data, getNextTypeAlign());
440
16.3k
    return reinterpret_cast<void*>(data);
441
16.3k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNonLocalData() const
Line
Count
Source
436
277
  void *getNonLocalData() const {
437
277
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
277
    data += asDerived()->getLocalDataSize();
439
277
    data = llvm::alignTo(data, getNextTypeAlign());
440
277
    return reinterpret_cast<void*>(data);
441
277
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
207k
  void *getNonLocalData() const {
437
207k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
207k
    data += asDerived()->getLocalDataSize();
439
207k
    data = llvm::alignTo(data, getNextTypeAlign());
440
207k
    return reinterpret_cast<void*>(data);
441
207k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNonLocalData() const
Line
Count
Source
436
197k
  void *getNonLocalData() const {
437
197k
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
197k
    data += asDerived()->getLocalDataSize();
439
197k
    data = llvm::alignTo(data, getNextTypeAlign());
440
197k
    return reinterpret_cast<void*>(data);
441
197k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
4.11M
  void *getNonLocalData() const {
437
4.11M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
4.11M
    data += asDerived()->getLocalDataSize();
439
4.11M
    data = llvm::alignTo(data, getNextTypeAlign());
440
4.11M
    return reinterpret_cast<void*>(data);
441
4.11M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
16.3M
  void *getNonLocalData() const {
437
16.3M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
16.3M
    data += asDerived()->getLocalDataSize();
439
16.3M
    data = llvm::alignTo(data, getNextTypeAlign());
440
16.3M
    return reinterpret_cast<void*>(data);
441
16.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNonLocalData() const
Line
Count
Source
436
11.6M
  void *getNonLocalData() const {
437
11.6M
    auto data = reinterpret_cast<uintptr_t>(Base::Data);
438
11.6M
    data += asDerived()->getLocalDataSize();
439
11.6M
    data = llvm::alignTo(data, getNextTypeAlign());
440
11.6M
    return reinterpret_cast<void*>(data);
441
11.6M
  }
442
443
  struct HasNoInnerType {};
444
267M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BuiltinTypeLoc, clang::BuiltinType, clang::BuiltinLocInfo>::getInnerType() const
Line
Count
Source
444
23.3M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeSpecTypeLoc, clang::Type, clang::TypeSpecLocInfo>::getInnerType() const
Line
Count
Source
444
155M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::DeducedTypeLoc, clang::AutoTypeLoc, clang::AutoType, clang::AutoTypeLocInfo>::getInnerType() const
Line
Count
Source
444
318k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentNameTypeLoc, clang::DependentNameType, clang::DependentNameLocInfo>::getInnerType() const
Line
Count
Source
444
7.48M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::DependentTemplateSpecializationTypeLoc, clang::DependentTemplateSpecializationType, clang::DependentTemplateSpecializationLocInfo>::getInnerType() const
Line
Count
Source
444
946k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MatrixTypeLoc, clang::MatrixType, clang::MatrixTypeLocInfo>::getInnerType() const
Line
Count
Source
444
1.34k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getInnerType() const
Line
Count
Source
444
3.93M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCTypeParamTypeLoc, clang::ObjCTypeParamType, clang::ObjCTypeParamTypeLocInfo>::getInnerType() const
Line
Count
Source
444
382k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TemplateSpecializationTypeLoc, clang::TemplateSpecializationType, clang::TemplateSpecializationLocInfo>::getInnerType() const
Line
Count
Source
444
75.5M
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfExprTypeLoc, clang::TypeOfExprType, clang::TypeOfExprTypeLocInfo>::getInnerType() const
Line
Count
Source
444
7.75k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::TypeOfTypeLoc, clang::TypeOfType, clang::TypeOfTypeLocInfo>::getInnerType() const
Line
Count
Source
444
179
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::UnaryTransformTypeLoc, clang::UnaryTransformType, clang::UnaryTransformTypeLocInfo>::getInnerType() const
Line
Count
Source
444
5.56k
  HasNoInnerType getInnerType() const { return HasNoInnerType(); }
445
446
7.09M
  TypeLoc getInnerTypeLoc() const {
447
7.09M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
7.09M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
2.34M
  TypeLoc getInnerTypeLoc() const {
447
2.34M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
2.34M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
204k
  TypeLoc getInnerTypeLoc() const {
447
204k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
204k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
215k
  TypeLoc getInnerTypeLoc() const {
447
215k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
215k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
58.4k
  TypeLoc getInnerTypeLoc() const {
447
58.4k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
58.4k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::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.55M
  TypeLoc getInnerTypeLoc() const {
447
1.55M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.55M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
53.2k
  TypeLoc getInnerTypeLoc() const {
447
53.2k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
53.2k
  }
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
138k
  TypeLoc getInnerTypeLoc() const {
447
138k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
138k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
291k
  TypeLoc getInnerTypeLoc() const {
447
291k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
291k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
4.22k
  TypeLoc getInnerTypeLoc() const {
447
4.22k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
4.22k
  }
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.49k
  TypeLoc getInnerTypeLoc() const {
447
2.49k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
2.49k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
2.01k
  TypeLoc getInnerTypeLoc() const {
447
2.01k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
2.01k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
67.9k
  TypeLoc getInnerTypeLoc() const {
447
67.9k
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
67.9k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1.07M
  TypeLoc getInnerTypeLoc() const {
447
1.07M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.07M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getInnerTypeLoc() const
Line
Count
Source
446
1.07M
  TypeLoc getInnerTypeLoc() const {
447
1.07M
    return TypeLoc(asDerived()->getInnerType(), getNonLocalData());
448
1.07M
  }
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
97.8M
  unsigned getNextTypeAlign() const {
464
97.8M
    return getNextTypeAlign(asDerived()->getInnerType());
465
97.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
9.81M
  unsigned getNextTypeAlign() const {
464
9.81M
    return getNextTypeAlign(asDerived()->getInnerType());
465
9.81M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
1.37M
  unsigned getNextTypeAlign() const {
464
1.37M
    return getNextTypeAlign(asDerived()->getInnerType());
465
1.37M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
669k
  unsigned getNextTypeAlign() const {
464
669k
    return getNextTypeAlign(asDerived()->getInnerType());
465
669k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
1.00M
  unsigned getNextTypeAlign() const {
464
1.00M
    return getNextTypeAlign(asDerived()->getInnerType());
465
1.00M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
12.5k
  unsigned getNextTypeAlign() const {
464
12.5k
    return getNextTypeAlign(asDerived()->getInnerType());
465
12.5k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
41.0M
  unsigned getNextTypeAlign() const {
464
41.0M
    return getNextTypeAlign(asDerived()->getInnerType());
465
41.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
1.23M
  unsigned getNextTypeAlign() const {
464
1.23M
    return getNextTypeAlign(asDerived()->getInnerType());
465
1.23M
  }
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
1.43M
  unsigned getNextTypeAlign() const {
464
1.43M
    return getNextTypeAlign(asDerived()->getInnerType());
465
1.43M
  }
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.01M
  unsigned getNextTypeAlign() const {
464
7.01M
    return getNextTypeAlign(asDerived()->getInnerType());
465
7.01M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
1.59M
  unsigned getNextTypeAlign() const {
464
1.59M
    return getNextTypeAlign(asDerived()->getInnerType());
465
1.59M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
16.3k
  unsigned getNextTypeAlign() const {
464
16.3k
    return getNextTypeAlign(asDerived()->getInnerType());
465
16.3k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
277
  unsigned getNextTypeAlign() const {
464
277
    return getNextTypeAlign(asDerived()->getInnerType());
465
277
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
207k
  unsigned getNextTypeAlign() const {
464
207k
    return getNextTypeAlign(asDerived()->getInnerType());
465
207k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
197k
  unsigned getNextTypeAlign() const {
464
197k
    return getNextTypeAlign(asDerived()->getInnerType());
465
197k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
4.11M
  unsigned getNextTypeAlign() const {
464
4.11M
    return getNextTypeAlign(asDerived()->getInnerType());
465
4.11M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
16.3M
  unsigned getNextTypeAlign() const {
464
16.3M
    return getNextTypeAlign(asDerived()->getInnerType());
465
16.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeAlign() const
Line
Count
Source
463
11.6M
  unsigned getNextTypeAlign() const {
464
11.6M
    return getNextTypeAlign(asDerived()->getInnerType());
465
11.6M
  }
466
467
  unsigned getNextTypeAlign(HasNoInnerType _) const {
468
    return 1;
469
  }
470
471
97.8M
  unsigned getNextTypeAlign(QualType T) const {
472
97.8M
    return TypeLoc::getLocalAlignmentForType(T);
473
97.8M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
9.81M
  unsigned getNextTypeAlign(QualType T) const {
472
9.81M
    return TypeLoc::getLocalAlignmentForType(T);
473
9.81M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
1.37M
  unsigned getNextTypeAlign(QualType T) const {
472
1.37M
    return TypeLoc::getLocalAlignmentForType(T);
473
1.37M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
669k
  unsigned getNextTypeAlign(QualType T) const {
472
669k
    return TypeLoc::getLocalAlignmentForType(T);
473
669k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
1.00M
  unsigned getNextTypeAlign(QualType T) const {
472
1.00M
    return TypeLoc::getLocalAlignmentForType(T);
473
1.00M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AdjustedTypeLoc, clang::AdjustedType, clang::AdjustedLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
12.5k
  unsigned getNextTypeAlign(QualType T) const {
472
12.5k
    return TypeLoc::getLocalAlignmentForType(T);
473
12.5k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
41.0M
  unsigned getNextTypeAlign(QualType T) const {
472
41.0M
    return TypeLoc::getLocalAlignmentForType(T);
473
41.0M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ArrayTypeLoc, clang::ArrayType, clang::ArrayLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
1.23M
  unsigned getNextTypeAlign(QualType T) const {
472
1.23M
    return TypeLoc::getLocalAlignmentForType(T);
473
1.23M
  }
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
1.43M
  unsigned getNextTypeAlign(QualType T) const {
472
1.43M
    return TypeLoc::getLocalAlignmentForType(T);
473
1.43M
  }
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.01M
  unsigned getNextTypeAlign(QualType T) const {
472
7.01M
    return TypeLoc::getLocalAlignmentForType(T);
473
7.01M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
1.59M
  unsigned getNextTypeAlign(QualType T) const {
472
1.59M
    return TypeLoc::getLocalAlignmentForType(T);
473
1.59M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
16.3k
  unsigned getNextTypeAlign(QualType T) const {
472
16.3k
    return TypeLoc::getLocalAlignmentForType(T);
473
16.3k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
277
  unsigned getNextTypeAlign(QualType T) const {
472
277
    return TypeLoc::getLocalAlignmentForType(T);
473
277
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
207k
  unsigned getNextTypeAlign(QualType T) const {
472
207k
    return TypeLoc::getLocalAlignmentForType(T);
473
207k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
197k
  unsigned getNextTypeAlign(QualType T) const {
472
197k
    return TypeLoc::getLocalAlignmentForType(T);
473
197k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
4.11M
  unsigned getNextTypeAlign(QualType T) const {
472
4.11M
    return TypeLoc::getLocalAlignmentForType(T);
473
4.11M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
16.3M
  unsigned getNextTypeAlign(QualType T) const {
472
16.3M
    return TypeLoc::getLocalAlignmentForType(T);
473
16.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeAlign(clang::QualType) const
Line
Count
Source
471
11.6M
  unsigned getNextTypeAlign(QualType T) const {
472
11.6M
    return TypeLoc::getLocalAlignmentForType(T);
473
11.6M
  }
474
475
267M
  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
23.3M
  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
155M
  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
318k
  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
7.48M
  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
946k
  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
1.34k
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::getNextTypeLoc(clang::ConcreteTypeLoc<clang::ObjCObjectTypeLoc, clang::ObjCInterfaceTypeLoc, clang::ObjCInterfaceType, clang::ObjCInterfaceLocInfo>::HasNoInnerType) const
Line
Count
Source
475
3.93M
  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
382k
  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
75.5M
  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.75k
  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
179
  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
5.56k
  TypeLoc getNextTypeLoc(HasNoInnerType _) const { return {}; }
476
477
90.7M
  TypeLoc getNextTypeLoc(QualType T) const {
478
90.7M
    return TypeLoc(T, getNonLocalData());
479
90.7M
  }
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.18M
  TypeLoc getNextTypeLoc(QualType T) const {
478
1.18M
    return TypeLoc(T, getNonLocalData());
479
1.18M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AtomicTypeLoc, clang::AtomicType, clang::AtomicTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
12.1k
  TypeLoc getNextTypeLoc(QualType T) const {
478
12.1k
    return TypeLoc(T, getNonLocalData());
479
12.1k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::AttributedTypeLoc, clang::AttributedType, clang::AttributedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
7.46M
  TypeLoc getNextTypeLoc(QualType T) const {
478
7.46M
    return TypeLoc(T, getNonLocalData());
479
7.46M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
204k
  TypeLoc getNextTypeLoc(QualType T) const {
478
204k
    return TypeLoc(T, getNonLocalData());
479
204k
  }
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
6.87M
  TypeLoc getNextTypeLoc(QualType T) const {
478
6.87M
    return TypeLoc(T, getNonLocalData());
479
6.87M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::FunctionTypeLoc, clang::FunctionType, clang::FunctionLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
39.5M
  TypeLoc getNextTypeLoc(QualType T) const {
478
39.5M
    return TypeLoc(T, getNonLocalData());
479
39.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MacroQualifiedTypeLoc, clang::MacroQualifiedType, clang::MacroQualifiedLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
453k
  TypeLoc getNextTypeLoc(QualType T) const {
478
453k
    return TypeLoc(T, getNonLocalData());
479
453k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
195k
  TypeLoc getNextTypeLoc(QualType T) const {
478
195k
    return TypeLoc(T, getNonLocalData());
479
195k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
4.04M
  TypeLoc getNextTypeLoc(QualType T) const {
478
4.04M
    return TypeLoc(T, getNonLocalData());
479
4.04M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ObjCObjectTypeLoc, clang::ObjCObjectType, clang::ObjCObjectTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
1.17M
  TypeLoc getNextTypeLoc(QualType T) const {
478
1.17M
    return TypeLoc(T, getNonLocalData());
479
1.17M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PackExpansionTypeLoc, clang::PackExpansionType, clang::PackExpansionTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
1.29M
  TypeLoc getNextTypeLoc(QualType T) const {
478
1.29M
    return TypeLoc(T, getNonLocalData());
479
1.29M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ParenTypeLoc, clang::ParenType, clang::ParenLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
950k
  TypeLoc getNextTypeLoc(QualType T) const {
478
950k
    return TypeLoc(T, getNonLocalData());
479
950k
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PipeTypeLoc, clang::PipeType, clang::PipeTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
275
  TypeLoc getNextTypeLoc(QualType T) const {
478
275
    return TypeLoc(T, getNonLocalData());
479
275
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
15.3M
  TypeLoc getNextTypeLoc(QualType T) const {
478
15.3M
    return TypeLoc(T, getNonLocalData());
479
15.3M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
10.5M
  TypeLoc getNextTypeLoc(QualType T) const {
478
10.5M
    return TypeLoc(T, getNonLocalData());
479
10.5M
  }
clang::ConcreteTypeLoc<clang::UnqualTypeLoc, clang::VectorTypeLoc, clang::VectorType, clang::VectorTypeLocInfo>::getNextTypeLoc(clang::QualType) const
Line
Count
Source
477
1.43M
  TypeLoc getNextTypeLoc(QualType T) const {
478
1.43M
    return TypeLoc(T, getNonLocalData());
479
1.43M
  }
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
718M
  static bool classofType(const Type *Ty) {
490
718M
    return TypeClass::classof(Ty);
491
718M
  }
clang::InheritingConcreteTypeLoc<clang::AdjustedTypeLoc, clang::DecayedTypeLoc, clang::DecayedType>::classofType(clang::Type const*)
Line
Count
Source
489
26.7k
  static bool classofType(const Type *Ty) {
490
26.7k
    return TypeClass::classof(Ty);
491
26.7k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::ConstantArrayTypeLoc, clang::ConstantArrayType>::classofType(clang::Type const*)
Line
Count
Source
489
2.19M
  static bool classofType(const Type *Ty) {
490
2.19M
    return TypeClass::classof(Ty);
491
2.19M
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::DependentSizedArrayTypeLoc, clang::DependentSizedArrayType>::classofType(clang::Type const*)
Line
Count
Source
489
176k
  static bool classofType(const Type *Ty) {
490
176k
    return TypeClass::classof(Ty);
491
176k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::IncompleteArrayTypeLoc, clang::IncompleteArrayType>::classofType(clang::Type const*)
Line
Count
Source
489
515k
  static bool classofType(const Type *Ty) {
490
515k
    return TypeClass::classof(Ty);
491
515k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::VariableArrayTypeLoc, clang::VariableArrayType>::classofType(clang::Type const*)
Line
Count
Source
489
126k
  static bool classofType(const Type *Ty) {
490
126k
    return TypeClass::classof(Ty);
491
126k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::ComplexTypeLoc, clang::ComplexType>::classofType(clang::Type const*)
Line
Count
Source
489
89.2k
  static bool classofType(const Type *Ty) {
490
89.2k
    return TypeClass::classof(Ty);
491
89.2k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType>::classofType(clang::Type const*)
Line
Count
Source
489
2.13M
  static bool classofType(const Type *Ty) {
490
2.13M
    return TypeClass::classof(Ty);
491
2.13M
  }
clang::InheritingConcreteTypeLoc<clang::DeducedTypeLoc, clang::DeducedTemplateSpecializationTypeLoc, clang::DeducedTemplateSpecializationType>::classofType(clang::Type const*)
Line
Count
Source
489
123k
  static bool classofType(const Type *Ty) {
490
123k
    return TypeClass::classof(Ty);
491
123k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DependentExtIntTypeLoc, clang::DependentExtIntType>::classofType(clang::Type const*)
Line
Count
Source
489
79
  static bool classofType(const Type *Ty) {
490
79
    return TypeClass::classof(Ty);
491
79
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::ExtIntTypeLoc, clang::ExtIntType>::classofType(clang::Type const*)
Line
Count
Source
489
6.26k
  static bool classofType(const Type *Ty) {
490
6.26k
    return TypeClass::classof(Ty);
491
6.26k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionNoProtoTypeLoc, clang::FunctionNoProtoType>::classofType(clang::Type const*)
Line
Count
Source
489
167k
  static bool classofType(const Type *Ty) {
490
167k
    return TypeClass::classof(Ty);
491
167k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionProtoTypeLoc, clang::FunctionProtoType>::classofType(clang::Type const*)
Line
Count
Source
489
105M
  static bool classofType(const Type *Ty) {
490
105M
    return TypeClass::classof(Ty);
491
105M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::InjectedClassNameTypeLoc, clang::InjectedClassNameType>::classofType(clang::Type const*)
Line
Count
Source
489
9.91M
  static bool classofType(const Type *Ty) {
490
9.91M
    return TypeClass::classof(Ty);
491
9.91M
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::ConstantMatrixTypeLoc, clang::ConstantMatrixType>::classofType(clang::Type const*)
Line
Count
Source
489
1.43k
  static bool classofType(const Type *Ty) {
490
1.43k
    return TypeClass::classof(Ty);
491
1.43k
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::DependentSizedMatrixTypeLoc, clang::DependentSizedMatrixType>::classofType(clang::Type const*)
Line
Count
Source
489
2.08k
  static bool classofType(const Type *Ty) {
490
2.08k
    return TypeClass::classof(Ty);
491
2.08k
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::LValueReferenceTypeLoc, clang::LValueReferenceType>::classofType(clang::Type const*)
Line
Count
Source
489
23.6M
  static bool classofType(const Type *Ty) {
490
23.6M
    return TypeClass::classof(Ty);
491
23.6M
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::RValueReferenceTypeLoc, clang::RValueReferenceType>::classofType(clang::Type const*)
Line
Count
Source
489
6.20M
  static bool classofType(const Type *Ty) {
490
6.20M
    return TypeClass::classof(Ty);
491
6.20M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmPackTypeLoc, clang::SubstTemplateTypeParmPackType>::classofType(clang::Type const*)
Line
Count
Source
489
442k
  static bool classofType(const Type *Ty) {
490
442k
    return TypeClass::classof(Ty);
491
442k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmTypeLoc, clang::SubstTemplateTypeParmType>::classofType(clang::Type const*)
Line
Count
Source
489
65.2M
  static bool classofType(const Type *Ty) {
490
65.2M
    return TypeClass::classof(Ty);
491
65.2M
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::EnumTypeLoc, clang::EnumType>::classofType(clang::Type const*)
Line
Count
Source
489
2.43M
  static bool classofType(const Type *Ty) {
490
2.43M
    return TypeClass::classof(Ty);
491
2.43M
  }
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
124M
  static bool classofType(const Type *Ty) {
490
124M
    return TypeClass::classof(Ty);
491
124M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TypedefTypeLoc, clang::TypedefType>::classofType(clang::Type const*)
Line
Count
Source
489
334M
  static bool classofType(const Type *Ty) {
490
334M
    return TypeClass::classof(Ty);
491
334M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UnresolvedUsingTypeLoc, clang::UnresolvedUsingType>::classofType(clang::Type const*)
Line
Count
Source
489
15.9k
  static bool classofType(const Type *Ty) {
490
15.9k
    return TypeClass::classof(Ty);
491
15.9k
  }
clang::InheritingConcreteTypeLoc<clang::VectorTypeLoc, clang::ExtVectorTypeLoc, clang::ExtVectorType>::classofType(clang::Type const*)
Line
Count
Source
489
15.6k
  static bool classofType(const Type *Ty) {
490
15.6k
    return TypeClass::classof(Ty);
491
15.6k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DeducedTypeLoc, clang::DeducedType>::classofType(clang::Type const*)
Line
Count
Source
489
689
  static bool classofType(const Type *Ty) {
490
689
    return TypeClass::classof(Ty);
491
689
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TagTypeLoc, clang::TagType>::classofType(clang::Type const*)
Line
Count
Source
489
1.76M
  static bool classofType(const Type *Ty) {
490
1.76M
    return TypeClass::classof(Ty);
491
1.76M
  }
492
493
718M
  static bool isKind(const TypeLoc &TL) {
494
718M
    return !TL.getType().hasLocalQualifiers() &&
495
718M
           Derived::classofType(TL.getTypePtr());
496
718M
  }
clang::InheritingConcreteTypeLoc<clang::AdjustedTypeLoc, clang::DecayedTypeLoc, clang::DecayedType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
26.7k
  static bool isKind(const TypeLoc &TL) {
494
26.7k
    return !TL.getType().hasLocalQualifiers() &&
495
26.7k
           Derived::classofType(TL.getTypePtr());
496
26.7k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::ConstantArrayTypeLoc, clang::ConstantArrayType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
2.19M
  static bool isKind(const TypeLoc &TL) {
494
2.19M
    return !TL.getType().hasLocalQualifiers() &&
495
2.19M
           Derived::classofType(TL.getTypePtr());
496
2.19M
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::DependentSizedArrayTypeLoc, clang::DependentSizedArrayType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
176k
  static bool isKind(const TypeLoc &TL) {
494
176k
    return !TL.getType().hasLocalQualifiers() &&
495
176k
           Derived::classofType(TL.getTypePtr());
496
176k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::IncompleteArrayTypeLoc, clang::IncompleteArrayType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
515k
  static bool isKind(const TypeLoc &TL) {
494
515k
    return !TL.getType().hasLocalQualifiers() &&
495
515k
           Derived::classofType(TL.getTypePtr());
496
515k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::VariableArrayTypeLoc, clang::VariableArrayType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
126k
  static bool isKind(const TypeLoc &TL) {
494
126k
    return !TL.getType().hasLocalQualifiers() &&
495
126k
           Derived::classofType(TL.getTypePtr());
496
126k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::ComplexTypeLoc, clang::ComplexType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
89.2k
  static bool isKind(const TypeLoc &TL) {
494
89.2k
    return !TL.getType().hasLocalQualifiers() &&
495
89.2k
           Derived::classofType(TL.getTypePtr());
496
89.2k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
2.13M
  static bool isKind(const TypeLoc &TL) {
494
2.13M
    return !TL.getType().hasLocalQualifiers() &&
495
2.13M
           Derived::classofType(TL.getTypePtr());
496
2.13M
  }
clang::InheritingConcreteTypeLoc<clang::DeducedTypeLoc, clang::DeducedTemplateSpecializationTypeLoc, clang::DeducedTemplateSpecializationType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
124k
  static bool isKind(const TypeLoc &TL) {
494
124k
    return !TL.getType().hasLocalQualifiers() &&
495
123k
           Derived::classofType(TL.getTypePtr());
496
124k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DependentExtIntTypeLoc, clang::DependentExtIntType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
79
  static bool isKind(const TypeLoc &TL) {
494
79
    return !TL.getType().hasLocalQualifiers() &&
495
79
           Derived::classofType(TL.getTypePtr());
496
79
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::ExtIntTypeLoc, clang::ExtIntType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
6.26k
  static bool isKind(const TypeLoc &TL) {
494
6.26k
    return !TL.getType().hasLocalQualifiers() &&
495
6.26k
           Derived::classofType(TL.getTypePtr());
496
6.26k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionNoProtoTypeLoc, clang::FunctionNoProtoType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
167k
  static bool isKind(const TypeLoc &TL) {
494
167k
    return !TL.getType().hasLocalQualifiers() &&
495
167k
           Derived::classofType(TL.getTypePtr());
496
167k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionProtoTypeLoc, clang::FunctionProtoType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
105M
  static bool isKind(const TypeLoc &TL) {
494
105M
    return !TL.getType().hasLocalQualifiers() &&
495
105M
           Derived::classofType(TL.getTypePtr());
496
105M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::InjectedClassNameTypeLoc, clang::InjectedClassNameType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
9.91M
  static bool isKind(const TypeLoc &TL) {
494
9.91M
    return !TL.getType().hasLocalQualifiers() &&
495
9.91M
           Derived::classofType(TL.getTypePtr());
496
9.91M
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::ConstantMatrixTypeLoc, clang::ConstantMatrixType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
1.43k
  static bool isKind(const TypeLoc &TL) {
494
1.43k
    return !TL.getType().hasLocalQualifiers() &&
495
1.43k
           Derived::classofType(TL.getTypePtr());
496
1.43k
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::DependentSizedMatrixTypeLoc, clang::DependentSizedMatrixType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
2.08k
  static bool isKind(const TypeLoc &TL) {
494
2.08k
    return !TL.getType().hasLocalQualifiers() &&
495
2.08k
           Derived::classofType(TL.getTypePtr());
496
2.08k
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::LValueReferenceTypeLoc, clang::LValueReferenceType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
23.6M
  static bool isKind(const TypeLoc &TL) {
494
23.6M
    return !TL.getType().hasLocalQualifiers() &&
495
23.6M
           Derived::classofType(TL.getTypePtr());
496
23.6M
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::RValueReferenceTypeLoc, clang::RValueReferenceType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
6.20M
  static bool isKind(const TypeLoc &TL) {
494
6.20M
    return !TL.getType().hasLocalQualifiers() &&
495
6.20M
           Derived::classofType(TL.getTypePtr());
496
6.20M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmPackTypeLoc, clang::SubstTemplateTypeParmPackType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
442k
  static bool isKind(const TypeLoc &TL) {
494
442k
    return !TL.getType().hasLocalQualifiers() &&
495
442k
           Derived::classofType(TL.getTypePtr());
496
442k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmTypeLoc, clang::SubstTemplateTypeParmType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
65.2M
  static bool isKind(const TypeLoc &TL) {
494
65.2M
    return !TL.getType().hasLocalQualifiers() &&
495
65.2M
           Derived::classofType(TL.getTypePtr());
496
65.2M
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::EnumTypeLoc, clang::EnumType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
2.43M
  static bool isKind(const TypeLoc &TL) {
494
2.43M
    return !TL.getType().hasLocalQualifiers() &&
495
2.43M
           Derived::classofType(TL.getTypePtr());
496
2.43M
  }
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());
496
39.0M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TemplateTypeParmTypeLoc, clang::TemplateTypeParmType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
124M
  static bool isKind(const TypeLoc &TL) {
494
124M
    return !TL.getType().hasLocalQualifiers() &&
495
124M
           Derived::classofType(TL.getTypePtr());
496
124M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TypedefTypeLoc, clang::TypedefType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
334M
  static bool isKind(const TypeLoc &TL) {
494
334M
    return !TL.getType().hasLocalQualifiers() &&
495
334M
           Derived::classofType(TL.getTypePtr());
496
334M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UnresolvedUsingTypeLoc, clang::UnresolvedUsingType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
15.9k
  static bool isKind(const TypeLoc &TL) {
494
15.9k
    return !TL.getType().hasLocalQualifiers() &&
495
15.9k
           Derived::classofType(TL.getTypePtr());
496
15.9k
  }
clang::InheritingConcreteTypeLoc<clang::VectorTypeLoc, clang::ExtVectorTypeLoc, clang::ExtVectorType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
15.6k
  static bool isKind(const TypeLoc &TL) {
494
15.6k
    return !TL.getType().hasLocalQualifiers() &&
495
15.6k
           Derived::classofType(TL.getTypePtr());
496
15.6k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DeducedTypeLoc, clang::DeducedType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
689
  static bool isKind(const TypeLoc &TL) {
494
689
    return !TL.getType().hasLocalQualifiers() &&
495
689
           Derived::classofType(TL.getTypePtr());
496
689
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TagTypeLoc, clang::TagType>::isKind(clang::TypeLoc const&)
Line
Count
Source
493
1.76M
  static bool isKind(const TypeLoc &TL) {
494
1.76M
    return !TL.getType().hasLocalQualifiers() &&
495
1.76M
           Derived::classofType(TL.getTypePtr());
496
1.76M
  }
497
  static bool isKind(const UnqualTypeLoc &TL) {
498
    return Derived::classofType(TL.getTypePtr());
499
  }
500
501
public:
502
16.6M
  const TypeClass *getTypePtr() const {
503
16.6M
    return cast<TypeClass>(Base::getTypePtr());
504
16.6M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TypedefTypeLoc, clang::TypedefType>::getTypePtr() const
Line
Count
Source
502
2.16M
  const TypeClass *getTypePtr() const {
503
2.16M
    return cast<TypeClass>(Base::getTypePtr());
504
2.16M
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::InjectedClassNameTypeLoc, clang::InjectedClassNameType>::getTypePtr() const
Line
Count
Source
502
555k
  const TypeClass *getTypePtr() const {
503
555k
    return cast<TypeClass>(Base::getTypePtr());
504
555k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::UnresolvedUsingTypeLoc, clang::UnresolvedUsingType>::getTypePtr() const
Line
Count
Source
502
413
  const TypeClass *getTypePtr() const {
503
413
    return cast<TypeClass>(Base::getTypePtr());
504
413
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TagTypeLoc, clang::TagType>::getTypePtr() const
Line
Count
Source
502
234k
  const TypeClass *getTypePtr() const {
503
234k
    return cast<TypeClass>(Base::getTypePtr());
504
234k
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::RecordTypeLoc, clang::RecordType>::getTypePtr() const
Line
Count
Source
502
219k
  const TypeClass *getTypePtr() const {
503
219k
    return cast<TypeClass>(Base::getTypePtr());
504
219k
  }
clang::InheritingConcreteTypeLoc<clang::TagTypeLoc, clang::EnumTypeLoc, clang::EnumType>::getTypePtr() const
Line
Count
Source
502
13.2k
  const TypeClass *getTypePtr() const {
503
13.2k
    return cast<TypeClass>(Base::getTypePtr());
504
13.2k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::TemplateTypeParmTypeLoc, clang::TemplateTypeParmType>::getTypePtr() const
Line
Count
Source
502
5.49M
  const TypeClass *getTypePtr() const {
503
5.49M
    return cast<TypeClass>(Base::getTypePtr());
504
5.49M
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::DependentSizedArrayTypeLoc, clang::DependentSizedArrayType>::getTypePtr() const
Line
Count
Source
502
10.3k
  const TypeClass *getTypePtr() const {
503
10.3k
    return cast<TypeClass>(Base::getTypePtr());
504
10.3k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DecltypeTypeLoc, clang::DecltypeType>::getTypePtr() const
Line
Count
Source
502
79.3k
  const TypeClass *getTypePtr() const {
503
79.3k
    return cast<TypeClass>(Base::getTypePtr());
504
79.3k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DeducedTypeLoc, clang::DeducedType>::getTypePtr() const
Line
Count
Source
502
501k
  const TypeClass *getTypePtr() const {
503
501k
    return cast<TypeClass>(Base::getTypePtr());
504
501k
  }
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
34.8k
  const TypeClass *getTypePtr() const {
503
34.8k
    return cast<TypeClass>(Base::getTypePtr());
504
34.8k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::IncompleteArrayTypeLoc, clang::IncompleteArrayType>::getTypePtr() const
Line
Count
Source
502
7.47k
  const TypeClass *getTypePtr() const {
503
7.47k
    return cast<TypeClass>(Base::getTypePtr());
504
7.47k
  }
clang::InheritingConcreteTypeLoc<clang::ArrayTypeLoc, clang::VariableArrayTypeLoc, clang::VariableArrayType>::getTypePtr() const
Line
Count
Source
502
223
  const TypeClass *getTypePtr() const {
503
223
    return cast<TypeClass>(Base::getTypePtr());
504
223
  }
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
942
  const TypeClass *getTypePtr() const {
503
942
    return cast<TypeClass>(Base::getTypePtr());
504
942
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::DependentExtIntTypeLoc, clang::DependentExtIntType>::getTypePtr() const
Line
Count
Source
502
9
  const TypeClass *getTypePtr() const {
503
9
    return cast<TypeClass>(Base::getTypePtr());
504
9
  }
Unexecuted instantiation: clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::ExtIntTypeLoc, clang::ExtIntType>::getTypePtr() const
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionNoProtoTypeLoc, clang::FunctionNoProtoType>::getTypePtr() const
Line
Count
Source
502
2.55k
  const TypeClass *getTypePtr() const {
503
2.55k
    return cast<TypeClass>(Base::getTypePtr());
504
2.55k
  }
clang::InheritingConcreteTypeLoc<clang::FunctionTypeLoc, clang::FunctionProtoTypeLoc, clang::FunctionProtoType>::getTypePtr() const
Line
Count
Source
502
7.15M
  const TypeClass *getTypePtr() const {
503
7.15M
    return cast<TypeClass>(Base::getTypePtr());
504
7.15M
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::ConstantMatrixTypeLoc, clang::ConstantMatrixType>::getTypePtr() const
Line
Count
Source
502
1
  const TypeClass *getTypePtr() const {
503
1
    return cast<TypeClass>(Base::getTypePtr());
504
1
  }
clang::InheritingConcreteTypeLoc<clang::MatrixTypeLoc, clang::DependentSizedMatrixTypeLoc, clang::DependentSizedMatrixType>::getTypePtr() const
Line
Count
Source
502
172
  const TypeClass *getTypePtr() const {
503
172
    return cast<TypeClass>(Base::getTypePtr());
504
172
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::LValueReferenceTypeLoc, clang::LValueReferenceType>::getTypePtr() const
Line
Count
Source
502
121k
  const TypeClass *getTypePtr() const {
503
121k
    return cast<TypeClass>(Base::getTypePtr());
504
121k
  }
clang::InheritingConcreteTypeLoc<clang::ReferenceTypeLoc, clang::RValueReferenceTypeLoc, clang::RValueReferenceType>::getTypePtr() const
Line
Count
Source
502
18.6k
  const TypeClass *getTypePtr() const {
503
18.6k
    return cast<TypeClass>(Base::getTypePtr());
504
18.6k
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmPackTypeLoc, clang::SubstTemplateTypeParmPackType>::getTypePtr() const
Line
Count
Source
502
136
  const TypeClass *getTypePtr() const {
503
136
    return cast<TypeClass>(Base::getTypePtr());
504
136
  }
clang::InheritingConcreteTypeLoc<clang::TypeSpecTypeLoc, clang::SubstTemplateTypeParmTypeLoc, clang::SubstTemplateTypeParmType>::getTypePtr() const
Line
Count
Source
502
50.0k
  const TypeClass *getTypePtr() const {
503
50.0k
    return cast<TypeClass>(Base::getTypePtr());
504
50.0k
  }
clang::InheritingConcreteTypeLoc<clang::VectorTypeLoc, clang::ExtVectorTypeLoc, clang::ExtVectorType>::getTypePtr() const
Line
Count
Source
502
19
  const TypeClass *getTypePtr() const {
503
19
    return cast<TypeClass>(Base::getTypePtr());
504
19
  }
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
190M
  SourceLocation getNameLoc() const {
524
190M
    return this->getLocalData()->NameLoc;
525
190M
  }
526
527
74.0M
  void setNameLoc(SourceLocation Loc) {
528
74.0M
    this->getLocalData()->NameLoc = Loc;
529
74.0M
  }
530
531
89.4M
  SourceRange getLocalSourceRange() const {
532
89.4M
    return SourceRange(getNameLoc(), getNameLoc());
533
89.4M
  }
534
535
8.06M
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
536
8.06M
    setNameLoc(Loc);
537
8.06M
  }
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
984k
  SourceLocation getBuiltinLoc() const {
556
984k
    return getLocalData()->BuiltinRange.getBegin();
557
984k
  }
558
559
12.6M
  void setBuiltinLoc(SourceLocation Loc) {
560
12.6M
    getLocalData()->BuiltinRange = Loc;
561
12.6M
  }
562
563
1.56M
  void expandBuiltinRange(SourceRange Range) {
564
1.56M
    SourceRange &BuiltinRange = getLocalData()->BuiltinRange;
565
1.56M
    if (!BuiltinRange.getBegin().isValid()) {
566
696k
      BuiltinRange = Range;
567
870k
    } else {
568
870k
      BuiltinRange.setBegin(std::min(Range.getBegin(), BuiltinRange.getBegin()));
569
870k
      BuiltinRange.setEnd(std::max(Range.getEnd(), BuiltinRange.getEnd()));
570
870k
    }
571
1.56M
  }
572
573
0
  SourceLocation getNameLoc() const { return getBuiltinLoc(); }
574
575
6.96M
  WrittenBuiltinSpecs& getWrittenBuiltinSpecs() {
576
6.96M
    return *(static_cast<WrittenBuiltinSpecs*>(getExtraLocalData()));
577
6.96M
  }
578
8.63M
  const WrittenBuiltinSpecs& getWrittenBuiltinSpecs() const {
579
8.63M
    return *(static_cast<WrittenBuiltinSpecs*>(getExtraLocalData()));
580
8.63M
  }
581
582
99.7M
  bool needsExtraLocalData() const {
583
99.7M
    BuiltinType::Kind bk = getTypePtr()->getKind();
584
99.7M
    return (bk >= BuiltinType::UShort && 
bk <= BuiltinType::UInt12861.2M
)
585
90.8M
      || (bk >= BuiltinType::Short && 
bk <= BuiltinType::Float12844.7M
)
586
47.1M
      || bk == BuiltinType::UChar
587
45.0M
      || bk == BuiltinType::SChar;
588
99.7M
  }
589
590
14.3M
  unsigned getExtraLocalDataSize() const {
591
8.08M
    return needsExtraLocalData() ? 
sizeof(WrittenBuiltinSpecs)6.22M
: 0;
592
14.3M
  }
593
594
62.4M
  unsigned getExtraLocalDataAlignment() const {
595
33.0M
    return needsExtraLocalData() ? alignof(WrittenBuiltinSpecs) : 
129.3M
;
596
62.4M
  }
597
598
10.0M
  SourceRange getLocalSourceRange() const {
599
10.0M
    return getLocalData()->BuiltinRange;
600
10.0M
  }
601
602
3.99M
  TypeSpecifierSign getWrittenSignSpec() const {
603
3.99M
    if (needsExtraLocalData())
604
3.99M
      return static_cast<TypeSpecifierSign>(getWrittenBuiltinSpecs().Sign);
605
0
    else
606
0
      return TypeSpecifierSign::Unspecified;
607
3.99M
  }
608
609
0
  bool hasWrittenSignSpec() const {
610
0
    return getWrittenSignSpec() != TypeSpecifierSign::Unspecified;
611
0
  }
612
613
271k
  void setWrittenSignSpec(TypeSpecifierSign written) {
614
271k
    if (needsExtraLocalData())
615
271k
      getWrittenBuiltinSpecs().Sign = static_cast<unsigned>(written);
616
271k
  }
617
618
3.99M
  TypeSpecifierWidth getWrittenWidthSpec() const {
619
3.99M
    if (needsExtraLocalData())
620
3.99M
      return static_cast<TypeSpecifierWidth>(getWrittenBuiltinSpecs().Width);
621
0
    else
622
0
      return TypeSpecifierWidth::Unspecified;
623
3.99M
  }
624
625
0
  bool hasWrittenWidthSpec() const {
626
0
    return getWrittenWidthSpec() != TypeSpecifierWidth::Unspecified;
627
0
  }
628
629
271k
  void setWrittenWidthSpec(TypeSpecifierWidth written) {
630
271k
    if (needsExtraLocalData())
631
271k
      getWrittenBuiltinSpecs().Width = static_cast<unsigned>(written);
632
271k
  }
633
634
  TypeSpecifierType getWrittenTypeSpec() const;
635
636
0
  bool hasWrittenTypeSpec() const {
637
0
    return getWrittenTypeSpec() != TST_unspecified;
638
0
  }
639
640
271k
  void setWrittenTypeSpec(TypeSpecifierType written) {
641
271k
    if (needsExtraLocalData())
642
271k
      getWrittenBuiltinSpecs().Type = written;
643
271k
  }
644
645
317k
  bool hasModeAttr() const {
646
317k
    if (needsExtraLocalData())
647
317k
      return getWrittenBuiltinSpecs().ModeAttr;
648
0
    else
649
0
      return false;
650
317k
  }
651
652
271k
  void setModeAttr(bool written) {
653
271k
    if (needsExtraLocalData())
654
271k
      getWrittenBuiltinSpecs().ModeAttr = written;
655
271k
  }
656
657
3.05M
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
658
3.05M
    setBuiltinLoc(Loc);
659
3.05M
    if (needsExtraLocalData()) {
660
2.15M
      WrittenBuiltinSpecs &wbs = getWrittenBuiltinSpecs();
661
2.15M
      wbs.Sign = static_cast<unsigned>(TypeSpecifierSign::Unspecified);
662
2.15M
      wbs.Width = static_cast<unsigned>(TypeSpecifierWidth::Unspecified);
663
2.15M
      wbs.Type = TST_unspecified;
664
2.15M
      wbs.ModeAttr = false;
665
2.15M
    }
666
3.05M
  }
667
};
668
669
/// Wrapper for source info for typedefs.
670
class TypedefTypeLoc : public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
671
                                                        TypedefTypeLoc,
672
                                                        TypedefType> {
673
public:
674
3.21k
  TypedefNameDecl *getTypedefNameDecl() const {
675
3.21k
    return getTypePtr()->getDecl();
676
3.21k
  }
677
};
678
679
/// Wrapper for source info for injected class names of class
680
/// templates.
681
class InjectedClassNameTypeLoc :
682
    public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
683
                                     InjectedClassNameTypeLoc,
684
                                     InjectedClassNameType> {
685
public:
686
10
  CXXRecordDecl *getDecl() const {
687
10
    return getTypePtr()->getDecl();
688
10
  }
689
};
690
691
/// Wrapper for source info for unresolved typename using decls.
692
class UnresolvedUsingTypeLoc :
693
    public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
694
                                     UnresolvedUsingTypeLoc,
695
                                     UnresolvedUsingType> {
696
public:
697
0
  UnresolvedUsingTypenameDecl *getDecl() const {
698
0
    return getTypePtr()->getDecl();
699
0
  }
700
};
701
702
/// Wrapper for source info for tag types.  Note that this only
703
/// records source info for the name itself; a type written 'struct foo'
704
/// should be represented as an ElaboratedTypeLoc.  We currently
705
/// only do that when C++ is enabled because of the expense of
706
/// creating an ElaboratedType node for so many type references in C.
707
class TagTypeLoc : public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
708
                                                    TagTypeLoc,
709
                                                    TagType> {
710
public:
711
1.54k
  TagDecl *getDecl() const { return getTypePtr()->getDecl(); }
712
713
  /// True if the tag was defined in this type specifier.
714
  bool isDefinition() const;
715
};
716
717
/// Wrapper for source info for record types.
718
class RecordTypeLoc : public InheritingConcreteTypeLoc<TagTypeLoc,
719
                                                       RecordTypeLoc,
720
                                                       RecordType> {
721
public:
722
49
  RecordDecl *getDecl() const { return getTypePtr()->getDecl(); }
723
};
724
725
/// Wrapper for source info for enum types.
726
class EnumTypeLoc : public InheritingConcreteTypeLoc<TagTypeLoc,
727
                                                     EnumTypeLoc,
728
                                                     EnumType> {
729
public:
730
0
  EnumDecl *getDecl() const { return getTypePtr()->getDecl(); }
731
};
732
733
/// Wrapper for template type parameters.
734
class TemplateTypeParmTypeLoc :
735
    public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
736
                                     TemplateTypeParmTypeLoc,
737
                                     TemplateTypeParmType> {
738
public:
739
388
  TemplateTypeParmDecl *getDecl() const { return getTypePtr()->getDecl(); }
740
};
741
742
struct ObjCTypeParamTypeLocInfo {
743
  SourceLocation NameLoc;
744
};
745
746
/// ProtocolLAngleLoc, ProtocolRAngleLoc, and the source locations for
747
/// protocol qualifiers are stored after Info.
748
class ObjCTypeParamTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc,
749
                                     ObjCTypeParamTypeLoc,
750
                                     ObjCTypeParamType,
751
                                     ObjCTypeParamTypeLocInfo> {
752
  // SourceLocations are stored after Info, one for each protocol qualifier.
753
4.80k
  SourceLocation *getProtocolLocArray() const {
754
4.80k
    return (SourceLocation*)this->getExtraLocalData() + 2;
755
4.80k
  }
756
757
public:
758
5
  ObjCTypeParamDecl *getDecl() const { return getTypePtr()->getDecl(); }
759
760
61.3k
  SourceLocation getNameLoc() const {
761
61.3k
    return this->getLocalData()->NameLoc;
762
61.3k
  }
763
764
173k
  void setNameLoc(SourceLocation Loc) {
765
173k
    this->getLocalData()->NameLoc = Loc;
766
173k
  }
767
768
54
  SourceLocation getProtocolLAngleLoc() const {
769
54
    return getNumProtocols()  ?
770
54
      *((SourceLocation*)this->getExtraLocalData()) :
771
0
      SourceLocation();
772
54
  }
773
774
4.74k
  void setProtocolLAngleLoc(SourceLocation Loc) {
775
4.74k
    *((SourceLocation*)this->getExtraLocalData()) = Loc;
776
4.74k
  }
777
778
61.4k
  SourceLocation getProtocolRAngleLoc() const {
779
61.4k
    return getNumProtocols()  ?
780
2.96k
      *((SourceLocation*)this->getExtraLocalData() + 1) :
781
58.4k
      SourceLocation();
782
61.4k
  }
783
784
4.74k
  void setProtocolRAngleLoc(SourceLocation Loc) {
785
4.74k
    *((SourceLocation*)this->getExtraLocalData() + 1) = Loc;
786
4.74k
  }
787
788
434k
  unsigned getNumProtocols() const {
789
434k
    return this->getTypePtr()->getNumProtocols();
790
434k
  }
791
792
55
  SourceLocation getProtocolLoc(unsigned i) const {
793
55
    assert(i < getNumProtocols() && "Index is out of bounds!");
794
55
    return getProtocolLocArray()[i];
795
55
  }
796
797
4.74k
  void setProtocolLoc(unsigned i, SourceLocation Loc) {
798
4.74k
    assert(i < getNumProtocols() && "Index is out of bounds!");
799
4.74k
    getProtocolLocArray()[i] = Loc;
800
4.74k
  }
801
802
0
  ObjCProtocolDecl *getProtocol(unsigned i) const {
803
0
    assert(i < getNumProtocols() && "Index is out of bounds!");
804
0
    return *(this->getTypePtr()->qual_begin() + i);
805
0
  }
806
807
0
  ArrayRef<SourceLocation> getProtocolLocs() const {
808
0
    return llvm::makeArrayRef(getProtocolLocArray(), getNumProtocols());
809
0
  }
810
811
  void initializeLocal(ASTContext &Context, SourceLocation Loc);
812
813
176k
  unsigned getExtraLocalDataSize() const {
814
176k
    if (!this->getNumProtocols()) 
return 0171k
;
815
    // When there are protocol qualifers, we have LAngleLoc and RAngleLoc
816
    // as well.
817
4.74k
    return (this->getNumProtocols() + 2) * sizeof(SourceLocation) ;
818
4.74k
  }
819
820
489k
  unsigned getExtraLocalDataAlignment() const {
821
489k
    return alignof(SourceLocation);
822
489k
  }
823
824
61.3k
  SourceRange getLocalSourceRange() const {
825
61.3k
    SourceLocation start = getNameLoc();
826
61.3k
    SourceLocation end = getProtocolRAngleLoc();
827
61.3k
    if (end.isInvalid()) 
return SourceRange(start, start)58.4k
;
828
2.90k
    return SourceRange(start, end);
829
2.90k
  }
830
};
831
832
/// Wrapper for substituted template type parameters.
833
class SubstTemplateTypeParmTypeLoc :
834
    public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
835
                                     SubstTemplateTypeParmTypeLoc,
836
                                     SubstTemplateTypeParmType> {
837
};
838
839
  /// Wrapper for substituted template type parameters.
840
class SubstTemplateTypeParmPackTypeLoc :
841
    public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
842
                                     SubstTemplateTypeParmPackTypeLoc,
843
                                     SubstTemplateTypeParmPackType> {
844
};
845
846
struct AttributedLocInfo {
847
  const Attr *TypeAttr;
848
};
849
850
/// Type source information for an attributed type.
851
class AttributedTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc,
852
                                                 AttributedTypeLoc,
853
                                                 AttributedType,
854
                                                 AttributedLocInfo> {
855
public:
856
338
  attr::Kind getAttrKind() const {
857
338
    return getTypePtr()->getAttrKind();
858
338
  }
859
860
23
  bool isQualifier() const {
861
23
    return getTypePtr()->isQualifier();
862
23
  }
863
864
  /// The modified type, which is generally canonically different from
865
  /// the attribute type.
866
  ///    int main(int, char**) __attribute__((noreturn))
867
  ///    ~~~     ~~~~~~~~~~~~~
868
2.34M
  TypeLoc getModifiedLoc() const {
869
2.34M
    return getInnerTypeLoc();
870
2.34M
  }
871
872
  /// The type attribute.
873
2.18M
  const Attr *getAttr() const {
874
2.18M
    return getLocalData()->TypeAttr;
875
2.18M
  }
876
4.27M
  void setAttr(const Attr *A) {
877
4.27M
    getLocalData()->TypeAttr = A;
878
4.27M
  }
879
880
18.4k
  template<typename T> const T *getAttrAs() {
881
18.4k
    return dyn_cast_or_null<T>(getAttr());
882
18.4k
  }
clang::LifetimeBoundAttr const* clang::AttributedTypeLoc::getAttrAs<clang::LifetimeBoundAttr>()
Line
Count
Source
880
18.0k
  template<typename T> const T *getAttrAs() {
881
18.0k
    return dyn_cast_or_null<T>(getAttr());
882
18.0k
  }
clang::ObjCOwnershipAttr const* clang::AttributedTypeLoc::getAttrAs<clang::ObjCOwnershipAttr>()
Line
Count
Source
880
340
  template<typename T> const T *getAttrAs() {
881
340
    return dyn_cast_or_null<T>(getAttr());
882
340
  }
883
884
  SourceRange getLocalSourceRange() const;
885
886
3.77k
  void initializeLocal(ASTContext &Context, SourceLocation loc) {
887
3.77k
    setAttr(nullptr);
888
3.77k
  }
889
890
19.6M
  QualType getInnerType() const {
891
19.6M
    return getTypePtr()->getModifiedType();
892
19.6M
  }
893
};
894
895
struct ObjCObjectTypeLocInfo {
896
  SourceLocation TypeArgsLAngleLoc;
897
  SourceLocation TypeArgsRAngleLoc;
898
  SourceLocation ProtocolLAngleLoc;
899
  SourceLocation ProtocolRAngleLoc;
900
  bool HasBaseTypeAsWritten;
901
};
902
903
// A helper class for defining ObjC TypeLocs that can qualified with
904
// protocols.
905
//
906
// TypeClass basically has to be either ObjCInterfaceType or
907
// ObjCObjectPointerType.
908
class ObjCObjectTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc,
909
                                                 ObjCObjectTypeLoc,
910
                                                 ObjCObjectType,
911
                                                 ObjCObjectTypeLocInfo> {
912
  // TypeSourceInfo*'s are stored after Info, one for each type argument.
913
256k
  TypeSourceInfo **getTypeArgLocArray() const {
914
256k
    return (TypeSourceInfo**)this->getExtraLocalData();
915
256k
  }
916
917
  // SourceLocations are stored after the type argument information, one for
918
  // each Protocol.
919
29.8k
  SourceLocation *getProtocolLocArray() const {
920
29.8k
    return (SourceLocation*)(getTypeArgLocArray() + getNumTypeArgs());
921
29.8k
  }
922
923
public:
924
88.8k
  SourceLocation getTypeArgsLAngleLoc() const {
925
88.8k
    return this->getLocalData()->TypeArgsLAngleLoc;
926
88.8k
  }
927
928
250k
  void setTypeArgsLAngleLoc(SourceLocation Loc) {
929
250k
    this->getLocalData()->TypeArgsLAngleLoc = Loc;
930
250k
  }
931
932
78.0k
  SourceLocation getTypeArgsRAngleLoc() const {
933
78.0k
    return this->getLocalData()->TypeArgsRAngleLoc;
934
78.0k
  }
935
936
250k
  void setTypeArgsRAngleLoc(SourceLocation Loc) {
937
250k
    this->getLocalData()->TypeArgsRAngleLoc = Loc;
938
250k
  }
939
940
3.10M
  unsigned getNumTypeArgs() const {
941
3.10M
    return this->getTypePtr()->getTypeArgsAsWritten().size();
942
3.10M
  }
943
944
11.9k
  TypeSourceInfo *getTypeArgTInfo(unsigned i) const {
945
11.9k
    assert(i < getNumTypeArgs() && "Index is out of bounds!");
946
11.9k
    return getTypeArgLocArray()[i];
947
11.9k
  }
948
949
214k
  void setTypeArgTInfo(unsigned i, TypeSourceInfo *TInfo) {
950
214k
    assert(i < getNumTypeArgs() && "Index is out of bounds!");
951
214k
    getTypeArgLocArray()[i] = TInfo;
952
214k
  }
953
954
18.1k
  SourceLocation getProtocolLAngleLoc() const {
955
18.1k
    return this->getLocalData()->ProtocolLAngleLoc;
956
18.1k
  }
957
958
250k
  void setProtocolLAngleLoc(SourceLocation Loc) {
959
250k
    this->getLocalData()->ProtocolLAngleLoc = Loc;
960
250k
  }
961
962
88.8k
  SourceLocation getProtocolRAngleLoc() const {
963
88.8k
    return this->getLocalData()->ProtocolRAngleLoc;
964
88.8k
  }
965
966
250k
  void setProtocolRAngleLoc(SourceLocation Loc) {
967
250k
    this->getLocalData()->ProtocolRAngleLoc = Loc;
968
250k
  }
969
970
2.72M
  unsigned getNumProtocols() const {
971
2.72M
    return this->getTypePtr()->getNumProtocols();
972
2.72M
  }
973
974
1.87k
  SourceLocation getProtocolLoc(unsigned i) const {
975
1.87k
    assert(i < getNumProtocols() && "Index is out of bounds!");
976
1.87k
    return getProtocolLocArray()[i];
977
1.87k
  }
978
979
27.9k
  void setProtocolLoc(unsigned i, SourceLocation Loc) {
980
27.9k
    assert(i < getNumProtocols() && "Index is out of bounds!");
981
27.9k
    getProtocolLocArray()[i] = Loc;
982
27.9k
  }
983
984
68
  ObjCProtocolDecl *getProtocol(unsigned i) const {
985
68
    assert(i < getNumProtocols() && "Index is out of bounds!");
986
68
    return *(this->getTypePtr()->qual_begin() + i);
987
68
  }
988
989
990
17
  ArrayRef<SourceLocation> getProtocolLocs() const {
991
17
    return llvm::makeArrayRef(getProtocolLocArray(), getNumProtocols());
992
17
  }
993
994
7.18k
  bool hasBaseTypeAsWritten() const {
995
7.18k
    return getLocalData()->HasBaseTypeAsWritten;
996
7.18k
  }
997
998
250k
  void setHasBaseTypeAsWritten(bool HasBaseType) {
999
250k
    getLocalData()->HasBaseTypeAsWritten = HasBaseType;
1000
250k
  }
1001
1002
204k
  TypeLoc getBaseLoc() const {
1003
204k
    return getInnerTypeLoc();
1004
204k
  }
1005
1006
81.6k
  SourceRange getLocalSourceRange() const {
1007
81.6k
    SourceLocation start = getTypeArgsLAngleLoc();
1008
81.6k
    if (start.isInvalid())
1009
10.9k
      start = getProtocolLAngleLoc();
1010
81.6k
    SourceLocation end = getProtocolRAngleLoc();
1011
81.6k
    if (end.isInvalid())
1012
70.8k
      end = getTypeArgsRAngleLoc();
1013
81.6k
    return SourceRange(start, end);
1014
81.6k
  }
1015
1016
  void initializeLocal(ASTContext &Context, SourceLocation Loc);
1017
1018
2.40M
  unsigned getExtraLocalDataSize() const {
1019
2.40M
    return this->getNumTypeArgs() * sizeof(TypeSourceInfo *)
1020
2.40M
         + this->getNumProtocols() * sizeof(SourceLocation);
1021
2.40M
  }
1022
1023
4.36M
  unsigned getExtraLocalDataAlignment() const {
1024
4.36M
    static_assert(alignof(ObjCObjectTypeLoc) >= alignof(TypeSourceInfo *),
1025
4.36M
                  "not enough alignment for tail-allocated data");
1026
4.36M
    return alignof(TypeSourceInfo *);
1027
4.36M
  }
1028
1029
2.75M
  QualType getInnerType() const {
1030
2.75M
    return getTypePtr()->getBaseType();
1031
2.75M
  }
1032
};
1033
1034
struct ObjCInterfaceLocInfo {
1035
  SourceLocation NameLoc;
1036
  SourceLocation NameEndLoc;
1037
};
1038
1039
/// Wrapper for source info for ObjC interfaces.
1040
class ObjCInterfaceTypeLoc : public ConcreteTypeLoc<ObjCObjectTypeLoc,
1041
                                                    ObjCInterfaceTypeLoc,
1042
                                                    ObjCInterfaceType,
1043
                                                    ObjCInterfaceLocInfo> {
1044
public:
1045
379
  ObjCInterfaceDecl *getIFaceDecl() const {
1046
379
    return getTypePtr()->getDecl();
1047
379
  }
1048
1049
2.10M
  SourceLocation getNameLoc() const {
1050
2.10M
    return getLocalData()->NameLoc;
1051
2.10M
  }
1052
1053
1.81M
  void setNameLoc(SourceLocation Loc) {
1054
1.81M
    getLocalData()->NameLoc = Loc;
1055
1.81M
  }
1056
1057
2.05M
  SourceRange getLocalSourceRange() const {
1058
2.05M
    return SourceRange(getNameLoc(), getNameEndLoc());
1059
2.05M
  }
1060
1061
2.05M
  SourceLocation getNameEndLoc() const {
1062
2.05M
    return getLocalData()->NameEndLoc;
1063
2.05M
  }
1064
1065
1.79M
  void setNameEndLoc(SourceLocation Loc) {
1066
1.79M
    getLocalData()->NameEndLoc = Loc;
1067
1.79M
  }
1068
1069
445k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1070
445k
    setNameLoc(Loc);
1071
445k
    setNameEndLoc(Loc);
1072
445k
  }
1073
};
1074
1075
struct MacroQualifiedLocInfo {
1076
  SourceLocation ExpansionLoc;
1077
};
1078
1079
class MacroQualifiedTypeLoc
1080
    : public ConcreteTypeLoc<UnqualTypeLoc, MacroQualifiedTypeLoc,
1081
                             MacroQualifiedType, MacroQualifiedLocInfo> {
1082
public:
1083
0
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1084
0
    setExpansionLoc(Loc);
1085
0
  }
1086
1087
215k
  TypeLoc getInnerLoc() const { return getInnerTypeLoc(); }
1088
1089
23
  const IdentifierInfo *getMacroIdentifier() const {
1090
23
    return getTypePtr()->getMacroIdentifier();
1091
23
  }
1092
1093
9.91k
  SourceLocation getExpansionLoc() const {
1094
9.91k
    return this->getLocalData()->ExpansionLoc;
1095
9.91k
  }
1096
1097
317k
  void setExpansionLoc(SourceLocation Loc) {
1098
317k
    this->getLocalData()->ExpansionLoc = Loc;
1099
317k
  }
1100
1101
1.33M
  QualType getInnerType() const { return getTypePtr()->getUnderlyingType(); }
1102
1103
190
  SourceRange getLocalSourceRange() const {
1104
190
    return getInnerLoc().getLocalSourceRange();
1105
190
  }
1106
};
1107
1108
struct ParenLocInfo {
1109
  SourceLocation LParenLoc;
1110
  SourceLocation RParenLoc;
1111
};
1112
1113
class ParenTypeLoc
1114
  : public ConcreteTypeLoc<UnqualTypeLoc, ParenTypeLoc, ParenType,
1115
                           ParenLocInfo> {
1116
public:
1117
142k
  SourceLocation getLParenLoc() const {
1118
142k
    return this->getLocalData()->LParenLoc;
1119
142k
  }
1120
1121
142k
  SourceLocation getRParenLoc() const {
1122
142k
    return this->getLocalData()->RParenLoc;
1123
142k
  }
1124
1125
384k
  void setLParenLoc(SourceLocation Loc) {
1126
384k
    this->getLocalData()->LParenLoc = Loc;
1127
384k
  }
1128
1129
384k
  void setRParenLoc(SourceLocation Loc) {
1130
384k
    this->getLocalData()->RParenLoc = Loc;
1131
384k
  }
1132
1133
103k
  SourceRange getLocalSourceRange() const {
1134
103k
    return SourceRange(getLParenLoc(), getRParenLoc());
1135
103k
  }
1136
1137
3.37k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1138
3.37k
    setLParenLoc(Loc);
1139
3.37k
    setRParenLoc(Loc);
1140
3.37k
  }
1141
1142
58.4k
  TypeLoc getInnerLoc() const {
1143
58.4k
    return getInnerTypeLoc();
1144
58.4k
  }
1145
1146
2.01M
  QualType getInnerType() const {
1147
2.01M
    return this->getTypePtr()->getInnerType();
1148
2.01M
  }
1149
};
1150
1151
3.66M
inline TypeLoc TypeLoc::IgnoreParens() const {
1152
3.66M
  if (ParenTypeLoc::isKind(*this))
1153
162
    return IgnoreParensImpl(*this);
1154
3.66M
  return *this;
1155
3.66M
}
1156
1157
struct AdjustedLocInfo {}; // Nothing.
1158
1159
class AdjustedTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc, AdjustedTypeLoc,
1160
                                               AdjustedType, AdjustedLocInfo> {
1161
public:
1162
2.13k
  TypeLoc getOriginalLoc() const {
1163
2.13k
    return getInnerTypeLoc();
1164
2.13k
  }
1165
1166
2.35k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1167
    // do nothing
1168
2.35k
  }
1169
1170
25.1k
  QualType getInnerType() const {
1171
    // The inner type is the undecayed type, since that's what we have source
1172
    // location information for.
1173
25.1k
    return getTypePtr()->getOriginalType();
1174
25.1k
  }
1175
1176
1.06k
  SourceRange getLocalSourceRange() const { return {}; }
1177
1178
19.3k
  unsigned getLocalDataSize() const {
1179
    // sizeof(AdjustedLocInfo) is 1, but we don't need its address to be unique
1180
    // anyway.  TypeLocBuilder can't handle data sizes of 1.
1181
19.3k
    return 0;  // No data.
1182
19.3k
  }
1183
};
1184
1185
/// Wrapper for source info for pointers decayed from arrays and
1186
/// functions.
1187
class DecayedTypeLoc : public InheritingConcreteTypeLoc<
1188
                           AdjustedTypeLoc, DecayedTypeLoc, DecayedType> {
1189
};
1190
1191
struct PointerLikeLocInfo {
1192
  SourceLocation StarLoc;
1193
};
1194
1195
/// A base class for
1196
template <class Derived, class TypeClass, class LocalData = PointerLikeLocInfo>
1197
class PointerLikeTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc, Derived,
1198
                                                  TypeClass, LocalData> {
1199
public:
1200
11.3M
  SourceLocation getSigilLoc() const {
1201
11.3M
    return this->getLocalData()->StarLoc;
1202
11.3M
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1200
4.19M
  SourceLocation getSigilLoc() const {
1201
4.19M
    return this->getLocalData()->StarLoc;
1202
4.19M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1200
88.8k
  SourceLocation getSigilLoc() const {
1201
88.8k
    return this->getLocalData()->StarLoc;
1202
88.8k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getSigilLoc() const
Line
Count
Source
1200
62.4k
  SourceLocation getSigilLoc() const {
1201
62.4k
    return this->getLocalData()->StarLoc;
1202
62.4k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1200
1.46M
  SourceLocation getSigilLoc() const {
1201
1.46M
    return this->getLocalData()->StarLoc;
1202
1.46M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getSigilLoc() const
Line
Count
Source
1200
5.57M
  SourceLocation getSigilLoc() const {
1201
5.57M
    return this->getLocalData()->StarLoc;
1202
5.57M
  }
1203
1204
11.3M
  void setSigilLoc(SourceLocation Loc) {
1205
11.3M
    this->getLocalData()->StarLoc = Loc;
1206
11.3M
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1204
6.31M
  void setSigilLoc(SourceLocation Loc) {
1205
6.31M
    this->getLocalData()->StarLoc = Loc;
1206
6.31M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1204
79.0k
  void setSigilLoc(SourceLocation Loc) {
1205
79.0k
    this->getLocalData()->StarLoc = Loc;
1206
79.0k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1204
49.9k
  void setSigilLoc(SourceLocation Loc) {
1205
49.9k
    this->getLocalData()->StarLoc = Loc;
1206
49.9k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1204
1.61M
  void setSigilLoc(SourceLocation Loc) {
1205
1.61M
    this->getLocalData()->StarLoc = Loc;
1206
1.61M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::setSigilLoc(clang::SourceLocation)
Line
Count
Source
1204
3.25M
  void setSigilLoc(SourceLocation Loc) {
1205
3.25M
    this->getLocalData()->StarLoc = Loc;
1206
3.25M
  }
1207
1208
2.22M
  TypeLoc getPointeeLoc() const {
1209
2.22M
    return this->getInnerTypeLoc();
1210
2.22M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1208
2.49k
  TypeLoc getPointeeLoc() const {
1209
2.49k
    return this->getInnerTypeLoc();
1210
2.49k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getPointeeLoc() const
Line
Count
Source
1208
2.01k
  TypeLoc getPointeeLoc() const {
1209
2.01k
    return this->getInnerTypeLoc();
1210
2.01k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1208
67.9k
  TypeLoc getPointeeLoc() const {
1209
67.9k
    return this->getInnerTypeLoc();
1210
67.9k
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1208
1.07M
  TypeLoc getPointeeLoc() const {
1209
1.07M
    return this->getInnerTypeLoc();
1210
1.07M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getPointeeLoc() const
Line
Count
Source
1208
1.07M
  TypeLoc getPointeeLoc() const {
1209
1.07M
    return this->getInnerTypeLoc();
1210
1.07M
  }
1211
1212
4.23M
  SourceRange getLocalSourceRange() const {
1213
4.23M
    return SourceRange(getSigilLoc(), getSigilLoc());
1214
4.23M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1212
43.2k
  SourceRange getLocalSourceRange() const {
1213
43.2k
    return SourceRange(getSigilLoc(), getSigilLoc());
1214
43.2k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1212
709k
  SourceRange getLocalSourceRange() const {
1213
709k
    return SourceRange(getSigilLoc(), getSigilLoc());
1214
709k
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1212
1.61M
  SourceRange getLocalSourceRange() const {
1213
1.61M
    return SourceRange(getSigilLoc(), getSigilLoc());
1214
1.61M
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::getLocalSourceRange() const
Line
Count
Source
1212
1.86M
  SourceRange getLocalSourceRange() const {
1213
1.86M
    return SourceRange(getSigilLoc(), getSigilLoc());
1214
1.86M
  }
1215
1216
1.15M
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1217
1.15M
    setSigilLoc(Loc);
1218
1.15M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1216
903
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1217
903
    setSigilLoc(Loc);
1218
903
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1216
53.8k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1217
53.8k
    setSigilLoc(Loc);
1218
53.8k
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1216
508k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1217
508k
    setSigilLoc(Loc);
1218
508k
  }
clang::PointerLikeTypeLoc<clang::ReferenceTypeLoc, clang::ReferenceType, clang::PointerLikeLocInfo>::initializeLocal(clang::ASTContext&, clang::SourceLocation)
Line
Count
Source
1216
588k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1217
588k
    setSigilLoc(Loc);
1218
588k
  }
1219
1220
41.8M
  QualType getInnerType() const {
1221
41.8M
    return this->getTypePtr()->getPointeeType();
1222
41.8M
  }
clang::PointerLikeTypeLoc<clang::BlockPointerTypeLoc, clang::BlockPointerType, clang::PointerLikeLocInfo>::getInnerType() const
Line
Count
Source
1220
414k
  QualType getInnerType() const {
1221
414k
    return this->getTypePtr()->getPointeeType();
1222
414k
  }
clang::PointerLikeTypeLoc<clang::MemberPointerTypeLoc, clang::MemberPointerType, clang::MemberPointerLocInfo>::getInnerType() const
Line
Count
Source
1220
395k
  QualType getInnerType() const {
1221
395k
    return this->getTypePtr()->getPointeeType();
1222
395k
  }
clang::PointerLikeTypeLoc<clang::ObjCObjectPointerTypeLoc, clang::ObjCObjectPointerType, clang::PointerLikeLocInfo>::getInnerType() const
Line
Count
Source
1220
8.22M
  QualType getInnerType() const {
1221
8.22M
    return this->getTypePtr()->getPointeeType();
1222
8.22M
  }
clang::PointerLikeTypeLoc<clang::PointerTypeLoc, clang::PointerType, clang::PointerLikeLocInfo>::getInnerType() const
Line
Count
Source
1220
32.7M
  QualType getInnerType() const {
1221
32.7M
    return this->getTypePtr()->getPointeeType();
1222
32.7M
  }
1223
};
1224
1225
/// Wrapper for source info for pointers.
1226
class PointerTypeLoc : public PointerLikeTypeLoc<PointerTypeLoc,
1227
                                                 PointerType> {
1228
public:
1229
314k
  SourceLocation getStarLoc() const {
1230
314k
    return getSigilLoc();
1231
314k
  }
1232
1233
5.48M
  void setStarLoc(SourceLocation Loc) {
1234
5.48M
    setSigilLoc(Loc);
1235
5.48M
  }
1236
};
1237
1238
/// Wrapper for source info for block pointers.
1239
class BlockPointerTypeLoc : public PointerLikeTypeLoc<BlockPointerTypeLoc,
1240
                                                      BlockPointerType> {
1241
public:
1242
2.30k
  SourceLocation getCaretLoc() const {
1243
2.30k
    return getSigilLoc();
1244
2.30k
  }
1245
1246
78.1k
  void setCaretLoc(SourceLocation Loc) {
1247
78.1k
    setSigilLoc(Loc);
1248
78.1k
  }
1249
};
1250
1251
struct MemberPointerLocInfo : public PointerLikeLocInfo {
1252
  TypeSourceInfo *ClassTInfo;
1253
};
1254
1255
/// Wrapper for source info for member pointers.
1256
class MemberPointerTypeLoc : public PointerLikeTypeLoc<MemberPointerTypeLoc,
1257
                                                       MemberPointerType,
1258
                                                       MemberPointerLocInfo> {
1259
public:
1260
62.0k
  SourceLocation getStarLoc() const {
1261
62.0k
    return getSigilLoc();
1262
62.0k
  }
1263
1264
31.1k
  void setStarLoc(SourceLocation Loc) {
1265
31.1k
    setSigilLoc(Loc);
1266
31.1k
  }
1267
1268
31.0k
  const Type *getClass() const {
1269
31.0k
    return getTypePtr()->getClass();
1270
31.0k
  }
1271
1272
63.4k
  TypeSourceInfo *getClassTInfo() const {
1273
63.4k
    return getLocalData()->ClassTInfo;
1274
63.4k
  }
1275
1276
49.9k
  void setClassTInfo(TypeSourceInfo* TI) {
1277
49.9k
    getLocalData()->ClassTInfo = TI;
1278
49.9k
  }
1279
1280
18.3k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1281
18.3k
    setSigilLoc(Loc);
1282
18.3k
    setClassTInfo(nullptr);
1283
18.3k
  }
1284
1285
60.4k
  SourceRange getLocalSourceRange() const {
1286
60.4k
    if (TypeSourceInfo *TI = getClassTInfo())
1287
40.6k
      return SourceRange(TI->getTypeLoc().getBeginLoc(), getStarLoc());
1288
19.8k
    else
1289
19.8k
      return SourceRange(getStarLoc());
1290
60.4k
  }
1291
};
1292
1293
/// Wraps an ObjCPointerType with source location information.
1294
class ObjCObjectPointerTypeLoc :
1295
    public PointerLikeTypeLoc<ObjCObjectPointerTypeLoc,
1296
                              ObjCObjectPointerType> {
1297
public:
1298
47.5k
  SourceLocation getStarLoc() const {
1299
47.5k
    return getSigilLoc();
1300
47.5k
  }
1301
1302
1.56M
  void setStarLoc(SourceLocation Loc) {
1303
1.56M
    setSigilLoc(Loc);
1304
1.56M
  }
1305
};
1306
1307
class ReferenceTypeLoc : public PointerLikeTypeLoc<ReferenceTypeLoc,
1308
                                                   ReferenceType> {
1309
public:
1310
23.3M
  QualType getInnerType() const {
1311
23.3M
    return getTypePtr()->getPointeeTypeAsWritten();
1312
23.3M
  }
1313
};
1314
1315
class LValueReferenceTypeLoc :
1316
    public InheritingConcreteTypeLoc<ReferenceTypeLoc,
1317
                                     LValueReferenceTypeLoc,
1318
                                     LValueReferenceType> {
1319
public:
1320
140k
  SourceLocation getAmpLoc() const {
1321
140k
    return getSigilLoc();
1322
140k
  }
1323
1324
1.58M
  void setAmpLoc(SourceLocation Loc) {
1325
1.58M
    setSigilLoc(Loc);
1326
1.58M
  }
1327
};
1328
1329
class RValueReferenceTypeLoc :
1330
    public InheritingConcreteTypeLoc<ReferenceTypeLoc,
1331
                                     RValueReferenceTypeLoc,
1332
                                     RValueReferenceType> {
1333
public:
1334
18.0k
  SourceLocation getAmpAmpLoc() const {
1335
18.0k
    return getSigilLoc();
1336
18.0k
  }
1337
1338
231k
  void setAmpAmpLoc(SourceLocation Loc) {
1339
231k
    setSigilLoc(Loc);
1340
231k
  }
1341
};
1342
1343
struct FunctionLocInfo {
1344
  SourceLocation LocalRangeBegin;
1345
  SourceLocation LParenLoc;
1346
  SourceLocation RParenLoc;
1347
  SourceLocation LocalRangeEnd;
1348
};
1349
1350
/// Wrapper for source info for functions.
1351
class FunctionTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc,
1352
                                               FunctionTypeLoc,
1353
                                               FunctionType,
1354
                                               FunctionLocInfo> {
1355
80.8M
  bool hasExceptionSpec() const {
1356
80.8M
    if (auto *FPT = dyn_cast<FunctionProtoType>(getTypePtr())) {
1357
80.7M
      return FPT->hasExceptionSpec();
1358
80.7M
    }
1359
140k
    return false;
1360
140k
  }
1361
1362
1.86M
  SourceRange *getExceptionSpecRangePtr() const {
1363
1.86M
    assert(hasExceptionSpec() && "No exception spec range");
1364
    // After the Info comes the ParmVarDecl array, and after that comes the
1365
    // exception specification information.
1366
1.86M
    return (SourceRange *)(getParmArray() + getNumParams());
1367
1.86M
  }
1368
1369
public:
1370
2.46M
  SourceLocation getLocalRangeBegin() const {
1371
2.46M
    return getLocalData()->LocalRangeBegin;
1372
2.46M
  }
1373
1374
16.6M
  void setLocalRangeBegin(SourceLocation L) {
1375
16.6M
    getLocalData()->LocalRangeBegin = L;
1376
16.6M
  }
1377
1378
2.46M
  SourceLocation getLocalRangeEnd() const {
1379
2.46M
    return getLocalData()->LocalRangeEnd;
1380
2.46M
  }
1381
1382
16.6M
  void setLocalRangeEnd(SourceLocation L) {
1383
16.6M
    getLocalData()->LocalRangeEnd = L;
1384
16.6M
  }
1385
1386
1.45M
  SourceLocation getLParenLoc() const {
1387
1.45M
    return this->getLocalData()->LParenLoc;
1388
1.45M
  }
1389
1390
16.6M
  void setLParenLoc(SourceLocation Loc) {
1391
16.6M
    this->getLocalData()->LParenLoc = Loc;
1392
16.6M
  }
1393
1394
1.44M
  SourceLocation getRParenLoc() const {
1395
1.44M
    return this->getLocalData()->RParenLoc;
1396
1.44M
  }
1397
1398
16.6M
  void setRParenLoc(SourceLocation Loc) {
1399
16.6M
    this->getLocalData()->RParenLoc = Loc;
1400
16.6M
  }
1401
1402
0
  SourceRange getParensRange() const {
1403
0
    return SourceRange(getLParenLoc(), getRParenLoc());
1404
0
  }
1405
1406
1.43M
  SourceRange getExceptionSpecRange() const {
1407
1.43M
    if (hasExceptionSpec())
1408
433k
      return *getExceptionSpecRangePtr();
1409
1.00M
    return {};
1410
1.00M
  }
1411
1412
16.4M
  void setExceptionSpecRange(SourceRange R) {
1413
16.4M
    if (hasExceptionSpec())
1414
1.43M
      *getExceptionSpecRangePtr() = R;
1415
16.4M
  }
1416
1417
1.15M
  ArrayRef<ParmVarDecl *> getParams() const {
1418
1.15M
    return llvm::makeArrayRef(getParmArray(), getNumParams());
1419
1.15M
  }
1420
1421
  // ParmVarDecls* are stored after Info, one for each parameter.
1422
46.7M
  ParmVarDecl **getParmArray() const {
1423
46.7M
    return (ParmVarDecl**) getExtraLocalData();
1424
46.7M
  }
1425
1426
82.5M
  unsigned getNumParams() const {
1427
82.5M
    if (isa<FunctionNoProtoType>(getTypePtr()))
1428
140k
      return 0;
1429
82.3M
    return cast<FunctionProtoType>(getTypePtr())->getNumParams();
1430
82.3M
  }
1431
1432
5.09M
  ParmVarDecl *getParam(unsigned i) const { return getParmArray()[i]; }
1433
38.6M
  void setParam(unsigned i, ParmVarDecl *VD) { getParmArray()[i] = VD; }
1434
1435
1.55M
  TypeLoc getReturnLoc() const {
1436
1.55M
    return getInnerTypeLoc();
1437
1.55M
  }
1438
1439
1.02M
  SourceRange getLocalSourceRange() const {
1440
1.02M
    return SourceRange(getLocalRangeBegin(), getLocalRangeEnd());
1441
1.02M
  }
1442
1443
385k
  void initializeLocal(ASTContext &Context, SourceLocation Loc) {
1444
385k
    setLocalRangeBegin(Loc);
1445
385k
    setLParenLoc(Loc);
1446
385k
    setRParenLoc(Loc);
1447
385k
    setLocalRangeEnd(Loc);
1448
879k
    for (unsigned i = 0, e = getNumParams(); i != e; 
++i493k
)
1449
493k
      setParam(i, nullptr);
1450
385k
    if (hasExceptionSpec())
1451
134k
      setExceptionSpecRange(Loc);
1452
385k
  }
1453
1454
  /// Returns the size of the type source info data block that is
1455
  /// specific to this type.
1456
60.7M
  unsigned getExtraLocalDataSize() const {
1457
52.4M
    unsigned ExceptSpecSize = hasExceptionSpec() ? 
sizeof(SourceRange)8.23M
: 0;
1458
60.7M
    return (getNumParams() * sizeof(ParmVarDecl *)) + ExceptSpecSize;
1459
60.7M
  }
1460
1461
128M
  unsigned getExtraLocalDataAlignment() const { return alignof(ParmVarDecl *); }
1462
1463
82.1M
  QualType getInnerType() const { return getTypePtr()->getReturnType(); }
1464
};
1465
1466
class FunctionProtoTypeLoc :
1467
    public InheritingConcreteTypeLoc<FunctionTypeLoc,
1468
                                     FunctionProtoTypeLoc,
1469
                                     FunctionProtoType> {
1470
};
1471
1472
class FunctionNoProtoTypeLoc :
1473
    public InheritingConcreteTypeLoc<FunctionTypeLoc,
1474
                                     FunctionNoProtoTypeLoc,
1475
                                     FunctionNoProtoType> {
1476
};
1477
1478
struct ArrayLocInfo {
1479
  SourceLocation LBracketLoc, RBracketLoc;
1480
  Expr *Size;
1481
};
1482
1483
/// Wrapper for source info for arrays.
1484
class ArrayTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc,
1485
                                            ArrayTypeLoc,
1486
                                            ArrayType,
1487
                                            ArrayLocInfo> {
1488
public:
1489
86.6k
  SourceLocation getLBracketLoc() const {
1490
86.6k
    return getLocalData()->LBracketLoc;
1491
86.6k
  }
1492
1493
512k
  void setLBracketLoc(SourceLocation Loc) {
1494
512k
    getLocalData()->LBracketLoc = Loc;
1495
512k
  }
1496
1497
86.6k
  SourceLocation getRBracketLoc() const {
1498
86.6k
    return getLocalData()->RBracketLoc;
1499
86.6k
  }
1500
1501
512k
  void setRBracketLoc(SourceLocation Loc) {
1502
512k
    getLocalData()->RBracketLoc = Loc;
1503
512k
  }
1504
1505
13.6k
  SourceRange getBracketsRange() const {
1506
13.6k
    return SourceRange(getLBracketLoc(), getRBracketLoc());
1507
13.6k
  }
1508
1509
137k
  Expr *getSizeExpr() const {