Coverage Report

Created: 2019-07-24 05:18

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/include/llvm/Support/FormatVariadic.h
Line
Count
Source (jump to first uncovered line)
1
//===- FormatVariadic.h - Efficient type-safe string formatting --*- 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 implements the formatv() function which can be used with other LLVM
10
// subsystems to provide printf-like formatting, but with improved safety and
11
// flexibility.  The result of `formatv` is an object which can be streamed to
12
// a raw_ostream or converted to a std::string or llvm::SmallString.
13
//
14
//   // Convert to std::string.
15
//   std::string S = formatv("{0} {1}", 1234.412, "test").str();
16
//
17
//   // Convert to llvm::SmallString
18
//   SmallString<8> S = formatv("{0} {1}", 1234.412, "test").sstr<8>();
19
//
20
//   // Stream to an existing raw_ostream.
21
//   OS << formatv("{0} {1}", 1234.412, "test");
22
//
23
//===----------------------------------------------------------------------===//
24
25
#ifndef LLVM_SUPPORT_FORMATVARIADIC_H
26
#define LLVM_SUPPORT_FORMATVARIADIC_H
27
28
#include "llvm/ADT/Optional.h"
29
#include "llvm/ADT/STLExtras.h"
30
#include "llvm/ADT/SmallString.h"
31
#include "llvm/ADT/StringRef.h"
32
#include "llvm/Support/FormatCommon.h"
33
#include "llvm/Support/FormatProviders.h"
34
#include "llvm/Support/FormatVariadicDetails.h"
35
#include "llvm/Support/raw_ostream.h"
36
#include <cstddef>
37
#include <string>
38
#include <tuple>
39
#include <utility>
40
#include <vector>
41
42
namespace llvm {
43
44
enum class ReplacementType { Empty, Format, Literal };
45
46
struct ReplacementItem {
47
113k
  ReplacementItem() = default;
48
  explicit ReplacementItem(StringRef Literal)
49
125k
      : Type(ReplacementType::Literal), Spec(Literal) {}
50
  ReplacementItem(StringRef Spec, size_t Index, size_t Align, AlignStyle Where,
51
                  char Pad, StringRef Options)
52
      : Type(ReplacementType::Format), Spec(Spec), Index(Index), Align(Align),
53
152k
        Where(Where), Pad(Pad), Options(Options) {}
54
55
  ReplacementType Type = ReplacementType::Empty;
56
  StringRef Spec;
57
  size_t Index = 0;
58
  size_t Align = 0;
59
  AlignStyle Where = AlignStyle::Right;
60
  char Pad;
61
  StringRef Options;
62
};
63
64
class formatv_object_base {
65
protected:
66
  // The parameters are stored in a std::tuple, which does not provide runtime
67
  // indexing capabilities.  In order to enable runtime indexing, we use this
68
  // structure to put the parameters into a std::vector.  Since the parameters
69
  // are not all the same type, we use some type-erasure by wrapping the
70
  // parameters in a template class that derives from a non-template superclass.
71
  // Essentially, we are converting a std::tuple<Derived<Ts...>> to a
72
  // std::vector<Base*>.
73
  struct create_adapters {
74
    template <typename... Ts>
75
90.6k
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
90.6k
      return std::vector<detail::format_adapter *>{&Items...};
77
90.6k
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<unsigned int&> >(llvm::detail::provider_format_adapter<llvm::StringRef&>&, llvm::detail::provider_format_adapter<unsigned int&>&)
Line
Count
Source
75
1.77k
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
1.77k
      return std::vector<detail::format_adapter *>{&Items...};
77
1.77k
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<char const* const&> >(llvm::detail::provider_format_adapter<unsigned int const&>&, llvm::detail::provider_format_adapter<unsigned int const&>&, llvm::detail::provider_format_adapter<unsigned int const&>&, llvm::detail::provider_format_adapter<char const* const&>&)
Line
Count
Source
75
16
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
16
      return std::vector<detail::format_adapter *>{&Items...};
77
16
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<int> >(llvm::detail::provider_format_adapter<int>&)
Line
Count
Source
75
3.52k
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
3.52k
      return std::vector<detail::format_adapter *>{&Items...};
77
3.52k
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&> >(llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>&)
Line
Count
Source
75
20
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
20
      return std::vector<detail::format_adapter *>{&Items...};
77
20
    }
Unexecuted instantiation: std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::json::Value&> >(llvm::detail::provider_format_adapter<llvm::json::Value&>&)
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<llvm::codeview::GloballyHashedType const&> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<llvm::codeview::GloballyHashedType const&>&)
Line
Count
Source
75
20
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
20
      return std::vector<detail::format_adapter *>{&Items...};
77
20
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::dwarf::Tag> >(llvm::detail::provider_format_adapter<llvm::dwarf::Tag>&)
Line
Count
Source
75
8.05k
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
8.05k
      return std::vector<detail::format_adapter *>{&Items...};
77
8.05k
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::dwarf::Attribute const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form const&> >(llvm::detail::provider_format_adapter<llvm::dwarf::Attribute const&>&, llvm::detail::provider_format_adapter<llvm::dwarf::Form const&>&)
Line
Count
Source
75
7.22k
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
7.22k
      return std::vector<detail::format_adapter *>{&Items...};
77
7.22k
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::dwarf::Form const&> >(llvm::detail::provider_format_adapter<llvm::dwarf::Form const&>&)
Line
Count
Source
75
574
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
574
      return std::vector<detail::format_adapter *>{&Items...};
77
574
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::dwarf::Tag const&> >(llvm::detail::provider_format_adapter<llvm::dwarf::Tag const&>&)
Line
Count
Source
75
455
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
455
      return std::vector<detail::format_adapter *>{&Items...};
77
455
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::dwarf::Index const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form const&> >(llvm::detail::provider_format_adapter<llvm::dwarf::Index const&>&, llvm::detail::provider_format_adapter<llvm::dwarf::Form const&>&)
Line
Count
Source
75
74
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
74
      return std::vector<detail::format_adapter *>{&Items...};
77
74
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::dwarf::Index const&> >(llvm::detail::provider_format_adapter<llvm::dwarf::Index const&>&)
Line
Count
Source
75
693
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
693
      return std::vector<detail::format_adapter *>{&Items...};
77
693
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::dwarf::Attribute&> >(llvm::detail::provider_format_adapter<llvm::dwarf::Attribute&>&)
Line
Count
Source
75
29.6k
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
29.6k
      return std::vector<detail::format_adapter *>{&Items...};
77
29.6k
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::dwarf::Form&> >(llvm::detail::provider_format_adapter<llvm::dwarf::Form&>&)
Line
Count
Source
75
19.0k
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
19.0k
      return std::vector<detail::format_adapter *>{&Items...};
77
19.0k
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<unsigned long> >(llvm::detail::provider_format_adapter<unsigned int const&>&, llvm::detail::provider_format_adapter<unsigned long>&)
Line
Count
Source
75
12
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
12
      return std::vector<detail::format_adapter *>{&Items...};
77
12
    }
Unexecuted instantiation: std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned long long const&>, llvm::detail::provider_format_adapter<unsigned long long const&>, llvm::detail::provider_format_adapter<unsigned long long const&> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned long long const&>&, llvm::detail::provider_format_adapter<unsigned long long const&>&, llvm::detail::provider_format_adapter<unsigned long long const&>&)
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned long long&> >(llvm::detail::provider_format_adapter<unsigned long long&>&)
Line
Count
Source
75
2
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
2
      return std::vector<detail::format_adapter *>{&Items...};
77
2
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int> >(llvm::detail::provider_format_adapter<unsigned int>&)
Line
Count
Source
75
12.5k
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
12.5k
      return std::vector<detail::format_adapter *>{&Items...};
77
12.5k
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int&>&)
Line
Count
Source
75
1
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
1
      return std::vector<detail::format_adapter *>{&Items...};
77
1
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int&> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int&>&, llvm::detail::provider_format_adapter<unsigned int&>&)
Line
Count
Source
75
2
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
2
      return std::vector<detail::format_adapter *>{&Items...};
77
2
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int const&> >(llvm::detail::provider_format_adapter<unsigned int const&>&)
Line
Count
Source
75
3
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
3
      return std::vector<detail::format_adapter *>{&Items...};
77
3
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int> >(llvm::detail::provider_format_adapter<unsigned int&>&, llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int&>&, llvm::detail::provider_format_adapter<unsigned int>&)
Line
Count
Source
75
1
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
1
      return std::vector<detail::format_adapter *>{&Items...};
77
1
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int&>&, llvm::detail::provider_format_adapter<unsigned int>&)
Line
Count
Source
75
2
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
2
      return std::vector<detail::format_adapter *>{&Items...};
77
2
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int const&>&, llvm::detail::provider_format_adapter<unsigned int&>&, llvm::detail::provider_format_adapter<unsigned int>&)
Line
Count
Source
75
1
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
1
      return std::vector<detail::format_adapter *>{&Items...};
77
1
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<char const*&>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<char const*&>&, llvm::detail::provider_format_adapter<unsigned int&>&, llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int&>&)
Line
Count
Source
75
1
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
1
      return std::vector<detail::format_adapter *>{&Items...};
77
1
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form&> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int const&>&, llvm::detail::provider_format_adapter<llvm::dwarf::Index&>&, llvm::detail::provider_format_adapter<llvm::dwarf::Form&>&)
Line
Count
Source
75
1
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
1
      return std::vector<detail::format_adapter *>{&Items...};
77
1
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int const&>&, llvm::detail::provider_format_adapter<llvm::dwarf::Form&>&, llvm::detail::provider_format_adapter<llvm::dwarf::Form>&)
Line
Count
Source
75
1
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
1
      return std::vector<detail::format_adapter *>{&Items...};
77
1
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index&> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int const&>&, llvm::detail::provider_format_adapter<llvm::dwarf::Index&>&)
Line
Count
Source
75
1
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
1
      return std::vector<detail::format_adapter *>{&Items...};
77
1
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form&>, llvm::detail::provider_format_adapter<llvm::StringLiteral const&> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int const&>&, llvm::detail::provider_format_adapter<llvm::dwarf::Index&>&, llvm::detail::provider_format_adapter<llvm::dwarf::Form&>&, llvm::detail::provider_format_adapter<llvm::StringLiteral const&>&)
Line
Count
Source
75
2
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
2
      return std::vector<detail::format_adapter *>{&Items...};
77
2
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Tag const&> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int const&>&, llvm::detail::provider_format_adapter<llvm::dwarf::Tag const&>&)
Line
Count
Source
75
1
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
1
      return std::vector<detail::format_adapter *>{&Items...};
77
1
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index const&> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int const&>&, llvm::detail::provider_format_adapter<llvm::dwarf::Index const&>&)
Line
Count
Source
75
2
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
2
      return std::vector<detail::format_adapter *>{&Items...};
77
2
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int const&>&, llvm::detail::provider_format_adapter<llvm::dwarf::Index>&)
Line
Count
Source
75
3
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
3
      return std::vector<detail::format_adapter *>{&Items...};
77
3
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int>&)
Line
Count
Source
75
3
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
3
      return std::vector<detail::format_adapter *>{&Items...};
77
3
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned long long&> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int&>&, llvm::detail::provider_format_adapter<unsigned long long&>&)
Line
Count
Source
75
1
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
1
      return std::vector<detail::format_adapter *>{&Items...};
77
1
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned long long&>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int&>&, llvm::detail::provider_format_adapter<unsigned long long&>&, llvm::detail::provider_format_adapter<unsigned int&>&, llvm::detail::provider_format_adapter<unsigned int>&)
Line
Count
Source
75
1
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
1
      return std::vector<detail::format_adapter *>{&Items...};
77
1
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned long long&>, llvm::detail::provider_format_adapter<llvm::dwarf::Tag>, llvm::detail::provider_format_adapter<llvm::dwarf::Tag> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int&>&, llvm::detail::provider_format_adapter<unsigned long long&>&, llvm::detail::provider_format_adapter<llvm::dwarf::Tag>&, llvm::detail::provider_format_adapter<llvm::dwarf::Tag>&)
Line
Count
Source
75
1
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
1
      return std::vector<detail::format_adapter *>{&Items...};
77
1
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned long long&>, llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<llvm::iterator_range<llvm::StringRef*> > >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int&>&, llvm::detail::provider_format_adapter<unsigned long long&>&, llvm::detail::provider_format_adapter<llvm::StringRef&>&, llvm::detail::provider_format_adapter<llvm::iterator_range<llvm::StringRef*> >&)
Line
Count
Source
75
2
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
2
      return std::vector<detail::format_adapter *>{&Items...};
77
2
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<llvm::StringRef&> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<llvm::StringRef&>&)
Line
Count
Source
75
1
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
1
      return std::vector<detail::format_adapter *>{&Items...};
77
1
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<llvm::StringRef&>&, llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
75
1
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
1
      return std::vector<detail::format_adapter *>{&Items...};
77
1
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<llvm::dwarf::Tag>, llvm::detail::provider_format_adapter<llvm::StringRef&> >(llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<unsigned int>&, llvm::detail::provider_format_adapter<llvm::dwarf::Tag>&, llvm::detail::provider_format_adapter<llvm::StringRef&>&)
Line
Count
Source
75
10
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
10
      return std::vector<detail::format_adapter *>{&Items...};
77
10
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::json::Value> >(llvm::detail::provider_format_adapter<llvm::json::Value>&)
Line
Count
Source
75
2
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
2
      return std::vector<detail::format_adapter *>{&Items...};
77
2
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::StringRef&> >(llvm::detail::provider_format_adapter<llvm::StringRef&>&)
Line
Count
Source
75
3.19k
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
3.19k
      return std::vector<detail::format_adapter *>{&Items...};
77
3.19k
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::StringRef const&> >(llvm::detail::provider_format_adapter<llvm::StringRef const&>&)
Line
Count
Source
75
154
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
154
      return std::vector<detail::format_adapter *>{&Items...};
77
154
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<char const*>, llvm::detail::provider_format_adapter<llvm::StringRef&> >(llvm::detail::provider_format_adapter<char const*>&, llvm::detail::provider_format_adapter<llvm::StringRef&>&)
Line
Count
Source
75
6
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
6
      return std::vector<detail::format_adapter *>{&Items...};
77
6
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<llvm::StringRef&> >(llvm::detail::provider_format_adapter<llvm::StringRef&>&, llvm::detail::provider_format_adapter<llvm::StringRef&>&)
Line
Count
Source
75
404
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
404
      return std::vector<detail::format_adapter *>{&Items...};
77
404
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<llvm::StringRef&> >(llvm::detail::provider_format_adapter<llvm::StringRef&>&, llvm::detail::provider_format_adapter<llvm::StringRef&>&, llvm::detail::provider_format_adapter<llvm::StringRef&>&)
Line
Count
Source
75
545
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
545
      return std::vector<detail::format_adapter *>{&Items...};
77
545
    }
Unexecuted instantiation: std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::codeview::GUID const&> >(llvm::detail::provider_format_adapter<llvm::codeview::GUID const&>&)
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<llvm::StringRef> >(llvm::detail::provider_format_adapter<llvm::StringRef>&)
Line
Count
Source
75
2.10k
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
2.10k
      return std::vector<detail::format_adapter *>{&Items...};
77
2.10k
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
75
370
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
370
      return std::vector<detail::format_adapter *>{&Items...};
77
370
    }
std::__1::vector<llvm::detail::format_adapter*, std::__1::allocator<llvm::detail::format_adapter*> > llvm::formatv_object_base::create_adapters::operator()<llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&> >(llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>&)
Line
Count
Source
75
219
    std::vector<detail::format_adapter *> operator()(Ts &... Items) {
76
219
      return std::vector<detail::format_adapter *>{&Items...};
77
219
    }
78
  };
79
80
  StringRef Fmt;
81
  std::vector<detail::format_adapter *> Adapters;
82
  std::vector<ReplacementItem> Replacements;
83
84
  static bool consumeFieldLayout(StringRef &Spec, AlignStyle &Where,
85
                                 size_t &Align, char &Pad);
86
87
  static std::pair<ReplacementItem, StringRef>
88
  splitLiteralAndReplacement(StringRef Fmt);
89
90
public:
91
  formatv_object_base(StringRef Fmt, std::size_t ParamCount)
92
113k
      : Fmt(Fmt), Replacements(parseFormatString(Fmt)) {
93
113k
    Adapters.reserve(ParamCount);
94
113k
  }
95
96
  formatv_object_base(formatv_object_base const &rhs) = delete;
97
98
  formatv_object_base(formatv_object_base &&rhs)
99
      : Fmt(std::move(rhs.Fmt)),
100
        Adapters(), // Adapters are initialized by formatv_object
101
        Replacements(std::move(rhs.Replacements)) {
102
    Adapters.reserve(rhs.Adapters.size());
103
  };
104
105
113k
  void format(raw_ostream &S) const {
106
277k
    for (auto &R : Replacements) {
107
277k
      if (R.Type == ReplacementType::Empty)
108
0
        continue;
109
277k
      if (R.Type == ReplacementType::Literal) {
110
125k
        S << R.Spec;
111
125k
        continue;
112
125k
      }
113
152k
      if (R.Index >= Adapters.size()) {
114
10
        S << R.Spec;
115
10
        continue;
116
10
      }
117
152k
118
152k
      auto W = Adapters[R.Index];
119
152k
120
152k
      FmtAlign Align(*W, R.Where, R.Align, R.Pad);
121
152k
      Align.format(S, R.Options);
122
152k
    }
123
113k
  }
124
  static std::vector<ReplacementItem> parseFormatString(StringRef Fmt);
125
126
  static Optional<ReplacementItem> parseReplacementItem(StringRef Spec);
127
128
9.29k
  std::string str() const {
129
9.29k
    std::string Result;
130
9.29k
    raw_string_ostream Stream(Result);
131
9.29k
    Stream << *this;
132
9.29k
    Stream.flush();
133
9.29k
    return Result;
134
9.29k
  }
135
136
1.16k
  template <unsigned N> SmallString<N> sstr() const {
137
1.16k
    SmallString<N> Result;
138
1.16k
    raw_svector_ostream Stream(Result);
139
1.16k
    Stream << *this;
140
1.16k
    return Result;
141
1.16k
  }
llvm::SmallString<8u> llvm::formatv_object_base::sstr<8u>() const
Line
Count
Source
136
109
  template <unsigned N> SmallString<N> sstr() const {
137
109
    SmallString<N> Result;
138
109
    raw_svector_ostream Stream(Result);
139
109
    Stream << *this;
140
109
    return Result;
141
109
  }
llvm::SmallString<256u> llvm::formatv_object_base::sstr<256u>() const
Line
Count
Source
136
978
  template <unsigned N> SmallString<N> sstr() const {
137
978
    SmallString<N> Result;
138
978
    raw_svector_ostream Stream(Result);
139
978
    Stream << *this;
140
978
    return Result;
141
978
  }
llvm::SmallString<20u> llvm::formatv_object_base::sstr<20u>() const
Line
Count
Source
136
79
  template <unsigned N> SmallString<N> sstr() const {
137
79
    SmallString<N> Result;
138
79
    raw_svector_ostream Stream(Result);
139
79
    Stream << *this;
140
79
    return Result;
141
79
  }
142
143
143
  template <unsigned N> operator SmallString<N>() const { return sstr<N>(); }
llvm::formatv_object_base::operator llvm::SmallString<256u><256u>() const
Line
Count
Source
143
64
  template <unsigned N> operator SmallString<N>() const { return sstr<N>(); }
llvm::formatv_object_base::operator llvm::SmallString<20u><20u>() const
Line
Count
Source
143
79
  template <unsigned N> operator SmallString<N>() const { return sstr<N>(); }
144
145
5.96k
  operator std::string() const { return str(); }
146
};
147
148
template <typename Tuple> class formatv_object : public formatv_object_base {
149
  // Storage for the parameter adapters.  Since the base class erases the type
150
  // of the parameters, we have to own the storage for the parameters here, and
151
  // have the base class store type-erased pointers into this tuple.
152
  Tuple Parameters;
153
154
public:
155
  formatv_object(StringRef Fmt, Tuple &&Params)
156
      : formatv_object_base(Fmt, std::tuple_size<Tuple>::value),
157
90.6k
        Parameters(std::move(Params)) {
158
90.6k
    Adapters = apply_tuple(create_adapters(), Parameters);
159
90.6k
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<unsigned int&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<unsigned int&> >&&)
Line
Count
Source
157
1.77k
        Parameters(std::move(Params)) {
158
1.77k
    Adapters = apply_tuple(create_adapters(), Parameters);
159
1.77k
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<char const* const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<char const* const&> >&&)
Line
Count
Source
157
16
        Parameters(std::move(Params)) {
158
16
    Adapters = apply_tuple(create_adapters(), Parameters);
159
16
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<int> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<int> >&&)
Line
Count
Source
157
3.52k
        Parameters(std::move(Params)) {
158
3.52k
    Adapters = apply_tuple(create_adapters(), Parameters);
159
3.52k
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&> >&&)
Line
Count
Source
157
20
        Parameters(std::move(Params)) {
158
20
    Adapters = apply_tuple(create_adapters(), Parameters);
159
20
  }
Unexecuted instantiation: llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::json::Value&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::json::Value&> >&&)
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<llvm::codeview::GloballyHashedType const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<llvm::codeview::GloballyHashedType const&> >&&)
Line
Count
Source
157
20
        Parameters(std::move(Params)) {
158
20
    Adapters = apply_tuple(create_adapters(), Parameters);
159
20
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Tag> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Tag> >&&)
Line
Count
Source
157
8.05k
        Parameters(std::move(Params)) {
158
8.05k
    Adapters = apply_tuple(create_adapters(), Parameters);
159
8.05k
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Attribute const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Attribute const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form const&> >&&)
Line
Count
Source
157
7.22k
        Parameters(std::move(Params)) {
158
7.22k
    Adapters = apply_tuple(create_adapters(), Parameters);
159
7.22k
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Form const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Form const&> >&&)
Line
Count
Source
157
574
        Parameters(std::move(Params)) {
158
574
    Adapters = apply_tuple(create_adapters(), Parameters);
159
574
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Tag const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Tag const&> >&&)
Line
Count
Source
157
455
        Parameters(std::move(Params)) {
158
455
    Adapters = apply_tuple(create_adapters(), Parameters);
159
455
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Index const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Index const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form const&> >&&)
Line
Count
Source
157
74
        Parameters(std::move(Params)) {
158
74
    Adapters = apply_tuple(create_adapters(), Parameters);
159
74
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Index const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Index const&> >&&)
Line
Count
Source
157
693
        Parameters(std::move(Params)) {
158
693
    Adapters = apply_tuple(create_adapters(), Parameters);
159
693
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Attribute&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Attribute&> >&&)
Line
Count
Source
157
29.6k
        Parameters(std::move(Params)) {
158
29.6k
    Adapters = apply_tuple(create_adapters(), Parameters);
159
29.6k
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Form&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::dwarf::Form&> >&&)
Line
Count
Source
157
19.0k
        Parameters(std::move(Params)) {
158
19.0k
    Adapters = apply_tuple(create_adapters(), Parameters);
159
19.0k
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<unsigned long> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<unsigned long> >&&)
Line
Count
Source
157
12
        Parameters(std::move(Params)) {
158
12
    Adapters = apply_tuple(create_adapters(), Parameters);
159
12
  }
Unexecuted instantiation: llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned long long const&>, llvm::detail::provider_format_adapter<unsigned long long const&>, llvm::detail::provider_format_adapter<unsigned long long const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned long long const&>, llvm::detail::provider_format_adapter<unsigned long long const&>, llvm::detail::provider_format_adapter<unsigned long long const&> >&&)
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned long long&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned long long&> >&&)
Line
Count
Source
157
2
        Parameters(std::move(Params)) {
158
2
    Adapters = apply_tuple(create_adapters(), Parameters);
159
2
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int> >&&)
Line
Count
Source
157
12.5k
        Parameters(std::move(Params)) {
158
12.5k
    Adapters = apply_tuple(create_adapters(), Parameters);
159
12.5k
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&> >&&)
Line
Count
Source
157
1
        Parameters(std::move(Params)) {
158
1
    Adapters = apply_tuple(create_adapters(), Parameters);
159
1
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int&> >&&)
Line
Count
Source
157
2
        Parameters(std::move(Params)) {
158
2
    Adapters = apply_tuple(create_adapters(), Parameters);
159
2
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int const&> >&&)
Line
Count
Source
157
3
        Parameters(std::move(Params)) {
158
3
    Adapters = apply_tuple(create_adapters(), Parameters);
159
3
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int> >&&)
Line
Count
Source
157
1
        Parameters(std::move(Params)) {
158
1
    Adapters = apply_tuple(create_adapters(), Parameters);
159
1
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int> >&&)
Line
Count
Source
157
2
        Parameters(std::move(Params)) {
158
2
    Adapters = apply_tuple(create_adapters(), Parameters);
159
2
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int> >&&)
Line
Count
Source
157
1
        Parameters(std::move(Params)) {
158
1
    Adapters = apply_tuple(create_adapters(), Parameters);
159
1
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<char const*&>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<char const*&>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&> >&&)
Line
Count
Source
157
1
        Parameters(std::move(Params)) {
158
1
    Adapters = apply_tuple(create_adapters(), Parameters);
159
1
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form&> >&&)
Line
Count
Source
157
1
        Parameters(std::move(Params)) {
158
1
    Adapters = apply_tuple(create_adapters(), Parameters);
159
1
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form> >&&)
Line
Count
Source
157
1
        Parameters(std::move(Params)) {
158
1
    Adapters = apply_tuple(create_adapters(), Parameters);
159
1
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index&> >&&)
Line
Count
Source
157
1
        Parameters(std::move(Params)) {
158
1
    Adapters = apply_tuple(create_adapters(), Parameters);
159
1
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form&>, llvm::detail::provider_format_adapter<llvm::StringLiteral const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index&>, llvm::detail::provider_format_adapter<llvm::dwarf::Form&>, llvm::detail::provider_format_adapter<llvm::StringLiteral const&> >&&)
Line
Count
Source
157
2
        Parameters(std::move(Params)) {
158
2
    Adapters = apply_tuple(create_adapters(), Parameters);
159
2
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Tag const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Tag const&> >&&)
Line
Count
Source
157
1
        Parameters(std::move(Params)) {
158
1
    Adapters = apply_tuple(create_adapters(), Parameters);
159
1
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index const&> >&&)
Line
Count
Source
157
2
        Parameters(std::move(Params)) {
158
2
    Adapters = apply_tuple(create_adapters(), Parameters);
159
2
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int const&>, llvm::detail::provider_format_adapter<llvm::dwarf::Index> >&&)
Line
Count
Source
157
3
        Parameters(std::move(Params)) {
158
3
    Adapters = apply_tuple(create_adapters(), Parameters);
159
3
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int> >&&)
Line
Count
Source
157
3
        Parameters(std::move(Params)) {
158
3
    Adapters = apply_tuple(create_adapters(), Parameters);
159
3
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned long long&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned long long&> >&&)
Line
Count
Source
157
1
        Parameters(std::move(Params)) {
158
1
    Adapters = apply_tuple(create_adapters(), Parameters);
159
1
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned long long&>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned long long&>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned int> >&&)
Line
Count
Source
157
1
        Parameters(std::move(Params)) {
158
1
    Adapters = apply_tuple(create_adapters(), Parameters);
159
1
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned long long&>, llvm::detail::provider_format_adapter<llvm::dwarf::Tag>, llvm::detail::provider_format_adapter<llvm::dwarf::Tag> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned long long&>, llvm::detail::provider_format_adapter<llvm::dwarf::Tag>, llvm::detail::provider_format_adapter<llvm::dwarf::Tag> >&&)
Line
Count
Source
157
1
        Parameters(std::move(Params)) {
158
1
    Adapters = apply_tuple(create_adapters(), Parameters);
159
1
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned long long&>, llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<llvm::iterator_range<llvm::StringRef*> > > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int&>, llvm::detail::provider_format_adapter<unsigned long long&>, llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<llvm::iterator_range<llvm::StringRef*> > >&&)
Line
Count
Source
157
2
        Parameters(std::move(Params)) {
158
2
    Adapters = apply_tuple(create_adapters(), Parameters);
159
2
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<llvm::StringRef&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<llvm::StringRef&> >&&)
Line
Count
Source
157
1
        Parameters(std::move(Params)) {
158
1
    Adapters = apply_tuple(create_adapters(), Parameters);
159
1
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&&)
Line
Count
Source
157
1
        Parameters(std::move(Params)) {
158
1
    Adapters = apply_tuple(create_adapters(), Parameters);
159
1
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<llvm::dwarf::Tag>, llvm::detail::provider_format_adapter<llvm::StringRef&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<unsigned int>, llvm::detail::provider_format_adapter<llvm::dwarf::Tag>, llvm::detail::provider_format_adapter<llvm::StringRef&> >&&)
Line
Count
Source
157
10
        Parameters(std::move(Params)) {
158
10
    Adapters = apply_tuple(create_adapters(), Parameters);
159
10
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::json::Value> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::json::Value> >&&)
Line
Count
Source
157
2
        Parameters(std::move(Params)) {
158
2
    Adapters = apply_tuple(create_adapters(), Parameters);
159
2
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::StringRef&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::StringRef&> >&&)
Line
Count
Source
157
3.19k
        Parameters(std::move(Params)) {
158
3.19k
    Adapters = apply_tuple(create_adapters(), Parameters);
159
3.19k
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::StringRef const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::StringRef const&> >&&)
Line
Count
Source
157
154
        Parameters(std::move(Params)) {
158
154
    Adapters = apply_tuple(create_adapters(), Parameters);
159
154
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<char const*>, llvm::detail::provider_format_adapter<llvm::StringRef&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<char const*>, llvm::detail::provider_format_adapter<llvm::StringRef&> >&&)
Line
Count
Source
157
6
        Parameters(std::move(Params)) {
158
6
    Adapters = apply_tuple(create_adapters(), Parameters);
159
6
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<llvm::StringRef&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<llvm::StringRef&> >&&)
Line
Count
Source
157
404
        Parameters(std::move(Params)) {
158
404
    Adapters = apply_tuple(create_adapters(), Parameters);
159
404
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<llvm::StringRef&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<llvm::StringRef&>, llvm::detail::provider_format_adapter<llvm::StringRef&> >&&)
Line
Count
Source
157
545
        Parameters(std::move(Params)) {
158
545
    Adapters = apply_tuple(create_adapters(), Parameters);
159
545
  }
Unexecuted instantiation: llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::codeview::GUID const&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::codeview::GUID const&> >&&)
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<llvm::StringRef> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<llvm::StringRef> >&&)
Line
Count
Source
157
2.10k
        Parameters(std::move(Params)) {
158
2.10k
    Adapters = apply_tuple(create_adapters(), Parameters);
159
2.10k
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&&)
Line
Count
Source
157
370
        Parameters(std::move(Params)) {
158
370
    Adapters = apply_tuple(create_adapters(), Parameters);
159
370
  }
llvm::formatv_object<std::__1::tuple<llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&> > >::formatv_object(llvm::StringRef, std::__1::tuple<llvm::detail::provider_format_adapter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&> >&&)
Line
Count
Source
157
219
        Parameters(std::move(Params)) {
158
219
    Adapters = apply_tuple(create_adapters(), Parameters);
159
219
  }
160
161
  formatv_object(formatv_object const &rhs) = delete;
162
163
  formatv_object(formatv_object &&rhs)
164
      : formatv_object_base(std::move(rhs)),
165
        Parameters(std::move(rhs.Parameters)) {
166
    Adapters = apply_tuple(create_adapters(), Parameters);
167
  }
168
};
169
170
// Format text given a format string and replacement parameters.
171
//
172
// ===General Description===
173
//
174
// Formats textual output.  `Fmt` is a string consisting of one or more
175
// replacement sequences with the following grammar:
176
//
177
// rep_field ::= "{" [index] ["," layout] [":" format] "}"
178
// index     ::= <non-negative integer>
179
// layout    ::= [[[char]loc]width]
180
// format    ::= <any string not containing "{" or "}">
181
// char      ::= <any character except "{" or "}">
182
// loc       ::= "-" | "=" | "+"
183
// width     ::= <positive integer>
184
//
185
// index   - A non-negative integer specifying the index of the item in the
186
//           parameter pack to print.  Any other value is invalid.
187
// layout  - A string controlling how the field is laid out within the available
188
//           space.
189
// format  - A type-dependent string used to provide additional options to
190
//           the formatting operation.  Refer to the documentation of the
191
//           various individual format providers for per-type options.
192
// char    - The padding character.  Defaults to ' ' (space).  Only valid if
193
//           `loc` is also specified.
194
// loc     - Where to print the formatted text within the field.  Only valid if
195
//           `width` is also specified.
196
//           '-' : The field is left aligned within the available space.
197
//           '=' : The field is centered within the available space.
198
//           '+' : The field is right aligned within the available space (this
199
//                 is the default).
200
// width   - The width of the field within which to print the formatted text.
201
//           If this is less than the required length then the `char` and `loc`
202
//           fields are ignored, and the field is printed with no leading or
203
//           trailing padding.  If this is greater than the required length,
204
//           then the text is output according to the value of `loc`, and padded
205
//           as appropriate on the left and/or right by `char`.
206
//
207
// ===Special Characters===
208
//
209
// The characters '{' and '}' are reserved and cannot appear anywhere within a
210
// replacement sequence.  Outside of a replacement sequence, in order to print
211
// a literal '{' or '}' it must be doubled -- "{{" to print a literal '{' and
212
// "}}" to print a literal '}'.
213
//
214
// ===Parameter Indexing===
215
// `index` specifies the index of the parameter in the parameter pack to format
216
// into the output.  Note that it is possible to refer to the same parameter
217
// index multiple times in a given format string.  This makes it possible to
218
// output the same value multiple times without passing it multiple times to the
219
// function. For example:
220
//
221
//   formatv("{0} {1} {0}", "a", "bb")
222
//
223
// would yield the string "abba".  This can be convenient when it is expensive
224
// to compute the value of the parameter, and you would otherwise have had to
225
// save it to a temporary.
226
//
227
// ===Formatter Search===
228
//
229
// For a given parameter of type T, the following steps are executed in order
230
// until a match is found:
231
//
232
//   1. If the parameter is of class type, and inherits from format_adapter,
233
//      Then format() is invoked on it to produce the formatted output.  The
234
//      implementation should write the formatted text into `Stream`.
235
//   2. If there is a suitable template specialization of format_provider<>
236
//      for type T containing a method whose signature is:
237
//      void format(const T &Obj, raw_ostream &Stream, StringRef Options)
238
//      Then this method is invoked as described in Step 1.
239
//   3. If an appropriate operator<< for raw_ostream exists, it will be used.
240
//      For this to work, (raw_ostream& << const T&) must return raw_ostream&.
241
//
242
// If a match cannot be found through either of the above methods, a compiler
243
// error is generated.
244
//
245
// ===Invalid Format String Handling===
246
//
247
// In the case of a format string which does not match the grammar described
248
// above, the output is undefined.  With asserts enabled, LLVM will trigger an
249
// assertion.  Otherwise, it will try to do something reasonable, but in general
250
// the details of what that is are undefined.
251
//
252
template <typename... Ts>
253
inline auto formatv(const char *Fmt, Ts &&... Vals) -> formatv_object<decltype(
254
90.6k
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
90.6k
  using ParamTuple = decltype(
256
90.6k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
90.6k
  return formatv_object<ParamTuple>(
258
90.6k
      Fmt,
259
90.6k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
90.6k
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::StringRef&>(fp0)), detail::build_format_adapter(std::forward<unsigned int&>(fp0))))> llvm::formatv<llvm::StringRef&, unsigned int&>(char const*, llvm::StringRef&&&, unsigned int&&&)
Line
Count
Source
254
1.77k
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
1.77k
  using ParamTuple = decltype(
256
1.77k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
1.77k
  return formatv_object<ParamTuple>(
258
1.77k
      Fmt,
259
1.77k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
1.77k
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int const&>(fp0)), detail::build_format_adapter(std::forward<unsigned int const&>(fp0)), detail::build_format_adapter(std::forward<unsigned int const&>(fp0)), detail::build_format_adapter(std::forward<char const* const&>(fp0))))> llvm::formatv<unsigned int const&, unsigned int const&, unsigned int const&, char const* const&>(char const*, unsigned int const&&&, unsigned int const&&&, unsigned int const&&&, char const* const&&&)
Line
Count
Source
254
16
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
16
  using ParamTuple = decltype(
256
16
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
16
  return formatv_object<ParamTuple>(
258
16
      Fmt,
259
16
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
16
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<int>(fp0))))> llvm::formatv<int>(char const*, int&&)
Line
Count
Source
254
3.52k
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
3.52k
  using ParamTuple = decltype(
256
3.52k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
3.52k
  return formatv_object<ParamTuple>(
258
3.52k
      Fmt,
259
3.52k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
3.52k
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(fp0))))> llvm::formatv<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&&&)
Line
Count
Source
254
20
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
20
  using ParamTuple = decltype(
256
20
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
20
  return formatv_object<ParamTuple>(
258
20
      Fmt,
259
20
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
20
}
Unexecuted instantiation: llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::json::Value&>(fp0))))> llvm::formatv<llvm::json::Value&>(char const*, llvm::json::Value&&&)
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<llvm::codeview::GloballyHashedType const&>(fp0))))> llvm::formatv<unsigned int, llvm::codeview::GloballyHashedType const&>(char const*, unsigned int&&, llvm::codeview::GloballyHashedType const&&&)
Line
Count
Source
254
20
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
20
  using ParamTuple = decltype(
256
20
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
20
  return formatv_object<ParamTuple>(
258
20
      Fmt,
259
20
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
20
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::dwarf::Tag>(fp0))))> llvm::formatv<llvm::dwarf::Tag>(char const*, llvm::dwarf::Tag&&)
Line
Count
Source
254
8.05k
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
8.05k
  using ParamTuple = decltype(
256
8.05k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
8.05k
  return formatv_object<ParamTuple>(
258
8.05k
      Fmt,
259
8.05k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
8.05k
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::dwarf::Attribute const&>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Form const&>(fp0))))> llvm::formatv<llvm::dwarf::Attribute const&, llvm::dwarf::Form const&>(char const*, llvm::dwarf::Attribute const&&&, llvm::dwarf::Form const&&&)
Line
Count
Source
254
7.22k
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
7.22k
  using ParamTuple = decltype(
256
7.22k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
7.22k
  return formatv_object<ParamTuple>(
258
7.22k
      Fmt,
259
7.22k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
7.22k
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::dwarf::Form const&>(fp0))))> llvm::formatv<llvm::dwarf::Form const&>(char const*, llvm::dwarf::Form const&&&)
Line
Count
Source
254
574
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
574
  using ParamTuple = decltype(
256
574
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
574
  return formatv_object<ParamTuple>(
258
574
      Fmt,
259
574
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
574
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::dwarf::Tag const&>(fp0))))> llvm::formatv<llvm::dwarf::Tag const&>(char const*, llvm::dwarf::Tag const&&&)
Line
Count
Source
254
455
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
455
  using ParamTuple = decltype(
256
455
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
455
  return formatv_object<ParamTuple>(
258
455
      Fmt,
259
455
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
455
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::dwarf::Index const&>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Form const&>(fp0))))> llvm::formatv<llvm::dwarf::Index const&, llvm::dwarf::Form const&>(char const*, llvm::dwarf::Index const&&&, llvm::dwarf::Form const&&&)
Line
Count
Source
254
74
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
74
  using ParamTuple = decltype(
256
74
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
74
  return formatv_object<ParamTuple>(
258
74
      Fmt,
259
74
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
74
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::dwarf::Index const&>(fp0))))> llvm::formatv<llvm::dwarf::Index const&>(char const*, llvm::dwarf::Index const&&&)
Line
Count
Source
254
693
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
693
  using ParamTuple = decltype(
256
693
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
693
  return formatv_object<ParamTuple>(
258
693
      Fmt,
259
693
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
693
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::dwarf::Attribute&>(fp0))))> llvm::formatv<llvm::dwarf::Attribute&>(char const*, llvm::dwarf::Attribute&&&)
Line
Count
Source
254
29.6k
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
29.6k
  using ParamTuple = decltype(
256
29.6k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
29.6k
  return formatv_object<ParamTuple>(
258
29.6k
      Fmt,
259
29.6k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
29.6k
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::dwarf::Form&>(fp0))))> llvm::formatv<llvm::dwarf::Form&>(char const*, llvm::dwarf::Form&&&)
Line
Count
Source
254
19.0k
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
19.0k
  using ParamTuple = decltype(
256
19.0k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
19.0k
  return formatv_object<ParamTuple>(
258
19.0k
      Fmt,
259
19.0k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
19.0k
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int const&>(fp0)), detail::build_format_adapter(std::forward<unsigned long>(fp0))))> llvm::formatv<unsigned int const&, unsigned long>(char const*, unsigned int const&&&, unsigned long&&)
Line
Count
Source
254
12
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
12
  using ParamTuple = decltype(
256
12
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
12
  return formatv_object<ParamTuple>(
258
12
      Fmt,
259
12
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
12
}
Unexecuted instantiation: llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned long long const&>(fp0)), detail::build_format_adapter(std::forward<unsigned long long const&>(fp0)), detail::build_format_adapter(std::forward<unsigned long long const&>(fp0))))> llvm::formatv<unsigned int, unsigned long long const&, unsigned long long const&, unsigned long long const&>(char const*, unsigned int&&, unsigned long long const&&&, unsigned long long const&&&, unsigned long long const&&&)
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned long long&>(fp0))))> llvm::formatv<unsigned long long&>(char const*, unsigned long long&&&)
Line
Count
Source
254
2
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
2
  using ParamTuple = decltype(
256
2
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
2
  return formatv_object<ParamTuple>(
258
2
      Fmt,
259
2
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
2
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0))))> llvm::formatv<unsigned int>(char const*, unsigned int&&)
Line
Count
Source
254
12.5k
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
12.5k
  using ParamTuple = decltype(
256
12.5k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
12.5k
  return formatv_object<ParamTuple>(
258
12.5k
      Fmt,
259
12.5k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
12.5k
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int&>(fp0))))> llvm::formatv<unsigned int, unsigned int&>(char const*, unsigned int&&, unsigned int&&&)
Line
Count
Source
254
1
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
1
  using ParamTuple = decltype(
256
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
1
  return formatv_object<ParamTuple>(
258
1
      Fmt,
259
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
1
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int&>(fp0)), detail::build_format_adapter(std::forward<unsigned int&>(fp0))))> llvm::formatv<unsigned int, unsigned int&, unsigned int&>(char const*, unsigned int&&, unsigned int&&&, unsigned int&&&)
Line
Count
Source
254
2
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
2
  using ParamTuple = decltype(
256
2
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
2
  return formatv_object<ParamTuple>(
258
2
      Fmt,
259
2
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
2
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int const&>(fp0))))> llvm::formatv<unsigned int const&>(char const*, unsigned int const&&&)
Line
Count
Source
254
3
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
3
  using ParamTuple = decltype(
256
3
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
3
  return formatv_object<ParamTuple>(
258
3
      Fmt,
259
3
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
3
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int&>(fp0)), detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int&>(fp0)), detail::build_format_adapter(std::forward<unsigned int>(fp0))))> llvm::formatv<unsigned int&, unsigned int, unsigned int&, unsigned int>(char const*, unsigned int&&&, unsigned int&&, unsigned int&&&, unsigned int&&)
Line
Count
Source
254
1
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
1
  using ParamTuple = decltype(
256
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
1
  return formatv_object<ParamTuple>(
258
1
      Fmt,
259
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
1
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int&>(fp0)), detail::build_format_adapter(std::forward<unsigned int>(fp0))))> llvm::formatv<unsigned int, unsigned int&, unsigned int>(char const*, unsigned int&&, unsigned int&&&, unsigned int&&)
Line
Count
Source
254
2
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
2
  using ParamTuple = decltype(
256
2
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
2
  return formatv_object<ParamTuple>(
258
2
      Fmt,
259
2
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
2
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int const&>(fp0)), detail::build_format_adapter(std::forward<unsigned int&>(fp0)), detail::build_format_adapter(std::forward<unsigned int>(fp0))))> llvm::formatv<unsigned int, unsigned int const&, unsigned int&, unsigned int>(char const*, unsigned int&&, unsigned int const&&&, unsigned int&&&, unsigned int&&)
Line
Count
Source
254
1
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
1
  using ParamTuple = decltype(
256
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
1
  return formatv_object<ParamTuple>(
258
1
      Fmt,
259
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
1
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<char const*&>(fp0)), detail::build_format_adapter(std::forward<unsigned int&>(fp0)), detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int&>(fp0))))> llvm::formatv<unsigned int, char const*&, unsigned int&, unsigned int, unsigned int&>(char const*, unsigned int&&, char const*&&&, unsigned int&&&, unsigned int&&, unsigned int&&&)
Line
Count
Source
254
1
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
1
  using ParamTuple = decltype(
256
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
1
  return formatv_object<ParamTuple>(
258
1
      Fmt,
259
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
1
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int const&>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Index&>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Form&>(fp0))))> llvm::formatv<unsigned int, unsigned int const&, llvm::dwarf::Index&, llvm::dwarf::Form&>(char const*, unsigned int&&, unsigned int const&&&, llvm::dwarf::Index&&&, llvm::dwarf::Form&&&)
Line
Count
Source
254
1
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
1
  using ParamTuple = decltype(
256
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
1
  return formatv_object<ParamTuple>(
258
1
      Fmt,
259
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
1
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int const&>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Form&>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Form>(fp0))))> llvm::formatv<unsigned int, unsigned int const&, llvm::dwarf::Form&, llvm::dwarf::Form>(char const*, unsigned int&&, unsigned int const&&&, llvm::dwarf::Form&&&, llvm::dwarf::Form&&)
Line
Count
Source
254
1
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
1
  using ParamTuple = decltype(
256
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
1
  return formatv_object<ParamTuple>(
258
1
      Fmt,
259
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
1
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int const&>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Index&>(fp0))))> llvm::formatv<unsigned int, unsigned int const&, llvm::dwarf::Index&>(char const*, unsigned int&&, unsigned int const&&&, llvm::dwarf::Index&&&)
Line
Count
Source
254
1
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
1
  using ParamTuple = decltype(
256
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
1
  return formatv_object<ParamTuple>(
258
1
      Fmt,
259
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
1
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int const&>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Index&>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Form&>(fp0)), detail::build_format_adapter(std::forward<llvm::StringLiteral const&>(fp0))))> llvm::formatv<unsigned int, unsigned int const&, llvm::dwarf::Index&, llvm::dwarf::Form&, llvm::StringLiteral const&>(char const*, unsigned int&&, unsigned int const&&&, llvm::dwarf::Index&&&, llvm::dwarf::Form&&&, llvm::StringLiteral const&&&)
Line
Count
Source
254
2
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
2
  using ParamTuple = decltype(
256
2
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
2
  return formatv_object<ParamTuple>(
258
2
      Fmt,
259
2
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
2
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int const&>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Tag const&>(fp0))))> llvm::formatv<unsigned int, unsigned int const&, llvm::dwarf::Tag const&>(char const*, unsigned int&&, unsigned int const&&&, llvm::dwarf::Tag const&&&)
Line
Count
Source
254
1
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
1
  using ParamTuple = decltype(
256
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
1
  return formatv_object<ParamTuple>(
258
1
      Fmt,
259
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
1
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int const&>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Index const&>(fp0))))> llvm::formatv<unsigned int, unsigned int const&, llvm::dwarf::Index const&>(char const*, unsigned int&&, unsigned int const&&&, llvm::dwarf::Index const&&&)
Line
Count
Source
254
2
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
2
  using ParamTuple = decltype(
256
2
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
2
  return formatv_object<ParamTuple>(
258
2
      Fmt,
259
2
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
2
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int const&>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Index>(fp0))))> llvm::formatv<unsigned int, unsigned int const&, llvm::dwarf::Index>(char const*, unsigned int&&, unsigned int const&&&, llvm::dwarf::Index&&)
Line
Count
Source
254
3
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
3
  using ParamTuple = decltype(
256
3
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
3
  return formatv_object<ParamTuple>(
258
3
      Fmt,
259
3
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
3
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int>(fp0))))> llvm::formatv<unsigned int, unsigned int>(char const*, unsigned int&&, unsigned int&&)
Line
Count
Source
254
3
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
3
  using ParamTuple = decltype(
256
3
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
3
  return formatv_object<ParamTuple>(
258
3
      Fmt,
259
3
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
3
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int&>(fp0)), detail::build_format_adapter(std::forward<unsigned long long&>(fp0))))> llvm::formatv<unsigned int, unsigned int&, unsigned long long&>(char const*, unsigned int&&, unsigned int&&&, unsigned long long&&&)
Line
Count
Source
254
1
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
1
  using ParamTuple = decltype(
256
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
1
  return formatv_object<ParamTuple>(
258
1
      Fmt,
259
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
1
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int&>(fp0)), detail::build_format_adapter(std::forward<unsigned long long&>(fp0)), detail::build_format_adapter(std::forward<unsigned int&>(fp0)), detail::build_format_adapter(std::forward<unsigned int>(fp0))))> llvm::formatv<unsigned int, unsigned int&, unsigned long long&, unsigned int&, unsigned int>(char const*, unsigned int&&, unsigned int&&&, unsigned long long&&&, unsigned int&&&, unsigned int&&)
Line
Count
Source
254
1
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
1
  using ParamTuple = decltype(
256
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
1
  return formatv_object<ParamTuple>(
258
1
      Fmt,
259
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
1
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int&>(fp0)), detail::build_format_adapter(std::forward<unsigned long long&>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Tag>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Tag>(fp0))))> llvm::formatv<unsigned int, unsigned int&, unsigned long long&, llvm::dwarf::Tag, llvm::dwarf::Tag>(char const*, unsigned int&&, unsigned int&&&, unsigned long long&&&, llvm::dwarf::Tag&&, llvm::dwarf::Tag&&)
Line
Count
Source
254
1
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
1
  using ParamTuple = decltype(
256
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
1
  return formatv_object<ParamTuple>(
258
1
      Fmt,
259
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
1
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int&>(fp0)), detail::build_format_adapter(std::forward<unsigned long long&>(fp0)), detail::build_format_adapter(std::forward<llvm::StringRef&>(fp0)), detail::build_format_adapter(std::forward<llvm::iterator_range<llvm::StringRef*> >(fp0))))> llvm::formatv<unsigned int, unsigned int&, unsigned long long&, llvm::StringRef&, llvm::iterator_range<llvm::StringRef*> >(char const*, unsigned int&&, unsigned int&&&, unsigned long long&&&, llvm::StringRef&&&, llvm::iterator_range<llvm::StringRef*>&&)
Line
Count
Source
254
2
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
2
  using ParamTuple = decltype(
256
2
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
2
  return formatv_object<ParamTuple>(
258
2
      Fmt,
259
2
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
2
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<llvm::StringRef&>(fp0))))> llvm::formatv<unsigned int, unsigned int, llvm::StringRef&>(char const*, unsigned int&&, unsigned int&&, llvm::StringRef&&&)
Line
Count
Source
254
1
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
1
  using ParamTuple = decltype(
256
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
1
  return formatv_object<ParamTuple>(
258
1
      Fmt,
259
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
1
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<llvm::StringRef&>(fp0)), detail::build_format_adapter(std::forward<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(fp0))))> llvm::formatv<unsigned int, unsigned int, llvm::StringRef&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(char const*, unsigned int&&, unsigned int&&, llvm::StringRef&&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&)
Line
Count
Source
254
1
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
1
  using ParamTuple = decltype(
256
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
1
  return formatv_object<ParamTuple>(
258
1
      Fmt,
259
1
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
1
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<unsigned int>(fp0)), detail::build_format_adapter(std::forward<llvm::dwarf::Tag>(fp0)), detail::build_format_adapter(std::forward<llvm::StringRef&>(fp0))))> llvm::formatv<unsigned int, unsigned int, llvm::dwarf::Tag, llvm::StringRef&>(char const*, unsigned int&&, unsigned int&&, llvm::dwarf::Tag&&, llvm::StringRef&&&)
Line
Count
Source
254
10
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
10
  using ParamTuple = decltype(
256
10
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
10
  return formatv_object<ParamTuple>(
258
10
      Fmt,
259
10
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
10
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::json::Value>(fp0))))> llvm::formatv<llvm::json::Value>(char const*, llvm::json::Value&&)
Line
Count
Source
254
2
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
2
  using ParamTuple = decltype(
256
2
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
2
  return formatv_object<ParamTuple>(
258
2
      Fmt,
259
2
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
2
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::StringRef&>(fp0))))> llvm::formatv<llvm::StringRef&>(char const*, llvm::StringRef&&&)
Line
Count
Source
254
3.19k
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
3.19k
  using ParamTuple = decltype(
256
3.19k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
3.19k
  return formatv_object<ParamTuple>(
258
3.19k
      Fmt,
259
3.19k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
3.19k
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::StringRef const&>(fp0))))> llvm::formatv<llvm::StringRef const&>(char const*, llvm::StringRef const&&&)
Line
Count
Source
254
154
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
154
  using ParamTuple = decltype(
256
154
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
154
  return formatv_object<ParamTuple>(
258
154
      Fmt,
259
154
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
154
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<char const*>(fp0)), detail::build_format_adapter(std::forward<llvm::StringRef&>(fp0))))> llvm::formatv<char const*, llvm::StringRef&>(char const*, char const*&&, llvm::StringRef&&&)
Line
Count
Source
254
6
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
6
  using ParamTuple = decltype(
256
6
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
6
  return formatv_object<ParamTuple>(
258
6
      Fmt,
259
6
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
6
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::StringRef&>(fp0)), detail::build_format_adapter(std::forward<llvm::StringRef&>(fp0))))> llvm::formatv<llvm::StringRef&, llvm::StringRef&>(char const*, llvm::StringRef&&&, llvm::StringRef&&&)
Line
Count
Source
254
404
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
404
  using ParamTuple = decltype(
256
404
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
404
  return formatv_object<ParamTuple>(
258
404
      Fmt,
259
404
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
404
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::StringRef&>(fp0)), detail::build_format_adapter(std::forward<llvm::StringRef&>(fp0)), detail::build_format_adapter(std::forward<llvm::StringRef&>(fp0))))> llvm::formatv<llvm::StringRef&, llvm::StringRef&, llvm::StringRef&>(char const*, llvm::StringRef&&&, llvm::StringRef&&&, llvm::StringRef&&&)
Line
Count
Source
254
545
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
545
  using ParamTuple = decltype(
256
545
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
545
  return formatv_object<ParamTuple>(
258
545
      Fmt,
259
545
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
545
}
Unexecuted instantiation: llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::codeview::GUID const&>(fp0))))> llvm::formatv<llvm::codeview::GUID const&>(char const*, llvm::codeview::GUID const&&&)
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<llvm::StringRef>(fp0))))> llvm::formatv<llvm::StringRef>(char const*, llvm::StringRef&&)
Line
Count
Source
254
2.10k
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
2.10k
  using ParamTuple = decltype(
256
2.10k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
2.10k
  return formatv_object<ParamTuple>(
258
2.10k
      Fmt,
259
2.10k
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
2.10k
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(fp0))))> llvm::formatv<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&)
Line
Count
Source
254
370
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
370
  using ParamTuple = decltype(
256
370
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
370
  return formatv_object<ParamTuple>(
258
370
      Fmt,
259
370
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
370
}
llvm::formatv_object<decltype(std::make_tuple(detail::build_format_adapter(std::forward<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(fp0))))> llvm::formatv<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&&)
Line
Count
Source
254
219
    std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))> {
255
219
  using ParamTuple = decltype(
256
219
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
257
219
  return formatv_object<ParamTuple>(
258
219
      Fmt,
259
219
      std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...));
260
219
}
261
262
} // end namespace llvm
263
264
#endif // LLVM_SUPPORT_FORMATVARIADIC_H