Changeset 79970ed for src/SymTab


Ignore:
Timestamp:
Aug 24, 2016, 12:36:33 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, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
0555f4b
Parents:
f87408e
Message:

implement warnings for missing struct member constructor calls, remove bad clones

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SymTab/Validate.cc

    rf87408e r79970ed  
    5858#include "Autogen.h"
    5959#include "ResolvExpr/typeops.h"
     60#include <algorithm>
    6061
    6162#define debugPrint( x ) if ( doDebug ) { std::cout << x; }
     
    372373                } // if
    373374
    374                 applySubstitution( ctx->get_parameters().begin(), ctx->get_parameters().end(), contextInst->get_parameters().begin(), ctx->get_members().begin(), ctx->get_members().end(), back_inserter( contextInst->get_members() ) );
     375                // need to clone members of the context for ownership purposes
     376                std::list< Declaration * > members;
     377                std::transform( ctx->get_members().begin(), ctx->get_members().end(), back_inserter( members ), [](Declaration * dwt) { return dwt->clone(); } );
     378
     379                applySubstitution( ctx->get_parameters().begin(), ctx->get_parameters().end(), contextInst->get_parameters().begin(), members.begin(), members.end(), back_inserter( contextInst->get_members() ) );
    375380        }
    376381
Note: See TracChangeset for help on using the changeset viewer.