Ignore:
Timestamp:
Oct 23, 2017, 5:32:48 PM (4 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, resolv-new, with_gc
Children:
954ef5b
Parents:
99b7d4fc
Message:

Fix unification of VLAs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/Unify.cc

    r99b7d4fc raeef2bd  
    1717#include <iterator>               // for back_insert_iterator, back_inserter
    1818#include <map>                    // for _Rb_tree_const_iterator, _Rb_tree_i...
    19 #include <memory>                 // for unique_ptr, auto_ptr
     19#include <memory>                 // for unique_ptr
    2020#include <set>                    // for set
    2121#include <string>                 // for string, operator==, operator!=, bas...
     
    170170                                Type *common = 0;
    171171                                // attempt to unify equivalence class type (which has qualifiers stripped, so they must be restored) with the type to bind to
    172                                 std::auto_ptr< Type > newType( curClass.type->clone() );
     172                                std::unique_ptr< Type > newType( curClass.type->clone() );
    173173                                newType->get_qualifiers() = typeInst->get_qualifiers();
    174174                                if ( unifyInexact( newType.get(), other, env, needAssertions, haveAssertions, openVars, widenMode & WidenMode( curClass.allowWidening, true ), indexer, common ) ) {
     
    459459                if ( otherArray && arrayType->get_isVarLen() == otherArray->get_isVarLen() ) {
    460460
    461                         // not positive this is correct in all cases, but it's needed for typedefs
    462                         if ( arrayType->get_isVarLen() || otherArray->get_isVarLen() ) {
    463                                 return;
    464                         }
    465 
    466461                        if ( ! arrayType->get_isVarLen() && ! otherArray->get_isVarLen() &&
    467462                                arrayType->get_dimension() != 0 && otherArray->get_dimension() != 0 ) {
Note: See TracChangeset for help on using the changeset viewer.