Changeset c935c3a for src/ResolvExpr/ConversionCost.cc
- Timestamp:
- Sep 13, 2017, 3:03:32 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- ed235b6
- Parents:
- b2e2e34 (diff), 982832e (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/ConversionCost.cc
rb2e2e34 rc935c3a 92 92 93 93 Cost convertToReferenceCost( Type * src, Type * dest, int diff, const SymTab::Indexer & indexer, const TypeEnvironment & env, PtrsFunction func ) { 94 PRINT( std::cerr << "convert to reference cost... "<< std::endl; )94 PRINT( std::cerr << "convert to reference cost... diff " << diff << std::endl; ) 95 95 if ( diff > 0 ) { 96 96 // TODO: document this 97 Cost cost = convertToReferenceCost( s afe_dynamic_cast< ReferenceType * >( src )->get_base(), dest, diff-1, indexer, env, func );97 Cost cost = convertToReferenceCost( strict_dynamic_cast< ReferenceType * >( src )->get_base(), dest, diff-1, indexer, env, func ); 98 98 cost.incReference(); 99 99 return cost; 100 100 } else if ( diff < -1 ) { 101 101 // TODO: document this 102 Cost cost = convertToReferenceCost( src, s afe_dynamic_cast< ReferenceType * >( dest )->get_base(), diff+1, indexer, env, func );102 Cost cost = convertToReferenceCost( src, strict_dynamic_cast< ReferenceType * >( dest )->get_base(), diff+1, indexer, env, func ); 103 103 cost.incReference(); 104 104 return cost; … … 128 128 ReferenceType * destAsRef = dynamic_cast< ReferenceType * >( dest ); 129 129 assert( diff == -1 && destAsRef ); 130 PRINT( std::cerr << "dest is: " << dest << " / src is: " << src << std::endl; ) 130 131 if ( typesCompatibleIgnoreQualifiers( src, destAsRef->get_base(), indexer, env ) ) { 131 132 PRINT( std::cerr << "converting compatible base type" << std::endl; )
Note: See TracChangeset
for help on using the changeset viewer.