Changes in / [43ee2a8:e869d663]


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/CastCost.cc

    r43ee2a8 re869d663  
    6666
    6767        void CastCost::visit( BasicType *basicType ) {
    68                 PointerType *destAsPointer = dynamic_cast< PointerType* >( dest );
    69                 if ( destAsPointer && basicType->isInteger() ) {
     68                if ( dynamic_cast< PointerType* >( dest ) ) {
    7069                        cost = Cost( 1, 0, 0 );
    7170                } else {
     
    7877                        if ( pointerType->get_qualifiers() <= destAsPtr->get_qualifiers() && typesCompatibleIgnoreQualifiers( pointerType->get_base(), destAsPtr->get_base(), indexer, env ) ) {
    7978                                cost = Cost( 0, 0, 1 );
     79                        } else if ( BasicType *destAsBasic = dynamic_cast< BasicType* >( dest ) ) {
     80                                if ( destAsBasic->isInteger() ) {
     81                                        cost = Cost( 1, 0, 0 );
     82                                } // if
    8083                        } else {
    8184                                TypeEnvironment newEnv( env );
     
    8992                                } // if
    9093                        } // if
    91                 } else if ( BasicType *destAsBasic = dynamic_cast< BasicType* >( dest ) ) {
    92                         if ( destAsBasic->isInteger() ) {
    93                                 cost = Cost( 1, 0, 0 );
    94                         } // if
    95                 }
     94                } // if
    9695        }
    9796} // namespace ResolvExpr
Note: See TracChangeset for help on using the changeset viewer.