Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ControlStruct/ExceptDecl.cc

    rc715e5f rda602aec  
    99// Author           : Henry Xue
    1010// Created On       : Tue Jul 20 04:10:50 2021
    11 // Last Modified By : Andrew Beach
    12 // Last Modified On : Wed May 25 16:43:00 2022
    13 // Update Count     : 5
     11// Last Modified By : Henry Xue
     12// Last Modified On : Tue Aug 03 10:42:26 2021
     13// Update Count     : 4
    1414//
    1515
     
    3939}
    4040
    41 StructInstType * makeExceptInstType(
    42         const std::string & exceptionName,
    43         const std::list< Expression *> & parameters
    44 ) {
    45         StructInstType * exceptInstType = new StructInstType(
     41TypeInstType * makeExceptInstType(
     42        const std::string & exceptionName,
     43        const std::list< Expression *> & parameters
     44) {
     45        TypeInstType * exceptInstType = new TypeInstType(
    4646                noQualifiers,
    47                 exceptionName
     47                exceptionName,
     48                false
    4849        );
    4950        cloneAll( parameters, exceptInstType->parameters );
     
    150151                nullptr,
    151152                new PointerType( noQualifiers,
    152                         new StructInstType( Type::Const, "__cfavir_type_info" ) ),
     153                        new TypeInstType( Type::Const, "__cfavir_type_info", false ) ),
    153154                nullptr
    154155        ) );
     
    256257        const std::string & exceptionName,
    257258        const std::list< TypeDecl *> & forallClause,
    258         const std::list< Expression *> & parameters,
     259        const std::list< Expression *> & parameters, 
    259260        const std::list< Declaration *> & members
    260261) {
     
    301302ObjectDecl * ehmExternVtable(
    302303        const std::string & exceptionName,
    303         const std::list< Expression *> & parameters,
     304        const std::list< Expression *> & parameters, 
    304305        const std::string & tableName
    305306) {
     
    456457}
    457458
    458 class VTableCore : public WithDeclsToAdd {
    459 public:
    460         // Remove any remaining vtable type nodes in the tree.
    461         Type * postmutate( VTableType * vtableType );
    462 };
    463 
    464 Type * VTableCore::postmutate( VTableType * vtableType ) {
    465         auto inst = strict_dynamic_cast<ReferenceToType *>( vtableType->base );
    466 
    467         std::string vtableName = Virtual::vtableTypeName( inst->name );
    468         StructInstType * newType = new StructInstType( noQualifiers, vtableName );
    469         cloneAll( inst->parameters, newType->parameters );
    470 
    471         delete vtableType;
    472         return newType;
    473 }
    474 
    475459void translateExcept( std::list< Declaration *> & translationUnit ) {
    476460        PassVisitor<ExceptDeclCore> translator;
    477461        mutateAll( translationUnit, translator );
    478         PassVisitor<VTableCore> typeTranslator;
    479         mutateAll( translationUnit, typeTranslator );
    480 }
    481 
    482 }
     462}
     463
     464}
Note: See TracChangeset for help on using the changeset viewer.