CBMC
remove_exceptions.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Remove function exceptional returns
4 
5 Author: Cristina David
6 
7 Date: December 2016
8 
9 \*******************************************************************/
10 
13 
14 #ifndef CPROVER_JAVA_BYTECODE_REMOVE_EXCEPTIONS_H
15 #define CPROVER_JAVA_BYTECODE_REMOVE_EXCEPTIONS_H
16 
17 #include <util/irep.h>
18 
19 class class_hierarchyt;
20 class goto_modelt;
21 class goto_programt;
22 class message_handlert;
23 class symbol_table_baset;
24 
25 #define INFLIGHT_EXCEPTION_VARIABLE_BASENAME "@inflight_exception"
26 #define INFLIGHT_EXCEPTION_VARIABLE_NAME \
27  "java::" INFLIGHT_EXCEPTION_VARIABLE_BASENAME
28 
33  const irep_idt &function_identifier,
34  goto_programt &,
37 
42 
47  const irep_idt &function_identifier,
48  goto_programt &,
50  const class_hierarchyt &,
52 
57  goto_modelt &,
58  const class_hierarchyt &,
60 
61 #endif
Non-graph-based representation of the class hierarchy.
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition: dstring.h:38
A generic container class for the GOTO intermediate representation of one function.
Definition: goto_program.h:73
The symbol table base class interface.
void remove_exceptions(const irep_idt &function_identifier, goto_programt &, symbol_table_baset &, const class_hierarchyt &, message_handlert &)
Removes 'throw x' and CATCH-PUSH/CATCH-POP and adds the required instrumentation (GOTOs and assignmen...
void remove_exceptions_using_instanceof(const irep_idt &function_identifier, goto_programt &, symbol_table_baset &, message_handlert &)
Removes 'throw x' and CATCH-PUSH/CATCH-POP and adds the required instrumentation (GOTOs and assignmen...