Changeset 70f89d00 for src/InitTweak/GenInit.cc
- Timestamp:
- May 30, 2016, 12:51:22 PM (8 years ago)
- 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:
- f1b1e4c
- Parents:
- 677c1be
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/InitTweak/GenInit.cc
r677c1be r70f89d00 143 143 if ( tryConstruct( objDecl ) ) { 144 144 if ( inFunction ) { 145 // remove qualifiers so that const objects can be initialized, and attach the 146 // qualifiers to ConstructorInit so that they can be replaced after resolving 147 Type * type = objDecl->get_type(); 148 Type::Qualifiers qualifiers = type->get_qualifiers(); 149 type->get_qualifiers() = Type::Qualifiers(); 150 145 151 if ( ArrayType * at = dynamic_cast< ArrayType * >( objDecl->get_type() ) ) { 146 152 // call into makeArrayFunction from validate.cc to generate calls to ctor/dtor for each element of array … … 165 171 assert( dtor.size() == 1 ); 166 172 167 objDecl->set_init( new ConstructorInit( ctor.front(), dtor.front(), objDecl->get_init() ) );173 objDecl->set_init( new ConstructorInit( ctor.front(), dtor.front(), objDecl->get_init(), objDecl, qualifiers ) ); 168 174 } else { 169 175 // array came with an initializer list: initialize each element … … 185 191 ExprStmt * ctorStmt = new ExprStmt( noLabels, ctor ); 186 192 ExprStmt * dtorStmt = new ExprStmt( noLabels, dtor ); 187 objDecl->set_init( new ConstructorInit( ctorStmt, dtorStmt, objDecl->get_init() ) );193 objDecl->set_init( new ConstructorInit( ctorStmt, dtorStmt, objDecl->get_init(), objDecl, qualifiers ) ); 188 194 } 189 195 }
Note: See TracChangeset
for help on using the changeset viewer.