Ignore:
Timestamp:
Jun 24, 2019, 2:28:10 PM (5 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
093a5d7
Parents:
08c0780
Message:

Put in temporary patch to finish new resolver port

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/Resolver.cc

    r08c0780 r0f6a7752  
    12261226                const ast::StaticAssertDecl * previsit( const ast::StaticAssertDecl * );
    12271227
    1228                 void previsit( const ast::ArrayType * );
    1229                 void previsit( const ast::PointerType * );
     1228                const ast::ArrayType * previsit( const ast::ArrayType * );
     1229                const ast::PointerType * previsit( const ast::PointerType * );
    12301230
    12311231                const ast::ExprStmt *        previsit( const ast::ExprStmt * );
     
    13341334
    13351335        template< typename PtrType >
    1336         void handlePtrType( const PtrType * type, const ast::SymbolTable & symtab ) {
    1337                 #warning unimplemented; needs support for new Validate::SizeType global
    1338                 (void)type; (void)symtab;
    1339                 assert( false );
    1340         }
    1341 
    1342         void Resolver_new::previsit( const ast::ArrayType * at ) {
    1343                 handlePtrType( at, symtab );
    1344         }
    1345 
    1346         void Resolver_new::previsit( const ast::PointerType * pt ) {
    1347                 handlePtrType( pt, symtab );
     1336        const PtrType * handlePtrType( const PtrType * type, const ast::SymbolTable & symtab ) {
     1337                if ( type->dimension ) {
     1338                        #warning should use new equivalent to Validate::SizeType rather than sizeType here
     1339                        ast::ptr< ast::Type > sizeType =
     1340                                new ast::BasicType{ ast::BasicType::LongLongUnsignedInt };
     1341                        ast::mutate_field(
     1342                                type, &PtrType::dimension,
     1343                                findSingleExpression( type->dimension, sizeType, symtab ) );
     1344                }
     1345                return type;
     1346        }
     1347
     1348        const ast::ArrayType * Resolver_new::previsit( const ast::ArrayType * at ) {
     1349                return handlePtrType( at, symtab );
     1350        }
     1351
     1352        const ast::PointerType * Resolver_new::previsit( const ast::PointerType * pt ) {
     1353                return handlePtrType( pt, symtab );
    13481354        }
    13491355
Note: See TracChangeset for help on using the changeset viewer.