Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/Resolver.cc

    r665f432 r2890212  
    485485                visit_children = false;
    486486                findVoidExpression( asmExpr->operand, indexer );
     487                if ( asmExpr->get_inout() ) {
     488                        findVoidExpression( asmExpr->inout, indexer );
     489                } // if
    487490        }
    488491
     
    10511054                        const ast::Expr * postmutate( const ast::CastExpr * castExpr ) {
    10521055                                if (
    1053                                         castExpr->isGenerated
     1056                                        castExpr->isGenerated == ast::GeneratedCast
    10541057                                        && typesCompatible( castExpr->arg->result, castExpr->result )
    10551058                                ) {
     
    11051108
    11061109                // set up and resolve expression cast to void
    1107                 ast::CastExpr * untyped = new ast::CastExpr{ expr };
     1110                ast::ptr< ast::CastExpr > untyped = new ast::CastExpr{ expr };
    11081111                CandidateRef choice = findUnfinishedKindExpression(
    11091112                        untyped, symtab, "", anyCandidate, ResolvMode::withAdjustment() );
     
    12441247        };
    12451248
    1246         void resolve( std::list< ast::ptr<ast::Decl> >& translationUnit ) {
     1249        void resolve( std::list< ast::ptr< ast::Decl > >& translationUnit ) {
    12471250                ast::Pass< Resolver_new > resolver;
    12481251                accept_all( translationUnit, resolver );
     
    12781281                ast::ptr< ast::FunctionDecl > ret = functionDecl;
    12791282                for ( unsigned i = 0; i < functionDecl->type->params.size(); ++i ) {
    1280                         const ast::ptr<ast::DeclWithType> & d = functionDecl->type->params[i];
     1283                        const ast::ptr< ast::DeclWithType > & d = functionDecl->type->params[i];
    12811284
    12821285                        if ( const ast::ObjectDecl * obj = d.as< ast::ObjectDecl >() ) {
     
    12951298                        }
    12961299                }
    1297                 return ret.get();
     1300                return ret.release();
    12981301        }
    12991302
     
    13181321                // in case we decide to allow nested enums
    13191322                GuardValue( inEnumDecl );
    1320                 inEnumDecl = false;
     1323                inEnumDecl = true;
    13211324        }
    13221325
     
    13621365                asmExpr = ast::mutate_field(
    13631366                        asmExpr, &ast::AsmExpr::operand, findVoidExpression( asmExpr->operand, symtab ) );
     1367
     1368                if ( asmExpr->inout ) {
     1369                        asmExpr = ast::mutate_field(
     1370                                asmExpr, &ast::AsmExpr::inout, findVoidExpression( asmExpr->inout, symtab ) );
     1371                }
    13641372
    13651373                return asmExpr;
Note: See TracChangeset for help on using the changeset viewer.