Coverage Report

Created: 2019-02-23 12:57

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/tools/clang/include/clang/AST/NonTrivialTypeVisitor.h
Line
Count
Source (jump to first uncovered line)
1
//===-- NonTrivialTypeVisitor.h - Visitor for non-trivial Types *- 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
//  This file defines the visitor classes that are used to traverse non-trivial
10
//  structs.
11
//
12
//===----------------------------------------------------------------------===//
13
14
#ifndef LLVM_CLANG_NON_TRIVIAL_TYPE_VISITOR_H
15
#define LLVM_CLANG_NON_TRIVIAL_TYPE_VISITOR_H
16
17
#include "clang/AST/Type.h"
18
19
namespace clang {
20
21
template <class Derived, class RetTy = void> struct DestructedTypeVisitor {
22
319
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
23
319
    return asDerived().visitWithKind(FT.isDestructedType(), FT,
24
319
                                     std::forward<Ts>(Args)...);
25
319
  }
CGNonTrivialStruct.cpp:void clang::DestructedTypeVisitor<(anonymous namespace)::GenDestructorFuncName, void>::visit<clang::FieldDecl const*&, clang::CharUnits&>(clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&)
Line
Count
Source
22
229
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
23
229
    return asDerived().visitWithKind(FT.isDestructedType(), FT,
24
229
                                     std::forward<Ts>(Args)...);
25
229
  }
CGNonTrivialStruct.cpp:void clang::DestructedTypeVisitor<(anonymous namespace)::GenDestructor, void>::visit<clang::FieldDecl const*&, clang::CharUnits&, std::__1::array<clang::CodeGen::Address, 1ul>&>(clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&, std::__1::array<clang::CodeGen::Address, 1ul>&&&)
Line
Count
Source
22
90
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
23
90
    return asDerived().visitWithKind(FT.isDestructedType(), FT,
24
90
                                     std::forward<Ts>(Args)...);
25
90
  }
26
27
  template <class... Ts>
28
  RetTy visitWithKind(QualType::DestructionKind DK, QualType FT,
29
301
                      Ts &&... Args) {
30
301
    switch (DK) {
31
301
    case QualType::DK_objc_strong_lifetime:
32
108
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
33
301
    case QualType::DK_nontrivial_c_struct:
34
18
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
35
301
    case QualType::DK_none:
36
144
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
37
301
    case QualType::DK_cxx_destructor:
38
0
      return asDerived().visitCXXDestructor(FT, std::forward<Ts>(Args)...);
39
301
    case QualType::DK_objc_weak_lifetime:
40
31
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
41
0
    }
42
0
43
0
    llvm_unreachable("unknown destruction kind");
44
0
  }
CGNonTrivialStruct.cpp:void clang::DestructedTypeVisitor<(anonymous namespace)::GenDestructorFuncName, void>::visitWithKind<clang::FieldDecl const*&, clang::CharUnits&>(clang::QualType::DestructionKind, clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&)
Line
Count
Source
29
217
                      Ts &&... Args) {
30
217
    switch (DK) {
31
217
    case QualType::DK_objc_strong_lifetime:
32
77
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
33
217
    case QualType::DK_nontrivial_c_struct:
34
14
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
35
217
    case QualType::DK_none:
36
101
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
37
217
    case QualType::DK_cxx_destructor:
38
0
      return asDerived().visitCXXDestructor(FT, std::forward<Ts>(Args)...);
39
217
    case QualType::DK_objc_weak_lifetime:
40
25
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
41
0
    }
42
0
43
0
    llvm_unreachable("unknown destruction kind");
44
0
  }
CGNonTrivialStruct.cpp:void clang::DestructedTypeVisitor<(anonymous namespace)::GenDestructor, void>::visitWithKind<clang::FieldDecl const*&, clang::CharUnits&, std::__1::array<clang::CodeGen::Address, 1ul>&>(clang::QualType::DestructionKind, clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&, std::__1::array<clang::CodeGen::Address, 1ul>&&&)
Line
Count
Source
29
84
                      Ts &&... Args) {
30
84
    switch (DK) {
31
84
    case QualType::DK_objc_strong_lifetime:
32
31
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
33
84
    case QualType::DK_nontrivial_c_struct:
34
4
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
35
84
    case QualType::DK_none:
36
43
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
37
84
    case QualType::DK_cxx_destructor:
38
0
      return asDerived().visitCXXDestructor(FT, std::forward<Ts>(Args)...);
39
84
    case QualType::DK_objc_weak_lifetime:
40
6
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
41
0
    }
42
0
43
0
    llvm_unreachable("unknown destruction kind");
44
0
  }
45
46
620
  Derived &asDerived() { return static_cast<Derived &>(*this); }
CGNonTrivialStruct.cpp:clang::DestructedTypeVisitor<(anonymous namespace)::GenDestructorFuncName, void>::asDerived()
Line
Count
Source
46
446
  Derived &asDerived() { return static_cast<Derived &>(*this); }
CGNonTrivialStruct.cpp:clang::DestructedTypeVisitor<(anonymous namespace)::GenDestructor, void>::asDerived()
Line
Count
Source
46
174
  Derived &asDerived() { return static_cast<Derived &>(*this); }
47
};
48
49
template <class Derived, class RetTy = void>
50
struct DefaultInitializedTypeVisitor {
51
146
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
52
146
    return asDerived().visitWithKind(
53
146
        FT.isNonTrivialToPrimitiveDefaultInitialize(), FT,
54
146
        std::forward<Ts>(Args)...);
55
146
  }
CGNonTrivialStruct.cpp:void clang::DefaultInitializedTypeVisitor<(anonymous namespace)::GenDefaultInitialize, void>::visit<std::nullptr_t, clang::CharUnits, std::__1::array<clang::CodeGen::Address, 1ul> >(clang::QualType, std::nullptr_t&&, clang::CharUnits&&, std::__1::array<clang::CodeGen::Address, 1ul>&&)
Line
Count
Source
51
27
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
52
27
    return asDerived().visitWithKind(
53
27
        FT.isNonTrivialToPrimitiveDefaultInitialize(), FT,
54
27
        std::forward<Ts>(Args)...);
55
27
  }
CGNonTrivialStruct.cpp:void clang::DefaultInitializedTypeVisitor<(anonymous namespace)::GenDefaultInitializeFuncName, void>::visit<clang::FieldDecl const*&, clang::CharUnits&>(clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&)
Line
Count
Source
51
73
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
52
73
    return asDerived().visitWithKind(
53
73
        FT.isNonTrivialToPrimitiveDefaultInitialize(), FT,
54
73
        std::forward<Ts>(Args)...);
55
73
  }
CGNonTrivialStruct.cpp:void clang::DefaultInitializedTypeVisitor<(anonymous namespace)::GenDefaultInitialize, void>::visit<clang::FieldDecl const*&, clang::CharUnits&, std::__1::array<clang::CodeGen::Address, 1ul>&>(clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&, std::__1::array<clang::CodeGen::Address, 1ul>&&&)
Line
Count
Source
51
30
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
52
30
    return asDerived().visitWithKind(
53
30
        FT.isNonTrivialToPrimitiveDefaultInitialize(), FT,
54
30
        std::forward<Ts>(Args)...);
55
30
  }
SemaChecking.cpp:void clang::DefaultInitializedTypeVisitor<(anonymous namespace)::SearchNonTrivialToInitializeField, void>::visit<clang::SourceLocation>(clang::QualType, clang::SourceLocation&&)
Line
Count
Source
51
14
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
52
14
    return asDerived().visitWithKind(
53
14
        FT.isNonTrivialToPrimitiveDefaultInitialize(), FT,
54
14
        std::forward<Ts>(Args)...);
55
14
  }
SemaChecking.cpp:void clang::DefaultInitializedTypeVisitor<(anonymous namespace)::SearchNonTrivialToInitializeField, void>::visit<clang::SourceLocation&>(clang::QualType, clang::SourceLocation&&&)
Line
Count
Source
51
2
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
52
2
    return asDerived().visitWithKind(
53
2
        FT.isNonTrivialToPrimitiveDefaultInitialize(), FT,
54
2
        std::forward<Ts>(Args)...);
55
2
  }
56
57
  template <class... Ts>
58
  RetTy visitWithKind(QualType::PrimitiveDefaultInitializeKind PDIK,
59
142
                      QualType FT, Ts &&... Args) {
60
142
    switch (PDIK) {
61
142
    case QualType::PDIK_ARCStrong:
62
35
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
63
142
    case QualType::PDIK_ARCWeak:
64
19
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
65
142
    case QualType::PDIK_Struct:
66
39
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
67
142
    case QualType::PDIK_Trivial:
68
49
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
69
0
    }
70
0
71
0
    llvm_unreachable("unknown default-initialize kind");
72
0
  }
CGNonTrivialStruct.cpp:void clang::DefaultInitializedTypeVisitor<(anonymous namespace)::GenDefaultInitialize, void>::visitWithKind<clang::FieldDecl const*&, clang::CharUnits&, std::__1::array<clang::CodeGen::Address, 1ul>&>(clang::QualType::PrimitiveDefaultInitializeKind, clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&, std::__1::array<clang::CodeGen::Address, 1ul>&&&)
Line
Count
Source
59
55
                      QualType FT, Ts &&... Args) {
60
55
    switch (PDIK) {
61
55
    case QualType::PDIK_ARCStrong:
62
7
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
63
55
    case QualType::PDIK_ARCWeak:
64
5
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
65
55
    case QualType::PDIK_Struct:
66
31
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
67
55
    case QualType::PDIK_Trivial:
68
12
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
69
0
    }
70
0
71
0
    llvm_unreachable("unknown default-initialize kind");
72
0
  }
CGNonTrivialStruct.cpp:void clang::DefaultInitializedTypeVisitor<(anonymous namespace)::GenDefaultInitializeFuncName, void>::visitWithKind<clang::FieldDecl const*&, clang::CharUnits&>(clang::QualType::PrimitiveDefaultInitializeKind, clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&)
Line
Count
Source
59
73
                      QualType FT, Ts &&... Args) {
60
73
    switch (PDIK) {
61
73
    case QualType::PDIK_ARCStrong:
62
24
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
63
73
    case QualType::PDIK_ARCWeak:
64
12
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
65
73
    case QualType::PDIK_Struct:
66
6
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
67
73
    case QualType::PDIK_Trivial:
68
31
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
69
0
    }
70
0
71
0
    llvm_unreachable("unknown default-initialize kind");
72
0
  }
SemaChecking.cpp:void clang::DefaultInitializedTypeVisitor<(anonymous namespace)::SearchNonTrivialToInitializeField, void>::visitWithKind<clang::SourceLocation&>(clang::QualType::PrimitiveDefaultInitializeKind, clang::QualType, clang::SourceLocation&&&)
Line
Count
Source
59
14
                      QualType FT, Ts &&... Args) {
60
14
    switch (PDIK) {
61
14
    case QualType::PDIK_ARCStrong:
62
4
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
63
14
    case QualType::PDIK_ARCWeak:
64
2
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
65
14
    case QualType::PDIK_Struct:
66
2
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
67
14
    case QualType::PDIK_Trivial:
68
6
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
69
0
    }
70
0
71
0
    llvm_unreachable("unknown default-initialize kind");
72
0
  }
73
74
306
  Derived &asDerived() { return static_cast<Derived &>(*this); }
CGNonTrivialStruct.cpp:clang::DefaultInitializedTypeVisitor<(anonymous namespace)::GenDefaultInitialize, void>::asDerived()
Line
Count
Source
74
112
  Derived &asDerived() { return static_cast<Derived &>(*this); }
CGNonTrivialStruct.cpp:clang::DefaultInitializedTypeVisitor<(anonymous namespace)::GenDefaultInitializeFuncName, void>::asDerived()
Line
Count
Source
74
146
  Derived &asDerived() { return static_cast<Derived &>(*this); }
SemaChecking.cpp:clang::DefaultInitializedTypeVisitor<(anonymous namespace)::SearchNonTrivialToInitializeField, void>::asDerived()
Line
Count
Source
74
48
  Derived &asDerived() { return static_cast<Derived &>(*this); }
75
};
76
77
template <class Derived, bool IsMove, class RetTy = void>
78
struct CopiedTypeVisitor {
79
130k
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
80
130k
    QualType::PrimitiveCopyKind PCK =
81
130k
        IsMove ? 
FT.isNonTrivialToPrimitiveDestructiveMove()65.0k
82
130k
               : 
FT.isNonTrivialToPrimitiveCopy()65.2k
;
83
130k
    return asDerived().visitWithKind(PCK, FT, std::forward<Ts>(Args)...);
84
130k
  }
CGNonTrivialStruct.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::GenBinaryFuncName<false>, false, void>::visit<clang::FieldDecl const*&, clang::CharUnits&>(clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&)
Line
Count
Source
79
146
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
80
146
    QualType::PrimitiveCopyKind PCK =
81
146
        IsMove ? 
FT.isNonTrivialToPrimitiveDestructiveMove()0
82
146
               : FT.isNonTrivialToPrimitiveCopy();
83
146
    return asDerived().visitWithKind(PCK, FT, std::forward<Ts>(Args)...);
84
146
  }
CGNonTrivialStruct.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::GenCopyConstructor, false, void>::visit<clang::FieldDecl const*&, clang::CharUnits&, std::__1::array<clang::CodeGen::Address, 2ul>&>(clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&, std::__1::array<clang::CodeGen::Address, 2ul>&&&)
Line
Count
Source
79
73
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
80
73
    QualType::PrimitiveCopyKind PCK =
81
73
        IsMove ? 
FT.isNonTrivialToPrimitiveDestructiveMove()0
82
73
               : FT.isNonTrivialToPrimitiveCopy();
83
73
    return asDerived().visitWithKind(PCK, FT, std::forward<Ts>(Args)...);
84
73
  }
CGNonTrivialStruct.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::GenCopyAssignment, false, void>::visit<clang::FieldDecl const*&, clang::CharUnits&, std::__1::array<clang::CodeGen::Address, 2ul>&>(clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&, std::__1::array<clang::CodeGen::Address, 2ul>&&&)
Line
Count
Source
79
20
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
80
20
    QualType::PrimitiveCopyKind PCK =
81
20
        IsMove ? 
FT.isNonTrivialToPrimitiveDestructiveMove()0
82
20
               : FT.isNonTrivialToPrimitiveCopy();
83
20
    return asDerived().visitWithKind(PCK, FT, std::forward<Ts>(Args)...);
84
20
  }
CGNonTrivialStruct.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::GenBinaryFuncName<true>, true, void>::visit<clang::FieldDecl const*&, clang::CharUnits&>(clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&)
Line
Count
Source
79
46
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
80
46
    QualType::PrimitiveCopyKind PCK =
81
46
        IsMove ? FT.isNonTrivialToPrimitiveDestructiveMove()
82
46
               : 
FT.isNonTrivialToPrimitiveCopy()0
;
83
46
    return asDerived().visitWithKind(PCK, FT, std::forward<Ts>(Args)...);
84
46
  }
CGNonTrivialStruct.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::GenMoveConstructor, true, void>::visit<clang::FieldDecl const*&, clang::CharUnits&, std::__1::array<clang::CodeGen::Address, 2ul>&>(clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&, std::__1::array<clang::CodeGen::Address, 2ul>&&&)
Line
Count
Source
79
20
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
80
20
    QualType::PrimitiveCopyKind PCK =
81
20
        IsMove ? FT.isNonTrivialToPrimitiveDestructiveMove()
82
20
               : 
FT.isNonTrivialToPrimitiveCopy()0
;
83
20
    return asDerived().visitWithKind(PCK, FT, std::forward<Ts>(Args)...);
84
20
  }
CGNonTrivialStruct.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::GenMoveAssignment, true, void>::visit<clang::FieldDecl const*&, clang::CharUnits&, std::__1::array<clang::CodeGen::Address, 2ul>&>(clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&, std::__1::array<clang::CodeGen::Address, 2ul>&&&)
Line
Count
Source
79
18
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
80
18
    QualType::PrimitiveCopyKind PCK =
81
18
        IsMove ? FT.isNonTrivialToPrimitiveDestructiveMove()
82
18
               : 
FT.isNonTrivialToPrimitiveCopy()0
;
83
18
    return asDerived().visitWithKind(PCK, FT, std::forward<Ts>(Args)...);
84
18
  }
SemaChecking.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::SearchNonTrivialToCopyField, false, void>::visit<clang::SourceLocation>(clang::QualType, clang::SourceLocation&&)
Line
Count
Source
79
14
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
80
14
    QualType::PrimitiveCopyKind PCK =
81
14
        IsMove ? 
FT.isNonTrivialToPrimitiveDestructiveMove()0
82
14
               : FT.isNonTrivialToPrimitiveCopy();
83
14
    return asDerived().visitWithKind(PCK, FT, std::forward<Ts>(Args)...);
84
14
  }
SemaChecking.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::SearchNonTrivialToCopyField, false, void>::visit<clang::SourceLocation&>(clang::QualType, clang::SourceLocation&&&)
Line
Count
Source
79
2
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
80
2
    QualType::PrimitiveCopyKind PCK =
81
2
        IsMove ? 
FT.isNonTrivialToPrimitiveDestructiveMove()0
82
2
               : FT.isNonTrivialToPrimitiveCopy();
83
2
    return asDerived().visitWithKind(PCK, FT, std::forward<Ts>(Args)...);
84
2
  }
Type.cpp:bool clang::CopiedTypeVisitor<(anonymous namespace)::IsNonTrivialCopyMoveVisitor<false>, false, bool>::visit<>(clang::QualType)
Line
Count
Source
79
64.9k
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
80
64.9k
    QualType::PrimitiveCopyKind PCK =
81
64.9k
        IsMove ? 
FT.isNonTrivialToPrimitiveDestructiveMove()0
82
64.9k
               : FT.isNonTrivialToPrimitiveCopy();
83
64.9k
    return asDerived().visitWithKind(PCK, FT, std::forward<Ts>(Args)...);
84
64.9k
  }
Type.cpp:bool clang::CopiedTypeVisitor<(anonymous namespace)::IsNonTrivialCopyMoveVisitor<true>, true, bool>::visit<>(clang::QualType)
Line
Count
Source
79
64.9k
  template <class... Ts> RetTy visit(QualType FT, Ts &&... Args) {
80
64.9k
    QualType::PrimitiveCopyKind PCK =
81
64.9k
        IsMove ? FT.isNonTrivialToPrimitiveDestructiveMove()
82
64.9k
               : 
FT.isNonTrivialToPrimitiveCopy()0
;
83
64.9k
    return asDerived().visitWithKind(PCK, FT, std::forward<Ts>(Args)...);
84
64.9k
  }
85
86
  template <class... Ts>
87
  RetTy visitWithKind(QualType::PrimitiveCopyKind PCK, QualType FT,
88
130k
                      Ts &&... Args) {
89
130k
    asDerived().preVisit(PCK, FT, std::forward<Ts>(Args)...);
90
130k
91
130k
    switch (PCK) {
92
130k
    case QualType::PCK_ARCStrong:
93
102
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
94
130k
    case QualType::PCK_ARCWeak:
95
45
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
96
130k
    case QualType::PCK_Struct:
97
22
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
98
130k
    case QualType::PCK_Trivial:
99
130k
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
100
130k
    case QualType::PCK_VolatileTrivial:
101
18
      return asDerived().visitVolatileTrivial(FT, std::forward<Ts>(Args)...);
102
0
    }
103
0
104
0
    llvm_unreachable("unknown primitive copy kind");
105
0
  }
CGNonTrivialStruct.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::GenBinaryFuncName<false>, false, void>::visitWithKind<clang::FieldDecl const*&, clang::CharUnits&>(clang::QualType::PrimitiveCopyKind, clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&)
Line
Count
Source
88
144
                      Ts &&... Args) {
89
144
    asDerived().preVisit(PCK, FT, std::forward<Ts>(Args)...);
90
144
91
144
    switch (PCK) {
92
144
    case QualType::PCK_ARCStrong:
93
46
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
94
144
    case QualType::PCK_ARCWeak:
95
18
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
96
144
    case QualType::PCK_Struct:
97
6
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
98
144
    case QualType::PCK_Trivial:
99
66
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
100
144
    case QualType::PCK_VolatileTrivial:
101
8
      return asDerived().visitVolatileTrivial(FT, std::forward<Ts>(Args)...);
102
0
    }
103
0
104
0
    llvm_unreachable("unknown primitive copy kind");
105
0
  }
CGNonTrivialStruct.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::GenCopyConstructor, false, void>::visitWithKind<clang::FieldDecl const*&, clang::CharUnits&, std::__1::array<clang::CodeGen::Address, 2ul>&>(clang::QualType::PrimitiveCopyKind, clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&, std::__1::array<clang::CodeGen::Address, 2ul>&&&)
Line
Count
Source
88
71
                      Ts &&... Args) {
89
71
    asDerived().preVisit(PCK, FT, std::forward<Ts>(Args)...);
90
71
91
71
    switch (PCK) {
92
71
    case QualType::PCK_ARCStrong:
93
22
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
94
71
    case QualType::PCK_ARCWeak:
95
5
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
96
71
    case QualType::PCK_Struct:
97
4
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
98
71
    case QualType::PCK_Trivial:
99
32
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
100
71
    case QualType::PCK_VolatileTrivial:
101
8
      return asDerived().visitVolatileTrivial(FT, std::forward<Ts>(Args)...);
102
0
    }
103
0
104
0
    llvm_unreachable("unknown primitive copy kind");
105
0
  }
CGNonTrivialStruct.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::GenCopyAssignment, false, void>::visitWithKind<clang::FieldDecl const*&, clang::CharUnits&, std::__1::array<clang::CodeGen::Address, 2ul>&>(clang::QualType::PrimitiveCopyKind, clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&, std::__1::array<clang::CodeGen::Address, 2ul>&&&)
Line
Count
Source
88
20
                      Ts &&... Args) {
89
20
    asDerived().preVisit(PCK, FT, std::forward<Ts>(Args)...);
90
20
91
20
    switch (PCK) {
92
20
    case QualType::PCK_ARCStrong:
93
6
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
94
20
    case QualType::PCK_ARCWeak:
95
4
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
96
20
    case QualType::PCK_Struct:
97
2
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
98
20
    case QualType::PCK_Trivial:
99
8
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
100
20
    case QualType::PCK_VolatileTrivial:
101
0
      return asDerived().visitVolatileTrivial(FT, std::forward<Ts>(Args)...);
102
0
    }
103
0
104
0
    llvm_unreachable("unknown primitive copy kind");
105
0
  }
CGNonTrivialStruct.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::GenBinaryFuncName<true>, true, void>::visitWithKind<clang::FieldDecl const*&, clang::CharUnits&>(clang::QualType::PrimitiveCopyKind, clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&)
Line
Count
Source
88
46
                      Ts &&... Args) {
89
46
    asDerived().preVisit(PCK, FT, std::forward<Ts>(Args)...);
90
46
91
46
    switch (PCK) {
92
46
    case QualType::PCK_ARCStrong:
93
14
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
94
46
    case QualType::PCK_ARCWeak:
95
8
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
96
46
    case QualType::PCK_Struct:
97
4
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
98
46
    case QualType::PCK_Trivial:
99
20
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
100
46
    case QualType::PCK_VolatileTrivial:
101
0
      return asDerived().visitVolatileTrivial(FT, std::forward<Ts>(Args)...);
102
0
    }
103
0
104
0
    llvm_unreachable("unknown primitive copy kind");
105
0
  }
CGNonTrivialStruct.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::GenMoveConstructor, true, void>::visitWithKind<clang::FieldDecl const*&, clang::CharUnits&, std::__1::array<clang::CodeGen::Address, 2ul>&>(clang::QualType::PrimitiveCopyKind, clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&, std::__1::array<clang::CodeGen::Address, 2ul>&&&)
Line
Count
Source
88
20
                      Ts &&... Args) {
89
20
    asDerived().preVisit(PCK, FT, std::forward<Ts>(Args)...);
90
20
91
20
    switch (PCK) {
92
20
    case QualType::PCK_ARCStrong:
93
6
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
94
20
    case QualType::PCK_ARCWeak:
95
4
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
96
20
    case QualType::PCK_Struct:
97
2
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
98
20
    case QualType::PCK_Trivial:
99
8
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
100
20
    case QualType::PCK_VolatileTrivial:
101
0
      return asDerived().visitVolatileTrivial(FT, std::forward<Ts>(Args)...);
102
0
    }
103
0
104
0
    llvm_unreachable("unknown primitive copy kind");
105
0
  }
CGNonTrivialStruct.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::GenMoveAssignment, true, void>::visitWithKind<clang::FieldDecl const*&, clang::CharUnits&, std::__1::array<clang::CodeGen::Address, 2ul>&>(clang::QualType::PrimitiveCopyKind, clang::QualType, clang::FieldDecl const*&&&, clang::CharUnits&&&, std::__1::array<clang::CodeGen::Address, 2ul>&&&)
Line
Count
Source
88
18
                      Ts &&... Args) {
89
18
    asDerived().preVisit(PCK, FT, std::forward<Ts>(Args)...);
90
18
91
18
    switch (PCK) {
92
18
    case QualType::PCK_ARCStrong:
93
4
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
94
18
    case QualType::PCK_ARCWeak:
95
4
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
96
18
    case QualType::PCK_Struct:
97
2
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
98
18
    case QualType::PCK_Trivial:
99
8
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
100
18
    case QualType::PCK_VolatileTrivial:
101
0
      return asDerived().visitVolatileTrivial(FT, std::forward<Ts>(Args)...);
102
0
    }
103
0
104
0
    llvm_unreachable("unknown primitive copy kind");
105
0
  }
SemaChecking.cpp:void clang::CopiedTypeVisitor<(anonymous namespace)::SearchNonTrivialToCopyField, false, void>::visitWithKind<clang::SourceLocation&>(clang::QualType::PrimitiveCopyKind, clang::QualType, clang::SourceLocation&&&)
Line
Count
Source
88
14
                      Ts &&... Args) {
89
14
    asDerived().preVisit(PCK, FT, std::forward<Ts>(Args)...);
90
14
91
14
    switch (PCK) {
92
14
    case QualType::PCK_ARCStrong:
93
4
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
94
14
    case QualType::PCK_ARCWeak:
95
2
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
96
14
    case QualType::PCK_Struct:
97
2
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
98
14
    case QualType::PCK_Trivial:
99
4
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
100
14
    case QualType::PCK_VolatileTrivial:
101
2
      return asDerived().visitVolatileTrivial(FT, std::forward<Ts>(Args)...);
102
0
    }
103
0
104
0
    llvm_unreachable("unknown primitive copy kind");
105
0
  }
Type.cpp:bool clang::CopiedTypeVisitor<(anonymous namespace)::IsNonTrivialCopyMoveVisitor<false>, false, bool>::visitWithKind<>(clang::QualType::PrimitiveCopyKind, clang::QualType)
Line
Count
Source
88
64.9k
                      Ts &&... Args) {
89
64.9k
    asDerived().preVisit(PCK, FT, std::forward<Ts>(Args)...);
90
64.9k
91
64.9k
    switch (PCK) {
92
64.9k
    case QualType::PCK_ARCStrong:
93
0
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
94
64.9k
    case QualType::PCK_ARCWeak:
95
0
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
96
64.9k
    case QualType::PCK_Struct:
97
0
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
98
64.9k
    case QualType::PCK_Trivial:
99
64.9k
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
100
64.9k
    case QualType::PCK_VolatileTrivial:
101
0
      return asDerived().visitVolatileTrivial(FT, std::forward<Ts>(Args)...);
102
0
    }
103
0
104
0
    llvm_unreachable("unknown primitive copy kind");
105
0
  }
Type.cpp:bool clang::CopiedTypeVisitor<(anonymous namespace)::IsNonTrivialCopyMoveVisitor<true>, true, bool>::visitWithKind<>(clang::QualType::PrimitiveCopyKind, clang::QualType)
Line
Count
Source
88
64.9k
                      Ts &&... Args) {
89
64.9k
    asDerived().preVisit(PCK, FT, std::forward<Ts>(Args)...);
90
64.9k
91
64.9k
    switch (PCK) {
92
64.9k
    case QualType::PCK_ARCStrong:
93
0
      return asDerived().visitARCStrong(FT, std::forward<Ts>(Args)...);
94
64.9k
    case QualType::PCK_ARCWeak:
95
0
      return asDerived().visitARCWeak(FT, std::forward<Ts>(Args)...);
96
64.9k
    case QualType::PCK_Struct:
97
0
      return asDerived().visitStruct(FT, std::forward<Ts>(Args)...);
98
64.9k
    case QualType::PCK_Trivial:
99
64.9k
      return asDerived().visitTrivial(FT, std::forward<Ts>(Args)...);
100
64.9k
    case QualType::PCK_VolatileTrivial:
101
0
      return asDerived().visitVolatileTrivial(FT, std::forward<Ts>(Args)...);
102
0
    }
103
0
104
0
    llvm_unreachable("unknown primitive copy kind");
105
0
  }
106
107
390k
  Derived &asDerived() { return static_cast<Derived &>(*this); }
CGNonTrivialStruct.cpp:clang::CopiedTypeVisitor<(anonymous namespace)::GenBinaryFuncName<false>, false, void>::asDerived()
Line
Count
Source
107
434
  Derived &asDerived() { return static_cast<Derived &>(*this); }
CGNonTrivialStruct.cpp:clang::CopiedTypeVisitor<(anonymous namespace)::GenCopyConstructor, false, void>::asDerived()
Line
Count
Source
107
215
  Derived &asDerived() { return static_cast<Derived &>(*this); }
CGNonTrivialStruct.cpp:clang::CopiedTypeVisitor<(anonymous namespace)::GenCopyAssignment, false, void>::asDerived()
Line
Count
Source
107
60
  Derived &asDerived() { return static_cast<Derived &>(*this); }
CGNonTrivialStruct.cpp:clang::CopiedTypeVisitor<(anonymous namespace)::GenBinaryFuncName<true>, true, void>::asDerived()
Line
Count
Source
107
138
  Derived &asDerived() { return static_cast<Derived &>(*this); }
CGNonTrivialStruct.cpp:clang::CopiedTypeVisitor<(anonymous namespace)::GenMoveConstructor, true, void>::asDerived()
Line
Count
Source
107
60
  Derived &asDerived() { return static_cast<Derived &>(*this); }
CGNonTrivialStruct.cpp:clang::CopiedTypeVisitor<(anonymous namespace)::GenMoveAssignment, true, void>::asDerived()
Line
Count
Source
107
54
  Derived &asDerived() { return static_cast<Derived &>(*this); }
SemaChecking.cpp:clang::CopiedTypeVisitor<(anonymous namespace)::SearchNonTrivialToCopyField, false, void>::asDerived()
Line
Count
Source
107
62
  Derived &asDerived() { return static_cast<Derived &>(*this); }
Type.cpp:clang::CopiedTypeVisitor<(anonymous namespace)::IsNonTrivialCopyMoveVisitor<false>, false, bool>::asDerived()
Line
Count
Source
107
194k
  Derived &asDerived() { return static_cast<Derived &>(*this); }
Type.cpp:clang::CopiedTypeVisitor<(anonymous namespace)::IsNonTrivialCopyMoveVisitor<true>, true, bool>::asDerived()
Line
Count
Source
107
194k
  Derived &asDerived() { return static_cast<Derived &>(*this); }
108
};
109
110
} // end namespace clang
111
112
#endif