Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/AlternativeFinder.cc

    r326338ae rb128d3e  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sat May 16 23:52:08 2015
    11 // Last Modified By : Andrew Beach
    12 // Last Modified On : Wed Jul 26 11:33:00 2017
    13 // Update Count     : 31
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Aug 28 13:47:24 2017
     13// Update Count     : 32
    1414//
    1515
     
    195195                                AltList winners;
    196196                                findMinCost( alternatives.begin(), alternatives.end(), back_inserter( winners ) );
    197                                 stream << "Can't choose between " << winners.size() << " alternatives for expression ";
     197                                stream << "Cannot choose between " << winners.size() << " alternatives for expression ";
    198198                                expr->print( stream );
    199199                                stream << "Alternatives are:";
     
    749749                                if ( PointerType *pointer = dynamic_cast< PointerType* >( func->expr->get_result()->stripReferences() ) ) {
    750750                                        if ( FunctionType *function = dynamic_cast< FunctionType* >( pointer->get_base() ) ) {
    751                                                 Alternative newFunc( *func );
    752                                                 referenceToRvalueConversion( newFunc.expr );
     751                                                referenceToRvalueConversion( func->expr );
    753752                                                for ( std::list< AltList >::iterator actualAlt = possibilities.begin(); actualAlt != possibilities.end(); ++actualAlt ) {
    754753                                                        // XXX
    755754                                                        //Designators::check_alternative( function, *actualAlt );
    756                                                         makeFunctionAlternatives( newFunc, function, *actualAlt, std::back_inserter( candidates ) );
     755                                                        makeFunctionAlternatives( *func, function, *actualAlt, std::back_inserter( candidates ) );
    757756                                                }
    758757                                        }
    759758                                } else if ( TypeInstType *typeInst = dynamic_cast< TypeInstType* >( func->expr->get_result()->stripReferences() ) ) { // handle ftype (e.g. *? on function pointer)
     759                                        referenceToRvalueConversion( func->expr );
    760760                                        EqvClass eqvClass;
    761761                                        if ( func->env.lookup( typeInst->get_name(), eqvClass ) && eqvClass.type ) {
    762762                                                if ( FunctionType *function = dynamic_cast< FunctionType* >( eqvClass.type ) ) {
    763                                                         Alternative newFunc( *func );
    764                                                         referenceToRvalueConversion( newFunc.expr );
    765763                                                        for ( std::list< AltList >::iterator actualAlt = possibilities.begin(); actualAlt != possibilities.end(); ++actualAlt ) {
    766                                                                 makeFunctionAlternatives( newFunc, function, *actualAlt, std::back_inserter( candidates ) );
     764                                                                makeFunctionAlternatives( *func, function, *actualAlt, std::back_inserter( candidates ) );
    767765                                                        } // for
    768766                                                } // if
     
    775773                                        if ( PointerType *pointer = dynamic_cast< PointerType* >( funcOp->expr->get_result()->stripReferences() ) ) {
    776774                                                if ( FunctionType *function = dynamic_cast< FunctionType* >( pointer->get_base() ) ) {
    777                                                         Alternative newFunc( *funcOp );
    778                                                         referenceToRvalueConversion( newFunc.expr );
     775                                                        referenceToRvalueConversion( funcOp->expr );
    779776                                                        for ( std::list< AltList >::iterator actualAlt = possibilities.begin(); actualAlt != possibilities.end(); ++actualAlt ) {
    780777                                                                AltList currentAlt;
    781778                                                                currentAlt.push_back( *func );
    782779                                                                currentAlt.insert( currentAlt.end(), actualAlt->begin(), actualAlt->end() );
    783                                                                 makeFunctionAlternatives( newFunc, function, currentAlt, std::back_inserter( candidates ) );
     780                                                                makeFunctionAlternatives( *funcOp, function, currentAlt, std::back_inserter( candidates ) );
    784781                                                        } // for
    785782                                                } // if
Note: See TracChangeset for help on using the changeset viewer.