Changes in src/ResolvExpr/CastCost.cc [150ec33:108f3cdb]
- File:
-
- 1 edited
-
src/ResolvExpr/CastCost.cc (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/CastCost.cc
r150ec33 r108f3cdb 24 24 #include "typeops.h" // for typesCompatibleIgnoreQualifiers 25 25 26 #if 027 #define PRINT(x) x28 #else29 #define PRINT(x)30 #endif31 26 32 27 namespace ResolvExpr { … … 51 46 } else if ( ( namedType = indexer.lookupType( destAsTypeInst->get_name() ) ) ) { 52 47 // all typedefs should be gone by this point 53 TypeDecl *type = s trict_dynamic_cast< TypeDecl* >( namedType );48 TypeDecl *type = safe_dynamic_cast< TypeDecl* >( namedType ); 54 49 if ( type->get_base() ) { 55 50 return castCost( src, type->get_base(), indexer, env ) + Cost::safe; … … 57 52 } // if 58 53 } // if 59 60 PRINT(61 std::cerr << "castCost ::: src is ";62 src->print( std::cerr );63 std::cerr << std::endl << "dest is ";64 dest->print( std::cerr );65 std::cerr << std::endl << "env is" << std::endl;66 env.print( std::cerr, 8 );67 )68 69 54 if ( typesCompatibleIgnoreQualifiers( src, dest, indexer, env ) ) { 70 PRINT( std::cerr << "compatible!" << std::endl; )71 55 return Cost::zero; 72 56 } else if ( dynamic_cast< VoidType* >( dest ) ) { 73 57 return Cost::safe; 74 58 } else if ( ReferenceType * refType = dynamic_cast< ReferenceType * > ( dest ) ) { 75 PRINT( std::cerr << "conversionCost: dest is reference" << std::endl; )76 59 return convertToReferenceCost( src, refType, indexer, env, [](Type * t1, Type * t2, const TypeEnvironment & env, const SymTab::Indexer & indexer) { 77 60 return ptrsCastable( t1, t2, env, indexer );
Note:
See TracChangeset
for help on using the changeset viewer.