Changeset cad355a for src/SymTab
- Timestamp:
- Jul 11, 2016, 5:20:03 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, 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:
- 919d1ba
- Parents:
- 0b4d93ab
- Location:
- src/SymTab
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Autogen.cc
r0b4d93ab rcad355a 84 84 } 85 85 86 *out++ = new ExprStmt( noLabels, fExpr ); 86 Statement * callStmt = new ExprStmt( noLabels, fExpr ); 87 if ( (fname == "?{}" || fname == "^?{}") && ( !obj || ( obj && obj->get_bitfieldWidth() == NULL ) ) ) { 88 // implicitly generated ctor/dtor calls should be wrapped 89 // so that later passes are aware they were generated. 90 // xxx - don't mark as an implicit ctor/dtor if obj is a bitfield, 91 // because this causes the address to be taken at codegen, which is illegal in C. 92 callStmt = new ImplicitCtorDtorStmt( callStmt ); 93 } 94 *out++ = callStmt; 87 95 } 88 96 … … 244 252 } 245 253 246 if ( type->get_qualifiers().isConst ) {247 // don't assign const members 254 if ( type->get_qualifiers().isConst && func->get_name() == "?=?" ) { 255 // don't assign const members, but do construct/destruct 248 256 continue; 249 257 } -
src/SymTab/Autogen.h
r0b4d93ab rcad355a 91 91 block->get_kids().push_back( new DeclStmt( noLabels, index ) ); 92 92 block->get_kids().push_back( new ForStmt( noLabels, initList, cond, inc, new ExprStmt( noLabels, fExpr ) ) ); 93 *out++ = block; 93 94 Statement * stmt = block; 95 if ( fname == "?{}" || fname == "^?{}" ) { 96 // implicitly generated ctor/dtor calls should be wrapped 97 // so that later passes are aware they were generated 98 stmt = new ImplicitCtorDtorStmt( stmt ); 99 } 100 *out++ = stmt; 94 101 } 95 102 } // namespace SymTab
Note:
See TracChangeset
for help on using the changeset viewer.