Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/FixMain.h

    r61efa42 rc6b4432  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // FixMain.h -- Tools to change a Cforall main into a C main.
     7// FixMain.h --
    88//
    99// Author           : Thierry Delisle
     
    1717
    1818#include <iosfwd>
     19#include <memory>
     20#include <list>
     21
     22#include "AST/LinkageSpec.hpp"
    1923
    2024namespace ast {
     
    2529namespace CodeGen {
    2630
    27 /// Is this function a program main function?
    28 bool isMain( const ast::FunctionDecl * decl );
     31class FixMain {
     32public :
     33        static inline ast::Linkage::Spec getMainLinkage() {
     34                return replace_main ? ast::Linkage::Cforall : ast::Linkage::C;
     35        }
    2936
    30 /// Adjust the linkage of main functions.
    31 void fixMainLinkage( ast::TranslationUnit & transUnit, bool replaceMain );
     37        static inline void setReplaceMain(bool val) {
     38                replace_main = val;
     39        }
    3240
    33 /// Add a wrapper around to run the Cforall main.
    34 void fixMainInvoke( ast::TranslationUnit & transUnit,
    35                 std::ostream & os, const char * bootloaderFilename );
     41        static bool isMain(const ast::FunctionDecl * decl);
     42
     43        static void fix( ast::TranslationUnit & translationUnit,
     44                        std::ostream &os, const char * bootloader_filename );
     45
     46private:
     47        static bool replace_main;
     48};
    3649
    3750} // namespace CodeGen
Note: See TracChangeset for help on using the changeset viewer.