Changes in src/CodeGen/FixNames.cc [0270824:aaa1a99a]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/CodeGen/FixNames.cc
r0270824 raaa1a99a 22 22 #include "SymTab/Mangler.h" 23 23 #include "OperatorTable.h" 24 25 extern std::unique_ptr<FunctionDecl> translation_unit_main_signature; 24 #include "FixMain.h" 26 25 27 26 namespace CodeGen { … … 119 118 120 119 if(is_main( SymTab::Mangler::mangle(functionDecl, true, true) )) { 121 if(translation_unit_main_signature) { 122 throw SemanticError("Multiple definition of main routine\n", functionDecl); 120 int nargs = functionDecl->get_functionType()->get_parameters().size(); 121 if( !(nargs == 0 || nargs == 2 || nargs == 3) ) { 122 throw SemanticError("Main expected to have 0, 2 or 3 arguments\n", functionDecl); 123 123 } 124 125 124 functionDecl->get_statements()->get_kids().push_back( new ReturnStmt( noLabels, new ConstantExpr( Constant( new BasicType( Type::Qualifiers(), BasicType::SignedInt ), "0") ) ) ); 126 translation_unit_main_signature.reset( functionDecl->clone());125 CodeGen::FixMain::registerMain( functionDecl ); 127 126 } 128 127 }
Note: See TracChangeset
for help on using the changeset viewer.