File tree Expand file tree Collapse file tree 7 files changed +81
-8
lines changed
Expand file tree Collapse file tree 7 files changed +81
-8
lines changed Original file line number Diff line number Diff line change 1- KNOWNBUG
1+ CORE
22const-array.c
33 ^.*: .* is constant$
44^ array\[1\] = 2;$
Original file line number Diff line number Diff line change 1- KNOWNBUG
1+ CORE
22const-member.c
33
44^.*: .* is constant$
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ SRC = armcc_cmdline.cpp \
44 as_cmdline.cpp \
55 as_mode.cpp \
66 bcc_cmdline.cpp \
7+ cl_message_handler.cpp \
78 compile.cpp \
89 cw_mode.cpp \
910 gcc_cmdline.cpp \
Original file line number Diff line number Diff line change 1+ /* ******************************************************************\
2+
3+ Module: Print messages like CL.exe does
4+
5+ Author: Michael Tautschnig
6+
7+ \*******************************************************************/
8+
9+ #include " cl_message_handler.h"
10+
11+ #include < fstream>
12+ #include < iostream>
13+
14+ #include " unicode.h"
15+
16+ void console_message_handlert::print (
17+ unsigned level,
18+ const std::string &message,
19+ const source_locationt &location)
20+ {
21+ console_message_handlert::print (level, message, location);
22+
23+ const auto file_name = location.full_path ();
24+ const std::string &line = id2string (location.get_line ());
25+
26+ if (file_name.has_value () && !line.empty ())
27+ {
28+ #ifdef _WIN32
29+ std::ifstream in (widen (file_name.value ()));
30+ #else
31+ std::ifstream in (file_name.value ());
32+ #endif
33+ if (in)
34+ {
35+ const auto line_number = std::stoull (line);
36+ std::string source_line;
37+ for (std::size_t l = 0 ; l < line_number; l++)
38+ std::getline (in, source_line);
39+
40+ if (in)
41+ {
42+ // Messages level 3 or lower go to cerr, messages level 4 or
43+ // above go to cout.
44+ if (level >= 4 )
45+ std::cout << ' ' << source_line << ' \n ' ;
46+ else
47+ std::cerr << ' ' << source_line << ' \n ' ;
48+ }
49+ }
50+ }
51+ }
Original file line number Diff line number Diff line change 1+ /* ******************************************************************\
2+
3+ Module: Print messages like CL.exe does
4+
5+ Author: Michael Tautschnig
6+
7+ \*******************************************************************/
8+
9+ #ifndef CPROVER_GOTO_CC_CL_MESSAGE_HANDLER_H
10+ #define CPROVER_GOTO_CC_CL_MESSAGE_HANDLER_H
11+
12+ #include < util/cout_message.h>
13+
14+ class cl_message_handlert : public console_message_handlert
15+ {
16+ public:
17+ void print (
18+ unsigned level,
19+ const std::string &message,
20+ const source_locationt &location) override ;
21+ };
22+
23+ #endif // CPROVER_GOTO_CC_CL_MESSAGE_HANDLER_H
Original file line number Diff line number Diff line change @@ -14,8 +14,7 @@ Date: June 2006
1414#ifndef CPROVER_GOTO_CC_MS_CL_MODE_H
1515#define CPROVER_GOTO_CC_MS_CL_MODE_H
1616
17- #include < util/cout_message.h>
18-
17+ #include " cl_message_handler.h"
1918#include " goto_cc_mode.h"
2019#include " ms_cl_cmdline.h"
2120
@@ -35,7 +34,7 @@ class ms_cl_modet:public goto_cc_modet
3534
3635protected:
3736 ms_cl_cmdlinet &cmdline;
38- console_message_handlert message_handler;
37+ cl_message_handlert message_handler;
3938};
4039
4140#endif // CPROVER_GOTO_CC_MS_CL_MODE_H
Original file line number Diff line number Diff line change @@ -14,11 +14,10 @@ Date: July 2018
1414#ifndef CPROVER_GOTO_CC_MS_LINK_MODE_H
1515#define CPROVER_GOTO_CC_MS_LINK_MODE_H
1616
17+ #include " cl_message_handler.h"
1718#include " compile.h"
1819#include " goto_cc_mode.h"
1920
20- #include < util/cout_message.h>
21-
2221class ms_link_modet : public goto_cc_modet
2322{
2423public:
@@ -28,7 +27,7 @@ class ms_link_modet : public goto_cc_modet
2827 explicit ms_link_modet (goto_cc_cmdlinet &);
2928
3029protected:
31- console_message_handlert message_handler;
30+ cl_message_handlert message_handler;
3231};
3332
3433#endif // CPROVER_GOTO_CC_MS_LINK_MODE_H
You can’t perform that action at this time.
0 commit comments