Coverage Report

Created: 2025-08-29 07:31

/src/shaderc/third_party/glslang/glslang/MachineIndependent/InfoSink.cpp
Line
Count
Source (jump to first uncovered line)
1
//
2
// Copyright (C) 2002-2005  3Dlabs Inc. Ltd.
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions
7
// are met:
8
//
9
//    Redistributions of source code must retain the above copyright
10
//    notice, this list of conditions and the following disclaimer.
11
//
12
//    Redistributions in binary form must reproduce the above
13
//    copyright notice, this list of conditions and the following
14
//    disclaimer in the documentation and/or other materials provided
15
//    with the distribution.
16
//
17
//    Neither the name of 3Dlabs Inc. Ltd. nor the names of its
18
//    contributors may be used to endorse or promote products derived
19
//    from this software without specific prior written permission.
20
//
21
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
// POSSIBILITY OF SUCH DAMAGE.
33
//
34
35
#include "../Include/InfoSink.h"
36
37
#include <cstring>
38
39
namespace glslang {
40
41
void TInfoSinkBase::append(const char* s)
42
110M
{
43
110M
    if (outputStream & EString) {
44
110M
        if (s == nullptr)
45
0
            sink.append("(null)");
46
110M
        else {
47
110M
            checkMem(strlen(s));
48
110M
            sink.append(s);
49
110M
        }
50
110M
    }
51
52
//#ifdef _WIN32
53
//    if (outputStream & EDebugger)
54
//        OutputDebugString(s);
55
//#endif
56
57
110M
    if (outputStream & EStdOut)
58
0
        fprintf(stdout, "%s", s);
59
110M
}
60
61
void TInfoSinkBase::append(int count, char c)
62
0
{
63
0
    if (outputStream & EString) {
64
0
        checkMem(count);
65
0
        sink.append(count, c);
66
0
    }
67
68
//#ifdef _WIN32
69
//    if (outputStream & EDebugger) {
70
//        char str[2];
71
//        str[0] = c;
72
//        str[1] = '\0';
73
//        OutputDebugString(str);
74
//    }
75
//#endif
76
77
0
    if (outputStream & EStdOut)
78
0
        fprintf(stdout, "%c", c);
79
0
}
80
81
void TInfoSinkBase::append(const TPersistString& t)
82
9.65M
{
83
9.65M
    if (outputStream & EString) {
84
9.65M
        checkMem(t.size());
85
9.65M
        sink.append(t);
86
9.65M
    }
87
88
//#ifdef _WIN32
89
//    if (outputStream & EDebugger)
90
//        OutputDebugString(t.c_str());
91
//#endif
92
93
9.65M
    if (outputStream & EStdOut)
94
0
        fprintf(stdout, "%s", t.c_str());
95
9.65M
}
96
97
void TInfoSinkBase::append(const TString& t)
98
62.0k
{
99
62.0k
    if (outputStream & EString) {
100
62.0k
        checkMem(t.size());
101
62.0k
        sink.append(t.c_str());
102
62.0k
    }
103
104
//#ifdef _WIN32
105
//    if (outputStream & EDebugger)
106
//        OutputDebugString(t.c_str());
107
//#endif
108
109
62.0k
    if (outputStream & EStdOut)
110
0
        fprintf(stdout, "%s", t.c_str());
111
62.0k
}
112
113
} // end namespace glslang