Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Concurrency/Keywords.cc

    rb583113 recfd758  
    414414                if ( type_decl && isDestructorFor( decl, type_decl ) )
    415415                        dtor_decl = decl;
    416                 else if ( vtable_name.empty() || !decl->has_body() )
     416                else if ( vtable_name.empty() )
     417                        ;
     418                else if( !decl->has_body() )
    417419                        ;
    418420                else if ( auto param = isMainFor( decl, cast_target ) ) {
     
    426428                        std::list< Expression * > poly_args = { new TypeExpr( struct_type->clone() ) };
    427429                        ObjectDecl * vtable_object = Virtual::makeVtableInstance(
    428                                 "_default_vtable_object_declaration",
    429430                                vtable_decl->makeInst( poly_args ), struct_type, nullptr );
    430431                        declsToAddAfter.push_back( vtable_object );
    431                         declsToAddAfter.push_back(
    432                                 new ObjectDecl(
    433                                         Virtual::concurrentDefaultVTableName(),
    434                                         Type::Const,
    435                                         LinkageSpec::Cforall,
    436                                         /* bitfieldWidth */ nullptr,
    437                                         new ReferenceType( Type::Const, vtable_object->type->clone() ),
    438                                         new SingleInit( new VariableExpr( vtable_object ) )
    439                                 )
    440                         );
    441432                        declsToAddAfter.push_back( Virtual::makeGetExceptionFunction(
    442433                                vtable_object, except_decl->makeInst( std::move( poly_args ) )
     
    497488                        except_decl->makeInst( poly_args )
    498489                ) );
    499                 ObjectDecl * vtable_object = Virtual::makeVtableForward(
    500                         "_default_vtable_object_declaration",
    501                         vtable_decl->makeInst( move( poly_args ) ) );
    502                 declsToAddBefore.push_back( vtable_object );
    503                 declsToAddAfter.push_back(
    504                         new ObjectDecl(
    505                                 Virtual::concurrentDefaultVTableName(),
    506                                 Type::Const,
    507                                 LinkageSpec::Cforall,
    508                                 /* bitfieldWidth */ nullptr,
    509                                 new ReferenceType( Type::Const, vtable_object->type->clone() ),
    510                                 /* init */ nullptr
    511                         )
    512                 );
     490                declsToAddBefore.push_back( Virtual::makeVtableForward(
     491                        vtable_decl->makeInst( move( poly_args ) ) ) );
    513492        }
    514493
Note: See TracChangeset for help on using the changeset viewer.