sail::FunctionPointerCall Class Reference

A function pointer call instruction is of the form ret = (*fn_ptr)(s1, ... sk). More...

#include <FunctionPointerCall.h>

Inheritance diagram for sail::FunctionPointerCall:
sail::SaveInstruction sail::Instruction

List of all members.

Public Member Functions

 FunctionPointerCall (Variable *ret, Variable *fn_ptr, vector< Symbol * > *args, il::node *original, int line)
virtual string to_string () const
virtual string to_string (bool pretty_print) const
bool has_return ()
Variableget_return_variable ()
virtual Variableget_lhs ()
virtual void set_lhs (Variable *v)
Variableget_function_pointer ()
vector< Symbol * > * get_arguments ()
virtual bool is_removable ()

Friends

class boost::serialization::access

Detailed Description

A function pointer call instruction is of the form ret = (*fn_ptr)(s1, ... sk).


Member Function Documentation

vector< Symbol * > * sail::FunctionPointerCall::get_arguments (  ) 
Returns:
Arguments used in this call.
Variable * sail::FunctionPointerCall::get_function_pointer (  ) 
Returns:
the function pointer that's invoked
Variable * sail::FunctionPointerCall::get_return_variable (  ) 
Returns:
the variable used to capture the return value; can be NULL.
bool sail::FunctionPointerCall::has_return (  ) 
Returns:
Is the return value captured?
bool sail::FunctionPointerCall::is_removable (  )  [virtual]

An instruction is removable if it's not present in the original source code, but introduced in the translation from the high-level language to the low-level language. For instance, if **x is an expression used in the original code, the low-level language will introduce a temporary t=*x; such instructions are "removable" for printing purposes.

Implements sail::Instruction.


The documentation for this class was generated from the following files:
Generated on Sun Oct 17 14:01:32 2010 by  doxygen 1.6.3