Changes in / [4084928e:364d70c]


Ignore:
Files:
4 deleted
34 edited

Legend:

Unmodified
Added
Removed
  • .gitignore

    r4084928e r364d70c  
    2929
    3030# src executables, for lib and bin
    31 src/driver/as
     31src/driver/cc1
    3232src/driver/cfa
    3333src/driver/cfa-cpp
    34 src/driver/cc1
    3534
    3635src/prelude/bootloader.c
  • Jenkins/FullBuild

    r4084928e r364d70c  
    8787
    8888        if(result.result != 'SUCCESS') {
    89                 sh("wget -q -O - http://localhost:8084/jenkins/job/Cforall/job/master/${result.number}/consoleText")
     89                sh("wget -q -O - ${result.absoluteUrl}/consoleText")
    9090                error(result.result)
    9191        }
  • Jenkinsfile

    r4084928e r364d70c  
    2222        do_sendemail    = true
    2323
    24         builddir = pwd tmp: true
    25         srcdir   = pwd tmp: false
    26 
    2724        currentBuild.result = "SUCCESS"
    2825
     
    3532                        prepare_build()
    3633
     34                        checkout()
     35
     36                        notify_server(0)
     37
     38                        build()
     39
     40                        test()
     41
     42                        benchmark()
     43
    3744                        clean()
    38 
    39                         checkout()
    40 
    41                         notify_server(0)
    42 
    43                         build()
    44 
    45                         test()
    46 
    47                         benchmark()
    4845
    4946                        build_doc()
     
    7067        finally {
    7168                //Send email with final results if this is not a full build
    72                 if( do_sendemail ) {
     69                if( do_sendemail && !bIsSandbox ) {
    7370                        echo 'Notifying users of result'
    74                         email(currentBuild.result, log_needed, bIsSandbox)
     71                        email(currentBuild.result, log_needed)
    7572                }
    7673
     
    158155        do_sendemail    = ! (pSilent == 'true')
    159156
    160         collect_git_info()
    161 
    162         def full = do_alltests ? " (Full)" : ""
    163         currentBuild.description = "${compiler.cc_name}:${arch_name}${full}"
    164 
    165157        echo """Compiler              : ${compiler.cc_name} (${compiler.cpp_cc}/${compiler.cfa_cc})
    166158Architecture            : ${arch_name}
     
    172164Silent                  : ${ pSilent.toString() }
    173165"""
     166
     167        collect_git_info()
    174168}
    175169
     
    247241// Main compilation routines
    248242//===========================================================================================================
    249 def clean() {
    250         build_stage('Cleanup') {
    251                 // clean the build by wipping the build directory
    252                 dir(builddir) {
    253                         deleteDir()
    254                 }
    255 
    256                 //Clean all temporary files to make sure no artifacts of the previous build remain
    257                 sh 'git clean -fdqx'
    258 
    259                 //Reset the git repo so no local changes persist
    260                 sh 'git reset --hard'
    261         }
    262 }
    263 
    264243//Compilation script is done here but environnement set-up and error handling is done in main loop
    265244def checkout() {
     
    267246                //checkout the source code and clean the repo
    268247                checkout scm
     248
     249                //Clean all temporary files to make sure no artifacts of the previous build remain
     250                sh 'git clean -fdqx'
     251
     252                //Reset the git repo so no local changes persist
     253                sh 'git reset --hard'
    269254        }
    270255}
     
    272257def build() {
    273258        build_stage('Build') {
     259
     260                def install_dir = pwd tmp: true
     261
    274262                // Build outside of the src tree to ease cleaning
    275                 dir (builddir) {
     263                sh "mkdir -p build"
     264                dir ('build') {
    276265                        //Configure the conpilation (Output is not relevant)
    277266                        //Use the current directory as the installation target so nothing escapes the sandbox
    278267                        //Also specify the compiler by hand
    279                         sh "${srcdir}/configure CXX=${compiler.cpp_cc} ${architecture} --with-backend-compiler=${compiler.cfa_cc} --enable-silent-rules --quiet"
     268                        sh "../configure CXX=${compiler.cpp_cc} ${architecture} --with-backend-compiler=${compiler.cfa_cc} --prefix=${install_dir} --enable-silent-rules --quiet"
    280269
    281270                        //Compile the project
     
    288277        build_stage('Test') {
    289278
    290                 dir (builddir) {
    291                         //Run the tests from the tests directory
    292                         if ( do_alltests ) {
    293                                 sh 'make --no-print-directory -C src/tests all-tests debug=yes'
    294                                 sh 'make --no-print-directory -C src/tests all-tests debug=no '
    295                         }
    296                         else {
    297                                 sh 'make --no-print-directory -C src/tests'
    298                         }
     279                //Run the tests from the tests directory
     280                if ( do_alltests ) {
     281                        sh 'make -C build/src/tests all-tests debug=yes --no-print-directory'
     282                        sh 'make -C build/src/tests all-tests debug=no --no-print-directory'
     283                }
     284                else {
     285                        sh 'make -C build/src/tests --no-print-directory'
    299286                }
    300287        }
     
    306293                if( !do_benchmark ) return
    307294
    308                 dir (builddir) {
    309                         //Append bench results
    310                         sh "make --no-print-directory -C src/benchmark jenkins githash=${gitRefNewValue} arch=${arch_name} | tee ${srcdir}/bench.json"
    311                 }
     295                //Append bench results
     296                sh 'make -C build/src/benchmark --no-print-directory jenkins githash=' + gitRefNewValue + ' arch=' + arch_name + ' | tee bench.json'
     297        }
     298}
     299
     300def clean() {
     301        build_stage('Cleanup') {
     302                // clean the build by wipping the build directory
     303                sh 'rm -rf build'
    312304        }
    313305}
     
    342334//===========================================================================================================
    343335//Standard build email notification
    344 def email(String status, boolean log, boolean bIsSandbox) {
     336def email(String status, boolean log) {
    345337        //Since tokenizer doesn't work, figure stuff out from the environnement variables and command line
    346338        //Configurations for email format
     
    385377        def email_to = "cforall@lists.uwaterloo.ca"
    386378
    387         if( !bIsSandbox ) {
    388                 //send email notification
    389                 emailext body: email_body, subject: email_subject, to: email_to, attachLog: log
    390         } else {
    391                 echo "Would send email to: ${email_to}"
    392                 echo "With title: ${email_subject}"
    393                 echo "Content: \n${email_body}"
    394         }
    395 }
     379        //send email notification
     380        emailext body: email_body, subject: email_subject, to: email_to, attachLog: log
     381}
  • Makefile.in

    r4084928e r364d70c  
    250250AWK = @AWK@
    251251BACKEND_CC = @BACKEND_CC@               # C compiler used to compile Cforall programs, versus C++ compiler used to build cfa command
    252 BUILD_IN_TREE_FLAGS = @BUILD_IN_TREE_FLAGS@
    253 BUILD_IN_TREE_FLAGS_NOLIB = @BUILD_IN_TREE_FLAGS_NOLIB@
    254252CC = @CC@
    255253CCAS = @CCAS@
     
    257255CCASFLAGS = @CCASFLAGS@
    258256CCDEPMODE = @CCDEPMODE@
    259 CFACC = @CFACC@
    260 CFACPP = @CFACPP@
    261257CFA_BACKEND_CC = @CFA_BACKEND_CC@
    262258CFA_BINDIR = @CFA_BINDIR@
     
    275271DEFS = @DEFS@
    276272DEPDIR = @DEPDIR@
    277 DRIVER_DIR = @DRIVER_DIR@
    278273ECHO_C = @ECHO_C@
    279274ECHO_N = @ECHO_N@
  • configure

    r4084928e r364d70c  
    674674build_cpu
    675675build
    676 BUILD_IN_TREE_FLAGS
    677 BUILD_IN_TREE_FLAGS_NOLIB
    678 CFACPP
    679 CFACC
    680 DRIVER_DIR
    681676CFA_LIBDIR
    682677CFA_BINDIR
     
    33803375
    33813376
    3382 # Create variables for commonly used targets
    3383 DRIVER_DIR='$(top_builddir)/src/driver'
    3384 CFACC=${DRIVER_DIR}/cfa
    3385 CFACPP=${DRIVER_DIR}/cfa-cpp
    3386 
    3387 
    3388 
    3389 
    3390 # Flag variables needed to build in tree
    3391 LIBCFA_SRC='$(top_srcdir)/src/libcfa'
    3392 LIBCFA_BUILD='$(top_builddir)/src/libcfa'
    3393 BUILD_IN_TREE_FLAGS_NOLIB="-XCFA -t -B${DRIVER_DIR}"
    3394 BUILD_IN_TREE_FLAGS="${BUILD_IN_TREE_FLAGS_NOLIB} -L${LIBCFA_BUILD} -I${LIBCFA_SRC} -I${LIBCFA_SRC}/containers -I${LIBCFA_SRC}/concurrency -I${LIBCFA_SRC}/stdhdr"
    3395 
    3396 
    3397 
    33983377# Make sure we can run config.sub.
    33993378$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
  • configure.ac

    r4084928e r364d70c  
    170170AC_DEFINE_UNQUOTED(CFA_LIBDIR, "${cfa_libdir}", [Location of cc1 and cfa-cpp commands.])
    171171AC_SUBST(CFA_LIBDIR, ${cfa_libdir})
    172 
    173 # Create variables for commonly used targets
    174 DRIVER_DIR='$(top_builddir)/src/driver'
    175 CFACC=${DRIVER_DIR}/cfa
    176 CFACPP=${DRIVER_DIR}/cfa-cpp
    177 AC_SUBST(DRIVER_DIR)
    178 AC_SUBST(CFACC)
    179 AC_SUBST(CFACPP)
    180 
    181 # Flag variables needed to build in tree
    182 LIBCFA_SRC='$(top_srcdir)/src/libcfa'
    183 LIBCFA_BUILD='$(top_builddir)/src/libcfa'
    184 BUILD_IN_TREE_FLAGS_NOLIB="-XCFA -t -B${DRIVER_DIR}"
    185 BUILD_IN_TREE_FLAGS="${BUILD_IN_TREE_FLAGS_NOLIB} -L${LIBCFA_BUILD} -I${LIBCFA_SRC} -I${LIBCFA_SRC}/containers -I${LIBCFA_SRC}/concurrency -I${LIBCFA_SRC}/stdhdr"
    186 AC_SUBST(BUILD_IN_TREE_FLAGS_NOLIB)
    187 AC_SUBST(BUILD_IN_TREE_FLAGS)
    188172
    189173AC_CANONICAL_BUILD
  • doc/papers/general/Paper.tex

    r4084928e r364d70c  
    203203The C programming language is a foundational technology for modern computing with millions of lines of code implementing everything from hobby projects to commercial operating-systems.
    204204This installation base and the programmers producing it represent a massive software-engineering investment spanning decades and likely to continue for decades more.
    205 Nevertheless, C, first standardized almost thirty years ago, lacks many features that make programming in more modern languages safer and more productive.
     205Nevertheless, C, first standardized almost forty years ago, lacks many features that make programming in more modern languages safer and more productive.
    206206
    207207The goal of the \CFA project (pronounced ``C-for-all'') is to create an extension of C that provides modern safety and productivity features while still ensuring strong backwards compatibility with C and its programmers.
  • doc/user/user.tex

    r4084928e r364d70c  
    1111%% Created On       : Wed Apr  6 14:53:29 2016
    1212%% Last Modified By : Peter A. Buhr
    13 %% Last Modified On : Thu Jul 26 17:29:05 2018
    14 %% Update Count     : 3366
     13%% Last Modified On : Mon Jul  9 10:49:52 2018
     14%% Update Count     : 3361
    1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1616
     
    59675967void * memalign( size_t align, size_t size );§\indexc{memalign}§
    59685968int posix_memalign( void ** ptr, size_t align, size_t size );§\indexc{posix_memalign}§
     5969}
     5970
     5971// §\CFA§ safe equivalents, i.e., implicit size specification
     5972forall( dtype T | sized(T) ) T * malloc( void );
     5973forall( dtype T | sized(T) ) T * calloc( size_t dim );
     5974forall( dtype T | sized(T) ) T * realloc( T * ptr, size_t size );
     5975forall( dtype T | sized(T) ) T * memalign( size_t align );
     5976forall( dtype T | sized(T) ) T * aligned_alloc( size_t align );
     5977forall( dtype T | sized(T) ) int posix_memalign( T ** ptr, size_t align );
     5978
     5979// §\CFA§ safe general allocation, fill, resize, array
     5980forall( dtype T | sized(T) ) T * alloc( void );§\indexc{alloc}§
     5981forall( dtype T | sized(T) ) T * alloc( char fill );
     5982forall( dtype T | sized(T) ) T * alloc( size_t dim );
     5983forall( dtype T | sized(T) ) T * alloc( size_t dim, char fill );
     5984forall( dtype T | sized(T) ) T * alloc( T ptr[], size_t dim );
     5985forall( dtype T | sized(T) ) T * alloc( T ptr[], size_t dim, char fill );
     5986
     5987// §\CFA§ safe general allocation, align, fill, array
     5988forall( dtype T | sized(T) ) T * align_alloc( size_t align );
     5989forall( dtype T | sized(T) ) T * align_alloc( size_t align, char fill );
     5990forall( dtype T | sized(T) ) T * align_alloc( size_t align, size_t dim );
     5991forall( dtype T | sized(T) ) T * align_alloc( size_t align, size_t dim, char fill );
    59695992
    59705993// C unsafe initialization/copy
     5994extern "C" {
    59715995void * memset( void * dest, int c, size_t size );
    59725996void * memcpy( void * dest, const void * src, size_t size );
    59735997}
    59745998
    5975 forall( dtype T | sized(T) ) {
    5976 // §\CFA§ safe equivalents, i.e., implicit size specification
    5977         T * malloc( void );
    5978         T * calloc( size_t dim );
    5979         T * realloc( T * ptr, size_t size );
    5980         T * memalign( size_t align );
    5981         T * aligned_alloc( size_t align );
    5982         int posix_memalign( T ** ptr, size_t align );
    5983 
    5984 // §\CFA§ safe general allocation, fill, resize, array
    5985         T * alloc( void );§\indexc{alloc}§
    5986         T * alloc( char fill );
    5987         T * alloc( size_t dim );
    5988         T * alloc( size_t dim, char fill );
    5989         T * alloc( T ptr[], size_t dim );
    5990         T * alloc( T ptr[], size_t dim, char fill );
    5991 
    5992 // §\CFA§ safe general allocation, align, fill, array
    5993         T * align_alloc( size_t align );
    5994         T * align_alloc( size_t align, char fill );
    5995         T * align_alloc( size_t align, size_t dim );
    5996         T * align_alloc( size_t align, size_t dim, char fill );
    5997 
    59985999// §\CFA§ safe initialization/copy, i.e., implicit size specification
    5999         T * memset( T * dest, char c );§\indexc{memset}§
    6000         T * memcpy( T * dest, const T * src );§\indexc{memcpy}§
     6000forall( dtype T | sized(T) ) T * memset( T * dest, char c );§\indexc{memset}§
     6001forall( dtype T | sized(T) ) T * memcpy( T * dest, const T * src );§\indexc{memcpy}§
    60016002
    60026003// §\CFA§ safe initialization/copy array
    6003         T * amemset( T dest[], char c, size_t dim );
    6004         T * amemcpy( T dest[], const T src[], size_t dim );
    6005 }
     6004forall( dtype T | sized(T) ) T * memset( T dest[], size_t dim, char c );
     6005forall( dtype T | sized(T) ) T * memcpy( T dest[], const T src[], size_t dim );
    60066006
    60076007// §\CFA§ allocation/deallocation and constructor/destructor
     
    60636063forall( otype T | { int ?<?( T, T ); } )
    60646064void qsort( const T * arr, size_t dim );§\indexc{qsort}§
    6065 
    6066 forall( otype E | { int ?<?( E, E ); } ) {
    6067         E * bsearch( E key, const E * vals, size_t dim );§\indexc{bsearch}§     §\C{// location}§
    6068         size_t bsearch( E key, const E * vals, size_t dim );§\C{// position}§
    6069         E * bsearchl( E key, const E * vals, size_t dim );§\indexc{bsearchl}§
    6070         size_t bsearchl( E key, const E * vals, size_t dim );
    6071         E * bsearchu( E key, const E * vals, size_t dim );§\indexc{bsearchu}§
    6072         size_t bsearchu( E key, const E * vals, size_t dim );
    6073 }
    6074 
    6075 forall( otype K, otype E | { int ?<?( K, K ); K getKey( const E & ); } ) {
    6076         E * bsearch( K key, const E * vals, size_t dim );
    6077         size_t bsearch( K key, const E * vals, size_t dim );
    6078         E * bsearchl( K key, const E * vals, size_t dim );
    6079         size_t bsearchl( K key, const E * vals, size_t dim );
    6080         E * bsearchu( K key, const E * vals, size_t dim );
    6081         size_t bsearchu( K key, const E * vals, size_t dim );
    6082 }
    6083 
    6084 forall( otype E | { int ?<?( E, E ); } ) {
    6085         void qsort( E * vals, size_t dim );§\indexc{qsort}§
    6086 }
    60876065\end{cfa}
    60886066
  • src/Makefile.am

    r4084928e r364d70c  
    4242
    4343# put into lib for now
    44 cfa_cpplibdir = $(CFA_LIBDIR)
     44cfa_cpplibdir = ${CFA_LIBDIR}
    4545cfa_cpplib_PROGRAMS = driver/cfa-cpp demangler
    4646
    47 driver_cfa_cpp_SOURCES = $(SRC)
     47driver_cfa_cpp_SOURCES = ${SRC}
    4848driver_cfa_cpp_LDADD = -ldl                     # yywrap
    49 driver_cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -Wextra -DDEBUG_ALL -I./Parser -I$(srcdir)/Parser -I$(srcdir)/include -DYY_NO_INPUT -O2 -g -std=c++14
     49driver_cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -Wextra -DDEBUG_ALL -I./Parser -I${abs_top_srcdir}/src/Parser -I${abs_top_srcdir}/src/include -DYY_NO_INPUT -O2 -g -std=c++14
    5050driver_cfa_cpp_LDFLAGS = -Xlinker -export-dynamic
    5151
  • src/Makefile.in

    r4084928e r364d70c  
    474474AWK = @AWK@
    475475BACKEND_CC = @BACKEND_CC@
    476 BUILD_IN_TREE_FLAGS = @BUILD_IN_TREE_FLAGS@
    477 BUILD_IN_TREE_FLAGS_NOLIB = @BUILD_IN_TREE_FLAGS_NOLIB@
    478476CC = @CC@
    479477CCAS = @CCAS@
     
    481479CCASFLAGS = @CCASFLAGS@
    482480CCDEPMODE = @CCDEPMODE@
    483 CFACC = @CFACC@
    484 CFACPP = @CFACPP@
    485481CFA_BACKEND_CC = @CFA_BACKEND_CC@
    486482CFA_BINDIR = @CFA_BINDIR@
     
    499495DEFS = @DEFS@
    500496DEPDIR = @DEPDIR@
    501 DRIVER_DIR = @DRIVER_DIR@
    502497ECHO_C = @ECHO_C@
    503498ECHO_N = @ECHO_N@
     
    651646
    652647# put into lib for now
    653 cfa_cpplibdir = $(CFA_LIBDIR)
    654 driver_cfa_cpp_SOURCES = $(SRC)
     648cfa_cpplibdir = ${CFA_LIBDIR}
     649driver_cfa_cpp_SOURCES = ${SRC}
    655650driver_cfa_cpp_LDADD = -ldl                     # yywrap
    656 driver_cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -Wextra -DDEBUG_ALL -I./Parser -I$(srcdir)/Parser -I$(srcdir)/include -DYY_NO_INPUT -O2 -g -std=c++14
     651driver_cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -Wextra -DDEBUG_ALL -I./Parser -I${abs_top_srcdir}/src/Parser -I${abs_top_srcdir}/src/include -DYY_NO_INPUT -O2 -g -std=c++14
    657652driver_cfa_cpp_LDFLAGS = -Xlinker -export-dynamic
    658653demangler_SOURCES = SymTab/demangler.cc
  • src/Parser/ParseNode.h

    r4084928e r364d70c  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Aug  4 09:39:40 2018
    13 // Update Count     : 853
     12// Last Modified On : Fri Jul 20 14:56:30 2018
     13// Update Count     : 850
    1414//
    1515
     
    132132        void printOneLine( __attribute__((unused)) std::ostream & os, __attribute__((unused)) int indent = 0 ) const {}
    133133
    134         Expression *get_expr() const { return expr.get(); }
    135134        template<typename T>
    136135        bool isExpressionType() const { return nullptr != dynamic_cast<T>(expr.get()); }
     
    391390Statement * build_expr( ExpressionNode * ctl );
    392391
    393 struct IfCtrl {
    394         IfCtrl( DeclarationNode * decl, ExpressionNode * condition ) :
     392struct IfCtl {
     393        IfCtl( DeclarationNode * decl, ExpressionNode * condition ) :
    395394                init( decl ? new StatementNode( decl ) : nullptr ), condition( condition ) {}
    396395
     
    399398};
    400399
    401 struct ForCtrl {
    402         ForCtrl( ExpressionNode * expr, ExpressionNode * condition, ExpressionNode * change ) :
     400struct ForCtl {
     401        ForCtl( ExpressionNode * expr, ExpressionNode * condition, ExpressionNode * change ) :
    403402                init( new StatementNode( build_expr( expr ) ) ), condition( condition ), change( change ) {}
    404         ForCtrl( DeclarationNode * decl, ExpressionNode * condition, ExpressionNode * change ) :
     403        ForCtl( DeclarationNode * decl, ExpressionNode * condition, ExpressionNode * change ) :
    405404                init( new StatementNode( decl ) ), condition( condition ), change( change ) {}
    406405
     
    410409};
    411410
    412 Expression * build_if_control( IfCtrl * ctl, std::list< Statement * > & init );
    413 Statement * build_if( IfCtrl * ctl, StatementNode * then_stmt, StatementNode * else_stmt );
     411Expression * build_if_control( IfCtl * ctl, std::list< Statement * > & init );
     412Statement * build_if( IfCtl * ctl, StatementNode * then_stmt, StatementNode * else_stmt );
    414413Statement * build_switch( bool isSwitch, ExpressionNode * ctl, StatementNode * stmt );
    415414Statement * build_case( ExpressionNode * ctl );
    416415Statement * build_default();
    417 Statement * build_while( IfCtrl * ctl, StatementNode * stmt );
     416Statement * build_while( IfCtl * ctl, StatementNode * stmt );
    418417Statement * build_do_while( ExpressionNode * ctl, StatementNode * stmt );
    419 Statement * build_for( ForCtrl * forctl, StatementNode * stmt );
     418Statement * build_for( ForCtl * forctl, StatementNode * stmt );
    420419Statement * build_branch( BranchStmt::Type kind );
    421420Statement * build_branch( std::string * identifier, BranchStmt::Type kind );
  • src/Parser/StatementNode.cc

    r4084928e r364d70c  
    1010// Created On       : Sat May 16 14:59:41 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Aug  4 09:39:25 2018
    13 // Update Count     : 363
     12// Last Modified On : Tue Jun  5 08:58:34 2018
     13// Update Count     : 362
    1414//
    1515
     
    7878} // build_expr
    7979
    80 Expression * build_if_control( IfCtrl * ctl, std::list< Statement * > & init ) {
     80Expression * build_if_control( IfCtl * ctl, std::list< Statement * > & init ) {
    8181        if ( ctl->init != 0 ) {
    8282                buildMoveList( ctl->init, init );
     
    100100} // build_if_control
    101101
    102 Statement * build_if( IfCtrl * ctl, StatementNode * then_stmt, StatementNode * else_stmt ) {
     102Statement * build_if( IfCtl * ctl, StatementNode * then_stmt, StatementNode * else_stmt ) {
    103103        Statement * thenb, * elseb = nullptr;
    104104        std::list< Statement * > branches;
     
    145145} // build_default
    146146
    147 Statement * build_while( IfCtrl * ctl, StatementNode * stmt ) {
     147Statement * build_while( IfCtl * ctl, StatementNode * stmt ) {
    148148        std::list< Statement * > branches;
    149149        buildMoveList< Statement, StatementNode >( stmt, branches );
     
    164164} // build_do_while
    165165
    166 Statement * build_for( ForCtrl * forctl, StatementNode * stmt ) {
     166Statement * build_for( ForCtl * forctl, StatementNode * stmt ) {
    167167        std::list< Statement * > branches;
    168168        buildMoveList< Statement, StatementNode >( stmt, branches );
  • src/Parser/parser.yy

    r4084928e r364d70c  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Aug  4 09:38:36 2018
    13 // Update Count     : 3986
     12// Last Modified On : Wed Jul 25 15:54:35 2018
     13// Update Count     : 3841
    1414//
    1515
     
    186186} // fieldDecl
    187187
    188 ForCtrl * forCtrl( ExpressionNode * type, string * index, ExpressionNode * start, ExpressionNode * comp, ExpressionNode * inc ) {
    189         return new ForCtrl(
    190                 distAttr( DeclarationNode::newTypeof( type ), DeclarationNode::newName( index )->addInitializer( new InitializerNode( start ) ) ),
    191                 new ExpressionNode( build_binary_val( OperKinds::LThan, new ExpressionNode( build_varref( new string( *index ) ) ), comp ) ),
    192                 new ExpressionNode( build_binary_val( OperKinds::PlusAssn, new ExpressionNode( build_varref( new string( *index ) ) ), inc ) ) );
    193 } // forCtrl
    194 
    195 
    196188bool forall = false, yyy = false;                                               // aggregate have one or more forall qualifiers ?
    197189
     
    225217        WaitForStmt * wfs;
    226218        Expression * constant;
    227         IfCtrl * ifctl;
    228         ForCtrl * fctl;
     219        IfCtl * ifctl;
     220        ForCtl * fctl;
    229221        LabelNode * label;
    230222        InitializerNode * in;
     
    10571049if_control_expression:
    10581050        comma_expression
    1059                 { $$ = new IfCtrl( nullptr, $1 ); }
     1051                { $$ = new IfCtl( nullptr, $1 ); }
    10601052        | c_declaration                                                                         // no semi-colon
    1061                 { $$ = new IfCtrl( $1, nullptr ); }
     1053                { $$ = new IfCtl( $1, nullptr ); }
    10621054        | cfa_declaration                                                                       // no semi-colon
    1063                 { $$ = new IfCtrl( $1, nullptr ); }
     1055                { $$ = new IfCtl( $1, nullptr ); }
    10641056        | declaration comma_expression                                          // semi-colon separated
    1065                 { $$ = new IfCtrl( $1, $2 ); }
     1057                { $$ = new IfCtl( $1, $2 ); }
    10661058        ;
    10671059
     
    11191111        WHILE '(' push if_control_expression ')' statement pop
    11201112                { $$ = new StatementNode( build_while( $4, $6 ) ); }
    1121         | WHILE '(' ')' statement                                                       // CFA => while ( 1 )
    1122                 { $$ = new StatementNode( build_while( new IfCtrl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ), $4 ) ); }
    11231113        | DO statement WHILE '(' comma_expression ')' ';'
    11241114                { $$ = new StatementNode( build_do_while( $5, $2 ) ); }
    1125         | DO statement WHILE '(' ')' ';'                                        // CFA => do while( 1 )
    1126                 { $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), $2 ) ); }
    11271115        | FOR '(' push for_control_expression ')' statement pop
    11281116                { $$ = new StatementNode( build_for( $4, $6 ) ); }
     
    11301118
    11311119for_control_expression:
    1132         comma_expression_opt                                                            // CFA
    1133                 {
    1134                         if ( ! $1 ) {                                                           // => for ( ;; )
    1135                                 $$ = new ForCtrl( (ExpressionNode * )nullptr, (ExpressionNode * )nullptr, (ExpressionNode * )nullptr );
    1136                         } else {
    1137                                 $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), new ExpressionNode( build_constantInteger( *new string( "0" ) ) ), $1->clone(),
    1138                                                          new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) );
    1139                         } // if
    1140                 }
    1141         | constant_expression '~' constant_expression           // CFA
    1142                 { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), $1->clone(), $3, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
    1143         | constant_expression '~' constant_expression '~' constant_expression // CFA
    1144                 { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), $1->clone(), $3, $5 ); }
    1145         | comma_expression_opt ';' comma_expression                     // CFA
    1146                 {
    1147                         if ( ! $1 ) {
    1148                                 SemanticError( yylloc, "Missing loop index." ); $$ = nullptr;
    1149                         } else if ( ! $3 ) {
    1150                                 SemanticError( yylloc, "Missing loop range." ); $$ = nullptr;
    1151                         } else {
    1152                                 if ( NameExpr *identifier = dynamic_cast<NameExpr *>($1->get_expr()) ) {
    1153                                         $$ = forCtrl( $3, new string( identifier->name ), new ExpressionNode( build_constantInteger( *new string( "0" ) ) ), $3->clone(),
    1154                                                                  new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) );
    1155                                 } else {
    1156                                         SemanticError( yylloc, "Expression disallowed. Only loop-index name allowed" ); $$ = nullptr;
    1157                                 } // if
    1158                         } // if
    1159                 }
    1160         | comma_expression_opt ';' constant_expression '~' constant_expression // CFA
    1161                 {
    1162                         if ( ! $1 ) {
    1163                                 SemanticError( yylloc, "Missing loop index." ); $$ = nullptr;
    1164                         } else {
    1165                                 if ( NameExpr *identifier = dynamic_cast<NameExpr *>($1->get_expr()) ) {
    1166                                         $$ = forCtrl( $3, new string( identifier->name ), $3->clone(), $5, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) );
    1167                                 } else {
    1168                                         SemanticError( yylloc, "Expression disallowed. Only loop-index name allowed" ); $$ = nullptr;
    1169                                 } // if
    1170                         } // if
    1171                 }
    1172         | comma_expression_opt ';' constant_expression '~' constant_expression '~' constant_expression // CFA
    1173                 {
    1174                         if ( ! $1 ) {
    1175                                 SemanticError( yylloc, "Missing loop index." ); $$ = nullptr;
    1176                         } else {
    1177                                 if ( NameExpr *identifier = dynamic_cast<NameExpr *>($1->get_expr()) ) {
    1178                                         $$ = forCtrl( $3, new string( identifier->name ), $3->clone(), $5, $7 );
    1179                                 } else {
    1180                                         SemanticError( yylloc, "Expression disallowed. Only loop-index name allowed" ); $$ = nullptr;
    1181                                 } // if
    1182                         } // if
    1183                 }
    1184         | comma_expression_opt ';' comma_expression_opt ';' comma_expression_opt
    1185                 { $$ = new ForCtrl( $1, $3, $5 ); }
    1186         | declaration comma_expression_opt ';' comma_expression_opt // C99, declaration has ';'
    1187                 { $$ = new ForCtrl( $1, $2, $4 ); }
     1120        comma_expression_opt ';' comma_expression_opt ';' comma_expression_opt
     1121                { $$ = new ForCtl( $1, $3, $5 ); }
     1122        | declaration comma_expression_opt ';' comma_expression_opt // C99
     1123                { $$ = new ForCtl( $1, $2, $4 ); }
    11881124        ;
    11891125
  • src/SymTab/Validate.cc

    r4084928e r364d70c  
    738738                                forwardEnums.erase( fwds );
    739739                        } // if
    740 
    741                         for ( Declaration * member : enumDecl->members ) {
    742                                 ObjectDecl * field = strict_dynamic_cast<ObjectDecl *>( member );
    743                                 if ( field->init ) {
    744                                         // need to resolve enumerator initializers early so that other passes that determine if an expression is constexpr have the appropriate information.
    745                                         SingleInit * init = strict_dynamic_cast<SingleInit *>( field->init );
    746                                         ResolvExpr::findSingleExpression( init->value, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), indexer );
    747                                 }
    748                         }
    749740                } // if
    750741        }
  • src/SynTree/AggregateDecl.cc

    r4084928e r364d70c  
    8686std::string TraitDecl::typeString() const { return "trait"; }
    8787
     88namespace {
     89        long long int getConstValue( Expression * expr ) {
     90                if ( CastExpr * castExpr = dynamic_cast< CastExpr * > ( expr ) ) {
     91                        return getConstValue( castExpr->arg );
     92                } else if ( ConstantExpr * constExpr = dynamic_cast< ConstantExpr * >( expr ) ) {
     93                        return constExpr->intValue();
     94                // can be -1, +1, etc.
     95                // } else if ( UntypedExpr * untypedExpr = dynamic_cast< UntypedExpr * >( expr ) ) {
     96                //      if ( untypedExpr-> )
     97                } else {
     98                        assertf( false, "Unhandled expression type in getConstValue for enumerators: %s", toString( expr ).c_str() );
     99                }
     100        }
     101}
     102
    88103bool EnumDecl::valueOf( Declaration * enumerator, long long int & value ) {
    89104        if ( enumValues.empty() ) {
     
    93108                        if ( field->init ) {
    94109                                SingleInit * init = strict_dynamic_cast< SingleInit * >( field->init );
    95                                 auto result = eval( init->value );
    96                                 if ( ! result.second ) SemanticError( init->location, toString( "Non-constexpr in initialization of enumerator: ", field ) );
    97                                 currentValue = result.first;
     110                                currentValue = getConstValue( init->value );
    98111                        }
    99112                        assertf( enumValues.count( field->name ) == 0, "Enum %s has multiple members with the name %s", name.c_str(), field->name.c_str() );
  • src/benchmark/Makefile.am

    r4084928e r364d70c  
    1818CFLAGS =
    1919AM_CFLAGS = \
     20        -XCFA \
     21        -t \
     22        -B${abs_top_builddir}/src/driver \
    2023        -g \
    2124        -O2 \
     
    2427        -quiet \
    2528        -I$(srcdir) \
    26         @BUILD_IN_TREE_FLAGS@
    27 
    28 CC = @CFACC@
     29        -L${abs_top_builddir}/src/libcfa \
     30        -I${abs_top_srcdir}/src/libcfa \
     31        -I${abs_top_srcdir}/src/libcfa/containers \
     32        -I${abs_top_srcdir}/src/libcfa/concurrency \
     33        -I${abs_top_srcdir}/src/libcfa/stdhdr
     34
     35CC = ${top_builddir}/src/driver/cfa
    2936TOOLSDIR = ${abs_top_srcdir}/tools/
    3037REPEAT   = ${TOOLSDIR}repeat
  • src/benchmark/Makefile.in

    r4084928e r364d70c  
    135135AWK = @AWK@
    136136BACKEND_CC = @BACKEND_CC@
    137 BUILD_IN_TREE_FLAGS = @BUILD_IN_TREE_FLAGS@
    138 BUILD_IN_TREE_FLAGS_NOLIB = @BUILD_IN_TREE_FLAGS_NOLIB@
    139 CC = @CFACC@
     137CC = ${top_builddir}/src/driver/cfa
    140138CCAS = @CCAS@
    141139CCASDEPMODE = @CCASDEPMODE@
    142140CCASFLAGS = @CCASFLAGS@
    143141CCDEPMODE = @CCDEPMODE@
    144 CFACC = @CFACC@
    145 CFACPP = @CFACPP@
    146142CFA_BACKEND_CC = @CFA_BACKEND_CC@
    147143CFA_BINDIR = @CFA_BINDIR@
     
    162158DEFS = @DEFS@
    163159DEPDIR = @DEPDIR@
    164 DRIVER_DIR = @DRIVER_DIR@
    165160ECHO_C = @ECHO_C@
    166161ECHO_N = @ECHO_N@
     
    253248top_srcdir = @top_srcdir@
    254249AM_CFLAGS = \
     250        -XCFA \
     251        -t \
     252        -B${abs_top_builddir}/src/driver \
    255253        -g \
    256254        -O2 \
     
    259257        -quiet \
    260258        -I$(srcdir) \
    261         @BUILD_IN_TREE_FLAGS@
     259        -L${abs_top_builddir}/src/libcfa \
     260        -I${abs_top_srcdir}/src/libcfa \
     261        -I${abs_top_srcdir}/src/libcfa/containers \
     262        -I${abs_top_srcdir}/src/libcfa/concurrency \
     263        -I${abs_top_srcdir}/src/libcfa/stdhdr
    262264
    263265TOOLSDIR = ${abs_top_srcdir}/tools/
  • src/driver/Makefile.am

    r4084928e r364d70c  
    1111## Created On       : Sun May 31 08:49:31 2015
    1212## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Thu Aug  2 12:18:25 2018
    14 ## Update Count     : 14
     13## Last Modified On : Mon Apr 30 17:44:17 2018
     14## Update Count     : 11
    1515###############################################################################
    1616
     
    4848cc1_SOURCES = cc1.cc
    4949
    50 aslibdir = ${CFA_LIBDIR}
    51 aslib_PROGRAMS = as
    52 as_SOURCES = as.cc
    53 
    5450MAINTAINERCLEANFILES = $(CFA_BINDIR)/$(CFA_NAME) @CFA_PREFIX@/lib/${cc1lib_PROGRAMS}
  • src/driver/Makefile.in

    r4084928e r364d70c  
    9797noinst_PROGRAMS = cfa$(EXEEXT)
    9898cc1lib_PROGRAMS = cc1$(EXEEXT)
    99 aslib_PROGRAMS = as$(EXEEXT)
    10099subdir = src/driver
    101100ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
     
    108107CONFIG_CLEAN_FILES =
    109108CONFIG_CLEAN_VPATH_FILES =
    110 am__installdirs = "$(DESTDIR)$(aslibdir)" "$(DESTDIR)$(cc1libdir)"
    111 PROGRAMS = $(aslib_PROGRAMS) $(cc1lib_PROGRAMS) $(noinst_PROGRAMS)
    112 am_as_OBJECTS = as.$(OBJEXT)
    113 as_OBJECTS = $(am_as_OBJECTS)
    114 as_LDADD = $(LDADD)
     109am__installdirs = "$(DESTDIR)$(cc1libdir)"
     110PROGRAMS = $(cc1lib_PROGRAMS) $(noinst_PROGRAMS)
    115111am_cc1_OBJECTS = cc1.$(OBJEXT)
    116112cc1_OBJECTS = $(am_cc1_OBJECTS)
     
    148144am__v_CXXLD_0 = @echo "  CXXLD   " $@;
    149145am__v_CXXLD_1 =
    150 SOURCES = $(as_SOURCES) $(cc1_SOURCES) $(cfa_SOURCES)
    151 DIST_SOURCES = $(as_SOURCES) $(cc1_SOURCES) $(cfa_SOURCES)
     146SOURCES = $(cc1_SOURCES) $(cfa_SOURCES)
     147DIST_SOURCES = $(cc1_SOURCES) $(cfa_SOURCES)
    152148am__can_run_installinfo = \
    153149  case $$AM_UPDATE_INFO_DIR in \
     
    185181AWK = @AWK@
    186182BACKEND_CC = @BACKEND_CC@
    187 BUILD_IN_TREE_FLAGS = @BUILD_IN_TREE_FLAGS@
    188 BUILD_IN_TREE_FLAGS_NOLIB = @BUILD_IN_TREE_FLAGS_NOLIB@
    189183CC = @CC@
    190184CCAS = @CCAS@
     
    192186CCASFLAGS = @CCASFLAGS@
    193187CCDEPMODE = @CCDEPMODE@
    194 CFACC = @CFACC@
    195 CFACPP = @CFACPP@
    196188CFA_BACKEND_CC = @CFA_BACKEND_CC@
    197189CFA_BINDIR = @CFA_BINDIR@
     
    210202DEFS = @DEFS@
    211203DEPDIR = @DEPDIR@
    212 DRIVER_DIR = @DRIVER_DIR@
    213204ECHO_C = @ECHO_C@
    214205ECHO_N = @ECHO_N@
     
    309300cc1libdir = ${CFA_LIBDIR}
    310301cc1_SOURCES = cc1.cc
    311 aslibdir = ${CFA_LIBDIR}
    312 as_SOURCES = as.cc
    313302MAINTAINERCLEANFILES = $(CFA_BINDIR)/$(CFA_NAME) @CFA_PREFIX@/lib/${cc1lib_PROGRAMS}
    314303all: all-am
     
    345334        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    346335$(am__aclocal_m4_deps):
    347 install-aslibPROGRAMS: $(aslib_PROGRAMS)
    348         @$(NORMAL_INSTALL)
    349         @list='$(aslib_PROGRAMS)'; test -n "$(aslibdir)" || list=; \
    350         if test -n "$$list"; then \
    351           echo " $(MKDIR_P) '$(DESTDIR)$(aslibdir)'"; \
    352           $(MKDIR_P) "$(DESTDIR)$(aslibdir)" || exit 1; \
    353         fi; \
    354         for p in $$list; do echo "$$p $$p"; done | \
    355         sed 's/$(EXEEXT)$$//' | \
    356         while read p p1; do if test -f $$p \
    357           ; then echo "$$p"; echo "$$p"; else :; fi; \
    358         done | \
    359         sed -e 'p;s,.*/,,;n;h' \
    360             -e 's|.*|.|' \
    361             -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
    362         sed 'N;N;N;s,\n, ,g' | \
    363         $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
    364           { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
    365             if ($$2 == $$4) files[d] = files[d] " " $$1; \
    366             else { print "f", $$3 "/" $$4, $$1; } } \
    367           END { for (d in files) print "f", d, files[d] }' | \
    368         while read type dir files; do \
    369             if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
    370             test -z "$$files" || { \
    371               echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(aslibdir)$$dir'"; \
    372               $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(aslibdir)$$dir" || exit $$?; \
    373             } \
    374         ; done
    375 
    376 uninstall-aslibPROGRAMS:
    377         @$(NORMAL_UNINSTALL)
    378         @list='$(aslib_PROGRAMS)'; test -n "$(aslibdir)" || list=; \
    379         files=`for p in $$list; do echo "$$p"; done | \
    380           sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
    381               -e 's/$$/$(EXEEXT)/' \
    382         `; \
    383         test -n "$$list" || exit 0; \
    384         echo " ( cd '$(DESTDIR)$(aslibdir)' && rm -f" $$files ")"; \
    385         cd "$(DESTDIR)$(aslibdir)" && rm -f $$files
    386 
    387 clean-aslibPROGRAMS:
    388         -test -z "$(aslib_PROGRAMS)" || rm -f $(aslib_PROGRAMS)
    389336install-cc1libPROGRAMS: $(cc1lib_PROGRAMS)
    390337        @$(NORMAL_INSTALL)
     
    433380        -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
    434381
    435 as$(EXEEXT): $(as_OBJECTS) $(as_DEPENDENCIES) $(EXTRA_as_DEPENDENCIES)
    436         @rm -f as$(EXEEXT)
    437         $(AM_V_CXXLD)$(CXXLINK) $(as_OBJECTS) $(as_LDADD) $(LIBS)
    438 
    439382cc1$(EXEEXT): $(cc1_OBJECTS) $(cc1_DEPENDENCIES) $(EXTRA_cc1_DEPENDENCIES)
    440383        @rm -f cc1$(EXEEXT)
     
    451394        -rm -f *.tab.c
    452395
    453 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/as.Po@am__quote@
    454396@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cc1.Po@am__quote@
    455397@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfa.Po@am__quote@
     
    557499all-am: Makefile $(PROGRAMS)
    558500installdirs:
    559         for dir in "$(DESTDIR)$(aslibdir)" "$(DESTDIR)$(cc1libdir)"; do \
     501        for dir in "$(DESTDIR)$(cc1libdir)"; do \
    560502          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
    561503        done
     
    593535clean: clean-am
    594536
    595 clean-am: clean-aslibPROGRAMS clean-cc1libPROGRAMS clean-generic \
    596         clean-noinstPROGRAMS mostlyclean-am
     537clean-am: clean-cc1libPROGRAMS clean-generic clean-noinstPROGRAMS \
     538        mostlyclean-am
    597539
    598540distclean: distclean-am
     
    614556info-am:
    615557
    616 install-data-am: install-aslibPROGRAMS install-cc1libPROGRAMS
     558install-data-am: install-cc1libPROGRAMS
    617559
    618560install-dvi: install-dvi-am
     
    660602ps-am:
    661603
    662 uninstall-am: uninstall-aslibPROGRAMS uninstall-cc1libPROGRAMS
     604uninstall-am: uninstall-cc1libPROGRAMS
    663605        @$(NORMAL_INSTALL)
    664606        $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
     
    666608
    667609.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
    668         clean-aslibPROGRAMS clean-cc1libPROGRAMS clean-generic \
    669         clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
    670         distclean-compile distclean-generic distclean-tags distdir dvi \
    671         dvi-am html html-am info info-am install install-am \
    672         install-aslibPROGRAMS install-cc1libPROGRAMS install-data \
    673         install-data-am install-dvi install-dvi-am install-exec \
    674         install-exec-am install-exec-hook install-html install-html-am \
    675         install-info install-info-am install-man install-pdf \
    676         install-pdf-am install-ps install-ps-am install-strip \
    677         installcheck installcheck-am installdirs maintainer-clean \
    678         maintainer-clean-generic mostlyclean mostlyclean-compile \
    679         mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
    680         uninstall-am uninstall-aslibPROGRAMS uninstall-cc1libPROGRAMS \
     610        clean-cc1libPROGRAMS clean-generic clean-noinstPROGRAMS \
     611        cscopelist-am ctags ctags-am distclean distclean-compile \
     612        distclean-generic distclean-tags distdir dvi dvi-am html \
     613        html-am info info-am install install-am install-cc1libPROGRAMS \
     614        install-data install-data-am install-dvi install-dvi-am \
     615        install-exec install-exec-am install-exec-hook install-html \
     616        install-html-am install-info install-info-am install-man \
     617        install-pdf install-pdf-am install-ps install-ps-am \
     618        install-strip installcheck installcheck-am installdirs \
     619        maintainer-clean maintainer-clean-generic mostlyclean \
     620        mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
     621        tags tags-am uninstall uninstall-am uninstall-cc1libPROGRAMS \
    681622        uninstall-hook
    682623
  • src/examples/Makefile.am

    r4084928e r364d70c  
    2525avl_test_SOURCES = avltree/avl_test.c avltree/avl0.c avltree/avl1.c avltree/avl2.c avltree/avl3.c avltree/avl4.c avltree/avl-private.c
    2626
    27 Bench$(EXEEXT) : Bench.c
     27Bench : Bench.c
    2828        @for ccflags in "-debug" "-nodebug"; do \
    2929                echo ${CC} ${AM_CFLAGS} ${CFLAGS} $${ccflags} -lrt Bench.c;\
  • src/examples/Makefile.in

    r4084928e r364d70c  
    189189AWK = @AWK@
    190190BACKEND_CC = @BACKEND_CC@
    191 BUILD_IN_TREE_FLAGS = @BUILD_IN_TREE_FLAGS@
    192 BUILD_IN_TREE_FLAGS_NOLIB = @BUILD_IN_TREE_FLAGS_NOLIB@
    193191CC = @CFA_BINDIR@/@CFA_NAME@
    194192CCAS = @CCAS@
     
    196194CCASFLAGS = @CCASFLAGS@
    197195CCDEPMODE = @CCDEPMODE@
    198 CFACC = @CFACC@
    199 CFACPP = @CFACPP@
    200196CFA_BACKEND_CC = @CFA_BACKEND_CC@
    201197CFA_BINDIR = @CFA_BINDIR@
     
    216212DEFS = @DEFS@
    217213DEPDIR = @DEPDIR@
    218 DRIVER_DIR = @DRIVER_DIR@
    219214ECHO_C = @ECHO_C@
    220215ECHO_N = @ECHO_N@
     
    620615
    621616
    622 Bench$(EXEEXT) : Bench.c
     617Bench : Bench.c
    623618        @for ccflags in "-debug" "-nodebug"; do \
    624619                echo ${CC} ${AM_CFLAGS} ${CFLAGS} $${ccflags} -lrt Bench.c;\
  • src/libcfa/Makefile.am

    r4084928e r364d70c  
    4343#use -no-include-stdhdr to prevent rebuild cycles
    4444#The built sources must not depend on the installed headers
    45 CFLAGS = -quiet -no-include-stdhdr @BUILD_IN_TREE_FLAGS@ ${EXTRA_FLAGS}
    46 CC = @CFACC@
     45CFLAGS = -quiet -no-include-stdhdr -I${abs_top_srcdir}/src/libcfa/stdhdr -XCFA -t -B${abs_top_builddir}/src/driver ${EXTRA_FLAGS}
     46CC = ${abs_top_builddir}/src/driver/cfa
    4747
    4848headers = fstream iostream iterator limits rational time stdlib common \
     
    9292        ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -D__CFA_DEBUG__ -O0 ${EXTRA_FLAGS} -c -o $@ $<
    9393
    94 ${libobjs} : @CFACPP@ ${cfalib_DATA} # add dependency to cfa-cpp so all libraries are rebuilt with new translator
     94${libobjs} : ${abs_top_srcdir}/src/driver/cfa-cpp ${cfalib_DATA} # add dependency to cfa-cpp so all libraries are rebuilt with new translator
    9595
    9696libcfa_a_SOURCES = ${libsrc}
  • src/libcfa/Makefile.in

    r4084928e r364d70c  
    303303AWK = @AWK@
    304304BACKEND_CC = @BACKEND_CC@
    305 BUILD_IN_TREE_FLAGS = @BUILD_IN_TREE_FLAGS@
    306 BUILD_IN_TREE_FLAGS_NOLIB = @BUILD_IN_TREE_FLAGS_NOLIB@
    307 CC = @CFACC@
     305CC = ${abs_top_builddir}/src/driver/cfa
    308306CCAS = @CCAS@
    309307CCASDEPMODE = @CCASDEPMODE@
    310308CCASFLAGS = @CCASFLAGS@
    311309CCDEPMODE = @CCDEPMODE@
    312 CFACC = @CFACC@
    313 CFACPP = @CFACPP@
    314310CFA_BACKEND_CC = @CFA_BACKEND_CC@
    315311CFA_BINDIR = @CFA_BINDIR@
     
    323319#use -no-include-stdhdr to prevent rebuild cycles
    324320#The built sources must not depend on the installed headers
    325 CFLAGS = -quiet -no-include-stdhdr @BUILD_IN_TREE_FLAGS@ ${EXTRA_FLAGS}
     321CFLAGS = -quiet -no-include-stdhdr -I${abs_top_srcdir}/src/libcfa/stdhdr -XCFA -t -B${abs_top_builddir}/src/driver ${EXTRA_FLAGS}
    326322CPP = @CPP@
    327323CPPFLAGS = @CPPFLAGS@
     
    332328DEFS = @DEFS@
    333329DEPDIR = @DEPDIR@
    334 DRIVER_DIR = @DRIVER_DIR@
    335330ECHO_C = @ECHO_C@
    336331ECHO_N = @ECHO_N@
     
    17091704        ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -D__CFA_DEBUG__ -O0 ${EXTRA_FLAGS} -c -o $@ $<
    17101705
    1711 ${libobjs} : @CFACPP@ ${cfalib_DATA} # add dependency to cfa-cpp so all libraries are rebuilt with new translator
     1706${libobjs} : ${abs_top_srcdir}/src/driver/cfa-cpp ${cfalib_DATA} # add dependency to cfa-cpp so all libraries are rebuilt with new translator
    17121707
    17131708maintainer-clean-local:
  • src/libcfa/heap.c

    r4084928e r364d70c  
    1010// Created On       : Tue Dec 19 21:58:35 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jul 31 18:08:50 2018
    13 // Update Count     : 470
     12// Last Modified On : Thu Jul 26 22:28:23 2018
     13// Update Count     : 449
    1414//
    1515
     
    9494
    9595
    96 static _Bool checkFree = false;
    97 
    98 inline _Bool checkFree() {
    99         return checkFree;
    100 } // checkFree
    101 
    102 _Bool checkFreeOn() {
    103         _Bool temp = checkFree;
    104         checkFree = true;
    105         return temp;
    106 } // checkFreeOn
    107 
    108 _Bool checkFreeOff() {
    109         _Bool temp = checkFree;
    110         checkFree = false;
    111         return temp;
    112 } // checkFreeOff
    113 
    114 
    115 // static _Bool traceHeapTerm = false;
    116 
    117 // inline _Bool traceHeapTerm() {
    118 //      return traceHeapTerm;
    119 // } // traceHeapTerm
    120 
    121 // _Bool traceHeapTermOn() {
    122 //      _Bool temp = traceHeapTerm;
    123 //      traceHeapTerm = true;
     96// static _Bool prtHeapTerm = false;
     97
     98// inline _Bool prtHeapTerm() {
     99//      return prtHeapTerm;
     100// } // prtHeapTerm
     101
     102// _Bool prtHeapTermOn() {
     103//      _Bool temp = traceHeap;
     104//      traceHeap = true;
    124105//      return temp;
    125 // } // traceHeapTermOn
    126 
    127 // _Bool traceHeapTermOff() {
    128 //      _Bool temp = traceHeapTerm;
    129 //      traceHeapTerm = false;
     106// } // prtHeapTermOn
     107
     108// _Bool prtHeapTermOff() {
     109//      _Bool temp = traceHeap;
     110//      traceHeap = false;
    130111//      return temp;
    131 // } // traceHeapTermOff
     112// } // prtHeapTermOff
    132113
    133114
     
    158139} // extern "C"
    159140#endif // __CFA_DEBUG__
     141
     142
     143// statically allocated variables => zero filled.
     144
     145static size_t pageSize;                                                                 // architecture pagesize
     146static size_t heapExpand;                                                               // sbrk advance
     147static size_t mmapStart;                                                                // cross over point for mmap
     148static unsigned int maxBucketsUsed;                                             // maximum number of buckets in use
     149static unsigned int bucketSizes[NoBucketSizes] = {              // different bucket sizes
     150    16, 32, 48, 64,
     151    80, 96, 112, 128, 144, 160, 192, 224,
     152    256, 320, 384, 448, 512, 640, 768, 896,
     153    1024, 1536, 2048, 2560, 3072, 3584, 4096, 6144,
     154    8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360,
     155    16384, 18432, 20480, 22528, 24576, 26624, 28672, 30720,
     156    32768, 36864, 40960, 45056, 49152, 53248, 57344, 61440,
     157    65536, 73728, 81920, 90112, 98304, 106496, 114688, 122880,
     158    131072, 147456, 163840, 180224, 196608, 212992, 229376, 245760,
     159    262144, 294912, 327680, 360448, 393216, 425984, 458752, 491520,
     160    524288, 655360, 786432, 917504, 1048576, 1179648, 1310720, 1441792,
     161    1572864, 1703936, 1835008, 1966080, 2097152, 2621440, 3145728, 3670016,
     162    4194304
     163};
     164#ifdef FASTLOOKUP
     165static unsigned char lookup[LookupSizes];                               // O(1) lookup for small sizes
     166#endif // FASTLOOKUP
     167static int mmapFd = -1;                                                                 // fake or actual fd for anonymous file
    160168
    161169
     
    232240}; // HeapManager
    233241
    234 static inline size_t getKey( const HeapManager.FreeHeader & freeheader ) { return freeheader.blockSize; }
    235 // statically allocated variables => zero filled.
    236 
    237 
    238 static size_t pageSize;                                                                 // architecture pagesize
    239 static size_t heapExpand;                                                               // sbrk advance
    240 static size_t mmapStart;                                                                // cross over point for mmap
    241 static unsigned int maxBucketsUsed;                                             // maximum number of buckets in use
    242 
    243 // Powers of 2 are common allocation sizes, so make powers of 2 generate the minimum required size.
    244 static unsigned int bucketSizes[NoBucketSizes] @= {             // different bucket sizes
    245     16, 32, 48, 64,
    246     64 + sizeof(HeapManager.Storage), 96, 112, 128, 128 + sizeof(HeapManager.Storage), 160, 192, 224,
    247     256 + sizeof(HeapManager.Storage), 320, 384, 448, 512 + sizeof(HeapManager.Storage), 640, 768, 896,
    248     1_024 + sizeof(HeapManager.Storage), 1_536, 2_048 + sizeof(HeapManager.Storage), 2_560, 3_072, 3_584, 4_096 + sizeof(HeapManager.Storage), 6_144,
    249     8_192 + sizeof(HeapManager.Storage), 9_216, 10_240, 11_264, 12_288, 13_312, 14_336, 15_360,
    250     16_384 + sizeof(HeapManager.Storage), 18_432, 20_480, 22_528, 24_576, 26_624, 28_672, 30_720,
    251     32_768 + sizeof(HeapManager.Storage), 36_864, 40_960, 45_056, 49_152, 53_248, 57_344, 61_440,
    252     65_536 + sizeof(HeapManager.Storage), 73_728, 81_920, 90_112, 98_304, 106_496, 114_688, 122_880,
    253     131_072 + sizeof(HeapManager.Storage), 147_456, 163_840, 180_224, 196_608, 212_992, 229_376, 245_760,
    254     262_144 + sizeof(HeapManager.Storage), 294_912, 327_680, 360_448, 393_216, 425_984, 458_752, 491_520,
    255     524_288 + sizeof(HeapManager.Storage), 655_360, 786_432, 917_504, 1_048_576 + sizeof(HeapManager.Storage), 1_179_648, 1_310_720, 1_441_792,
    256     1_572_864, 1_703_936, 1_835_008, 1_966_080, 2_097_152 + sizeof(HeapManager.Storage), 2_621_440, 3_145_728, 3_670_016,
    257     4_194_304 + sizeof(HeapManager.Storage)
    258 };
    259 #ifdef FASTLOOKUP
    260 static unsigned char lookup[LookupSizes];                               // O(1) lookup for small sizes
    261 #endif // FASTLOOKUP
    262 static int mmapFd = -1;                                                                 // fake or actual fd for anonymous file
    263 
    264 
    265 #ifdef __CFA_DEBUG__
    266 static _Bool heapBoot = 0;                                                              // detect recursion during boot
    267 #endif // __CFA_DEBUG__
    268 static HeapManager heapManager __attribute__(( aligned (128) )) @= {}; // size of cache line to prevent false sharing
    269 
    270242
    271243static inline _Bool setMmapStart( size_t value ) {
     
    309281static void ^?{}( HeapManager & ) {
    310282        #ifdef __STATISTICS__
    311         // if ( traceHeapTerm() ) {
     283        // if ( prtHeapTerm() ) {
    312284        //      printStats();
    313         //      if ( checkfree() ) checkFree( heapManager, true );
     285        //      checkFree( heapManager, true );
    314286        // } // if
    315287        #endif // __STATISTICS__
    316288} // ~HeapManager
    317289
     290
     291#ifdef __CFA_DEBUG__
     292static _Bool heapBoot = 0;                                                              // detect recursion during boot
     293#endif // __CFA_DEBUG__
     294static HeapManager heapManager __attribute__(( aligned (128) )) @= {}; // size of cache line to prevent false sharing
    318295
    319296static void memory_startup( void ) __attribute__(( constructor( STARTUP_PRIORITY_MEMORY ) ));
     
    335312        ^heapManager{};
    336313} // memory_shutdown
     314
     315static inline size_t getKey( const HeapManager.FreeHeader & freeheader ) { return freeheader.blockSize; }
    337316
    338317
     
    363342static void printStats() {
    364343    char helpText[512];
    365         __cfaabi_dbg_bits_print_buffer( helpText, 512,
    366                         "\nHeap statistics:\n"
    367                         "  malloc: calls %u / storage %llu\n"
    368                         "  calloc: calls %u / storage %llu\n"
    369                         "  memalign: calls %u / storage %llu\n"
    370                         "  cmemalign: calls %u / storage %llu\n"
    371                         "  realloc: calls %u / storage %llu\n"
    372                         "  free: calls %u / storage %llu\n"
    373                         "  mmap: calls %u / storage %llu\n"
    374                         "  munmap: calls %u / storage %llu\n"
    375                         "  sbrk: calls %u / storage %llu\n",
    376                         malloc_calls, malloc_storage,
    377                         calloc_calls, calloc_storage,
    378                         memalign_calls, memalign_storage,
    379                         cmemalign_calls, cmemalign_storage,
    380                         realloc_calls, realloc_storage,
    381                         free_calls, free_storage,
    382                         mmap_calls, mmap_storage,
    383                         munmap_calls, munmap_storage,
    384                         sbrk_calls, sbrk_storage
     344    int len = snprintf( helpText, 512,
     345                                                "\nHeap statistics:\n"
     346                                                "  malloc: calls %u / storage %llu\n"
     347                                                "  calloc: calls %u / storage %llu\n"
     348                                                "  memalign: calls %u / storage %llu\n"
     349                                                "  cmemalign: calls %u / storage %llu\n"
     350                                                "  realloc: calls %u / storage %llu\n"
     351                                                "  free: calls %u / storage %llu\n"
     352                                                "  mmap: calls %u / storage %llu\n"
     353                                                "  munmap: calls %u / storage %llu\n"
     354                                                "  sbrk: calls %u / storage %llu\n",
     355                                                malloc_calls, malloc_storage,
     356                                                calloc_calls, calloc_storage,
     357                                                memalign_calls, memalign_storage,
     358                                                cmemalign_calls, cmemalign_storage,
     359                                                realloc_calls, realloc_storage,
     360                                                free_calls, free_storage,
     361                                                mmap_calls, mmap_storage,
     362                                                munmap_calls, munmap_storage,
     363                                                sbrk_calls, sbrk_storage
    385364                );
     365    write( statfd, helpText, len );
    386366} // printStats
    387367
     
    657637
    658638
    659 size_t checkFree( HeapManager & manager ) with ( manager ) {
     639size_t checkFree( HeapManager & manager, _Bool prt ) with ( manager ) {
    660640    size_t total = 0;
    661641        #ifdef __STATISTICS__
    662642    __cfaabi_dbg_bits_acquire();
    663     __cfaabi_dbg_bits_print_nolock( "\nBin lists (bin size : free blocks on list)\n" );
     643    if ( prt ) __cfaabi_dbg_bits_print_nolock( "\nBin lists (bin size : free blocks on list)\n" );
    664644        #endif // __STATISTICS__
    665645    for ( unsigned int i = 0; i < maxBucketsUsed; i += 1 ) {
     
    679659            } // for
    680660                #ifdef __STATISTICS__
    681             __cfaabi_dbg_bits_print_nolock( "%7zu, %-7u  ", size, N );
     661            if ( prt ) __cfaabi_dbg_bits_print_nolock( "%7zu, %-7u  ", size, N );
    682662            if ( (i + 1) % 8 == 0 ) __cfaabi_dbg_bits_print_nolock( "\n" );
    683663                #endif // __STATISTICS__
    684664        } // for
    685665        #ifdef __STATISTICS__
    686         __cfaabi_dbg_bits_print_nolock( "\ntotal free blocks:%zu\n", total );
     666        if ( prt ) __cfaabi_dbg_bits_print_nolock( "\ntotal free blocks:%zu\n", total );
    687667        __cfaabi_dbg_bits_release();
    688668        #endif // __STATISTICS__
     
    942922                #ifdef __STATISTICS__
    943923                printStats();
    944                 if ( checkFree() ) checkFree( heapManager );
     924                checkFree( heapManager, true );
    945925                #endif // __STATISTICS__
    946926    } // malloc_stats
  • src/libcfa/stdhdr/malloc.h

    r4084928e r364d70c  
    1010// Created On       : Thu Jul 20 15:58:16 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jul 31 10:01:10 2018
    13 // Update Count     : 9
     12// Last Modified On : Mon Jul 23 18:20:32 2018
     13// Update Count     : 8
    1414//
    1515
     
    1717size_t default_mmap_start();                                                    // CFA extras
    1818size_t default_heap_expansion();
    19 
    20 _Bool traceHeap();
    21 _Bool traceHeapOn();
    22 _Bool traceHeapOff();
    23 
    24 _Bool traceHeapTerm();
    25 _Bool traceHeapTermOn();
    26 _Bool traceHeapTermOff();
    27 
    28 _Bool checkFree();
    29 _Bool checkFreeOn();
    30 _Bool checkFreeOff();
    31 
    3219extern "C" {
    3320size_t malloc_alignment( void * );
  • src/prelude/Makefile.am

    r4084928e r364d70c  
    2323noinst_DATA = ../libcfa/libcfa-prelude.c
    2424
    25 CC = @CFACC@
     25CC = ${abs_top_builddir}/src/driver/cfa
    2626
    2727$(DEPDIR) :
     
    5858include $(DEPDIR)/builtins.Po
    5959
    60 ../libcfa/libcfa-prelude.c : prelude.cf extras.cf gcc-builtins.cf builtins.cf @CFACPP@
    61         ${AM_V_GEN}@CFACPP@ -l prelude.cf $@  # use src/cfa-cpp as not in lib until after install
     60../libcfa/libcfa-prelude.c : prelude.cf extras.cf gcc-builtins.cf builtins.cf ${abs_top_builddir}/src/driver/cfa-cpp
     61        ${AM_V_GEN}${abs_top_builddir}/src/driver/cfa-cpp -l prelude.cf $@  # use src/cfa-cpp as not in lib until after install
    6262
    63 bootloader.c : ${srcdir}/bootloader.cf prelude.cf extras.cf gcc-builtins.cf builtins.cf @CFACPP@
    64         ${AM_V_GEN}@CFACPP@ -tpm ${srcdir}/bootloader.cf $@  # use src/cfa-cpp as not in lib until after install
     63bootloader.c : ${srcdir}/bootloader.cf prelude.cf extras.cf gcc-builtins.cf builtins.cf ${abs_top_builddir}/src/driver/cfa-cpp
     64        ${AM_V_GEN}${abs_top_builddir}/src/driver/cfa-cpp -tpm ${srcdir}/bootloader.cf $@  # use src/cfa-cpp as not in lib until after install
    6565
    6666maintainer-clean-local :
  • src/prelude/Makefile.in

    r4084928e r364d70c  
    162162AWK = @AWK@
    163163BACKEND_CC = @BACKEND_CC@
    164 BUILD_IN_TREE_FLAGS = @BUILD_IN_TREE_FLAGS@
    165 BUILD_IN_TREE_FLAGS_NOLIB = @BUILD_IN_TREE_FLAGS_NOLIB@
    166 CC = @CFACC@
     164CC = ${abs_top_builddir}/src/driver/cfa
    167165CCAS = @CCAS@
    168166CCASDEPMODE = @CCASDEPMODE@
    169167CCASFLAGS = @CCASFLAGS@
    170168CCDEPMODE = @CCDEPMODE@
    171 CFACC = @CFACC@
    172 CFACPP = @CFACPP@
    173169CFA_BACKEND_CC = @CFA_BACKEND_CC@
    174170CFA_BINDIR = @CFA_BINDIR@
     
    187183DEFS = @DEFS@
    188184DEPDIR = @DEPDIR@
    189 DRIVER_DIR = @DRIVER_DIR@
    190185ECHO_C = @ECHO_C@
    191186ECHO_N = @ECHO_N@
     
    531526include $(DEPDIR)/builtins.Po
    532527
    533 ../libcfa/libcfa-prelude.c : prelude.cf extras.cf gcc-builtins.cf builtins.cf @CFACPP@
    534         ${AM_V_GEN}@CFACPP@ -l prelude.cf $@  # use src/cfa-cpp as not in lib until after install
    535 
    536 bootloader.c : ${srcdir}/bootloader.cf prelude.cf extras.cf gcc-builtins.cf builtins.cf @CFACPP@
    537         ${AM_V_GEN}@CFACPP@ -tpm ${srcdir}/bootloader.cf $@  # use src/cfa-cpp as not in lib until after install
     528../libcfa/libcfa-prelude.c : prelude.cf extras.cf gcc-builtins.cf builtins.cf ${abs_top_builddir}/src/driver/cfa-cpp
     529        ${AM_V_GEN}${abs_top_builddir}/src/driver/cfa-cpp -l prelude.cf $@  # use src/cfa-cpp as not in lib until after install
     530
     531bootloader.c : ${srcdir}/bootloader.cf prelude.cf extras.cf gcc-builtins.cf builtins.cf ${abs_top_builddir}/src/driver/cfa-cpp
     532        ${AM_V_GEN}${abs_top_builddir}/src/driver/cfa-cpp -tpm ${srcdir}/bootloader.cf $@  # use src/cfa-cpp as not in lib until after install
    538533
    539534maintainer-clean-local :
  • src/tests/Makefile.am

    r4084928e r364d70c  
    3030# applies to both programs
    3131AM_CFLAGS = $(if $(test), 2> $(test), ) \
     32        -XCFA \
     33        -t \
     34        -B${abs_top_builddir}/src/driver \
    3235        -g \
    3336        -Wall \
    3437        -Wno-unused-function \
    3538        -quiet @CFA_FLAGS@ \
     39        -I. \
    3640        -DIN_DIR="${srcdir}/.in/" \
    37         @BUILD_IN_TREE_FLAGS@
     41        -L${abs_top_builddir}/src/libcfa \
     42        -I${abs_top_srcdir}/src/libcfa \
     43        -I${abs_top_srcdir}/src/libcfa/containers \
     44        -I${abs_top_srcdir}/src/libcfa/concurrency \
     45        -I${abs_top_srcdir}/src/libcfa/stdhdr
    3846
    3947if !BUILD_DEBUG
     
    4755endif
    4856
    49 CC = @CFACC@
     57CC = ${abs_top_builddir}/src/driver/cfa
    5058
    5159.PHONY : list
     
    8593# implicit rule so not all test require a rule
    8694% : %.c $(CC)
     95        echo $(headers_deps)
    8796        $(COMPILE) $(abspath ${<}) -o ${@}
    8897
  • src/tests/Makefile.in

    r4084928e r364d70c  
    181181AWK = @AWK@
    182182BACKEND_CC = @BACKEND_CC@
    183 BUILD_IN_TREE_FLAGS = @BUILD_IN_TREE_FLAGS@
    184 BUILD_IN_TREE_FLAGS_NOLIB = @BUILD_IN_TREE_FLAGS_NOLIB@
    185 CC = @CFACC@
     183CC = ${abs_top_builddir}/src/driver/cfa
    186184CCAS = @CCAS@
    187185CCASDEPMODE = @CCASDEPMODE@
    188186CCASFLAGS = @CCASFLAGS@
    189187CCDEPMODE = @CCDEPMODE@
    190 CFACC = @CFACC@
    191 CFACPP = @CFACPP@
    192188CFA_BACKEND_CC = @CFA_BACKEND_CC@
    193189CFA_BINDIR = @CFA_BINDIR@
     
    206202DEFS = @DEFS@
    207203DEPDIR = @DEPDIR@
    208 DRIVER_DIR = @DRIVER_DIR@
    209204ECHO_C = @ECHO_C@
    210205ECHO_N = @ECHO_N@
     
    303298
    304299# applies to both programs
    305 AM_CFLAGS = $(if $(test), 2> $(test), ) -g -Wall -Wno-unused-function \
    306         -quiet @CFA_FLAGS@ -DIN_DIR="${srcdir}/.in/" \
    307         @BUILD_IN_TREE_FLAGS@ $(am__append_1) $(am__append_2) \
    308         $(am__append_3)
     300AM_CFLAGS = $(if $(test), 2> $(test), ) -XCFA -t \
     301        -B${abs_top_builddir}/src/driver -g -Wall -Wno-unused-function \
     302        -quiet @CFA_FLAGS@ -I. -DIN_DIR="${srcdir}/.in/" \
     303        -L${abs_top_builddir}/src/libcfa \
     304        -I${abs_top_srcdir}/src/libcfa \
     305        -I${abs_top_srcdir}/src/libcfa/containers \
     306        -I${abs_top_srcdir}/src/libcfa/concurrency \
     307        -I${abs_top_srcdir}/src/libcfa/stdhdr $(am__append_1) \
     308        $(am__append_2) $(am__append_3)
    309309fstream_test_SOURCES = fstream_test.c
    310310avl_test_SOURCES = avltree/avl_test.c avltree/avl0.c avltree/avl1.c avltree/avl2.c avltree/avl3.c avltree/avl4.c avltree/avl-private.c
     
    641641# implicit rule so not all test require a rule
    642642% : %.c $(CC)
     643        echo $(headers_deps)
    643644        $(COMPILE) $(abspath ${<}) -o ${@}
    644645
  • src/tests/preempt_longrun/Makefile.am

    r4084928e r364d70c  
    3232BUILD_FLAGS = -g -Wall -Wno-unused-function -quiet @CFA_FLAGS@ -O2 -DPREEMPTION_RATE=${preempt} -I.. -I. -DTEST_$(shell cat .type | tr a-z A-Z)
    3333CFLAGS = ${BUILD_FLAGS}
    34 CC = @CFACC@
     34CC = ${top_builddir}/src/driver/cfa
    3535
    3636TESTS = block coroutine create disjoint enter enter3 processor stack wait yield
  • src/tests/preempt_longrun/Makefile.in

    r4084928e r364d70c  
    337337AWK = @AWK@
    338338BACKEND_CC = @BACKEND_CC@
    339 BUILD_IN_TREE_FLAGS = @BUILD_IN_TREE_FLAGS@
    340 BUILD_IN_TREE_FLAGS_NOLIB = @BUILD_IN_TREE_FLAGS_NOLIB@
    341 CC = @CFACC@
     339CC = ${top_builddir}/src/driver/cfa
    342340CCAS = @CCAS@
    343341CCASDEPMODE = @CCASDEPMODE@
    344342CCASFLAGS = @CCASFLAGS@
    345343CCDEPMODE = @CCDEPMODE@
    346 CFACC = @CFACC@
    347 CFACPP = @CFACPP@
    348344CFA_BACKEND_CC = @CFA_BACKEND_CC@
    349345CFA_BINDIR = @CFA_BINDIR@
     
    362358DEFS = @DEFS@
    363359DEPDIR = @DEPDIR@
    364 DRIVER_DIR = @DRIVER_DIR@
    365360ECHO_C = @ECHO_C@
    366361ECHO_N = @ECHO_N@
  • src/tests/pybin/tools.py

    r4084928e r364d70c  
    4848                return False
    4949
    50         return match.group(1).startswith("ASCII text")
     50        return match.group(1) == "ASCII text"
    5151
    5252# Remove 1 or more files silently
  • tools/Makefile.in

    r4084928e r364d70c  
    186186AWK = @AWK@
    187187BACKEND_CC = @BACKEND_CC@
    188 BUILD_IN_TREE_FLAGS = @BUILD_IN_TREE_FLAGS@
    189 BUILD_IN_TREE_FLAGS_NOLIB = @BUILD_IN_TREE_FLAGS_NOLIB@
    190188CC = @BACKEND_CC@
    191189CCAS = @CCAS@
     
    193191CCASFLAGS = @CCASFLAGS@
    194192CCDEPMODE = @CCDEPMODE@
    195 CFACC = @CFACC@
    196 CFACPP = @CFACPP@
    197193CFA_BACKEND_CC = @CFA_BACKEND_CC@
    198194CFA_BINDIR = @CFA_BINDIR@
     
    211207DEFS = @DEFS@
    212208DEPDIR = @DEPDIR@
    213 DRIVER_DIR = @DRIVER_DIR@
    214209ECHO_C = @ECHO_C@
    215210ECHO_N = @ECHO_N@
  • tools/prettyprinter/Makefile.in

    r4084928e r364d70c  
    210210AWK = @AWK@
    211211BACKEND_CC = @BACKEND_CC@
    212 BUILD_IN_TREE_FLAGS = @BUILD_IN_TREE_FLAGS@
    213 BUILD_IN_TREE_FLAGS_NOLIB = @BUILD_IN_TREE_FLAGS_NOLIB@
    214212CC = @CC@
    215213CCAS = @CCAS@
     
    217215CCASFLAGS = @CCASFLAGS@
    218216CCDEPMODE = @CCDEPMODE@
    219 CFACC = @CFACC@
    220 CFACPP = @CFACPP@
    221217CFA_BACKEND_CC = @CFA_BACKEND_CC@
    222218CFA_BINDIR = @CFA_BINDIR@
     
    235231DEFS = @DEFS@
    236232DEPDIR = @DEPDIR@
    237 DRIVER_DIR = @DRIVER_DIR@
    238233ECHO_C = @ECHO_C@
    239234ECHO_N = @ECHO_N@
Note: See TracChangeset for help on using the changeset viewer.