#include <java_bytecode_language.h>
language_filest so that when asked for a lazy method, it can delegate to this instance of java_bytecode_languaget. Definition at line 259 of file java_bytecode_language.h.
Definition at line 1610 of file java_bytecode_language.cpp.
Definition at line 289 of file java_bytecode_language.h.
Definition at line 296 of file java_bytecode_language.h.
This method should be overloaded to provide alternative approaches for specifying extra entry points.
To provide a regex entry point, the command line option --lazy-methods-extra-entry-point can be used directly.
Definition at line 1618 of file java_bytecode_language.cpp.
Promote a lazy-converted method (one whose type is known but whose body hasn't been converted) into a fully-elaborated one.
function_id, which should be a method provided by this instance of java_bytecode_languaget to have a value representing the method body identical to that produced using eager method conversion. Reimplemented from languaget.
Definition at line 1184 of file java_bytecode_language.cpp.
Definition at line 337 of file java_bytecode_language.h.
Convert a method (one whose type is known but whose body hasn't been converted) if it doesn't already have a body, and lift clinit calls if requested by the user.
function_id, which should be a method provided by this instance of java_bytecode_languaget to have a value representing the method body. Definition at line 1282 of file java_bytecode_language.cpp.
Convert a method (one whose type is known but whose body hasn't been converted) but don't run typecheck, etc.
function_id, which should be a method provided by this instance of java_bytecode_languaget to have a value representing the method body. Definition at line 1341 of file java_bytecode_language.cpp.
Implements languaget.
Definition at line 325 of file java_bytecode_language.h.
Uses a simple context-insensitive ('ci') analysis to determine which methods may be reachable from the main entry point.
In brief, static methods are reachable if we find a callsite in another reachable site, while virtual methods are reachable if we find a virtual callsite targeting a compatible type and a constructor callsite indicating an object of that type may be instantiated (or evidence that an object of that type exists before the main function is entered, such as being passed as a parameter).
Definition at line 1112 of file java_bytecode_language.cpp.
Implements languaget.
Definition at line 272 of file java_bytecode_language.cpp.
Final adjustments, e.g.
initializing stub functions and globals that were discovered during function loading
Reimplemented from languaget.
Definition at line 1506 of file java_bytecode_language.cpp.
Formats the given expression in a language-specific way.
Reimplemented from languaget.
Definition at line 1537 of file java_bytecode_language.cpp.
Formats the given type in a language-specific way.
Reimplemented from languaget.
Definition at line 1546 of file java_bytecode_language.cpp.
Create language-specific support functions, such as __CPROVER_start, __CPROVER_initialize and language-specific library functions.
This runs after the typecheck phase but before lazy function loading. Anything that must wait until lazy function loading is done can be deferred until final, which runs after lazy function loading is complete. Functions introduced here are visible to lazy loading and can influence its decisions (e.g. picking the types of input parameters and globals), whereas anything introduced during final cannot.
Implements languaget.
Definition at line 1049 of file java_bytecode_language.cpp.
Definition at line 1148 of file java_bytecode_language.cpp.
Implements languaget.
Definition at line 324 of file java_bytecode_language.h.
Definition at line 293 of file java_bytecode_language.cpp.
Provide feedback to language_filest so that when asked for a lazy method, it can delegate to this instance of java_bytecode_languaget.
methods with the complete list of lazy methods that are available to convert (those which are valid parameters for convert_lazy_method) Reimplemented from languaget.
Definition at line 1159 of file java_bytecode_language.cpp.
Reimplemented from languaget.
Definition at line 277 of file java_bytecode_language.cpp.
Implements languaget.
Definition at line 319 of file java_bytecode_language.h.
We set the main class (i.e. class to start the class loading analysis, see java_class_loadert) when we have a JAR file given via the -jar option: a) the argument of the –main-class command-line option, b) the manifest file of the JAR If no main class was found, all classes in the JAR file are loaded.
Implements languaget.
Definition at line 371 of file java_bytecode_language.cpp.
Definition at line 322 of file java_bytecode_language.cpp.
ANSI-C preprocessing.
Reimplemented from languaget.
Definition at line 283 of file java_bytecode_language.cpp.
Consume options that are java bytecode specific.
Reimplemented from languaget.
Definition at line 259 of file java_bytecode_language.cpp.
Implements languaget.
Definition at line 1512 of file java_bytecode_language.cpp.
Parses the given string into an expression.
Implements languaget.
Definition at line 1555 of file java_bytecode_language.cpp.
Implements languaget.
Definition at line 794 of file java_bytecode_language.cpp.
Definition at line 384 of file java_bytecode_language.h.
Definition at line 369 of file java_bytecode_language.h.
Definition at line 366 of file java_bytecode_language.h.
Definition at line 367 of file java_bytecode_language.h.
Definition at line 368 of file java_bytecode_language.h.
Definition at line 371 of file java_bytecode_language.h.
Definition at line 370 of file java_bytecode_language.h.
Definition at line 377 of file java_bytecode_language.h.
Map used in all calls to functions that deterministically create objects (currently only assign_from_json).
It tracks objects that should be reference-equal to each other by mapping IDs of such objects to symbols that store their values.
Definition at line 390 of file java_bytecode_language.h.
Definition at line 372 of file java_bytecode_language.h.
Definition at line 383 of file java_bytecode_language.h.
Maps synthetic method names on to the particular type of synthetic method (static initializer, initializer wrapper, etc).
For full documentation see synthetic_method_map.h
Definition at line 382 of file java_bytecode_language.h.