Changeset 2f42718 for src/CodeGen


Ignore:
Timestamp:
Feb 22, 2019, 10:43:29 AM (7 years ago)
Author:
tdelisle <tdelisle@…>
Branches:
no_list
Parents:
43e0949
Message:

Parameters and return value of functions are now vectors (and some related clean-up)

Location:
src/CodeGen
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/FixMain.cc

    r43e0949 r2f42718  
    4949
    5050                        os << main_signature->get_scopedMangleName() << "(";
    51                         const auto& params = main_signature->get_functionType()->get_parameters();
     51                        const auto& params = main_signature->get_functionType()->parameters;
    5252                        switch(params.size()) {
    5353                                case 3: os << "(" << genTypeAt(params, 0) << ")argc, (" << genTypeAt(params, 1) << ")argv, (" << genTypeAt(params, 2) << ")envp"; break;
  • src/CodeGen/FixNames.cc

    r43e0949 r2f42718  
    5050                                                                                                                                   main_type = new FunctionType( Type::Qualifiers(), true ), nullptr )
    5151                                };
    52                 main_type->get_returnVals().push_back(
     52                main_type->returnVals.push_back(
    5353                        new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
    5454                );
     
    6363                                                                                                                                   main_type = new FunctionType( Type::Qualifiers(), false ), nullptr )
    6464                                };
    65                 main_type->get_returnVals().push_back(
     65                main_type->returnVals.push_back(
    6666                        new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
    6767                );
    6868
    69                 main_type->get_parameters().push_back(
     69                main_type->parameters.push_back(
    7070                        new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
    7171                );
    7272
    73                 main_type->get_parameters().push_back(
     73                main_type->parameters.push_back(
    7474                        new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0,
    7575                        new PointerType( Type::Qualifiers(), new PointerType( Type::Qualifiers(), new BasicType( Type::Qualifiers(), BasicType::Char ) ) ),
     
    116116
    117117                if(is_main( SymTab::Mangler::mangle(functionDecl, true, true) )) {
    118                         int nargs = functionDecl->get_functionType()->get_parameters().size();
     118                        int nargs = functionDecl->get_functionType()->parameters.size();
    119119                        if( !(nargs == 0 || nargs == 2 || nargs == 3) ) {
    120120                                SemanticError(functionDecl, "Main expected to have 0, 2 or 3 arguments\n");
  • src/CodeGen/GenType.cc

    r43e0949 r2f42718  
    186186                /************* parameters ***************/
    187187
    188                 const std::list<DeclarationWithType *> &pars = funcType->parameters;
     188                const auto & pars = funcType->parameters;
    189189
    190190                if ( pars.empty() ) {
Note: See TracChangeset for help on using the changeset viewer.