Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.cc

    ra7c90d4 r3a5131ed  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Mar  5 17:13:33 2017
    13 // Update Count     : 475
     12// Last Modified On : Thu Feb 16 14:56:29 2017
     13// Update Count     : 418
    1414//
    1515
     
    134134
    135135                handleStorageClass( functionDecl );
    136                 DeclarationNode::print_FuncSpec( output, functionDecl->get_funcSpec() );
    137 
     136                if ( functionDecl->get_isInline() ) {
     137                        output << "inline ";
     138                } // if
     139                if ( functionDecl->get_isNoreturn() ) {
     140                        output << "_Noreturn ";
     141                } // if
    138142                output << genType( functionDecl->get_functionType(), mangleName( functionDecl ), pretty );
    139143
     
    831835        }
    832836
     837
    833838        void CodeGenerator::visit( ReturnStmt * returnStmt ) {
    834839                output << "return ";
     
    894899        }
    895900
    896         void CodeGenerator::handleStorageClass( DeclarationWithType * decl ) {
    897                 if ( decl->get_storageClasses().any() ) {
    898                         DeclarationNode::print_StorageClass( output, decl->get_storageClasses() );
    899                 } // if
    900         } // CodeGenerator::handleStorageClass
     901        void CodeGenerator::handleStorageClass( Declaration * decl ) {
     902                switch ( decl->get_storageClass() ) {
     903                  case DeclarationNode::Extern:
     904                        output << "extern ";
     905                        break;
     906                  case DeclarationNode::Static:
     907                        output << "static ";
     908                        break;
     909                  case DeclarationNode::Auto:
     910                        // silently drop storage class
     911                        break;
     912                  case DeclarationNode::Register:
     913                        output << "register ";
     914                        break;
     915                  case DeclarationNode::Inline:
     916                        output << "inline ";
     917                        break;
     918                  case DeclarationNode::Fortran:
     919                        output << "fortran ";
     920                        break;
     921                  case DeclarationNode::Noreturn:
     922                        output << "_Noreturn ";
     923                        break;
     924                  case DeclarationNode::Threadlocal:
     925                        output << "_Thread_local ";
     926                        break;
     927                  case DeclarationNode::NoStorageClass:
     928                        break;
     929                } // switch
     930        }
    901931
    902932        std::string genName( DeclarationWithType * decl ) {
Note: See TracChangeset for help on using the changeset viewer.