@@ -28,14 +28,12 @@ template <class T>
2828struct procedure_local_cfg_baset <
2929 T,
3030 java_bytecode_convert_methodt::method_with_amapt,
31- java_bytecode_convert_methodt:: method_offsett>
31+ method_offsett>
3232 : public grapht<
33- cfg_base_nodet<T, java_bytecode_convert_methodt:: method_offsett>>
33+ cfg_base_nodet<T, method_offsett>>
3434{
3535 typedef java_bytecode_convert_methodt::method_with_amapt method_with_amapt;
36- typedef std::map<java_bytecode_convert_methodt::method_offsett,
37- java_bytecode_convert_methodt::method_offsett>
38- entry_mapt;
36+ typedef std::map<method_offsett, method_offsett> entry_mapt;
3937 entry_mapt entry_map;
4038
4139 procedure_local_cfg_baset () {}
@@ -47,7 +45,7 @@ struct procedure_local_cfg_baset<
4745 for (const auto &inst : amap)
4846 {
4947 // Map instruction PCs onto node indices:
50- entry_map[inst.first ]= this ->add_node ();
48+ entry_map[inst.first ] = static_cast <method_offsett>( this ->add_node () );
5149 // Map back:
5250 (*this )[entry_map[inst.first ]].PC =inst.first ;
5351 }
@@ -85,14 +83,12 @@ struct procedure_local_cfg_baset<
8583 }
8684 }
8785
88- java_bytecode_convert_methodt::method_offsett
89- get_first_node (const method_with_amapt &args) const
86+ method_offsett get_first_node (const method_with_amapt &args) const
9087 {
9188 return args.second .begin ()->first ;
9289 }
9390
94- java_bytecode_convert_methodt::method_offsett
95- get_last_node (const method_with_amapt &args) const
91+ method_offsett get_last_node (const method_with_amapt &args) const
9692 {
9793 return (--args.second .end ())->first ;
9894 }
@@ -216,14 +212,13 @@ static bool is_store_to_slot(
216212// / \param [out] var: A hole is added to `var`, unless it would be of zero size
217213static void maybe_add_hole (
218214 local_variable_with_holest &var,
219- java_bytecode_convert_methodt:: method_offsett from,
220- java_bytecode_convert_methodt:: method_offsett to)
215+ method_offsett from,
216+ method_offsett to)
221217{
222218 PRECONDITION (to>=from);
223219 if (to!=from)
224220 var.holes .push_back (
225- {from,
226- static_cast <java_bytecode_convert_methodt::method_offsett>(to - from)});
221+ {from, static_cast <method_offsett>(to - from)});
227222}
228223
229224// / See above
@@ -240,10 +235,17 @@ static void populate_variable_address_map(
240235{
241236 for (auto it=firstvar, itend=varlimit; it!=itend; ++it)
242237 {
243- if (it->var .start_pc +it->var .length >live_variable_at_address.size ())
244- live_variable_at_address.resize (it->var .start_pc +it->var .length );
238+ if (
239+ static_cast <std::size_t >(it->var .start_pc + it->var .length ) >
240+ live_variable_at_address.size ())
241+ {
242+ live_variable_at_address.resize (
243+ static_cast <std::size_t >(it->var .start_pc + it->var .length ));
244+ }
245245
246- for (auto idx = it->var .start_pc , idxlim = it->var .start_pc + it->var .length ;
246+ for (method_offsett idx = it->var .start_pc ,
247+ idxlim = static_cast <method_offsett>(
248+ it->var .start_pc + it->var .length );
247249 idx != idxlim;
248250 ++idx)
249251 {
@@ -310,7 +312,8 @@ static void populate_predecessor_map(
310312#endif
311313
312314 // Find the last instruction within the live range:
313- const auto end_pc = it->var .start_pc + it->var .length ;
315+ const auto end_pc =
316+ static_cast <method_offsett>(it->var .start_pc + it->var .length );
314317 auto amapit=amap.find (end_pc);
315318 INVARIANT (
316319 amapit!=amap.begin (),
@@ -423,22 +426,20 @@ static void populate_predecessor_map(
423426// / \return Returns the bytecode address of the closest common dominator of all
424427// / given variable table entries. In the worst case the function entry point
425428// / should always satisfy this criterion.
426- static java_bytecode_convert_methodt:: method_offsett get_common_dominator (
429+ static method_offsett get_common_dominator (
427430 const std::set<local_variable_with_holest *> &merge_vars,
428431 const java_cfg_dominatorst &dominator_analysis)
429432{
430433 PRECONDITION (!merge_vars.empty ());
431434
432- auto first_pc =
433- std::numeric_limits<java_bytecode_convert_methodt::method_offsett>::max ();
435+ auto first_pc = std::numeric_limits<method_offsett>::max ();
434436 for (auto v : merge_vars)
435437 {
436438 if (v->var .start_pc <first_pc)
437439 first_pc=v->var .start_pc ;
438440 }
439441
440- std::vector<java_bytecode_convert_methodt::method_offsett>
441- candidate_dominators;
442+ std::vector<method_offsett> candidate_dominators;
442443 for (auto v : merge_vars)
443444 {
444445 const auto &dominator_nodeidx=
@@ -485,7 +486,7 @@ static java_bytecode_convert_methodt::method_offsett get_common_dominator(
485486static void populate_live_range_holes (
486487 local_variable_with_holest &merge_into,
487488 const std::set<local_variable_with_holest *> &merge_vars,
488- java_bytecode_convert_methodt:: method_offsett expanded_live_range_start)
489+ method_offsett expanded_live_range_start)
489490{
490491 std::vector<local_variable_with_holest *> sorted_by_startpc (
491492 merge_vars.begin (), merge_vars.end ());
@@ -495,14 +496,16 @@ static void populate_live_range_holes(
495496 merge_into,
496497 expanded_live_range_start,
497498 sorted_by_startpc[0 ]->var .start_pc );
498- for (java_bytecode_convert_methodt:: method_offsett idx = 0 ;
499+ for (method_offsett idx = 0 ;
499500 idx < sorted_by_startpc.size () - 1 ;
500501 ++idx)
501502 {
502503 maybe_add_hole (
503504 merge_into,
504- sorted_by_startpc[idx]->var .start_pc +sorted_by_startpc[idx]->var .length ,
505- sorted_by_startpc[idx+1 ]->var .start_pc );
505+ static_cast <method_offsett>(
506+ sorted_by_startpc[idx]->var .start_pc +
507+ sorted_by_startpc[idx]->var .length ),
508+ sorted_by_startpc[static_cast <method_offsett>(idx + 1 )]->var .start_pc );
506509 }
507510}
508511
@@ -533,16 +536,17 @@ static void merge_variable_table_entries(
533536 // as it was not visible in the original local variable table)
534537 populate_live_range_holes (merge_into, merge_vars, found_dominator);
535538
536- java_bytecode_convert_methodt:: method_offsett last_pc = 0 ;
539+ method_offsett last_pc = 0 ;
537540 for (auto v : merge_vars)
538541 {
539- if (v->var .start_pc + v->var .length > last_pc)
540- last_pc= v->var .start_pc + v->var .length ;
542+ if (static_cast <method_offsett>( v->var .start_pc + v->var .length ) > last_pc)
543+ last_pc = static_cast <method_offsett>( v->var .start_pc + v->var .length ) ;
541544 }
542545
543546 // Apply the changes:
544547 merge_into.var .start_pc =found_dominator;
545- merge_into.var .length =last_pc-found_dominator;
548+ merge_into.var .length =
549+ static_cast <method_offsett>(last_pc - found_dominator);
546550
547551#ifdef DEBUG
548552 debug_out << " Merged " << merge_vars.size () << " variables named "
@@ -837,7 +841,7 @@ void java_bytecode_convert_methodt::setup_local_variables(
837841// / nothing covers `address`.
838842const java_bytecode_convert_methodt::variablet &
839843java_bytecode_convert_methodt::find_variable_for_slot (
840- size_t address,
844+ method_offsett address,
841845 variablest &var_list)
842846{
843847 for (const variablet &var : var_list)
@@ -865,6 +869,6 @@ java_bytecode_convert_methodt::find_variable_for_slot(
865869 size_t list_length=var_list.size ();
866870 var_list.resize (list_length+1 );
867871 var_list[list_length].start_pc =0 ;
868- var_list[list_length].length = std::numeric_limits<size_t >::max ();
872+ var_list[list_length].length = std::numeric_limits<method_offsett >::max ();
869873 return var_list[list_length];
870874}
0 commit comments