Changeset 7dc2e57b for libcfa


Ignore:
Timestamp:
Jul 15, 2019, 2:43:38 PM (6 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
a87d40b, e67991f
Parents:
ce12e2b (diff), 4f37255 (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' of plg.uwaterloo.ca:software/cfa/cfa-cc

Location:
libcfa/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/bits/debug.cfa

    rce12e2b r7dc2e57b  
    99// Author           : Thierry Delisle
    1010// Created On       : Thu Mar 30 12:30:01 2017
    11 // Last Modified By :
    12 // Last Modified On :
    13 // Update Count     : 1
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Sun Jul 14 22:17:35 2019
     13// Update Count     : 4
    1414//
    1515
     
    2323}
    2424
    25 enum { buffer_size = 512 };
     25enum { buffer_size = 4096 };
    2626static char buffer[ buffer_size ];
    2727
  • libcfa/src/fstream.cfa

    rce12e2b r7dc2e57b  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 12 12:03:53 2019
    13 // Update Count     : 344
     12// Last Modified On : Sun Jul 14 11:51:10 2019
     13// Update Count     : 347
    1414//
    1515
     
    119119        #ifdef __CFA_DEBUG__
    120120        if ( file == 0 ) {
    121                 abort( IO_MSG "open output file \"%s\", %s", name, strerror( errno ) );
     121                abort | IO_MSG "open output file \"" | name | "\"" | nl | strerror( errno );
    122122        } // if
    123123        #endif // __CFA_DEBUG__
     
    133133
    134134        if ( fclose( (FILE *)(os.file) ) == EOF ) {
    135                 abort( IO_MSG "close output %s", strerror( errno ) );
     135                abort | IO_MSG "close output" | nl | strerror( errno );
    136136        } // if
    137137} // close
     
    139139ofstream & write( ofstream & os, const char * data, size_t size ) {
    140140        if ( fail( os ) ) {
    141                 abort( "attempt write I/O on failed stream\n" );
     141                abort | IO_MSG "attempt write I/O on failed stream";
    142142        } // if
    143143
    144144        if ( fwrite( data, 1, size, (FILE *)(os.file) ) != size ) {
    145                 abort( IO_MSG "write %s", strerror( errno ) );
     145                abort | IO_MSG "write" | nl | strerror( errno );
    146146        } // if
    147147        return os;
     
    154154        if ( len == EOF ) {
    155155                if ( ferror( (FILE *)(os.file) ) ) {
    156                         abort( "invalid write\n" );
     156                        abort | IO_MSG "invalid write";
    157157                } // if
    158158        } // if
     
    211211        #ifdef __CFA_DEBUG__
    212212        if ( file == 0 ) {
    213                 abort( IO_MSG "open input file \"%s\", %s\n", name, strerror( errno ) );
     213                abort | IO_MSG "open input file \"" | name | "\"" | nl | strerror( errno );
    214214        } // if
    215215        #endif // __CFA_DEBUG__
     
    225225
    226226        if ( fclose( (FILE *)(is.file) ) == EOF ) {
    227                 abort( IO_MSG "close input %s", strerror( errno ) );
     227                abort | IO_MSG "close input" | nl | strerror( errno );
    228228        } // if
    229229} // close
     
    231231ifstream & read( ifstream & is, char * data, size_t size ) {
    232232        if ( fail( is ) ) {
    233                 abort( "attempt read I/O on failed stream\n" );
     233                abort | IO_MSG "attempt read I/O on failed stream";
    234234        } // if
    235235
    236236        if ( fread( data, size, 1, (FILE *)(is.file) ) == 0 ) {
    237                 abort( IO_MSG "read %s", strerror( errno ) );
     237                abort | IO_MSG "read" | nl | strerror( errno );
    238238        } // if
    239239        return is;
     
    242242ifstream &ungetc( ifstream & is, char c ) {
    243243        if ( fail( is ) ) {
    244                 abort( "attempt ungetc I/O on failed stream\n" );
     244                abort | IO_MSG "attempt ungetc I/O on failed stream";
    245245        } // if
    246246
    247247        if ( ungetc( c, (FILE *)(is.file) ) == EOF ) {
    248                 abort( IO_MSG "ungetc %s", strerror( errno ) );
     248                abort | IO_MSG "ungetc" | nl | strerror( errno );
    249249        } // if
    250250        return is;
     
    258258        if ( len == EOF ) {
    259259                if ( ferror( (FILE *)(is.file) ) ) {
    260                         abort( "invalid read\n" );
     260                        abort | IO_MSG "invalid read";
    261261                } // if
    262262        } // if
  • libcfa/src/gmp.hfa

    rce12e2b r7dc2e57b  
    1010// Created On       : Tue Apr 19 08:43:43 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 12 12:02:55 2019
    13 // Update Count     : 26
     12// Last Modified On : Sat Jul 13 15:25:05 2019
     13// Update Count     : 27
    1414//
    1515
     
    4343        Int ?=?( Int & lhs, long int rhs ) { mpz_set_si( lhs.mpz, rhs ); return lhs; }
    4444        Int ?=?( Int & lhs, unsigned long int rhs ) { mpz_set_ui( lhs.mpz, rhs ); return lhs; }
    45         Int ?=?( Int & lhs, const char * rhs ) { if ( mpz_set_str( lhs.mpz, rhs, 0 ) ) { printf( "invalid string conversion\n" ); abort(); } return lhs; }
     45        Int ?=?( Int & lhs, const char * rhs ) { if ( mpz_set_str( lhs.mpz, rhs, 0 ) ) { abort | "invalid string conversion"; } return lhs; }
    4646
    4747        char ?=?( char & lhs, Int rhs ) { char val = mpz_get_si( rhs.mpz ); lhs = val; return lhs; }
  • libcfa/src/interpose.cfa

    rce12e2b r7dc2e57b  
    1010// Created On       : Wed Mar 29 16:10:31 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May  5 11:37:35 2018
    13 // Update Count     : 111
     12// Last Modified On : Sun Jul 14 22:57:16 2019
     13// Update Count     : 116
    1414//
    1515
     
    8181//=============================================================================================
    8282
    83 void sigHandler_segv ( __CFA_SIGPARMS__ );
    84 void sigHandler_ill  ( __CFA_SIGPARMS__ );
    85 void sigHandler_fpe  ( __CFA_SIGPARMS__ );
    86 void sigHandler_abort( __CFA_SIGPARMS__ );
    87 void sigHandler_term ( __CFA_SIGPARMS__ );
     83void sigHandler_segv( __CFA_SIGPARMS__ );
     84void sigHandler_ill ( __CFA_SIGPARMS__ );
     85void sigHandler_fpe ( __CFA_SIGPARMS__ );
     86void sigHandler_abrt( __CFA_SIGPARMS__ );
     87void sigHandler_term( __CFA_SIGPARMS__ );
    8888
    8989struct {
     
    110110                __cfaabi_sigaction( SIGILL , sigHandler_ill  , SA_SIGINFO );
    111111                __cfaabi_sigaction( SIGFPE , sigHandler_fpe  , SA_SIGINFO );
    112                 __cfaabi_sigaction( SIGABRT, sigHandler_abort, SA_SIGINFO | SA_RESETHAND);
     112                __cfaabi_sigaction( SIGABRT, sigHandler_abrt, SA_SIGINFO | SA_RESETHAND);
    113113                __cfaabi_sigaction( SIGTERM, sigHandler_term , SA_SIGINFO );
    114114                __cfaabi_sigaction( SIGINT , sigHandler_term , SA_SIGINFO );
     
    204204                        if ( *p == '(' ) {
    205205                                name = p;
    206                         }
    207                         else if ( *p == '+' ) {
     206                        } else if ( *p == '+' ) {
    208207                                offset_begin = p;
    209                         }
    210                         else if ( *p == ')' ) {
     208                        } else if ( *p == ')' ) {
    211209                                offset_end = p;
    212210                                break;
     
    223221
    224222                        __cfaabi_dbg_bits_print_nolock( "(%i) %s : %s + %s %s\n", frameNo, messages[i], name, offset_begin, offset_end);
    225                 }
    226                 // otherwise, print the whole line
    227                 else {
     223                } else {                                                                                // otherwise, print the whole line
    228224                        __cfaabi_dbg_bits_print_nolock( "(%i) %s\n", frameNo, messages[i] );
    229225                }
     
    258254}
    259255
    260 void sigHandler_abort( __CFA_SIGPARMS__ ) {
     256void sigHandler_abrt( __CFA_SIGPARMS__ ) {
    261257        __cfaabi_backtrace();
    262258
  • libcfa/src/iostream.cfa

    rce12e2b r7dc2e57b  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 12 12:04:13 2019
    13 // Update Count     : 819
     12// Last Modified On : Sat Jul 13 08:07:59 2019
     13// Update Count     : 821
    1414//
    1515
     
    499499                                if ( ! f.flags.left ) { \
    500500                                        buf[i] = '.'; buf[i + 1] = '\0'; \
    501                                         if ( buf[0] == ' ' ) bufbeg = 1; /* decimal point within width */ \
     501                                        if ( buf[0] == ' ' ) bufbeg = 1;        /* decimal point within width */ \
    502502                                } else { \
    503503                                        for ( i = 0; i < len && buf[i] != ' '; i += 1 ); /* trailing blank ? */ \
     
    546546forall( dtype ostype | ostream( ostype ) ) {
    547547        ostype & ?|?( ostype & os, _Ostream_Manip(char) f ) {
    548                 if ( f.base != 'c' ) {                                                          // bespoke binary/octal/hex format
     548                if ( f.base != 'c' ) {                                                  // bespoke binary/octal/hex format
    549549                        _Ostream_Manip(unsigned char) fmtuc @= { f.val, f.wd, f.pc, f.base, {'\0'} };
    550550                        fmtuc.flags.pc = f.flags.pc;
     
    558558
    559559                #define CFMTNP "% * "
    560                 char fmtstr[sizeof(CFMTNP)];                                            // sizeof includes '\0'
     560                char fmtstr[sizeof(CFMTNP)];                                    // sizeof includes '\0'
    561561                memcpy( &fmtstr, CFMTNP, sizeof(CFMTNP) );
    562                 int star = 1;                                                                           // position before first '*'
     562                int star = 1;                                                                   // position before first '*'
    563563
    564564                // Insert flags into spaces before '*', from right to left.
     
    566566                fmtstr[star] = '%';
    567567
    568                 fmtstr[sizeof(CFMTNP)-2] = f.base;                                      // sizeof includes '\0'
     568                fmtstr[sizeof(CFMTNP)-2] = f.base;                              // sizeof includes '\0'
    569569                // printf( "%d %s\n", f.wd, &fmtstr[star] );
    570570                fmt( os, &fmtstr[star], f.wd, f.val );
     
    631631                else {
    632632                        fprintf( stderr, "invalid Boolean constant\n" );
    633                         abort();
     633                        abort();                                                                        // cannot use abort stream
    634634                } // if
    635635                return is;
     
    639639                char temp;
    640640                for () {
    641                         fmt( is, "%c", &temp );                                                 // must pass pointer through varg to fmt
     641                        fmt( is, "%c", &temp );                                         // must pass pointer through varg to fmt
    642642                        // do not overwrite parameter with newline unless appropriate
    643643                        if ( temp != '\n' || getANL( is ) ) { c = temp; break; }
     
    773773        if ( ! f.s ) {
    774774                // printf( "skip %s %d\n", f.scanset, f.wd );
    775                 if ( f.wd == -1 ) fmt( is, f.scanset, "" ); // no input arguments
     775                if ( f.wd == -1 ) fmt( is, f.scanset, "" );             // no input arguments
    776776                else for ( f.wd ) fmt( is, "%*c" );
    777777                return is;
  • libcfa/src/rational.cfa

    rce12e2b r7dc2e57b  
    1010// Created On       : Wed Apr  6 17:54:28 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 12 12:02:36 2019
    13 // Update Count     : 183
     12// Last Modified On : Fri Jul 12 18:12:08 2019
     13// Update Count     : 184
    1414//
    1515
     
    3535        static RationalImpl simplify( RationalImpl & n, RationalImpl & d ) {
    3636                if ( d == (RationalImpl){0} ) {
    37                         abort( "Invalid rational number construction: denominator cannot be equal to 0.\n" );
     37                        abort | "Invalid rational number construction: denominator cannot be equal to 0.";
    3838                } // exit
    3939                if ( d < (RationalImpl){0} ) { d = -d; n = -n; } // move sign to numerator
  • libcfa/src/time.cfa

    rce12e2b r7dc2e57b  
    1010// Created On       : Tue Mar 27 13:33:14 2018
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 12 12:03:19 2019
    13 // Update Count     : 59
     12// Last Modified On : Sat Jul 13 08:41:55 2019
     13// Update Count     : 65
    1414//
    1515
    1616#include "time.hfa"
    17 #include "iostream.hfa"
     17#include "fstream.hfa"
    1818#include <stdio.h>                                                                              // snprintf
    1919#include <assert.h>
     
    5252
    5353#ifdef __CFA_DEBUG__
    54 #define CreateFmt "Attempt to create Time( year=%d (>=1970), month=%d (1-12), day=%d (1-31), hour=%d (0-23), min=%d (0-59), sec=%d (0-60), nsec=%d (0-999_999_999), " \
    55         "which exceeds range 00:00:00 UTC, January 1, 1970 to 03:14:07 UTC, January 19, 2038."
     54static void tabort( int year, int month, int day, int hour, int min, int sec, int nsec ) {
     55        abort | "Attempt to create Time( year=" | year | "(>=1970), month=" | month | "(1-12), day=" | day | "(1-31), hour=" | hour | "(0-23), min=" | min | "(0-59), sec=" | sec
     56                  | "(0-60), nsec=" | nsec | "(0-999_999_999), which exceeds range 00:00:00 UTC, January 1, 1970 to 03:14:07 UTC, January 19, 2038.";
     57} // tabort
    5658#endif // __CFA_DEBUG__
    5759
     
    6365#ifdef __CFA_DEBUG__
    6466        if ( month < 1 || 12 < month ) {
    65                 abort( CreateFmt, year, month, day, hour, (int)min, sec, nsec );
     67                tabort( year, month, day, hour, min, sec, nsec );
    6668        } // if
    6769#endif // __CFA_DEBUG__
     
    6971#ifdef __CFA_DEBUG__
    7072        if ( day < 1 || 31 < day ) {
    71                 abort( CreateFmt, year, month, day, hour, (int)min, sec, nsec );
     73                tabort( year, month, day, hour, min, sec, nsec );
    7274        } // if
    7375#endif // __CFA_DEBUG__
     
    7981#ifdef __CFA_DEBUG__
    8082        if ( epochsec == (time_t)-1 ) {
    81                 abort( CreateFmt, year, month, day, hour, (int)min, sec, nsec );
     83                tabort( year, month, day, hour, min, sec, nsec );
    8284        } // if
    8385#endif // __CFA_DEBUG__
     
    8587#ifdef __CFA_DEBUG__
    8688        if ( tv > 2147483647LL * TIMEGRAN ) {                           // between 00:00:00 UTC, January 1, 1970 and 03:14:07 UTC, January 19, 2038.
    87                 abort( CreateFmt, year, month, day, hour, (int)min, sec, nsec );
     89                tabort( year, month, day, hour, min, sec, nsec );
    8890        } // if
    8991#endif // __CFA_DEBUG__
Note: See TracChangeset for help on using the changeset viewer.