Changeset 24e7b47 for src


Ignore:
Timestamp:
Oct 6, 2015, 3:34:01 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:
b0be06ac
Parents:
b762122 (diff), 8ee15ffd (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' into ctor

Location:
src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/GenPoly/Specialize.cc

    rb762122 r24e7b47  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 15:54:07 2015
    13 // Update Count     : 6
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Tue Sep 22 14:04:13 2015
     13// Update Count     : 15
    1414//
    1515
     
    8686
    8787        Expression * Specialize::doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams ) {
     88                assert( ! actual->get_results().empty() );
    8889                if ( needsSpecialization( formalType, actual->get_results().front(), env ) ) {
    8990                        PointerType *ptrType;
     
    167168        Expression * Specialize::mutate( AddressExpr *addrExpr ) {
    168169                addrExpr->get_arg()->acceptMutator( *this );
     170                assert( ! addrExpr->get_results().empty() );
    169171                addrExpr->set_arg( doSpecialization( addrExpr->get_results().front(), addrExpr->get_arg() ) );
    170172                return addrExpr;
     
    173175        Expression * Specialize::mutate( CastExpr *castExpr ) {
    174176                castExpr->get_arg()->acceptMutator( *this );
    175                 castExpr->set_arg( doSpecialization( castExpr->get_results().front(), castExpr->get_arg() ) );
     177                if ( ! castExpr->get_results().empty() ) {
     178                        // this may not be the correct condition, but previously the next statement
     179                        // was happening unchecked, causing a crash on a cast to void
     180                        castExpr->set_arg( doSpecialization( castExpr->get_results().front(), castExpr->get_arg() ) );         
     181                }
    176182                return castExpr;
    177183        }
  • src/SymTab/Indexer.h

    rb762122 r24e7b47  
    1010// Created On       : Sun May 17 21:38:55 2015
    1111// Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Aug 05 13:51:39 2015
    13 // Update Count     : 4
     12// Last Modified On : Thu Sep 17 16:05:38 2015
     13// Update Count     : 5
    1414//
    1515
     
    1919#include <list>
    2020#include <string>
    21 #include <map>
    2221
    2322#include "SynTree/Visitor.h"
  • src/SynTree/Expression.cc

    rb762122 r24e7b47  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Aug 12 14:02:45 2015
    13 // Update Count     : 30
     12// Last Modified On : Wed Sep 02 12:07:10 2015
     13// Update Count     : 33
    1414//
    1515
     
    3131Expression::Expression( Expression *_aname ) : env( 0 ), argName( _aname ) {}
    3232
    33 Expression::Expression( const Expression &other ) : env( maybeClone( other.env ) ) {
     33Expression::Expression( const Expression &other ) : env( maybeClone( other.env ) ), argName( maybeClone( other.get_argName() ) ) {
    3434        cloneAll( other.results, results );
    35         argName = other.get_argName();
    3635}
    3736
Note: See TracChangeset for help on using the changeset viewer.