blob: b77f3a1f24a679da863201a1b1cf59ccdca03226 [file] [log] [blame]
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +00001//
2// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
Geoff Lang17732822013-08-29 13:46:49 -04007#include "compiler/translator/InfoSink.h"
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +00008
Jamie Madill45bcc782016-11-07 13:58:48 -05009namespace sh
10{
11
Jamie Madilld7b1ab52016-12-12 14:42:19 -050012void TInfoSinkBase::prefix(TPrefixType p)
13{
14 switch (p)
15 {
alokp@chromium.org4e4facd2010-06-02 15:21:22 +000016 case EPrefixNone:
17 break;
18 case EPrefixWarning:
19 sink.append("WARNING: ");
20 break;
21 case EPrefixError:
22 sink.append("ERROR: ");
23 break;
24 case EPrefixInternalError:
25 sink.append("INTERNAL ERROR: ");
26 break;
27 case EPrefixUnimplemented:
28 sink.append("UNIMPLEMENTED: ");
29 break;
30 case EPrefixNote:
31 sink.append("NOTE: ");
32 break;
33 default:
34 sink.append("UNKOWN ERROR: ");
35 break;
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +000036 }
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +000037}
38
Jamie Madilld7b1ab52016-12-12 14:42:19 -050039void TInfoSinkBase::location(int file, int line)
40{
alokp@chromium.org4e4facd2010-06-02 15:21:22 +000041 TPersistStringStream stream;
42 if (line)
Jamie Madill075edd82013-07-08 13:30:19 -040043 stream << file << ":" << line;
alokp@chromium.org4e4facd2010-06-02 15:21:22 +000044 else
Jamie Madill075edd82013-07-08 13:30:19 -040045 stream << file << ":? ";
alokp@chromium.org4e4facd2010-06-02 15:21:22 +000046 stream << ": ";
47
48 sink.append(stream.str());
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +000049}
50
Jamie Madilld7b1ab52016-12-12 14:42:19 -050051void TInfoSinkBase::location(const TSourceLoc &loc)
52{
Jamie Madill075edd82013-07-08 13:30:19 -040053 location(loc.first_file, loc.first_line);
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +000054}
55
Jamie Madilld7b1ab52016-12-12 14:42:19 -050056void TInfoSinkBase::message(TPrefixType p, const TSourceLoc &loc, const char *m)
57{
Jamie Madill075edd82013-07-08 13:30:19 -040058 prefix(p);
alokp@chromium.org4e4facd2010-06-02 15:21:22 +000059 location(loc);
Jamie Madill075edd82013-07-08 13:30:19 -040060 sink.append(m);
alokp@chromium.org4e4facd2010-06-02 15:21:22 +000061 sink.append("\n");
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +000062}
Jamie Madill45bcc782016-11-07 13:58:48 -050063
64} // namespace sh