Skip to content

Commit 7d63308

Browse files
committed
Replace all uses of deprecated functions by non-deprecated ones
1 parent 3d615af commit 7d63308

File tree

238 files changed

+1696
-1716
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

238 files changed

+1696
-1716
lines changed

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR
2323
# Ensure NDEBUG is not set for release builds
2424
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
2525
# Enable lots of warnings
26-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wpedantic -Werror -Wno-deprecated-declarations")
26+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wpedantic -Werror")
2727
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
2828
# This would be the place to enable warnings for Windows builds, although
2929
# config.inc doesn't seem to do that currently

jbmc/src/janalyzer/janalyzer_parse_options.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ janalyzer_parse_optionst::janalyzer_parse_optionst(int argc, const char **argv)
6767
void janalyzer_parse_optionst::register_languages()
6868
{
6969
// Need ansi C language for __CPROVER_rounding_mode
70-
register_language(new_ansi_c_language);
71-
register_language(new_java_bytecode_language);
70+
register_language(new_ansi_c_language, get_message_handler());
71+
register_language(new_java_bytecode_language, get_message_handler());
7272
}
7373

7474
void janalyzer_parse_optionst::get_command_line_options(optionst &options)

jbmc/src/java_bytecode/character_refine_preprocess.h

+5
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ Date: March 2017
2929
class character_refine_preprocesst:public messaget
3030
{
3131
public:
32+
explicit character_refine_preprocesst(message_handlert &message_handler)
33+
: messaget(message_handler)
34+
{
35+
}
36+
3237
void initialize_conversion_table();
3338
codet replace_character_call(const code_function_callt &call) const;
3439

jbmc/src/java_bytecode/expr2java.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ std::string expr2javat::convert_java_this(
314314
const exprt &src,
315315
unsigned precedence)
316316
{
317-
return "this";
317+
return id2string(ID_this);
318318
}
319319

320320
std::string expr2javat::convert_java_instanceof(

jbmc/src/java_bytecode/java_bytecode_convert_class.cpp

+7-4
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,11 @@ void java_bytecode_convert_classt::convert(
670670
}
671671
}
672672
else
673-
field_type=java_type_from_string(f.descriptor);
673+
{
674+
auto type_from_string = java_type_from_string(f.descriptor);
675+
CHECK_RETURN(type_from_string.has_value());
676+
field_type=std::move(*type_from_string);
677+
}
674678

675679
// is this a static field?
676680
if(f.is_static)
@@ -831,11 +835,10 @@ void java_bytecode_convert_classt::add_array_types(symbol_tablet &symbol_table)
831835

832836
const irep_idt clone_name =
833837
id2string(struct_tag_type_identifier) + ".clone:()Ljava/lang/Object;";
834-
java_method_typet::parametert this_param;
838+
java_method_typet::parametert this_param(java_reference_type(struct_tag_type));
835839
this_param.set_identifier(id2string(clone_name)+"::this");
836-
this_param.set_base_name("this");
840+
this_param.set_base_name(ID_this);
837841
this_param.set_this();
838-
this_param.type() = java_reference_type(struct_tag_type);
839842
const java_method_typet clone_type({this_param}, java_lang_object_type());
840843

841844
parameter_symbolt this_symbol;

jbmc/src/java_bytecode/java_bytecode_convert_method.cpp

+52-60
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ static void assign_parameter_names(
9999
irep_idt base_name, identifier;
100100

101101
if(i==0 && parameters[i].get_this())
102-
base_name="this";
102+
base_name=ID_this;
103103
else
104104
base_name="stub_ignored_arg"+std::to_string(i);
105105

@@ -258,21 +258,21 @@ java_method_typet member_type_lazy(
258258

259259
messaget message(message_handler);
260260

261-
typet member_type_from_descriptor=java_type_from_string(descriptor);
262-
INVARIANT(member_type_from_descriptor.id()==ID_code, "Must be code type");
261+
auto member_type_from_descriptor=java_type_from_string(descriptor);
262+
INVARIANT(member_type_from_descriptor.has_value() && member_type_from_descriptor->id()==ID_code, "Must be code type");
263263
if(signature.has_value())
264264
{
265265
try
266266
{
267-
typet member_type_from_signature=java_type_from_string(
267+
auto member_type_from_signature=java_type_from_string(
268268
signature.value(),
269269
class_name);
270-
INVARIANT(member_type_from_signature.id()==ID_code, "Must be code type");
270+
INVARIANT(member_type_from_signature.has_value() && member_type_from_signature->id()==ID_code, "Must be code type");
271271
if(
272-
to_java_method_type(member_type_from_signature).parameters().size() ==
273-
to_java_method_type(member_type_from_descriptor).parameters().size())
272+
to_java_method_type(*member_type_from_signature).parameters().size() ==
273+
to_java_method_type(*member_type_from_descriptor).parameters().size())
274274
{
275-
return to_java_method_type(member_type_from_signature);
275+
return to_java_method_type(*member_type_from_signature);
276276
}
277277
else
278278
{
@@ -293,7 +293,7 @@ java_method_typet member_type_lazy(
293293
<< message.eom;
294294
}
295295
}
296-
return to_java_method_type(member_type_from_descriptor);
296+
return to_java_method_type(*member_type_from_descriptor);
297297
}
298298

299299
/// Retrieves the symbol of the lambda method associated with the given
@@ -368,10 +368,9 @@ void java_bytecode_convert_method_lazy(
368368
if(!m.is_static)
369369
{
370370
java_method_typet::parameterst &parameters = member_type.parameters();
371-
java_method_typet::parametert this_p;
372371
const reference_typet object_ref_type =
373372
java_reference_type(struct_tag_typet(class_symbol.name));
374-
this_p.type()=object_ref_type;
373+
java_method_typet::parametert this_p(object_ref_type);
375374
this_p.set_this();
376375
parameters.insert(parameters.begin(), this_p);
377376
}
@@ -469,7 +468,7 @@ void java_bytecode_convert_methodt::convert(
469468
id2string(class_symbol.name));
470469
}
471470
else
472-
t=java_type_from_string(v.descriptor);
471+
t=*java_type_from_string(v.descriptor);
473472

474473
std::ostringstream id_oss;
475474
id_oss << method_id << "::" << v.name;
@@ -516,7 +515,7 @@ void java_bytecode_convert_methodt::convert(
516515
if(param_index==0 && param.get_this())
517516
{
518517
// my.package.ClassName.myMethodName:(II)I::this
519-
base_name="this";
518+
base_name=ID_this;
520519
identifier=id2string(method_identifier)+"::"+id2string(base_name);
521520
}
522521
else
@@ -1182,7 +1181,7 @@ code_blockt java_bytecode_convert_methodt::convert_instructions(
11821181
}
11831182
}
11841183

1185-
codet catch_instruction;
1184+
codet catch_instruction(ID_nil);
11861185

11871186
if(catch_type!=typet())
11881187
{
@@ -1199,8 +1198,7 @@ code_blockt java_bytecode_convert_methodt::convert_instructions(
11991198
"caught_exception",
12001199
java_reference_type(catch_type));
12011200
stack.push_back(catch_var);
1202-
code_landingpadt catch_statement(catch_var);
1203-
catch_instruction=catch_statement;
1201+
catch_instruction = code_landingpadt(catch_var);
12041202
}
12051203

12061204
exprt::operandst op = pop(stmt_bytecode_info.pop);
@@ -1656,7 +1654,7 @@ code_blockt java_bytecode_convert_methodt::convert_instructions(
16561654
// Finally if this is the beginning of a catch block (already determined
16571655
// before the big bytecode switch), insert the exception 'landing pad'
16581656
// instruction before the actual instruction:
1659-
if(catch_instruction!=codet())
1657+
if(catch_instruction.get_statement() != ID_nil)
16601658
{
16611659
c.make_block();
16621660
c.operands().insert(c.operands().begin(), catch_instruction);
@@ -1909,9 +1907,6 @@ code_switcht java_bytecode_convert_methodt::convert_switch(
19091907
const source_locationt &location)
19101908
{
19111909
// we turn into switch-case
1912-
code_switcht code_switch;
1913-
code_switch.add_source_location() = location;
1914-
code_switch.value() = op[0];
19151910
code_blockt code_block;
19161911
code_block.add_source_location() = location;
19171912

@@ -1921,36 +1916,39 @@ code_switcht java_bytecode_convert_methodt::convert_switch(
19211916
{
19221917
if(is_label)
19231918
{
1924-
code_switch_caset code_case;
1925-
code_case.add_source_location() = location;
1926-
19271919
const mp_integer number = numeric_cast_v<mp_integer>(*a_it);
19281920
// The switch case does not contain any code, it just branches via a GOTO
19291921
// to the jump target of the tableswitch/lookupswitch case at
19301922
// hand. Therefore we consider this code to belong to the source bytecode
19311923
// instruction and not the target instruction.
19321924
const method_offsett label_number =
19331925
numeric_cast_v<method_offsett>(number);
1934-
code_case.code() = code_gotot(label(std::to_string(label_number)));
1935-
code_case.code().add_source_location() = location;
1926+
code_gotot code(label(std::to_string(label_number)));
1927+
code.add_source_location() = location;
19361928

19371929
if(a_it == args.begin())
1930+
{
1931+
code_switch_caset code_case(nil_exprt(), std::move(code));
1932+
code_case.add_source_location() = location;
19381933
code_case.set_default();
1934+
1935+
code_block.add(std::move(code_case));
1936+
}
19391937
else
19401938
{
1941-
auto prev = a_it;
1942-
prev--;
1943-
code_case.case_op() = *prev;
1944-
if(code_case.case_op().type() != op[0].type())
1945-
code_case.case_op().make_typecast(op[0].type());
1946-
code_case.case_op().add_source_location() = location;
1947-
}
1939+
exprt case_op = typecast_exprt::conditional_cast(*std::prev(a_it), op[0].type());
1940+
case_op.add_source_location() = location;
1941+
1942+
code_switch_caset code_case(std::move(case_op), std::move(code));
1943+
code_case.add_source_location() = location;
19481944

1949-
code_block.add(code_case);
1945+
code_block.add(std::move(code_case));
1946+
}
19501947
}
19511948
}
19521949

1953-
code_switch.body() = code_block;
1950+
code_switcht code_switch(op[0], code_block);
1951+
code_switch.add_source_location() = location;
19541952
return code_switch;
19551953
}
19561954

@@ -2095,30 +2093,24 @@ void java_bytecode_convert_methodt::convert_invoke(
20952093
reference_typet object_ref_type = java_reference_type(thistype);
20962094
java_method_typet::parametert this_p(object_ref_type);
20972095
this_p.set_this();
2098-
this_p.set_base_name("this");
2096+
this_p.set_base_name(ID_this);
20992097
parameters.insert(parameters.begin(), this_p);
21002098
}
21012099
}
21022100

2103-
code_function_callt call;
21042101
location.set_function(method_id);
21052102

2106-
call.add_source_location() = location;
2107-
call.arguments() = pop(parameters.size());
2103+
code_function_callt::argumentst arguments = pop(parameters.size());
21082104

21092105
// double-check a bit
2110-
if(use_this)
2111-
{
2112-
const exprt &this_arg = call.arguments().front();
2113-
INVARIANT(
2114-
this_arg.type().id() == ID_pointer, "first argument must be a pointer");
2115-
}
2106+
INVARIANT(
2107+
!use_this || arguments.front().type().id() == ID_pointer, "first argument must be a pointer");
21162108

21172109
// do some type adjustment for the arguments,
21182110
// as Java promotes arguments
21192111
// Also cast pointers since intermediate locals
21202112
// can be void*.
2121-
2113+
INVARIANT(parameters.size() <= arguments.size(), "for each parameter there must be an argument");
21222114
for(std::size_t i = 0; i < parameters.size(); i++)
21232115
{
21242116
const typet &type = parameters[i].type();
@@ -2127,21 +2119,20 @@ void java_bytecode_convert_methodt::convert_invoke(
21272119
type == java_byte_type() || type == java_short_type() ||
21282120
type.id() == ID_pointer)
21292121
{
2130-
assert(i < call.arguments().size());
2131-
if(type != call.arguments()[i].type())
2132-
call.arguments()[i].make_typecast(type);
2122+
if(type != arguments[i].type())
2123+
arguments[i].make_typecast(type);
21332124
}
21342125
}
21352126

21362127
// do some type adjustment for return values
2137-
2128+
exprt lhs = nil_exprt();
21382129
const typet &return_type = method_type.return_type();
21392130

21402131
if(return_type.id() != ID_empty)
21412132
{
21422133
// return types are promoted in Java
2143-
call.lhs() = tmp_variable("return", return_type);
2144-
exprt promoted = java_bytecode_promotion(call.lhs());
2134+
lhs = tmp_variable("return", return_type);
2135+
exprt promoted = java_bytecode_promotion(lhs);
21452136
results.resize(1);
21462137
results[0] = promoted;
21472138
}
@@ -2184,19 +2175,20 @@ void java_bytecode_convert_methodt::convert_invoke(
21842175
symbol_table.add(symbol);
21852176
}
21862177

2178+
exprt function;
21872179
if(is_virtual)
21882180
{
21892181
// dynamic binding
2190-
assert(use_this);
2191-
assert(!call.arguments().empty());
2192-
call.function() = arg0;
2182+
PRECONDITION(use_this);
2183+
PRECONDITION(!arguments.empty());
2184+
function = arg0;
21932185
// Populate needed methods later,
21942186
// once we know what object types can exist.
21952187
}
21962188
else
21972189
{
21982190
// static binding
2199-
call.function() = symbol_exprt(arg0.get(ID_identifier), arg0.type());
2191+
function = symbol_exprt(arg0.get(ID_identifier), arg0.type());
22002192
if(needed_lazy_methods)
22012193
{
22022194
needed_lazy_methods->add_needed_method(arg0.get(ID_identifier));
@@ -2205,6 +2197,8 @@ void java_bytecode_convert_methodt::convert_invoke(
22052197
}
22062198
}
22072199

2200+
code_function_callt call(std::move(lhs), std::move(function), std::move(arguments));
2201+
call.add_source_location() = location;
22082202
call.function().add_source_location() = location;
22092203

22102204
// Replacing call if it is a function of the Character library,
@@ -2264,16 +2258,14 @@ void java_bytecode_convert_methodt::convert_athrow(
22642258
// we translate athrow into
22652259
// ASSERT false;
22662260
// ASSUME false:
2267-
code_assertt assert_code;
2268-
assert_code.assertion() = false_exprt();
2261+
code_assertt assert_code(false_exprt{});
22692262
source_locationt assert_location = location; // copy
22702263
assert_location.set_comment("assertion at " + location.as_string());
22712264
assert_location.set("user-provided", true);
22722265
assert_location.set_property_class(ID_assertion);
22732266
assert_code.add_source_location() = assert_location;
22742267

2275-
code_assumet assume_code;
2276-
assume_code.assumption() = false_exprt();
2268+
code_assumet assume_code(false_exprt{});
22772269
source_locationt assume_location = location; // copy
22782270
assume_location.set("user-provided", true);
22792271
assume_code.add_source_location() = assume_location;
@@ -3012,7 +3004,7 @@ void java_bytecode_initialize_parameter_names(
30123004
if(param_index == 0 && param.get_this())
30133005
{
30143006
// my.package.ClassName.myMethodName:(II)I::this
3015-
base_name = "this";
3007+
base_name = ID_this;
30163008
identifier = id2string(method_symbol.name) + "::" + id2string(base_name);
30173009
}
30183010
else

0 commit comments

Comments
 (0)