cprover
ci_lazy_methodst Class Reference

#include <ci_lazy_methods.h>

Collaboration diagram for ci_lazy_methodst:
[legend]

Public Member Functions

 ci_lazy_methodst (std::vector< irep_idt > &_needed_methods, std::set< irep_idt > &_needed_classes, symbol_tablet &_symbol_table)
 
void add_needed_method (const irep_idt &)
 Notes method_symbol_name is referenced from some reachable function, and should therefore be elaborated. More...
 
bool add_needed_class (const irep_idt &)
 Notes class class_symbol_name will be instantiated, or a static field belonging to it will be accessed. More...
 

Private Attributes

std::vector< irep_idt > & needed_methods
 
std::set< irep_idt > & needed_classes
 
symbol_tabletsymbol_table
 

Detailed Description

Definition at line 19 of file ci_lazy_methods.h.

Constructor & Destructor Documentation

◆ ci_lazy_methodst()

ci_lazy_methodst::ci_lazy_methodst ( std::vector< irep_idt > &  _needed_methods,
std::set< irep_idt > &  _needed_classes,
symbol_tablet _symbol_table 
)
inline

Definition at line 22 of file ci_lazy_methods.h.

Member Function Documentation

◆ add_needed_class()

bool ci_lazy_methodst::add_needed_class ( const irep_idt class_symbol_name)

Notes class class_symbol_name will be instantiated, or a static field belonging to it will be accessed.

Also notes that its static initializer is therefore reachable.

parameters: class_symbol_name: class name; must exist in symbol
table.
Returns
Returns true if class_symbol_name is new (not seen before).

Definition at line 31 of file ci_lazy_methods.cpp.

References add_needed_method(), id2string(), needed_classes, symbol_table, and symbol_tablet::symbols.

Referenced by java_bytecode_convert_methodt::convert_instructions(), gather_field_types(), and initialize_needed_classes().

◆ add_needed_method()

void ci_lazy_methodst::add_needed_method ( const irep_idt method_symbol_name)

Notes method_symbol_name is referenced from some reachable function, and should therefore be elaborated.

parameters: method_symbol_name: method name; must exist in symbol
table.

Definition at line 20 of file ci_lazy_methods.cpp.

References needed_methods.

Referenced by add_needed_class(), and java_bytecode_convert_methodt::convert_instructions().

Member Data Documentation

◆ needed_classes

std::set<irep_idt>& ci_lazy_methodst::needed_classes
private

Definition at line 45 of file ci_lazy_methods.h.

Referenced by add_needed_class().

◆ needed_methods

std::vector<irep_idt>& ci_lazy_methodst::needed_methods
private

Definition at line 41 of file ci_lazy_methods.h.

Referenced by add_needed_method().

◆ symbol_table

symbol_tablet& ci_lazy_methodst::symbol_table
private

Definition at line 46 of file ci_lazy_methods.h.

Referenced by add_needed_class().


The documentation for this class was generated from the following files: