Changeset 32cab5b for src/CodeGen
- Timestamp:
- Apr 17, 2018, 12:01:09 PM (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, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, stuck-waitfor-destruct, with_gc
- Children:
- 3265399
- Parents:
- b2fe1c9 (diff), 81bb114 (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:
-
- 4 edited
-
CodeGenerator.cc (modified) (4 diffs)
-
CodeGenerator.h (modified) (1 diff)
-
OperatorTable.cc (modified) (2 diffs)
-
OperatorTable.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/CodeGen/CodeGenerator.cc
rb2fe1c9 r32cab5b 203 203 204 204 void CodeGenerator::handleAggregate( AggregateDecl * aggDecl, const std::string & kind ) { 205 genAttributes( aggDecl->get_attributes() );206 207 205 if( ! aggDecl->get_parameters().empty() && ! genC ) { 208 206 // assertf( ! genC, "Aggregate type parameters should not reach code generation." ); … … 213 211 } 214 212 215 output << kind << aggDecl->get_name(); 213 output << kind; 214 genAttributes( aggDecl->get_attributes() ); 215 output << aggDecl->get_name(); 216 216 217 217 if ( aggDecl->has_body() ) { … … 298 298 output << " }"; 299 299 } 300 } 301 302 void CodeGenerator::postvisit( StaticAssertDecl * assertDecl ) { 303 output << "_Static_assert("; 304 assertDecl->condition->accept( *visitor ); 305 output << ", "; 306 assertDecl->message->accept( *visitor ); 307 output << ")"; 300 308 } 301 309 … … 928 936 output << "continue"; 929 937 break; 938 case BranchStmt::FallThrough: 939 case BranchStmt::FallThroughDefault: 940 assertf( ! genC, "fallthru should not reach code generation." ); 941 output << "fallthru"; 942 break; 930 943 } // switch 944 // print branch target for labelled break/continue/fallthru in debug mode 945 if ( ! genC && branchStmt->get_type() != BranchStmt::Goto ) { 946 if ( ! branchStmt->get_target().empty() ) { 947 output << " " << branchStmt->get_target(); 948 } else if ( branchStmt->get_type() == BranchStmt::FallThrough ) { 949 output << " default"; 950 } 951 } 931 952 output << ";"; 932 953 } -
src/CodeGen/CodeGenerator.h
rb2fe1c9 r32cab5b 42 42 void postvisit( FunctionDecl * ); 43 43 void postvisit( ObjectDecl * ); 44 void postvisit( UnionDecl *aggregateDecl ); 45 void postvisit( EnumDecl *aggregateDecl ); 46 void postvisit( TraitDecl *aggregateDecl ); 47 void postvisit( TypedefDecl *typeDecl ); 48 void postvisit( TypeDecl *typeDecl ); 44 void postvisit( UnionDecl * aggregateDecl ); 45 void postvisit( EnumDecl * aggregateDecl ); 46 void postvisit( TraitDecl * aggregateDecl ); 47 void postvisit( TypedefDecl * typeDecl ); 48 void postvisit( TypeDecl * typeDecl ); 49 void postvisit( StaticAssertDecl * assertDecl ); 49 50 50 51 //*** Initializer -
src/CodeGen/OperatorTable.cc
rb2fe1c9 r32cab5b 79 79 } // namespace 80 80 81 bool operatorLookup( std::string funcName, OperatorInfo &info ) {81 bool operatorLookup( const std::string & funcName, OperatorInfo & info ) { 82 82 static bool init = false; 83 83 if ( ! init ) { … … 100 100 return true; 101 101 } // if 102 } 103 104 bool isOperator( const std::string & funcName ) { 105 OperatorInfo info; 106 return operatorLookup( funcName, info ); 102 107 } 103 108 -
src/CodeGen/OperatorTable.h
rb2fe1c9 r32cab5b 41 41 }; 42 42 43 bool operatorLookup( std::string funcName, OperatorInfo &info ); 43 bool isOperator( const std::string & funcName ); 44 bool operatorLookup( const std::string & funcName, OperatorInfo & info ); 44 45 45 46 bool isConstructor( const std::string & );
Note:
See TracChangeset
for help on using the changeset viewer.