Changeset 777ed2b for src/CodeGen
- Timestamp:
- Jul 11, 2018, 11:55:59 AM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, stuck-waitfor-destruct
- Children:
- 0fc52b6
- Parents:
- fc20514 (diff), 7de22b28 (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. - Location:
- src/CodeGen
- Files:
-
- 2 edited
-
CodeGenerator.cc (modified) (3 diffs)
-
GenType.cc (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/CodeGen/CodeGenerator.cc
rfc20514 r777ed2b 164 164 previsit( (BaseSyntaxNode *)node ); 165 165 GuardAction( [this, node](){ 166 if ( printExprTypes ) {166 if ( printExprTypes && node->result ) { 167 167 output << " /* " << genType( node->result, "", pretty, genC ) << " */ "; 168 168 } … … 224 224 225 225 void CodeGenerator::handleAggregate( AggregateDecl * aggDecl, const std::string & kind ) { 226 if( ! aggDecl-> get_parameters().empty() && ! genC ) {226 if( ! aggDecl->parameters.empty() && ! genC ) { 227 227 // assertf( ! genC, "Aggregate type parameters should not reach code generation." ); 228 228 output << "forall("; 229 genCommaList( aggDecl-> get_parameters().begin(), aggDecl->get_parameters().end() );229 genCommaList( aggDecl->parameters.begin(), aggDecl->parameters.end() ); 230 230 output << ")" << endl; 231 231 output << indent; … … 233 233 234 234 output << kind; 235 genAttributes( aggDecl-> get_attributes());236 output << aggDecl-> get_name();235 genAttributes( aggDecl->attributes ); 236 output << aggDecl->name; 237 237 238 238 if ( aggDecl->has_body() ) { 239 std::list< Declaration * > & memb = aggDecl-> get_members();239 std::list< Declaration * > & memb = aggDecl->members; 240 240 output << " {" << endl; 241 241 -
src/CodeGen/GenType.cc
rfc20514 r777ed2b 48 48 void postvisit( ZeroType * zeroType ); 49 49 void postvisit( OneType * oneType ); 50 void postvisit( GlobalScopeType * globalType ); 50 51 void postvisit( TraitInstType * inst ); 51 52 void postvisit( TypeofType * typeof ); 53 void postvisit( QualifiedType * qualType ); 52 54 53 55 private: … … 291 293 } 292 294 295 void GenType::postvisit( GlobalScopeType * globalType ) { 296 assertf( ! genC, "Global scope type should not reach code generation." ); 297 handleQualifiers( globalType ); 298 } 299 293 300 void GenType::postvisit( TraitInstType * inst ) { 294 301 assertf( ! genC, "Trait types should not reach code generation." ); … … 307 314 } 308 315 316 void GenType::postvisit( QualifiedType * qualType ) { 317 assertf( ! genC, "Qualified types should not reach code generation." ); 318 std::ostringstream os; 319 os << genType( qualType->parent, "", pretty, genC, lineMarks ) << "." << genType( qualType->child, "", pretty, genC, lineMarks ) << typeString; 320 typeString = os.str(); 321 handleQualifiers( qualType ); 322 } 323 309 324 void GenType::handleQualifiers( Type * type ) { 310 325 if ( type->get_const() ) {
Note:
See TracChangeset
for help on using the changeset viewer.