Changeset f1e012b for src/CodeGen


Ignore:
Timestamp:
Jan 19, 2016, 1:28:25 PM (9 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
ca1c11f
Parents:
71f4e4f
Message:

added intrinsic ctor/dtors to prelude, modified MakeLibCfa? to build prelude ctor/dtors, added ctor/dtor to polymorphic object type constraints, rudimentary fallback on initializer nodes if chosen ctor is intrinsic, remove intrinsic destructor statements to reduce output pollution

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.cc

    r71f4e4f rf1e012b  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Jan 13 16:26:59 2016
    13 // Update Count     : 234
     12// Last Modified On : Tue Jan 19 13:15:44 2016
     13// Update Count     : 251
    1414//
    1515
     
    258258
    259259                                  case OT_CALL:
    260                                   case OT_CTOR:
    261                                   case OT_DTOR:
    262260                                        // there are no intrinsic definitions of the function call operator or constructors or destructors
    263261                                        assert( false );
    264262                                        break;
     263
     264                                  case OT_CTOR:
     265                                  // intrinsic constructors should never be called directly - they should be transformed back into Initializer nodes
     266                                  assert(false);
     267                                  break;
     268
     269                                  case OT_DTOR:
     270                                  // intrinsic destructors do nothing - don't generate any code
     271                                  output << " // " << dynamic_cast<VariableExpr*>(applicationExpr->get_function())->get_var()->get_name() << endl;
     272                                  break;
    265273
    266274                                  case OT_PREFIX:
     
    279287                                        output << opInfo.symbol;
    280288                                        break;
     289
    281290
    282291                                  case OT_INFIX:
     
    324333
    325334                                  case OT_CALL:
     335                                        assert( false );
     336
    326337                                        case OT_CTOR:
    327338                                        case OT_DTOR:
    328                                         assert( false );
     339                                        // intrinsic constructors should never be called
     340                                        // intrinsic destructors do nothing
    329341                                        break;
    330342
Note: See TracChangeset for help on using the changeset viewer.