Changeset db4ecc5 for src/ResolvExpr


Ignore:
Timestamp:
Apr 14, 2016, 3:22:42 PM (8 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:
70a06f6
Parents:
7eabc25
Message:

add ImplicitCopyCtorExpr? node, implicit copy constructors are inserted into the right places (but there is room for elision)

Location:
src/ResolvExpr
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/Resolver.cc

    r7eabc25 rdb4ecc5  
    1010// Created On       : Sun May 17 12:17:01 2015
    1111// Last Modified By : Rob Schluntz
    12 // Last Modified On : Mon Apr 04 17:11:54 2016
     12// Last Modified On : Thu Apr 14 11:18:12 2016
    1313// Update Count     : 203
    1414//
     
    6161          void resolveSingleAggrInit( Declaration *, InitIterator &, InitIterator & );
    6262          void fallbackInit( ConstructorInit * ctorInit );
    63 
    6463                std::list< Type * > functionReturn;
    6564                Type *initContext;
     
    8483        }
    8584
     85
    8686        namespace {
    8787                void finishExpr( Expression *expr, const TypeEnvironment &env ) {
     
    8989                        env.makeSubstitution( *expr->get_env() );
    9090                }
    91 
    92                 Expression *findVoidExpression( Expression *untyped, const SymTab::Indexer &indexer ) {
    93                         global_renamer.reset();
    94                         TypeEnvironment env;
    95                         Expression *newExpr = resolveInVoidContext( untyped, indexer, env );
    96                         finishExpr( newExpr, env );
    97                         return newExpr;
    98                 }
    99 
     91        } // namespace
     92
     93        Expression *findVoidExpression( Expression *untyped, const SymTab::Indexer &indexer ) {
     94                global_renamer.reset();
     95                TypeEnvironment env;
     96                Expression *newExpr = resolveInVoidContext( untyped, indexer, env );
     97                finishExpr( newExpr, env );
     98                return newExpr;
     99        }
     100
     101        namespace {
    100102                Expression *findSingleExpression( Expression *untyped, const SymTab::Indexer &indexer ) {
    101103                        TypeEnvironment env;
     
    484486
    485487        void Resolver::visit( ConstructorInit *ctorInit ) {
    486                 TypeEnvironment env;
    487488                try {
    488489                        maybeAccept( ctorInit->get_ctor(), *this );
  • src/ResolvExpr/Resolver.h

    r7eabc25 rdb4ecc5  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // Resolver.h -- 
     7// Resolver.h --
    88//
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 12:18:34 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun May 17 12:19:32 2015
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Thu Apr 14 15:06:53 2016
    1313// Update Count     : 2
    1414//
     
    2424        void resolve( std::list< Declaration * > translationUnit );
    2525        Expression *resolveInVoidContext( Expression *expr, const SymTab::Indexer &indexer );
     26        Expression *findVoidExpression( Expression *untyped, const SymTab::Indexer &indexer );
    2627} // namespace ResolvExpr
    2728
Note: See TracChangeset for help on using the changeset viewer.