Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

expr_annotator.h File Reference

#include "paranoid_visitor.h"
#include "expr_result.h"

Include dependency graph for expr_annotator.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Compounds

class  Expr_annotator

Functions

bool try_reinterpret_cast (Type t, bool enforce_const, Expr_result *res)
 Attempt to do reinterpret_cast. More...

Type binary_multeq_predicate (Type l, Type r)
 Predicate for *= and /=. More...

Type binary_addeq_predicate (Type l, Type r)
 Predicate for += and -=. More...

Type binary_inteq_predicate (Type l, Type r)
 Predicate for %=, <<=, etc. More...


Function Documentation

Type binary_addeq_predicate Type    l,
Type    r
 

Predicate for += and -=.

These accept "cv-arith&" on the LHS, and "arith" or "enum" on the RHS; or "cv-obj*&" on the LHS and ptrdiff_t on the RHS.

Definition at line 2594 of file expr_annotator.cc.

References Type::get_basis_type(), Type::get_kind(), Type::get_promoted_integer(), Type::is_arithmetic_type(), Type::is_enum_type(), Type::is_int(), Type::is_object_type(), Type::k_Pointer, Type::k_Reference, make_binary_function_type(), and Type::sans_reference().

Type binary_inteq_predicate Type    l,
Type    r
 

Predicate for %=, <<=, etc.

These accept "cv-integral&" on the LHS, and "arith" or "enum" on the RHS.

Definition at line 2617 of file expr_annotator.cc.

References Type::get_basis_type(), Type::get_kind(), Type::get_promoted_integer(), Type::is_enum_type(), Type::is_int(), Type::k_Reference, make_binary_function_type(), and Type::sans_reference().

Type binary_multeq_predicate Type    l,
Type    r
 

Predicate for *= and /=.

These accept "cv-arith&" on the LHS, and "arith" or "enum" on the RHS.

Definition at line 2571 of file expr_annotator.cc.

References Type::get_basis_type(), Type::get_kind(), Type::get_promoted_integer(), Type::is_arithmetic_type(), Type::is_enum_type(), Type::is_float(), Type::is_int(), Type::is_same_unqualified_type(), Type::k_Reference, make_binary_function_type(), and Type::sans_reference().

bool try_reinterpret_cast Type    t,
bool    enforce_const,
Expr_result   res
 

Attempt to do reinterpret_cast.

Definition at line 2086 of file expr_annotator.cc.

References Expr_result::convert_to(), Expr_result::convert_to_fpointer(), Expr_result::convert_to_pointer(), Type::get_basis_type(), Type::get_class_type(), Type::get_kind(), Type::get_member_type(), Expr_result::get_type(), Type::is_enum_type(), Type::is_int(), Expr_result::is_lvalue(), Type::is_more_qualified_than(), Type::is_valid(), Type::k_Array, Type::k_Function, Type::k_Member, Type::k_Pointer, and Type::k_Reference.

Referenced by Expr_annotator::do_ccast(), and Expr_annotator::do_reinterpret_cast().


Generated on Mon Feb 10 17:33:42 2003 for VFiasco Semantics Compiler by doxygen1.2.15