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