Ignore:
Timestamp:
Jul 30, 2015, 3:56:18 PM (8 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
093f1a0
Parents:
51b986f
Message:

asm statement, memory leaks

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/Resolver.cc

    r51b986f r7f5566b  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 12:17:01 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Jul 15 14:54:04 2015
    13 // Update Count     : 167
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Fri Jul 24 17:33:54 2015
     13// Update Count     : 178
    1414//
    1515
     
    4141
    4242                virtual void visit( ExprStmt *exprStmt );
     43                virtual void visit( AsmExpr *asmExpr );
     44                virtual void visit( AsmStmt *asmStmt );
    4345                virtual void visit( IfStmt *ifStmt );
    4446                virtual void visit( WhileStmt *whileStmt );
     
    209211                        exprStmt->set_expr( newExpr );
    210212                } // if
     213        }
     214
     215        void Resolver::visit( AsmExpr *asmExpr ) {
     216                Expression *newExpr = findVoidExpression( asmExpr->get_operand(), *this );
     217                delete asmExpr->get_operand();
     218                asmExpr->set_operand( newExpr );
     219                if ( asmExpr->get_inout() ) {
     220                        newExpr = findVoidExpression( asmExpr->get_inout(), *this );
     221                        delete asmExpr->get_inout();
     222                        asmExpr->set_inout( newExpr );
     223                } // if
     224        }
     225
     226        void Resolver::visit( AsmStmt *asmStmt ) {
     227                acceptAll( asmStmt->get_input(), *this);
     228                acceptAll( asmStmt->get_output(), *this);
    211229        }
    212230
Note: See TracChangeset for help on using the changeset viewer.