sail::FunctionCall Class Reference

Represents a function call instruction of the form ret = f(s1, ... ,sn). More...

#include <FunctionCall.h>

Inheritance diagram for sail::FunctionCall:
sail::SaveInstruction sail::Instruction

List of all members.

Public Member Functions

 FunctionCall (Variable *ret, string fn_name, il::type *fn_signature, vector< Symbol * > *args, il::node *original, int line)
virtual string to_string () const
virtual string to_string (bool pretty_print) const
string get_function_name ()
il::namespace_context get_namespace () const
il::typeget_signature ()
vector< Symbol * > * get_arguments ()
bool has_return ()
Variableget_return_variable ()
bool is_virtual_call ()
void get_virtual_call_targets (set< call_id > &targets)
virtual Variableget_lhs ()
virtual void set_lhs (Variable *v)
virtual bool is_removable ()
bool is_exit_function () const
bool is_allocator () const
bool is_operator_new () const
bool is_deallocator () const
bool is_constructor ()
bool is_destructor ()

Friends

class boost::serialization::access

Detailed Description

Represents a function call instruction of the form ret = f(s1, ... ,sn).

The variable representing the return value can be NULL if either the function does not have a return value or if the return value is not captured.


Member Function Documentation

vector< Symbol * > * sail::FunctionCall::get_arguments (  ) 
Returns:
the arguments used in the function call.
string sail::FunctionCall::get_function_name (  ) 
Returns:
name of the function that is called
il::namespace_context sail::FunctionCall::get_namespace (  )  const
Returns:
namespace associated with the called function.
Variable * sail::FunctionCall::get_return_variable (  ) 
Returns:
the variable capturing the result of the function call.
il::type * sail::FunctionCall::get_signature (  ) 
Returns:
Signature of the function being called, this can return NULL!!!
void sail::FunctionCall::get_virtual_call_targets ( set< call_id > &  targets  ) 
Returns:
Returns the set of all call_id's that can be the target of this call based on the type hierarchy.
bool sail::FunctionCall::has_return (  ) 
Returns:
Does this function have a return value that is captured?
bool sail::FunctionCall::is_allocator (  )  const
Returns:
Is this function a memory allocator?
bool sail::FunctionCall::is_constructor (  ) 
Returns:
Is this a call to a constructor?
bool sail::FunctionCall::is_deallocator (  )  const
Returns:
Is this a call to a memory deallocator?
bool sail::FunctionCall::is_destructor (  ) 
Returns:
Is this a call to a destructor?
bool sail::FunctionCall::is_exit_function (  )  const
Returns:
Does this function abort program execution? (e.g., a call to exit())
bool sail::FunctionCall::is_operator_new (  )  const
Returns:
Is this a call to operator new?
bool sail::FunctionCall::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.

bool sail::FunctionCall::is_virtual_call (  ) 
Returns:
Is this a virtual method call?

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