Skip to content

Commit e202911

Browse files
committed
language_filest is not a messaget
Pass a message handler as an argument to several of its functions, but do not construct a messaget object without a configured message handler as that is deprecated.
1 parent 3270c70 commit e202911

File tree

7 files changed

+110
-30
lines changed

7 files changed

+110
-30
lines changed

jbmc/src/java_bytecode/lazy_goto_functions_map.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,14 @@ class lazy_goto_functions_mapt final
191191
// Second chance: see if language_filest can provide a body:
192192
if(!body_provided)
193193
{
194+
<<<<<<< HEAD:jbmc/src/java_bytecode/lazy_goto_functions_map.h
195+
=======
196+
// Fill in symbol table entry body if not already done
197+
language_files.convert_lazy_method(
198+
name, function_symbol_table, message_handler);
199+
body_provided = function_symbol_table.lookup_ref(name).value.is_not_nil();
200+
201+
>>>>>>> language_filest is not a messaget:src/goto-programs/lazy_goto_functions_map.h
194202
// Create goto_functiont
195203
goto_convert_functionst convert_functions(
196204
function_symbol_table, message_handler);

jbmc/src/java_bytecode/lazy_goto_model.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ lazy_goto_modelt::lazy_goto_modelt(
5757
driver_program_generate_function_body),
5858
message_handler(message_handler)
5959
{
60-
language_files.set_message_handler(message_handler);
6160
}
6261

6362
lazy_goto_modelt::lazy_goto_modelt(lazy_goto_modelt &&other)
@@ -207,7 +206,7 @@ void lazy_goto_modelt::initialize(
207206

208207
msg.status() << "Converting" << messaget::eom;
209208

210-
if(language_files.typecheck(symbol_table))
209+
if(language_files.typecheck(symbol_table, message_handler))
211210
{
212211
throw invalid_source_file_exceptiont("CONVERSION ERROR");
213212
}
@@ -258,7 +257,11 @@ void lazy_goto_modelt::initialize(
258257
// Allow all language front-ends to try to provide the user-specified
259258
// (--function) entry-point, or some language-specific default:
260259
entry_point_generation_failed =
260+
<<<<<<< HEAD:jbmc/src/java_bytecode/lazy_goto_model.cpp
261261
language_files.generate_support_functions(symbol_table);
262+
=======
263+
language_files.generate_support_functions(symbol_table, message_handler);
264+
>>>>>>> language_filest is not a messaget:src/goto-programs/lazy_goto_model.cpp
262265
}
263266

264267
if(entry_point_generation_failed)

src/goto-cc/compile.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -603,13 +603,16 @@ bool compilet::write_bin_object_file(
603603
bool compilet::parse_source(const std::string &file_name)
604604
{
605605
language_filest language_files;
606-
language_files.set_message_handler(get_message_handler());
607606

608607
if(parse(file_name, language_files))
609608
return true;
610609

611610
// we just typecheck one file here
611+
<<<<<<< HEAD
612612
if(language_files.typecheck(goto_model.symbol_table, keep_file_local))
613+
=======
614+
if(language_files.typecheck(goto_model.symbol_table, get_message_handler()))
615+
>>>>>>> language_filest is not a messaget
613616
{
614617
error() << "CONVERSION ERROR" << eom;
615618
return true;

src/goto-programs/initialize_goto_model.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ goto_modelt initialize_goto_model(
8383
}
8484

8585
language_filest language_files;
86-
language_files.set_message_handler(message_handler);
8786

8887
goto_modelt goto_model;
8988

@@ -127,7 +126,7 @@ goto_modelt initialize_goto_model(
127126

128127
msg.status() << "Converting" << messaget::eom;
129128

130-
if(language_files.typecheck(goto_model.symbol_table))
129+
if(language_files.typecheck(goto_model.symbol_table, message_handler))
131130
{
132131
throw invalid_source_file_exceptiont("CONVERSION ERROR");
133132
}
@@ -169,6 +168,7 @@ goto_modelt initialize_goto_model(
169168
}
170169
else if(!binaries_provided_start)
171170
{
171+
<<<<<<< HEAD
172172
if(options.is_set("function"))
173173
{
174174
// no entry point is present; Use the mode of the specified entry function
@@ -183,6 +183,12 @@ goto_modelt initialize_goto_model(
183183
entry_point_generation_failed =
184184
language_files.generate_support_functions(goto_model.symbol_table);
185185
}
186+
=======
187+
// Allow all language front-ends to try to provide the user-specified
188+
// (--function) entry-point, or some language-specific default:
189+
entry_point_generation_failed = language_files.generate_support_functions(
190+
goto_model.symbol_table, message_handler);
191+
>>>>>>> language_filest is not a messaget
186192
}
187193

188194
if(entry_point_generation_failed)

src/langapi/language_file.cpp

Lines changed: 57 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Author: Daniel Kroening, [email protected]
1010

1111
#include <fstream>
1212

13+
#include <util/message.h>
1314
#include <util/object_factory_parameters.h>
1415

1516
#include "language.h"
@@ -45,14 +46,16 @@ void language_filet::convert_lazy_method(
4546
language->convert_lazy_method(id, symbol_table, message_handler);
4647
}
4748

48-
void language_filest::show_parse(std::ostream &out)
49+
void language_filest::show_parse(std::ostream &out, message_handlert &message_handler)
4950
{
5051
for(const auto &file : file_map)
51-
file.second.language->show_parse(out, get_message_handler());
52+
file.second.language->show_parse(out, message_handler);
5253
}
5354

54-
bool language_filest::parse()
55+
bool language_filest::parse(message_handlert &message_handler)
5556
{
57+
messaget log(message_handler);
58+
5659
for(auto &file : file_map)
5760
{
5861
// open file
@@ -61,17 +64,17 @@ bool language_filest::parse()
6164

6265
if(!infile)
6366
{
64-
error() << "Failed to open " << file.first << eom;
67+
log.error() << "Failed to open " << file.first << messaget::eom;
6568
return true;
6669
}
6770

6871
// parse it
6972

7073
languaget &language=*(file.second.language);
7174

72-
if(language.parse(infile, file.first, get_message_handler()))
75+
if(language.parse(infile, file.first, message_handler))
7376
{
74-
error() << "Parsing of " << file.first << " failed" << eom;
77+
log.error() << "Parsing of " << file.first << " failed" << messaget::eom;
7578
return true;
7679
}
7780

@@ -85,13 +88,17 @@ bool language_filest::parse()
8588

8689
bool language_filest::typecheck(
8790
symbol_tablet &symbol_table,
91+
<<<<<<< HEAD
8892
const bool keep_file_local)
93+
=======
94+
message_handlert &message_handler)
95+
>>>>>>> language_filest is not a messaget
8996
{
9097
// typecheck interfaces
9198

9299
for(auto &file : file_map)
93100
{
94-
if(file.second.language->interfaces(symbol_table, get_message_handler()))
101+
if(file.second.language->interfaces(symbol_table, message_handler))
95102
return true;
96103
}
97104

@@ -132,6 +139,7 @@ bool language_filest::typecheck(
132139
{
133140
if(file.second.modules.empty())
134141
{
142+
<<<<<<< HEAD
135143
<<<<<<< HEAD
136144
if(file.second.language->can_keep_file_local())
137145
{
@@ -146,6 +154,9 @@ bool language_filest::typecheck(
146154
=======
147155
if(file.second.language->typecheck(
148156
symbol_table, "", get_message_handler()))
157+
=======
158+
if(file.second.language->typecheck(symbol_table, "", message_handler))
159+
>>>>>>> language_filest is not a messaget
149160
return true;
150161
>>>>>>> languaget is not a messaget
151162
// register lazy methods.
@@ -162,23 +173,28 @@ bool language_filest::typecheck(
162173

163174
for(auto &module : module_map)
164175
{
176+
<<<<<<< HEAD
165177
if(typecheck_module(symbol_table, module.second, keep_file_local))
178+
=======
179+
if(typecheck_module(symbol_table, module.second, message_handler))
180+
>>>>>>> language_filest is not a messaget
166181
return true;
167182
}
168183

169184
return false;
170185
}
171186

172187
bool language_filest::generate_support_functions(
173-
symbol_tablet &symbol_table)
188+
symbol_tablet &symbol_table,
189+
message_handlert &message_handler)
174190
{
175191
std::set<std::string> languages;
176192

177193
for(auto &file : file_map)
178194
{
179195
if(languages.insert(file.second.language->id()).second)
180196
if(file.second.language->generate_support_functions(
181-
symbol_table, get_message_handler()))
197+
symbol_table, message_handler))
182198
return true;
183199
}
184200

@@ -200,11 +216,12 @@ bool language_filest::final(symbol_table_baset &symbol_table)
200216
}
201217

202218
bool language_filest::interfaces(
203-
symbol_tablet &symbol_table)
219+
symbol_tablet &symbol_table,
220+
message_handlert &message_handler)
204221
{
205222
for(auto &file : file_map)
206223
{
207-
if(file.second.language->interfaces(symbol_table, get_message_handler()))
224+
if(file.second.language->interfaces(symbol_table, message_handler))
208225
return true;
209226
}
210227

@@ -214,36 +231,52 @@ bool language_filest::interfaces(
214231
bool language_filest::typecheck_module(
215232
symbol_tablet &symbol_table,
216233
const std::string &module,
234+
<<<<<<< HEAD
217235
const bool keep_file_local)
236+
=======
237+
message_handlert &message_handler)
238+
>>>>>>> language_filest is not a messaget
218239
{
219240
// check module map
220241

221242
module_mapt::iterator it=module_map.find(module);
222243

223244
if(it==module_map.end())
224245
{
225-
error() << "found no file that provides module " << module << eom;
246+
messaget log(message_handler);
247+
log.error() << "found no file that provides module " << module
248+
<< messaget::eom;
226249
return true;
227250
}
228251

252+
<<<<<<< HEAD
229253
return typecheck_module(symbol_table, it->second, keep_file_local);
254+
=======
255+
return typecheck_module(symbol_table, it->second, message_handler);
256+
>>>>>>> language_filest is not a messaget
230257
}
231258

232259
bool language_filest::typecheck_module(
233260
symbol_tablet &symbol_table,
234261
language_modulet &module,
262+
<<<<<<< HEAD
235263
const bool keep_file_local)
264+
=======
265+
message_handlert &message_handler)
266+
>>>>>>> language_filest is not a messaget
236267
{
237268
// already typechecked?
238269

239270
if(module.type_checked)
240271
return false;
241272

273+
messaget log(message_handler);
274+
242275
// already in progress?
243276

244277
if(module.in_progress)
245278
{
246-
error() << "circular dependency in " << module.name << eom;
279+
log.error() << "circular dependency in " << module.name << messaget::eom;
247280
return true;
248281
}
249282

@@ -260,21 +293,31 @@ bool language_filest::typecheck_module(
260293
it!=dependency_set.end();
261294
it++)
262295
{
296+
<<<<<<< HEAD
263297
module.in_progress = !typecheck_module(symbol_table, *it, keep_file_local);
264298
if(module.in_progress == false)
299+
=======
300+
if(typecheck_module(symbol_table, *it, message_handler))
301+
{
302+
module.in_progress=false;
303+
>>>>>>> language_filest is not a messaget
265304
return true;
266305
}
267306

268307
// type check it
269308

270-
status() << "Type-checking " << module.name << eom;
309+
log.status() << "Type-checking " << module.name << messaget::eom;
271310

272311
<<<<<<< HEAD
273312
if(module.file->language->can_keep_file_local())
274313
=======
275314
if(module.file->language->typecheck(
315+
<<<<<<< HEAD
276316
symbol_table, module.name, get_message_handler()))
277317
>>>>>>> languaget is not a messaget
318+
=======
319+
symbol_table, module.name, message_handler))
320+
>>>>>>> language_filest is not a messaget
278321
{
279322
module.in_progress = !module.file->language->typecheck(
280323
symbol_table, module.name, keep_file_local);

0 commit comments

Comments
 (0)