CBMC
select_pointer_type.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Java Bytecode Language Conversion
4 
5 Author: Diffblue Ltd.
6 
7 \*******************************************************************/
8 #ifndef CPROVER_JAVA_BYTECODE_SELECT_POINTER_TYPE_H
9 #define CPROVER_JAVA_BYTECODE_SELECT_POINTER_TYPE_H
10 
14 
15 #include <set>
16 
17 #include <util/pointer_expr.h>
18 
20 class namespacet;
21 
23 {
24 public:
25  virtual ~select_pointer_typet() = default;
26 
39  &generic_parameter_specialization_map,
40  const namespacet &ns) const;
41 
46  virtual std::set<struct_tag_typet> get_parameter_alternative_types(
47  const irep_idt &function_name,
48  const irep_idt &parameter_name,
49  const namespacet &ns) const;
50 
83  &generic_parameter_specialization_map) const;
84 };
85 
86 #endif // CPROVER_JAVA_BYTECODE_SELECT_POINTER_TYPE_H
pointer_typet pointer_type(const typet &subtype)
Definition: c_types.cpp:235
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition: dstring.h:38
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition: namespace.h:94
The pointer type These are both 'bitvector_typet' (they have a width) and 'type_with_subtypet' (they ...
Definition: pointer_expr.h:24
virtual ~select_pointer_typet()=default
virtual std::set< struct_tag_typet > get_parameter_alternative_types(const irep_idt &function_name, const irep_idt &parameter_name, const namespacet &ns) const
Get alternative types for a method parameter, e.g., based on the casts in the function body.
pointer_typet specialize_generics(const pointer_typet &pointer_type, const generic_parameter_specialization_mapt &generic_parameter_specialization_map) const
Specialize generic parameters in a pointer type based on the current map of parameters -> types.
virtual pointer_typet convert_pointer_type(const pointer_typet &pointer_type, const generic_parameter_specialization_mapt &generic_parameter_specialization_map, const namespacet &ns) const
Select what type should be used for a given pointer type.
API to expression classes for Pointers.