Coverage Report

Created: 2026-05-16 06:52

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/spirv-tools/source/diagnostic.h
Line
Count
Source
1
// Copyright (c) 2015-2016 The Khronos Group Inc.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#ifndef SOURCE_DIAGNOSTIC_H_
16
#define SOURCE_DIAGNOSTIC_H_
17
18
#include <sstream>
19
#include <string>
20
21
#include "spirv-tools/libspirv.hpp"
22
23
namespace spvtools {
24
25
// A DiagnosticStream remembers the current position of the input and an error
26
// code, and captures diagnostic messages via the left-shift operator.
27
// If the error code is not SPV_FAILED_MATCH, then captured messages are
28
// emitted during the destructor.
29
class DiagnosticStream {
30
 public:
31
  DiagnosticStream(spv_position_t position, const MessageConsumer& consumer,
32
                   const std::string& disassembled_instruction,
33
                   spv_result_t error, std::string shader_debug_info = "")
34
1.35M
      : position_(position),
35
1.35M
        consumer_(consumer),
36
1.35M
        disassembled_instruction_(disassembled_instruction),
37
1.35M
        error_(error),
38
1.35M
        shader_debug_info_(shader_debug_info) {}
39
40
  // Creates a DiagnosticStream from an expiring DiagnosticStream.
41
  // The new object takes the contents of the other, and prevents the
42
  // other from emitting anything during destruction.
43
  DiagnosticStream(DiagnosticStream&& other);
44
45
  // Destroys a DiagnosticStream.
46
  // If its status code is something other than SPV_FAILED_MATCH
47
  // then emit the accumulated message to the consumer.
48
  ~DiagnosticStream();
49
50
  // Adds the given value to the diagnostic message to be written.
51
  template <typename T>
52
4.47M
  DiagnosticStream& operator<<(const T& val) {
53
4.47M
    stream_ << val;
54
4.47M
    return *this;
55
4.47M
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [15]>(char const (&) [15])
Line
Count
Source
52
45.4k
  DiagnosticStream& operator<<(const T& val) {
53
45.4k
    stream_ << val;
54
45.4k
    return *this;
55
45.4k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [77]>(char const (&) [77])
Line
Count
Source
52
428
  DiagnosticStream& operator<<(const T& val) {
53
428
    stream_ << val;
54
428
    return *this;
55
428
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [35]>(char const (&) [35])
Line
Count
Source
52
66.4k
  DiagnosticStream& operator<<(const T& val) {
53
66.4k
    stream_ << val;
54
66.4k
    return *this;
55
66.4k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [41]>(char const (&) [41])
Line
Count
Source
52
479
  DiagnosticStream& operator<<(const T& val) {
53
479
    stream_ << val;
54
479
    return *this;
55
479
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [24]>(char const (&) [24])
Line
Count
Source
52
1.45k
  DiagnosticStream& operator<<(const T& val) {
53
1.45k
    stream_ << val;
54
1.45k
    return *this;
55
1.45k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [80]>(char const (&) [80])
Line
Count
Source
52
5
  DiagnosticStream& operator<<(const T& val) {
53
5
    stream_ << val;
54
5
    return *this;
55
5
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char>(char const&)
Line
Count
Source
52
44
  DiagnosticStream& operator<<(const T& val) {
53
44
    stream_ << val;
54
44
    return *this;
55
44
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [28]>(char const (&) [28])
Line
Count
Source
52
434
  DiagnosticStream& operator<<(const T& val) {
53
434
    stream_ << val;
54
434
    return *this;
55
434
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [27]>(char const (&) [27])
Line
Count
Source
52
1.30k
  DiagnosticStream& operator<<(const T& val) {
53
1.30k
    stream_ << val;
54
1.30k
    return *this;
55
1.30k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [71]>(char const (&) [71])
Line
Count
Source
52
29
  DiagnosticStream& operator<<(const T& val) {
53
29
    stream_ << val;
54
29
    return *this;
55
29
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [37]>(char const (&) [37])
Line
Count
Source
52
241k
  DiagnosticStream& operator<<(const T& val) {
53
241k
    stream_ << val;
54
241k
    return *this;
55
241k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [39]>(char const (&) [39])
Line
Count
Source
52
148k
  DiagnosticStream& operator<<(const T& val) {
53
148k
    stream_ << val;
54
148k
    return *this;
55
148k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [13]>(char const (&) [13])
Line
Count
Source
52
2.21k
  DiagnosticStream& operator<<(const T& val) {
53
2.21k
    stream_ << val;
54
2.21k
    return *this;
55
2.21k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [32]>(char const (&) [32])
Line
Count
Source
52
10.9k
  DiagnosticStream& operator<<(const T& val) {
53
10.9k
    stream_ << val;
54
10.9k
    return *this;
55
10.9k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [22]>(char const (&) [22])
Line
Count
Source
52
3.30k
  DiagnosticStream& operator<<(const T& val) {
53
3.30k
    stream_ << val;
54
3.30k
    return *this;
55
3.30k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [65]>(char const (&) [65])
Line
Count
Source
52
38
  DiagnosticStream& operator<<(const T& val) {
53
38
    stream_ << val;
54
38
    return *this;
55
38
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [31]>(char const (&) [31])
Line
Count
Source
52
3.96k
  DiagnosticStream& operator<<(const T& val) {
53
3.96k
    stream_ << val;
54
3.96k
    return *this;
55
3.96k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [47]>(char const (&) [47])
Line
Count
Source
52
10.7k
  DiagnosticStream& operator<<(const T& val) {
53
10.7k
    stream_ << val;
54
10.7k
    return *this;
55
10.7k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [54]>(char const (&) [54])
Line
Count
Source
52
180
  DiagnosticStream& operator<<(const T& val) {
53
180
    stream_ << val;
54
180
    return *this;
55
180
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <unsigned long>(unsigned long const&)
Line
Count
Source
52
394k
  DiagnosticStream& operator<<(const T& val) {
53
394k
    stream_ << val;
54
394k
    return *this;
55
394k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [26]>(char const (&) [26])
Line
Count
Source
52
780
  DiagnosticStream& operator<<(const T& val) {
53
780
    stream_ << val;
54
780
    return *this;
55
780
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <int>(int const&)
Line
Count
Source
52
196
  DiagnosticStream& operator<<(const T& val) {
53
196
    stream_ << val;
54
196
    return *this;
55
196
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [29]>(char const (&) [29])
Line
Count
Source
52
20.4k
  DiagnosticStream& operator<<(const T& val) {
53
20.4k
    stream_ << val;
54
20.4k
    return *this;
55
20.4k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char const*>(char const* const&)
Line
Count
Source
52
777k
  DiagnosticStream& operator<<(const T& val) {
53
777k
    stream_ << val;
54
777k
    return *this;
55
777k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [12]>(char const (&) [12])
Line
Count
Source
52
1.69k
  DiagnosticStream& operator<<(const T& val) {
53
1.69k
    stream_ << val;
54
1.69k
    return *this;
55
1.69k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [40]>(char const (&) [40])
Line
Count
Source
52
1.96k
  DiagnosticStream& operator<<(const T& val) {
53
1.96k
    stream_ << val;
54
1.96k
    return *this;
55
1.96k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <unsigned int>(unsigned int const&)
Line
Count
Source
52
181k
  DiagnosticStream& operator<<(const T& val) {
53
181k
    stream_ << val;
54
181k
    return *this;
55
181k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [36]>(char const (&) [36])
Line
Count
Source
52
7.79k
  DiagnosticStream& operator<<(const T& val) {
53
7.79k
    stream_ << val;
54
7.79k
    return *this;
55
7.79k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [3]>(char const (&) [3])
Line
Count
Source
52
214k
  DiagnosticStream& operator<<(const T& val) {
53
214k
    stream_ << val;
54
214k
    return *this;
55
214k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [55]>(char const (&) [55])
Line
Count
Source
52
190
  DiagnosticStream& operator<<(const T& val) {
53
190
    stream_ << val;
54
190
    return *this;
55
190
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [23]>(char const (&) [23])
Line
Count
Source
52
84.4k
  DiagnosticStream& operator<<(const T& val) {
53
84.4k
    stream_ << val;
54
84.4k
    return *this;
55
84.4k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [9]>(char const (&) [9])
Line
Count
Source
52
112k
  DiagnosticStream& operator<<(const T& val) {
53
112k
    stream_ << val;
54
112k
    return *this;
55
112k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [10]>(char const (&) [10])
Line
Count
Source
52
497
  DiagnosticStream& operator<<(const T& val) {
53
497
    stream_ << val;
54
497
    return *this;
55
497
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [49]>(char const (&) [49])
Line
Count
Source
52
15.9k
  DiagnosticStream& operator<<(const T& val) {
53
15.9k
    stream_ << val;
54
15.9k
    return *this;
55
15.9k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [104]>(char const (&) [104])
Line
Count
Source
52
350
  DiagnosticStream& operator<<(const T& val) {
53
350
    stream_ << val;
54
350
    return *this;
55
350
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [25]>(char const (&) [25])
Line
Count
Source
52
325k
  DiagnosticStream& operator<<(const T& val) {
53
325k
    stream_ << val;
54
325k
    return *this;
55
325k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [48]>(char const (&) [48])
Line
Count
Source
52
904
  DiagnosticStream& operator<<(const T& val) {
53
904
    stream_ << val;
54
904
    return *this;
55
904
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [38]>(char const (&) [38])
Line
Count
Source
52
187k
  DiagnosticStream& operator<<(const T& val) {
53
187k
    stream_ << val;
54
187k
    return *this;
55
187k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <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> > const&)
Line
Count
Source
52
414k
  DiagnosticStream& operator<<(const T& val) {
53
414k
    stream_ << val;
54
414k
    return *this;
55
414k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [2]>(char const (&) [2])
Line
Count
Source
52
377k
  DiagnosticStream& operator<<(const T& val) {
53
377k
    stream_ << val;
54
377k
    return *this;
55
377k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [11]>(char const (&) [11])
Line
Count
Source
52
53.4k
  DiagnosticStream& operator<<(const T& val) {
53
53.4k
    stream_ << val;
54
53.4k
    return *this;
55
53.4k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [51]>(char const (&) [51])
Line
Count
Source
52
4.17k
  DiagnosticStream& operator<<(const T& val) {
53
4.17k
    stream_ << val;
54
4.17k
    return *this;
55
4.17k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [33]>(char const (&) [33])
Line
Count
Source
52
21.4k
  DiagnosticStream& operator<<(const T& val) {
53
21.4k
    stream_ << val;
54
21.4k
    return *this;
55
21.4k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [8]>(char const (&) [8])
Line
Count
Source
52
17.0k
  DiagnosticStream& operator<<(const T& val) {
53
17.0k
    stream_ << val;
54
17.0k
    return *this;
55
17.0k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [7]>(char const (&) [7])
Line
Count
Source
52
986
  DiagnosticStream& operator<<(const T& val) {
53
986
    stream_ << val;
54
986
    return *this;
55
986
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [42]>(char const (&) [42])
Line
Count
Source
52
176
  DiagnosticStream& operator<<(const T& val) {
53
176
    stream_ << val;
54
176
    return *this;
55
176
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [30]>(char const (&) [30])
Line
Count
Source
52
31.0k
  DiagnosticStream& operator<<(const T& val) {
53
31.0k
    stream_ << val;
54
31.0k
    return *this;
55
31.0k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [19]>(char const (&) [19])
Line
Count
Source
52
254k
  DiagnosticStream& operator<<(const T& val) {
53
254k
    stream_ << val;
54
254k
    return *this;
55
254k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Line
Count
Source
52
120
  DiagnosticStream& operator<<(const T& val) {
53
120
    stream_ << val;
54
120
    return *this;
55
120
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [16]>(char const (&) [16])
Line
Count
Source
52
19.0k
  DiagnosticStream& operator<<(const T& val) {
53
19.0k
    stream_ << val;
54
19.0k
    return *this;
55
19.0k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <std::__1::ios_base& (std::__1::ios_base&)>(std::__1::ios_base& ( const&)(std::__1::ios_base&))
Line
Count
Source
52
13.8k
  DiagnosticStream& operator<<(const T& val) {
53
13.8k
    stream_ << val;
54
13.8k
    return *this;
55
13.8k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <unsigned short>(unsigned short const&)
Line
Count
Source
52
228k
  DiagnosticStream& operator<<(const T& val) {
53
228k
    stream_ << val;
54
228k
    return *this;
55
228k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [17]>(char const (&) [17])
Line
Count
Source
52
49.5k
  DiagnosticStream& operator<<(const T& val) {
53
49.5k
    stream_ << val;
54
49.5k
    return *this;
55
49.5k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [34]>(char const (&) [34])
Line
Count
Source
52
65.6k
  DiagnosticStream& operator<<(const T& val) {
53
65.6k
    stream_ << val;
54
65.6k
    return *this;
55
65.6k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [20]>(char const (&) [20])
Line
Count
Source
52
587
  DiagnosticStream& operator<<(const T& val) {
53
587
    stream_ << val;
54
587
    return *this;
55
587
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [4]>(char const (&) [4])
Line
Count
Source
52
2.43k
  DiagnosticStream& operator<<(const T& val) {
53
2.43k
    stream_ << val;
54
2.43k
    return *this;
55
2.43k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [18]>(char const (&) [18])
Line
Count
Source
52
16.8k
  DiagnosticStream& operator<<(const T& val) {
53
16.8k
    stream_ << val;
54
16.8k
    return *this;
55
16.8k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [6]>(char const (&) [6])
Line
Count
Source
52
922
  DiagnosticStream& operator<<(const T& val) {
53
922
    stream_ << val;
54
922
    return *this;
55
922
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [131]>(char const (&) [131])
Line
Count
Source
52
4.51k
  DiagnosticStream& operator<<(const T& val) {
53
4.51k
    stream_ << val;
54
4.51k
    return *this;
55
4.51k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <spv_operand_type_t>(spv_operand_type_t const&)
Line
Count
Source
52
199
  DiagnosticStream& operator<<(const T& val) {
53
199
    stream_ << val;
54
199
    return *this;
55
199
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [14]>(char const (&) [14])
Line
Count
Source
52
19.8k
  DiagnosticStream& operator<<(const T& val) {
53
19.8k
    stream_ << val;
54
19.8k
    return *this;
55
19.8k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [45]>(char const (&) [45])
Line
Count
Source
52
331
  DiagnosticStream& operator<<(const T& val) {
53
331
    stream_ << val;
54
331
    return *this;
55
331
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <spvtools::opt::Instruction>(spvtools::opt::Instruction const&)
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [70]>(char const (&) [70])
Line
Count
Source
52
33
  DiagnosticStream& operator<<(const T& val) {
53
33
    stream_ << val;
54
33
    return *this;
55
33
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [5]>(char const (&) [5])
Line
Count
Source
52
1.71k
  DiagnosticStream& operator<<(const T& val) {
53
1.71k
    stream_ << val;
54
1.71k
    return *this;
55
1.71k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [68]>(char const (&) [68])
Line
Count
Source
52
150
  DiagnosticStream& operator<<(const T& val) {
53
150
    stream_ << val;
54
150
    return *this;
55
150
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [64]>(char const (&) [64])
Line
Count
Source
52
18
  DiagnosticStream& operator<<(const T& val) {
53
18
    stream_ << val;
54
18
    return *this;
55
18
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [53]>(char const (&) [53])
Line
Count
Source
52
285
  DiagnosticStream& operator<<(const T& val) {
53
285
    stream_ << val;
54
285
    return *this;
55
285
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <long>(long const&)
Line
Count
Source
52
227
  DiagnosticStream& operator<<(const T& val) {
53
227
    stream_ << val;
54
227
    return *this;
55
227
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [66]>(char const (&) [66])
Line
Count
Source
52
22
  DiagnosticStream& operator<<(const T& val) {
53
22
    stream_ << val;
54
22
    return *this;
55
22
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [63]>(char const (&) [63])
Line
Count
Source
52
1.29k
  DiagnosticStream& operator<<(const T& val) {
53
1.29k
    stream_ << val;
54
1.29k
    return *this;
55
1.29k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [61]>(char const (&) [61])
Line
Count
Source
52
3.12k
  DiagnosticStream& operator<<(const T& val) {
53
3.12k
    stream_ << val;
54
3.12k
    return *this;
55
3.12k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [44]>(char const (&) [44])
Line
Count
Source
52
1.00k
  DiagnosticStream& operator<<(const T& val) {
53
1.00k
    stream_ << val;
54
1.00k
    return *this;
55
1.00k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [69]>(char const (&) [69])
Line
Count
Source
52
458
  DiagnosticStream& operator<<(const T& val) {
53
458
    stream_ << val;
54
458
    return *this;
55
458
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [113]>(char const (&) [113])
Line
Count
Source
52
3.09k
  DiagnosticStream& operator<<(const T& val) {
53
3.09k
    stream_ << val;
54
3.09k
    return *this;
55
3.09k
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [93]>(char const (&) [93])
Line
Count
Source
52
63
  DiagnosticStream& operator<<(const T& val) {
53
63
    stream_ << val;
54
63
    return *this;
55
63
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [52]>(char const (&) [52])
Line
Count
Source
52
528
  DiagnosticStream& operator<<(const T& val) {
53
528
    stream_ << val;
54
528
    return *this;
55
528
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [87]>(char const (&) [87])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [46]>(char const (&) [46])
Line
Count
Source
52
180
  DiagnosticStream& operator<<(const T& val) {
53
180
    stream_ << val;
54
180
    return *this;
55
180
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [103]>(char const (&) [103])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [82]>(char const (&) [82])
Line
Count
Source
52
5
  DiagnosticStream& operator<<(const T& val) {
53
5
    stream_ << val;
54
5
    return *this;
55
5
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [67]>(char const (&) [67])
Line
Count
Source
52
128
  DiagnosticStream& operator<<(const T& val) {
53
128
    stream_ << val;
54
128
    return *this;
55
128
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [90]>(char const (&) [90])
Line
Count
Source
52
27
  DiagnosticStream& operator<<(const T& val) {
53
27
    stream_ << val;
54
27
    return *this;
55
27
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [72]>(char const (&) [72])
Line
Count
Source
52
11
  DiagnosticStream& operator<<(const T& val) {
53
11
    stream_ << val;
54
11
    return *this;
55
11
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [76]>(char const (&) [76])
Line
Count
Source
52
70
  DiagnosticStream& operator<<(const T& val) {
53
70
    stream_ << val;
54
70
    return *this;
55
70
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [60]>(char const (&) [60])
Line
Count
Source
52
33
  DiagnosticStream& operator<<(const T& val) {
53
33
    stream_ << val;
54
33
    return *this;
55
33
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [133]>(char const (&) [133])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [59]>(char const (&) [59])
Line
Count
Source
52
89
  DiagnosticStream& operator<<(const T& val) {
53
89
    stream_ << val;
54
89
    return *this;
55
89
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [43]>(char const (&) [43])
Line
Count
Source
52
125
  DiagnosticStream& operator<<(const T& val) {
53
125
    stream_ << val;
54
125
    return *this;
55
125
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [57]>(char const (&) [57])
Line
Count
Source
52
312
  DiagnosticStream& operator<<(const T& val) {
53
312
    stream_ << val;
54
312
    return *this;
55
312
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [58]>(char const (&) [58])
Line
Count
Source
52
276
  DiagnosticStream& operator<<(const T& val) {
53
276
    stream_ << val;
54
276
    return *this;
55
276
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [62]>(char const (&) [62])
Line
Count
Source
52
108
  DiagnosticStream& operator<<(const T& val) {
53
108
    stream_ << val;
54
108
    return *this;
55
108
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [50]>(char const (&) [50])
Line
Count
Source
52
166
  DiagnosticStream& operator<<(const T& val) {
53
166
    stream_ << val;
54
166
    return *this;
55
166
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [74]>(char const (&) [74])
Line
Count
Source
52
104
  DiagnosticStream& operator<<(const T& val) {
53
104
    stream_ << val;
54
104
    return *this;
55
104
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [171]>(char const (&) [171])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [75]>(char const (&) [75])
Line
Count
Source
52
32
  DiagnosticStream& operator<<(const T& val) {
53
32
    stream_ << val;
54
32
    return *this;
55
32
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [88]>(char const (&) [88])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [56]>(char const (&) [56])
Line
Count
Source
52
711
  DiagnosticStream& operator<<(const T& val) {
53
711
    stream_ << val;
54
711
    return *this;
55
711
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [112]>(char const (&) [112])
Line
Count
Source
52
3
  DiagnosticStream& operator<<(const T& val) {
53
3
    stream_ << val;
54
3
    return *this;
55
3
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [83]>(char const (&) [83])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [91]>(char const (&) [91])
Line
Count
Source
52
7
  DiagnosticStream& operator<<(const T& val) {
53
7
    stream_ << val;
54
7
    return *this;
55
7
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [115]>(char const (&) [115])
Line
Count
Source
52
4
  DiagnosticStream& operator<<(const T& val) {
53
4
    stream_ << val;
54
4
    return *this;
55
4
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [81]>(char const (&) [81])
Line
Count
Source
52
11
  DiagnosticStream& operator<<(const T& val) {
53
11
    stream_ << val;
54
11
    return *this;
55
11
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [79]>(char const (&) [79])
Line
Count
Source
52
48
  DiagnosticStream& operator<<(const T& val) {
53
48
    stream_ << val;
54
48
    return *this;
55
48
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [89]>(char const (&) [89])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [101]>(char const (&) [101])
Line
Count
Source
52
6
  DiagnosticStream& operator<<(const T& val) {
53
6
    stream_ << val;
54
6
    return *this;
55
6
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [92]>(char const (&) [92])
Line
Count
Source
52
16
  DiagnosticStream& operator<<(const T& val) {
53
16
    stream_ << val;
54
16
    return *this;
55
16
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [97]>(char const (&) [97])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [95]>(char const (&) [95])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [94]>(char const (&) [94])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [98]>(char const (&) [98])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [127]>(char const (&) [127])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [105]>(char const (&) [105])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [86]>(char const (&) [86])
Line
Count
Source
52
13
  DiagnosticStream& operator<<(const T& val) {
53
13
    stream_ << val;
54
13
    return *this;
55
13
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [141]>(char const (&) [141])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [140]>(char const (&) [140])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [106]>(char const (&) [106])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [207]>(char const (&) [207])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [84]>(char const (&) [84])
Line
Count
Source
52
11
  DiagnosticStream& operator<<(const T& val) {
53
11
    stream_ << val;
54
11
    return *this;
55
11
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [109]>(char const (&) [109])
Line
Count
Source
52
2
  DiagnosticStream& operator<<(const T& val) {
53
2
    stream_ << val;
54
2
    return *this;
55
2
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [99]>(char const (&) [99])
Line
Count
Source
52
8
  DiagnosticStream& operator<<(const T& val) {
53
8
    stream_ << val;
54
8
    return *this;
55
8
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [108]>(char const (&) [108])
Line
Count
Source
52
7
  DiagnosticStream& operator<<(const T& val) {
53
7
    stream_ << val;
54
7
    return *this;
55
7
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [107]>(char const (&) [107])
Line
Count
Source
52
26
  DiagnosticStream& operator<<(const T& val) {
53
26
    stream_ << val;
54
26
    return *this;
55
26
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [73]>(char const (&) [73])
Line
Count
Source
52
559
  DiagnosticStream& operator<<(const T& val) {
53
559
    stream_ << val;
54
559
    return *this;
55
559
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [78]>(char const (&) [78])
Line
Count
Source
52
30
  DiagnosticStream& operator<<(const T& val) {
53
30
    stream_ << val;
54
30
    return *this;
55
30
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [21]>(char const (&) [21])
Line
Count
Source
52
268
  DiagnosticStream& operator<<(const T& val) {
53
268
    stream_ << val;
54
268
    return *this;
55
268
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [118]>(char const (&) [118])
Line
Count
Source
52
15
  DiagnosticStream& operator<<(const T& val) {
53
15
    stream_ << val;
54
15
    return *this;
55
15
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [126]>(char const (&) [126])
Line
Count
Source
52
7
  DiagnosticStream& operator<<(const T& val) {
53
7
    stream_ << val;
54
7
    return *this;
55
7
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [130]>(char const (&) [130])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [206]>(char const (&) [206])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [102]>(char const (&) [102])
Line
Count
Source
52
5
  DiagnosticStream& operator<<(const T& val) {
53
5
    stream_ << val;
54
5
    return *this;
55
5
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [129]>(char const (&) [129])
Line
Count
Source
52
3
  DiagnosticStream& operator<<(const T& val) {
53
3
    stream_ << val;
54
3
    return *this;
55
3
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [120]>(char const (&) [120])
Line
Count
Source
52
4
  DiagnosticStream& operator<<(const T& val) {
53
4
    stream_ << val;
54
4
    return *this;
55
4
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [114]>(char const (&) [114])
Line
Count
Source
52
11
  DiagnosticStream& operator<<(const T& val) {
53
11
    stream_ << val;
54
11
    return *this;
55
11
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [158]>(char const (&) [158])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [150]>(char const (&) [150])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [145]>(char const (&) [145])
Line
Count
Source
52
3
  DiagnosticStream& operator<<(const T& val) {
53
3
    stream_ << val;
54
3
    return *this;
55
3
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [137]>(char const (&) [137])
Line
Count
Source
52
2
  DiagnosticStream& operator<<(const T& val) {
53
2
    stream_ << val;
54
2
    return *this;
55
2
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [122]>(char const (&) [122])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [111]>(char const (&) [111])
Line
Count
Source
52
22
  DiagnosticStream& operator<<(const T& val) {
53
22
    stream_ << val;
54
22
    return *this;
55
22
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [136]>(char const (&) [136])
Line
Count
Source
52
27
  DiagnosticStream& operator<<(const T& val) {
53
27
    stream_ << val;
54
27
    return *this;
55
27
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [196]>(char const (&) [196])
Line
Count
Source
52
56
  DiagnosticStream& operator<<(const T& val) {
53
56
    stream_ << val;
54
56
    return *this;
55
56
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [170]>(char const (&) [170])
Line
Count
Source
52
19
  DiagnosticStream& operator<<(const T& val) {
53
19
    stream_ << val;
54
19
    return *this;
55
19
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [259]>(char const (&) [259])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [289]>(char const (&) [289])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [160]>(char const (&) [160])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [184]>(char const (&) [184])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [85]>(char const (&) [85])
Line
Count
Source
52
33
  DiagnosticStream& operator<<(const T& val) {
53
33
    stream_ << val;
54
33
    return *this;
55
33
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [121]>(char const (&) [121])
Line
Count
Source
52
42
  DiagnosticStream& operator<<(const T& val) {
53
42
    stream_ << val;
54
42
    return *this;
55
42
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [212]>(char const (&) [212])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [144]>(char const (&) [144])
Line
Count
Source
52
9
  DiagnosticStream& operator<<(const T& val) {
53
9
    stream_ << val;
54
9
    return *this;
55
9
  }
Unexecuted instantiation: validate_extensions.cpp:spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <$_13>($_13 const&)
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [134]>(char const (&) [134])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [116]>(char const (&) [116])
Line
Count
Source
52
7
  DiagnosticStream& operator<<(const T& val) {
53
7
    stream_ << val;
54
7
    return *this;
55
7
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [132]>(char const (&) [132])
Line
Count
Source
52
1
  DiagnosticStream& operator<<(const T& val) {
53
1
    stream_ << val;
54
1
    return *this;
55
1
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [148]>(char const (&) [148])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [142]>(char const (&) [142])
Line
Count
Source
52
49
  DiagnosticStream& operator<<(const T& val) {
53
49
    stream_ << val;
54
49
    return *this;
55
49
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [154]>(char const (&) [154])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [322]>(char const (&) [322])
Line
Count
Source
52
7
  DiagnosticStream& operator<<(const T& val) {
53
7
    stream_ << val;
54
7
    return *this;
55
7
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [185]>(char const (&) [185])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [143]>(char const (&) [143])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [224]>(char const (&) [224])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [223]>(char const (&) [223])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [228]>(char const (&) [228])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [100]>(char const (&) [100])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [124]>(char const (&) [124])
Line
Count
Source
52
3
  DiagnosticStream& operator<<(const T& val) {
53
3
    stream_ << val;
54
3
    return *this;
55
3
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [163]>(char const (&) [163])
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [146]>(char const (&) [146])
Line
Count
Source
52
3
  DiagnosticStream& operator<<(const T& val) {
53
3
    stream_ << val;
54
3
    return *this;
55
3
  }
spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [166]>(char const (&) [166])
Line
Count
Source
52
14
  DiagnosticStream& operator<<(const T& val) {
53
14
    stream_ << val;
54
14
    return *this;
55
14
  }
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [96]>(char const (&) [96])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [123]>(char const (&) [123])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [153]>(char const (&) [153])
Unexecuted instantiation: spvtools::DiagnosticStream& spvtools::DiagnosticStream::operator<< <char [110]>(char const (&) [110])
56
57
  // Conversion operator to spv_result, returning the error code.
58
1.33M
  operator spv_result_t() { return error_; }
59
60
 private:
61
  std::ostringstream stream_;
62
  spv_position_t position_;
63
  MessageConsumer consumer_;  // Message consumer callback.
64
  std::string disassembled_instruction_;
65
  spv_result_t error_;
66
  // Provide way to pass optional information from ShaderDebugInfo
67
  std::string shader_debug_info_;
68
};
69
70
// Changes the MessageConsumer in |context| to one that updates |diagnostic|
71
// with the last message received.
72
//
73
// This function expects that |diagnostic| is not nullptr and its content is a
74
// nullptr.
75
void UseDiagnosticAsMessageConsumer(spv_context context,
76
                                    spv_diagnostic* diagnostic);
77
78
std::string spvResultToString(spv_result_t res);
79
80
}  // namespace spvtools
81
82
#endif  // SOURCE_DIAGNOSTIC_H_