Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ControlStruct/ExceptTranslate.cc

    r42a02ce r7f9968ad  
    99// Author           : Andrew Beach
    1010// Created On       : Wed Jun 14 16:49:00 2017
    11 // Last Modified By : Henry Xue
    12 // Last Modified On : Tue Aug 03 10:05:51 2021
    13 // Update Count     : 18
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Wed Jun 24 11:18:00 2020
     13// Update Count     : 17
    1414//
    1515
     
    320320                                static_cast<ObjectDecl *>( handler->get_decl() );
    321321                        ObjectDecl * local_except = handler_decl->clone();
    322                         VirtualCastExpr * vcex = new VirtualCastExpr(
    323                                 nameOf( except_obj ),
    324                                 local_except->get_type()
     322                        local_except->set_init(
     323                                new ListInit({ new SingleInit(
     324                                        new VirtualCastExpr( nameOf( except_obj ),
     325                                                local_except->get_type()
     326                                                )
     327                                        ) })
    325328                                );
    326                         vcex->location = handler->location;
    327                         local_except->set_init( new ListInit({ new SingleInit( vcex ) }) );
    328329                        block->push_back( new DeclStmt( local_except ) );
    329330
     
    391392
    392393                // Check for type match.
    393                 VirtualCastExpr * vcex = new VirtualCastExpr(
    394                         nameOf( except_obj ),
    395                         local_except->get_type()->clone()
    396                         );
    397                 vcex->location = modded_handler->location;
    398                 Expression * cond = UntypedExpr::createAssign(
    399                         nameOf( local_except ), vcex );
     394                Expression * cond = UntypedExpr::createAssign( nameOf( local_except ),
     395                        new VirtualCastExpr( nameOf( except_obj ),
     396                                local_except->get_type()->clone() ) );
    400397
    401398                // Add the check on the conditional if it is provided.
Note: See TracChangeset for help on using the changeset viewer.