Coverage Report

Created: 2026-02-09 06:05

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/CMake/Source/cmUVStream.h
Line
Count
Source
1
/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2
   file LICENSE.rst or https://cmake.org/licensing for details.  */
3
#pragma once
4
5
#include <cassert>
6
#include <functional>
7
#include <istream>
8
9
#include <cm/memory>
10
11
#include <cm3p/uv.h>
12
13
#include "cmUVHandlePtr.h"
14
#include "cmUVStreambuf.h"
15
16
template <typename CharT, typename Traits = std::char_traits<CharT>>
17
class cmBasicUVIStream : public std::basic_istream<CharT>
18
{
19
public:
20
  cmBasicUVIStream();
21
  cmBasicUVIStream(uv_stream_t* stream);
22
23
  bool is_open() const;
24
25
  void open(uv_stream_t* stream);
26
27
  void close();
28
29
private:
30
  cmBasicUVStreambuf<CharT, Traits> Buffer;
31
};
32
33
template <typename CharT, typename Traits>
34
cmBasicUVIStream<CharT, Traits>::cmBasicUVIStream()
35
  : std::basic_istream<CharT, Traits>(&this->Buffer)
36
{
37
}
38
39
template <typename CharT, typename Traits>
40
cmBasicUVIStream<CharT, Traits>::cmBasicUVIStream(uv_stream_t* stream)
41
0
  : std::basic_istream<CharT, Traits>(&this->Buffer)
42
0
{
43
0
  this->open(stream);
44
0
}
45
46
template <typename CharT, typename Traits>
47
bool cmBasicUVIStream<CharT, Traits>::is_open() const
48
{
49
  return this->Buffer.is_open();
50
}
51
52
template <typename CharT, typename Traits>
53
void cmBasicUVIStream<CharT, Traits>::open(uv_stream_t* stream)
54
0
{
55
0
  this->Buffer.open(stream);
56
0
}
57
58
template <typename CharT, typename Traits>
59
void cmBasicUVIStream<CharT, Traits>::close()
60
{
61
  this->Buffer.close();
62
}
63
64
using cmUVIStream = cmBasicUVIStream<char>;
65
66
class cmUVStreamReadHandle
67
{
68
private:
69
  std::vector<char> Buffer;
70
  std::function<void(std::vector<char>)> OnRead;
71
  std::function<void()> OnFinish;
72
73
  template <typename ReadCallback, typename FinishCallback>
74
  friend std::unique_ptr<cmUVStreamReadHandle> cmUVStreamRead(
75
    uv_stream_t* stream, ReadCallback onRead, FinishCallback onFinish);
76
};
77
78
template <typename ReadCallback, typename FinishCallback>
79
std::unique_ptr<cmUVStreamReadHandle> cmUVStreamRead(uv_stream_t* stream,
80
                                                     ReadCallback onRead,
81
                                                     FinishCallback onFinish)
82
0
{
83
0
  auto handle = cm::make_unique<cmUVStreamReadHandle>();
84
0
  handle->OnRead = std::move(onRead);
85
0
  handle->OnFinish = std::move(onFinish);
86
87
0
  stream->data = handle.get();
88
0
  uv_read_start(
89
0
    stream,
90
0
    [](uv_handle_t* s, std::size_t suggestedSize, uv_buf_t* buffer) {
91
0
      auto* data = static_cast<cmUVStreamReadHandle*>(s->data);
92
0
      data->Buffer.resize(suggestedSize);
93
0
      buffer->base = data->Buffer.data();
94
0
      buffer->len = suggestedSize;
95
0
    },
Unexecuted instantiation: cmSystemTools.cxx:_ZZ14cmUVStreamReadIZZN13cmSystemTools16RunSingleCommandERKNSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEPS8_SD_PiPKcNS0_12OutputOptionENS1_6chrono8durationIdNS1_5ratioILl1ELl1EEEEEN15cmProcessOutput8EncodingEENK3$_1clEP11uv_stream_sSD_RNS2_IcS7_EEiPFvRKS8_ERbEUlSS_E_ZZNS0_16RunSingleCommandESC_SD_SD_SE_SG_SH_SM_SO_ENKSP_clESR_SD_ST_iSX_SY_EUlvE_ENS1_10unique_ptrI20cmUVStreamReadHandleNS1_14default_deleteIS12_EEEESR_T_T0_ENKUlP11uv_handle_smP8uv_buf_tE_clES19_mS1B_
Unexecuted instantiation: cmSystemTools.cxx:_ZZ14cmUVStreamReadIZZN13cmSystemTools11WaitForLineEP9uv_loop_sP11uv_stream_sS4_RNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEERNS5_6vectorIcSA_EESF_ENK3$_0clES4_RZNS0_11WaitForLineES2_S4_S4_SC_SF_SF_E8ReadDataEUlSE_E_ZZNS0_11WaitForLineES2_S4_S4_SC_SF_SF_ENKSG_clES4_SI_EUlvE_ENS5_10unique_ptrI20cmUVStreamReadHandleNS5_14default_deleteISM_EEEES4_T_T0_ENKUlP11uv_handle_smP8uv_buf_tE_clEST_mSV_
Unexecuted instantiation: cmExecuteProcessCommand.cxx:cmUVStreamRead<cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_1, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_2>(uv_stream_s*, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_1, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_2)::{lambda(uv_handle_s*, unsigned long, uv_buf_t*)#1}::operator()(uv_handle_s*, unsigned long, uv_buf_t*) const
Unexecuted instantiation: cmExecuteProcessCommand.cxx:cmUVStreamRead<cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_3, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_4>(uv_stream_s*, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_3, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_4)::{lambda(uv_handle_s*, unsigned long, uv_buf_t*)#1}::operator()(uv_handle_s*, unsigned long, uv_buf_t*) const
96
0
    [](uv_stream_t* s, ssize_t nread, uv_buf_t const* buffer) {
97
0
      auto* data = static_cast<cmUVStreamReadHandle*>(s->data);
98
0
      if (nread > 0) {
99
0
        (void)buffer;
100
0
        assert(buffer->base == data->Buffer.data());
101
0
        data->Buffer.resize(nread);
102
0
        data->OnRead(std::move(data->Buffer));
103
0
      } else if (nread < 0 /*|| nread == UV_EOF*/) {
104
0
        data->OnFinish();
105
0
        uv_read_stop(s);
106
0
      }
107
0
    });
Unexecuted instantiation: cmSystemTools.cxx:cmUVStreamRead<cmSystemTools::RunSingleCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, char const*, cmSystemTools::OutputOption, std::__1::chrono::duration<double, std::__1::ratio<1l, 1l> >, cmProcessOutput::Encoding)::$_1::operator()(uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::vector<char, std::__1::allocator<char> >&, int, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&), bool&) const::{lambda(std::__1::vector<char, std::__1::allocator<char> >)#1}, cmSystemTools::RunSingleCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, char const*, cmSystemTools::OutputOption, std::__1::chrono::duration<double, std::__1::ratio<1l, 1l> >, cmProcessOutput::Encoding)::$_1::operator()(uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::vector<char, std::__1::allocator<char> >&, int, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&), bool&) const::{lambda()#1}>(uv_stream_s*, cmSystemTools::RunSingleCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, char const*, cmSystemTools::OutputOption, std::__1::chrono::duration<double, std::__1::ratio<1l, 1l> >, cmProcessOutput::Encoding)::$_1::operator()(uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::vector<char, std::__1::allocator<char> >&, int, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&), bool&) const::{lambda(std::__1::vector<char, std::__1::allocator<char> >)#1}, cmSystemTools::RunSingleCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, char const*, cmSystemTools::OutputOption, std::__1::chrono::duration<double, std::__1::ratio<1l, 1l> >, cmProcessOutput::Encoding)::$_1::operator()(uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::vector<char, std::__1::allocator<char> >&, int, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&), bool&) const::{lambda()#1})::{lambda(uv_stream_s*, long, uv_buf_t const*)#1}::operator()(uv_stream_s*, long, uv_buf_t) const
Unexecuted instantiation: cmSystemTools.cxx:cmUVStreamRead<cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::$_0::operator()(uv_stream_s*, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::ReadData&) const::{lambda(std::__1::vector<char, std::__1::allocator<char> >)#1}, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::$_0::operator()(uv_stream_s*, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::ReadData&) const::{lambda()#1}>(uv_stream_s*, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::$_0::operator()(uv_stream_s*, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::ReadData&) const::{lambda(std::__1::vector<char, std::__1::allocator<char> >)#1}, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::$_0::operator()(uv_stream_s*, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::ReadData&) const::{lambda()#1})::{lambda(uv_stream_s*, long, uv_buf_t const*)#1}::operator()(uv_stream_s*, long, uv_buf_t) const
Unexecuted instantiation: cmExecuteProcessCommand.cxx:cmUVStreamRead<cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_1, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_2>(uv_stream_s*, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_1, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_2)::{lambda(uv_stream_s*, long, uv_buf_t const*)#1}::operator()(uv_stream_s*, long, uv_buf_t const*) const
Unexecuted instantiation: cmExecuteProcessCommand.cxx:cmUVStreamRead<cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_3, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_4>(uv_stream_s*, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_3, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_4)::{lambda(uv_stream_s*, long, uv_buf_t const*)#1}::operator()(uv_stream_s*, long, uv_buf_t const*) const
108
109
0
  return handle;
110
0
}
Unexecuted instantiation: cmSystemTools.cxx:std::__1::unique_ptr<cmUVStreamReadHandle, std::__1::default_delete<cmSystemTools::RunSingleCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, char const*, cmSystemTools::OutputOption, std::__1::chrono::duration<double, std::__1::ratio<1l, 1l> >, cmProcessOutput::Encoding)::$_1::operator()(uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::vector<char, std::__1::allocator<char> >&, int, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&), bool&) const::{lambda()#1}> > cmUVStreamRead<cmSystemTools::RunSingleCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, char const*, cmSystemTools::OutputOption, std::__1::chrono::duration<double, std::__1::ratio<1l, 1l> >, cmProcessOutput::Encoding)::$_1::operator()(uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::vector<char, std::__1::allocator<char> >&, int, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&), bool&) const::{lambda(std::__1::vector<char, std::__1::allocator<char> >)#1}, cmSystemTools::RunSingleCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, char const*, cmSystemTools::OutputOption, std::__1::chrono::duration<double, std::__1::ratio<1l, 1l> >, cmProcessOutput::Encoding)::$_1::operator()(uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::vector<char, std::__1::allocator<char> >&, int, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&), bool&) const::{lambda()#1}>(uv_stream_s*, cmSystemTools::RunSingleCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, char const*, cmSystemTools::OutputOption, std::__1::chrono::duration<double, std::__1::ratio<1l, 1l> >, cmProcessOutput::Encoding)::$_1::operator()(uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::vector<char, std::__1::allocator<char> >&, int, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&), bool&) const::{lambda(std::__1::vector<char, std::__1::allocator<char> >)#1}, cmSystemTools::RunSingleCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int*, char const*, cmSystemTools::OutputOption, std::__1::chrono::duration<double, std::__1::ratio<1l, 1l> >, cmProcessOutput::Encoding)::$_1::operator()(uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::vector<char, std::__1::allocator<char> >&, int, void (*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&), bool&) const::{lambda()#1})
Unexecuted instantiation: cmSystemTools.cxx:std::__1::unique_ptr<cmUVStreamReadHandle, std::__1::default_delete<cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::$_0::operator()(uv_stream_s*, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::ReadData&) const::{lambda()#1}> > cmUVStreamRead<cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::$_0::operator()(uv_stream_s*, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::ReadData&) const::{lambda(std::__1::vector<char, std::__1::allocator<char> >)#1}, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::$_0::operator()(uv_stream_s*, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::ReadData&) const::{lambda()#1}>(uv_stream_s*, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::$_0::operator()(uv_stream_s*, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::ReadData&) const::{lambda(std::__1::vector<char, std::__1::allocator<char> >)#1}, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::$_0::operator()(uv_stream_s*, cmSystemTools::WaitForLine(uv_loop_s*, uv_stream_s*, uv_stream_s*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&, std::__1::vector<char, std::__1::allocator<char> >&)::ReadData&) const::{lambda()#1})
Unexecuted instantiation: cmExecuteProcessCommand.cxx:std::__1::unique_ptr<cmUVStreamReadHandle, std::__1::default_delete<cmUVStreamReadHandle> > cmUVStreamRead<cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_1, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_2>(uv_stream_s*, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_1, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_2)
Unexecuted instantiation: cmExecuteProcessCommand.cxx:std::__1::unique_ptr<cmUVStreamReadHandle, std::__1::default_delete<cmUVStreamReadHandle> > cmUVStreamRead<cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_3, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_4>(uv_stream_s*, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_3, cmExecuteProcessCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&)::$_4)