Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/InitTweak/GenInit.cc

    rb8524ca r234b1cb  
    1818#include <algorithm>                   // for any_of
    1919#include <cassert>                     // for assert, strict_dynamic_cast, assertf
    20 #include <deque>
    2120#include <iterator>                    // for back_inserter, inserter, back_inse...
    2221#include <list>                        // for _List_iterator, list
    2322
    24 #include "AST/Decl.hpp"
    25 #include "AST/Init.hpp"
    26 #include "AST/Node.hpp"
    27 #include "AST/Stmt.hpp"
    2823#include "CodeGen/OperatorTable.h"
    2924#include "Common/PassVisitor.h"        // for PassVisitor, WithGuards, WithShort...
     
    279274                assertf( objDecl, "genCtorDtor passed null objDecl" );
    280275                std::list< Statement * > stmts;
    281                 InitExpander_old srcParam( maybeClone( arg ) );
     276                InitExpander srcParam( maybeClone( arg ) );
    282277                SymTab::genImplicitCall( srcParam, new VariableExpr( objDecl ), fname, back_inserter( stmts ), objDecl );
    283278                assert( stmts.size() <= 1 );
     
    291286                std::list< Statement * > dtor;
    292287
    293                 InitExpander_old srcParam( objDecl->get_init() );
    294                 InitExpander_old nullParam( (Initializer *)NULL );
     288                InitExpander srcParam( objDecl->get_init() );
     289                InitExpander nullParam( (Initializer *)NULL );
    295290                SymTab::genImplicitCall( srcParam, new VariableExpr( objDecl ), "?{}", back_inserter( ctor ), objDecl );
    296291                SymTab::genImplicitCall( nullParam, new VariableExpr( objDecl ), "^?{}", front_inserter( dtor ), objDecl, false );
     
    359354        }
    360355
    361 ast::ConstructorInit * genCtorInit( const CodeLocation & loc, const ast::ObjectDecl * objDecl ) {
    362         // call into genImplicitCall from Autogen.h to generate calls to ctor/dtor for each
    363         // constructable object
    364         InitExpander_new srcParam{ objDecl->init }, nullParam{ (const ast::Init *)nullptr };
    365        
    366         ast::ptr< ast::Stmt > ctor = SymTab::genImplicitCall(
    367                 srcParam, new ast::VariableExpr{ loc, objDecl }, loc, "?{}", objDecl );
    368         ast::ptr< ast::Stmt > dtor = SymTab::genImplicitCall(
    369                 nullParam, new ast::VariableExpr{ loc, objDecl }, loc, "^?{}", objDecl,
    370                 SymTab::LoopBackward );
    371        
    372         // check that either both ctor and dtor are present, or neither
    373         assert( (bool)ctor == (bool)dtor );
    374 
    375         if ( ctor ) {
    376                 // need to remember init expression, in case no ctors exist. If ctor does exist, want to
    377                 // use ctor expression instead of init.
    378                 ctor.strict_as< ast::ImplicitCtorDtorStmt >();
    379                 dtor.strict_as< ast::ImplicitCtorDtorStmt >();
    380 
    381                 return new ast::ConstructorInit{ loc, ctor, dtor, objDecl->init };
    382         }
    383 
     356ast::ConstructorInit * genCtorInit( const ast::ObjectDecl * objDecl ) {
     357        #warning unimplemented
     358        (void)objDecl;
     359        assert( false );
    384360        return nullptr;
    385361}
Note: See TracChangeset for help on using the changeset viewer.