Changeset b1e63ac5 for src/main.cc


Ignore:
Timestamp:
Jul 4, 2017, 9:40:16 AM (8 years ago)
Author:
Rob Schluntz <rschlunt@…>
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, resolv-new, with_gc
Children:
208e5be
Parents:
9c951e3 (diff), f7cb0bc (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.
Message:

Merge branch 'master' into references

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main.cc

    r9c951e3 rb1e63ac5  
    1010// Author           : Richard C. Bilson
    1111// Created On       : Fri May 15 23:12:02 2015
    12 // Last Modified By : Andrew Beach
    13 // Last Modified On : Wed May 10 14:45:00 2017
    14 // Update Count     : 437
     12// Last Modified By : Peter A. Buhr
     13// Last Modified On : Thu Jun 29 12:46:50 2017
     14// Update Count     : 441
    1515//
    1616
     
    2525using namespace std;
    2626
    27 #include "Parser/lex.h"
    28 #include "Parser/parser.h"
     27#include "Parser/parser.hh"
    2928#include "Parser/TypedefTable.h"
    3029#include "GenPoly/Lvalue.h"
     
    6463        bresolvep = false,
    6564        bboxp = false,
     65        bcodegenp = false,
    6666        ctorinitp = false,
    6767        declstatsp = false,
     
    145145} // sigSegvBusHandler
    146146
    147 void sigAbortHandler( int sig_num ) {
     147void sigAbortHandler( __attribute__((unused)) int sig_num ) {
    148148        backtrace( 6 );                                                                         // skip first 6 stack frames
    149149        signal( SIGABRT, SIG_DFL);                                                      // reset default signal handler
     
    185185                if ( ! nopreludep ) {                                                   // include gcc builtins
    186186                        // -l is for initial build ONLY and builtins.cf is not in the lib directory so access it here.
    187                         FILE * builtins = fopen( libcfap | treep ? "../prelude/builtins.cf" : CFA_LIBDIR "/builtins.cf", "r" );
    188                         assertf( builtins, "cannot open builtins.cf\n" );
    189                         parse( builtins, LinkageSpec::Compiler );
     187
     188                        // Read to gcc builtins, if not generating the cfa library
     189                        FILE * gcc_builtins = fopen( libcfap | treep ? "../prelude/gcc-builtins.cf" : CFA_LIBDIR "/gcc-builtins.cf", "r" );
     190                        assertf( gcc_builtins, "cannot open gcc-builtins.cf\n" );
     191                        parse( gcc_builtins, LinkageSpec::Compiler );
    190192
    191193                        // read the extra prelude in, if not generating the cfa library
     
    199201                                assertf( prelude, "cannot open prelude.cf\n" );
    200202                                parse( prelude, LinkageSpec::Intrinsic );
     203
     204                                // Read to cfa builtins, if not generating the cfa library
     205                                FILE * builtins = fopen( libcfap | treep ? "../prelude/builtins.cf" : CFA_LIBDIR "/builtins.cf", "r" );
     206                                assertf( builtins, "cannot open builtins.cf\n" );
     207                                parse( builtins, LinkageSpec::Builtin );
    201208                        } // if
    202209                } // if
     
    306313                OPTPRINT( "box" )
    307314                GenPoly::box( translationUnit );
     315
     316                if ( bcodegenp ) {
     317                        dump( translationUnit );
     318                        return 0;
     319                }
    308320
    309321                if ( optind < argc ) {                                                  // any commands after the flags and input file ? => output file name
     
    377389
    378390        int c;
    379         while ( (c = getopt_long( argc, argv, "abBcdefglLmnpqrstTvyzZD:F:", long_opts, &long_index )) != -1 ) {
     391        while ( (c = getopt_long( argc, argv, "abBcCdefglLmnpqrstTvyzZD:F:", long_opts, &long_index )) != -1 ) {
    380392                switch ( c ) {
    381393                  case Ast:
     
    394406                        ctorinitp = true;
    395407                        break;
     408                  case 'C':                                                                             // print before code generation
     409                        bcodegenp = true;
     410                        break;
    396411                  case DeclStats:
    397412                  case 'd':
     
    466481                        break;
    467482                  case '?':
    468                         assertf( false, "Unknown option: '%c'\n", (char)optopt );
     483                        if ( optopt ) {                                                         // short option ?
     484                                assertf( false, "Unknown option: -%c\n", (char)optopt );
     485                        } else {
     486                                assertf( false, "Unknown option: %s\n", argv[optind - 1] );
     487                        } // if
    469488                  default:
    470489                        abort();
Note: See TracChangeset for help on using the changeset viewer.