Changeset 3bbd012


Ignore:
Timestamp:
Jul 31, 2018, 2:43:04 PM (6 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, no_list, persistent-indexer, pthread-emulation, qualifiedEnum
Children:
642bc83
Parents:
d1e0979 (diff), 04e367c (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 demangler

Files:
10 added
70 edited
2 moved

Legend:

Unmodified
Added
Removed
  • .gitignore

    rd1e0979 r3bbd012  
    88config.status
    99config.log
     10config.py
    1011stamp-h1
    1112/Makefile
     
    2425include
    2526share
     27build
    2628*.class
    2729
  • Jenkinsfile

    rd1e0979 r3bbd012  
    174174
    175175def notify_server(int wait) {
    176         sh """curl --data "wait=${wait}" -X POST https://cforall.uwaterloo.ca:8082/jenkins/notify > /dev/null || true"""
     176        sh """curl --silent --show-error --data "wait=${wait}" -X POST https://cforall.uwaterloo.ca:8082/jenkins/notify > /dev/null || true"""
    177177        return
    178178}
     
    260260                def install_dir = pwd tmp: true
    261261
    262                 //Output compiler version to help with debug
    263                 echo """C++ Compiler :"""
    264                 sh "which ${compiler.cpp_cc} && ${compiler.cpp_cc} --version"
    265                 echo """C   Compiler :"""
    266                 sh "which ${compiler.cfa_cc} && ${compiler.cfa_cc} --version"
    267 
    268                 //Configure the conpilation (Output is not relevant)
    269                 //Use the current directory as the installation target so nothing escapes the sandbox
    270                 //Also specify the compiler by hand
    271                 sh "./configure CXX=${compiler.cpp_cc} ${architecture} --with-backend-compiler=${compiler.cfa_cc} --prefix=${install_dir} --enable-silent-rules --quiet"
    272 
    273                 //Compile the project
    274                 sh 'make -j 8 --no-print-directory V=0 install'
     262                // Build outside of the src tree to ease cleaning
     263                sh "mkdir -p build"
     264                dir ('build') {
     265                        //Configure the conpilation (Output is not relevant)
     266                        //Use the current directory as the installation target so nothing escapes the sandbox
     267                        //Also specify the compiler by hand
     268                        sh "../configure CXX=${compiler.cpp_cc} ${architecture} --with-backend-compiler=${compiler.cfa_cc} --prefix=${install_dir} --enable-silent-rules --quiet"
     269
     270                        //Compile the project
     271                        sh 'make -j 8 --no-print-directory'
     272                }
    275273        }
    276274}
     
    281279                //Run the tests from the tests directory
    282280                if ( do_alltests ) {
    283                         sh 'make -C src/tests all-tests debug=yes --no-print-directory'
    284                         sh 'make -C src/tests all-tests debug=no --no-print-directory'
     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'
    285283                }
    286284                else {
    287                         sh 'make -C src/tests --no-print-directory'
     285                        sh 'make -C build/src/tests --no-print-directory'
    288286                }
    289287        }
     
    296294
    297295                //Append bench results
    298                 sh 'make -C src/benchmark --no-print-directory jenkins githash=' + gitRefNewValue + ' arch=' + arch_name + ' | tee bench.json'
     296                sh 'make -C build/src/benchmark --no-print-directory jenkins githash=' + gitRefNewValue + ' arch=' + arch_name + ' | tee bench.json'
    299297        }
    300298}
     
    302300def clean() {
    303301        build_stage('Cleanup') {
    304 
    305                 //do a maintainer-clean to make sure we need to remake from scratch
    306                 sh 'make maintainer-clean > /dev/null'
     302                // clean the build by wipping the build directory
     303                sh 'rm -rf build'
    307304        }
    308305}
     
    329326
    330327                //Then publish the results
    331                 sh 'curl -H \'Content-Type: application/json\' --data @bench.json https://cforall.uwaterloo.ca:8082/jenkins/publish > /dev/null || true'
     328                sh 'curl --silent --show-error -H \'Content-Type: application/json\' --data @bench.json https://cforall.uwaterloo.ca:8082/jenkins/publish > /dev/null || true'
    332329        }
    333330}
  • Makefile.in

    rd1e0979 r3bbd012  
    170170AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
    171171        cscope distdir dist dist-all distcheck
    172 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
    173         $(LISP)config.h.in
     172am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
    174173# Read a list of newline-separated strings from the standard input,
    175174# and print each of them once, without duplicates.  Input order is
     
    192191CSCOPE = cscope
    193192DIST_SUBDIRS = $(SUBDIRS)
    194 am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
    195         $(top_srcdir)/automake/compile \
     193am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/automake/compile \
    196194        $(top_srcdir)/automake/config.guess \
    197195        $(top_srcdir)/automake/config.sub \
    198196        $(top_srcdir)/automake/install-sh \
    199         $(top_srcdir)/automake/missing INSTALL README automake/compile \
    200         automake/config.guess automake/config.sub automake/depcomp \
    201         automake/install-sh automake/missing automake/ylwrap
     197        $(top_srcdir)/automake/missing $(top_srcdir)/src/config.h.in \
     198        INSTALL README automake/compile automake/config.guess \
     199        automake/config.sub automake/depcomp automake/install-sh \
     200        automake/missing automake/ylwrap
    202201DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
    203202distdir = $(PACKAGE)-$(VERSION)
     
    291290LTLIBOBJS = @LTLIBOBJS@
    292291MACHINE_TYPE = @MACHINE_TYPE@
    293 MAINT = @MAINT@
    294292MAKEINFO = @MAKEINFO@
    295293MKDIR_P = @MKDIR_P@
     
    373371am--refresh: Makefile
    374372        @:
    375 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
     373$(srcdir)/Makefile.in: $(srcdir)/Makefile.am  $(am__configure_deps)
    376374        @for dep in $?; do \
    377375          case '$(am__configure_deps)' in \
     
    399397        $(SHELL) ./config.status --recheck
    400398
    401 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
     399$(top_srcdir)/configure: $(am__configure_deps)
    402400        $(am__cd) $(srcdir) && $(AUTOCONF)
    403 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
     401$(ACLOCAL_M4): $(am__aclocal_m4_deps)
    404402        $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
    405403$(am__aclocal_m4_deps):
     
    409407        @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
    410408
    411 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
     409stamp-h1: $(top_srcdir)/src/config.h.in $(top_builddir)/config.status
    412410        @rm -f stamp-h1
    413411        cd $(top_builddir) && $(SHELL) ./config.status config.h
    414 $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
     412$(top_srcdir)/src/config.h.in: $(am__configure_deps)
    415413        ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
    416414        rm -f stamp-h1
  • aclocal.m4

    rd1e0979 r3bbd012  
    703703AC_SUBST([am__leading_dot])])
    704704
    705 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
    706 # From Jim Meyering
    707 
    708 # Copyright (C) 1996-2014 Free Software Foundation, Inc.
    709 #
    710 # This file is free software; the Free Software Foundation
    711 # gives unlimited permission to copy and/or distribute it,
    712 # with or without modifications, as long as this notice is preserved.
    713 
    714 # AM_MAINTAINER_MODE([DEFAULT-MODE])
    715 # ----------------------------------
    716 # Control maintainer-specific portions of Makefiles.
    717 # Default is to disable them, unless 'enable' is passed literally.
    718 # For symmetry, 'disable' may be passed as well.  Anyway, the user
    719 # can override the default with the --enable/--disable switch.
    720 AC_DEFUN([AM_MAINTAINER_MODE],
    721 [m4_case(m4_default([$1], [disable]),
    722        [enable], [m4_define([am_maintainer_other], [disable])],
    723        [disable], [m4_define([am_maintainer_other], [enable])],
    724        [m4_define([am_maintainer_other], [enable])
    725         m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
    726 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
    727   dnl maintainer-mode's default is 'disable' unless 'enable' is passed
    728   AC_ARG_ENABLE([maintainer-mode],
    729     [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
    730       am_maintainer_other[ make rules and dependencies not useful
    731       (and sometimes confusing) to the casual installer])],
    732     [USE_MAINTAINER_MODE=$enableval],
    733     [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
    734   AC_MSG_RESULT([$USE_MAINTAINER_MODE])
    735   AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
    736   MAINT=$MAINTAINER_MODE_TRUE
    737   AC_SUBST([MAINT])dnl
    738 ]
    739 )
    740 
    741705# Check to see how 'make' treats includes.                  -*- Autoconf -*-
    742706
  • configure

    rd1e0979 r3bbd012  
    691691BACKEND_CC
    692692CFA_NAME
    693 MAINT
    694 MAINTAINER_MODE_FALSE
    695 MAINTAINER_MODE_TRUE
    696693am__untar
    697694am__tar
     
    764761enable_option_checking
    765762enable_silent_rules
    766 enable_maintainer_mode
    767763with_cfa_name
    768764with_backend_compiler
     
    14191415  --enable-silent-rules   less verbose build output (undo: "make V=1")
    14201416  --disable-silent-rules  verbose build output (undo: "make V=0")
    1421   --disable-maintainer-mode
    1422                           disable make rules and dependencies not useful (and
    1423                           sometimes confusing) to the casual installer
    14241417  --enable-target-release Build and install the release target
    14251418  --enable-target-debug   Build and install the debug target
     
    24922485
    24932486#AC_CONFIG_SRCDIR([src/main.cc])
    2494 ac_config_headers="$ac_config_headers config.h"
     2487ac_config_headers="$ac_config_headers config.h:src/config.h.in"
    24952488
    24962489# Check whether --enable-silent-rules was given.
     
    30743067fi
    30753068
    3076 
    3077 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
    3078 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
    3079     # Check whether --enable-maintainer-mode was given.
    3080 if test "${enable_maintainer_mode+set}" = set; then :
    3081   enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
    3082 else
    3083   USE_MAINTAINER_MODE=yes
    3084 fi
    3085 
    3086   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
    3087 $as_echo "$USE_MAINTAINER_MODE" >&6; }
    3088    if test $USE_MAINTAINER_MODE = yes; then
    3089   MAINTAINER_MODE_TRUE=
    3090   MAINTAINER_MODE_FALSE='#'
    3091 else
    3092   MAINTAINER_MODE_TRUE='#'
    3093   MAINTAINER_MODE_FALSE=
    3094 fi
    3095 
    3096   MAINT=$MAINTAINER_MODE_TRUE
    3097 
    3098                         # may require auto* software to be installed
    30993069
    31003070# Allow program name tansformation
     
    62956265
    62966266
     6267ac_config_links="$ac_config_links src/tests/test.py:src/tests/test.py"
     6268
     6269
     6270ac_config_files="$ac_config_files src/tests/config.py"
     6271
    62976272cat >confcache <<\_ACEOF
    62986273# This file is a shell script that caches the results of configure
     
    64206395fi
    64216396
    6422 if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
    6423   as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
    6424 Usually this means the macro was only invoked conditionally." "$LINENO" 5
    6425 fi
    64266397if test -z "${BUILD_RELEASE_TRUE}" && test -z "${BUILD_RELEASE_FALSE}"; then
    64276398  as_fn_error $? "conditional \"BUILD_RELEASE\" was never defined.
     
    68806851config_files="$ac_config_files"
    68816852config_headers="$ac_config_headers"
     6853config_links="$ac_config_links"
    68826854config_commands="$ac_config_commands"
    68836855
     
    69096881Configuration headers:
    69106882$config_headers
     6883
     6884Configuration links:
     6885$config_links
    69116886
    69126887Configuration commands:
     
    70487023do
    70497024  case $ac_config_target in
    7050     "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
     7025    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:src/config.h.in" ;;
    70517026    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
    70527027    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
     
    70617036    "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
    70627037    "tools/prettyprinter/Makefile") CONFIG_FILES="$CONFIG_FILES tools/prettyprinter/Makefile" ;;
     7038    "src/tests/test.py") CONFIG_LINKS="$CONFIG_LINKS src/tests/test.py:src/tests/test.py" ;;
     7039    "src/tests/config.py") CONFIG_FILES="$CONFIG_FILES src/tests/config.py" ;;
    70637040
    70647041  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
     
    70747051  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
    70757052  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
     7053  test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links
    70767054  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
    70777055fi
     
    73717349
    73727350
    7373 eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
     7351eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS  :L $CONFIG_LINKS  :C $CONFIG_COMMANDS"
    73747352shift
    73757353for ac_tag
     
    76487626          s/.*/./; q'`/stamp-h$_am_stamp_count
    76497627 ;;
    7650 
     7628  :L)
     7629  #
     7630  # CONFIG_LINK
     7631  #
     7632
     7633  if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then
     7634    :
     7635  else
     7636    # Prefer the file from the source tree if names are identical.
     7637    if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then
     7638      ac_source=$srcdir/$ac_source
     7639    fi
     7640
     7641    { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5
     7642$as_echo "$as_me: linking $ac_source to $ac_file" >&6;}
     7643
     7644    if test ! -r "$ac_source"; then
     7645      as_fn_error $? "$ac_source: file not found" "$LINENO" 5
     7646    fi
     7647    rm -f "$ac_file"
     7648
     7649    # Try a relative symlink, then a hard link, then a copy.
     7650    case $ac_source in
     7651    [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;;
     7652        *) ac_rel_source=$ac_top_build_prefix$ac_source ;;
     7653    esac
     7654    ln -s "$ac_rel_source" "$ac_file" 2>/dev/null ||
     7655      ln "$ac_source" "$ac_file" 2>/dev/null ||
     7656      cp -p "$ac_source" "$ac_file" ||
     7657      as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5
     7658  fi
     7659 ;;
    76517660  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
    76527661$as_echo "$as_me: executing $ac_file commands" >&6;}
  • configure.ac

    rd1e0979 r3bbd012  
    66AC_CONFIG_AUX_DIR([automake])
    77#AC_CONFIG_SRCDIR([src/main.cc])
    8 AC_CONFIG_HEADERS([config.h])
     8AC_CONFIG_HEADERS([config.h:src/config.h.in])
    99AM_SILENT_RULES([no])
    1010
    1111AM_INIT_AUTOMAKE([subdir-objects])
    12 AM_MAINTAINER_MODE(enable)                      # may require auto* software to be installed
    1312
    1413# Allow program name tansformation
     
    251250        ])
    252251
    253 AC_OUTPUT
     252AC_CONFIG_LINKS([src/tests/test.py:src/tests/test.py])
     253
     254AC_OUTPUT(src/tests/config.py)
    254255
    255256AM_COND_IF([BUILD_RELEASE],
  • doc/bibliography/pl.bib

    rd1e0979 r3bbd012  
    33553355    pages       = {115-138},
    33563356    year        = 1971,
     3357}
     3358
     3359@article{Hesselink17,
     3360    keywords    = {concurrency, mutual exclusion, performance experiment, software solutions},
     3361    title       = {High-Contention Mutual Exclusion by Elevator Algorithms},
     3362    author      = {Peter Buhr and David Dice and Wim H. Hesselink},
     3363    journal     = ccpe,
     3364    volumeopt   = 30,
     3365    numberopt   = 4,
     3366    year        = 2018,
     3367    month       = may,
     3368    publisher   = {John Wiley \& Sons},
     3369    note        = {\url{https://doi-org.proxy.lib.uwaterloo.ca/10.1002/cpe.4475}}
    33573370}
    33583371
  • doc/user/Makefile

    rd1e0979 r3bbd012  
    5151# File Dependencies #
    5252
     53build/version: ../../configure | ${Build}
     54        ../../configure --version | grep "cfa-cc configure" | grep -oEe "([0-9]+\.)+[0-9]+" > $@
     55
    5356${DOCUMENT} : ${BASE}.ps
    5457        ps2pdf $<
     
    5861
    5962${BASE}.dvi : Makefile ${GRAPHS} ${PROGRAMS} ${PICTURES} ${FIGURES} ${SOURCES} \
    60                 ${Macros}/common.tex ${Macros}/lstlang.sty ${Macros}/indexstyle ../bibliography/pl.bib | ${Build}
     63                ${Macros}/common.tex ${Macros}/lstlang.sty ${Macros}/indexstyle ../bibliography/pl.bib build/version | ${Build}
    6164        # Conditionally create an empty *.ind (index) file for inclusion until makeindex is run.
    6265        if [ ! -r ${basename $@}.ind ] ; then touch ${Build}/${basename $@}.ind ; fi
  • doc/user/user.tex

    rd1e0979 r3bbd012  
    11%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- Mode: Latex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2 %% 
     2%%
    33%% Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
    44%%
    55%% The contents of this file are covered under the licence agreement in the
    66%% file "LICENCE" distributed with Cforall.
    7 %% 
    8 %% user.tex -- 
    9 %% 
     7%%
     8%% user.tex --
     9%%
    1010%% Author           : Peter A. Buhr
    1111%% Created On       : Wed Apr  6 14:53:29 2016
     
    7272
    7373% Names used in the document.
    74 \newcommand{\Version}{\input{../../version}}
     74\newcommand{\Version}{\input{build/version}}
    7575\newcommand{\Textbf}[2][red]{{\color{#1}{\textbf{#2}}}}
    7676\newcommand{\Emph}[2][red]{{\color{#1}\textbf{\emph{#2}}}}
     
    430430#endif
    431431\end{cfa}
    432 which conditionally includes the correct header file, if the program is compiled using \Indexc{gcc} or \Indexc{cfa}. 
     432which conditionally includes the correct header file, if the program is compiled using \Indexc{gcc} or \Indexc{cfa}.
    433433
    434434
     
    14471447\end{cfa}
    14481448Algol68 infers the following dereferencing ©*p2 = *p1 + x©, because adding the arbitrary integer value in ©x© to the address of ©p1© and storing the resulting address into ©p2© is an unlikely operation.
    1449 Unfortunately, automatic dereferencing does not work in all cases, and so some mechanism is necessary to fix incorrect choices. 
     1449Unfortunately, automatic dereferencing does not work in all cases, and so some mechanism is necessary to fix incorrect choices.
    14501450
    14511451Rather than inferring dereference, most programming languages pick one implicit dereferencing semantics, and the programmer explicitly indicates the other to resolve address-duality.
     
    22822282        struct T t;
    22832283} s;
    2284        
     2284
    22852285
    22862286
     
    23542354}
    23552355\end{cfa}
    2356 because 
     2356because
    23572357
    23582358Currently, there are no \Index{lambda} expressions, \ie unnamed routines because routine names are very important to properly select the correct routine.
     
    33943394        sout | sepDisable | 1 | 2 | 3 | endl;           // globally turn off implicit separator
    33953395        sout | sepEnable | 1 | 2 | 3 | endl;            // globally turn on implicit separator
    3396        
     3396
    33973397        sout | 1 | sepOff | 2 | 3 | endl;                       // locally turn on implicit separator
    33983398        sout | sepDisable | 1 | sepOn | 2 | 3 | endl; // globally turn off implicit separator
  • src/Common/SemanticError.h

    rd1e0979 r3bbd012  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed May 16 15:01:23 2018
    13 // Update Count     : 30
     12// Last Modified On : Thu Jul 19 10:09:17 2018
     13// Update Count     : 31
    1414//
    1515
     
    5757        {"qualifiers-zero_t-one_t", "questionable use of type qualifier %s with %s", Severity::Warn},
    5858        {"aggregate-forward-decl" , "forward declaration of nested aggregate: %s"  , Severity::Warn},
     59        {"superfluous-decl"       , "declaration does not allocate storage: %s"    , Severity::Warn},
     60        {"gcc-attributes"         , "invalid attribute: %s"                        , Severity::Warn},
    5961};
    6062
     
    6466        BadQualifiersZeroOne,
    6567        AggrForwardDecl,
    66         NUMBER_OF_WARNINGS, //This MUST be the last warning
     68        SuperfluousDecl,
     69        GccAttributes,
     70        NUMBER_OF_WARNINGS, // This MUST be the last warning
    6771};
    6872
  • src/Common/module.mk

    rd1e0979 r3bbd012  
    1919       Common/DebugMalloc.cc \
    2020       Common/Assert.cc \
    21        Common/Heap.cc
     21       Common/Heap.cc \
     22       Common/Eval.cc
  • src/Common/utility.h

    rd1e0979 r3bbd012  
    3131#include "Common/Indenter.h"
    3232
     33class Expression;
     34
    3335template< typename T >
    3436static inline T * maybeClone( const T *orig ) {
     
    456458} // ilog2
    457459
     460// -----------------------------------------------------------------------------
     461/// evaluates expr as a long long int. If second is false, expr could not be evaluated
     462std::pair<long long int, bool> eval(Expression * expr);
    458463
    459464// Local Variables: //
  • src/InitTweak/FixGlobalInit.cc

    rd1e0979 r3bbd012  
    3737        class GlobalFixer : public WithShortCircuiting {
    3838          public:
    39                 GlobalFixer( const std::string & name, bool inLibrary );
     39                GlobalFixer( bool inLibrary );
    4040
    4141                void previsit( ObjectDecl *objDecl );
     
    5252        };
    5353
    54         void fixGlobalInit( std::list< Declaration * > & translationUnit, const std::string & name, bool inLibrary ) {
    55                 PassVisitor<GlobalFixer> visitor( name, inLibrary );
     54        void fixGlobalInit( std::list< Declaration * > & translationUnit, bool inLibrary ) {
     55                PassVisitor<GlobalFixer> visitor( inLibrary );
    5656                acceptAll( translationUnit, visitor );
    5757                GlobalFixer & fixer = visitor.pass;
     
    7070        }
    7171
    72   std::string globalFunctionName( const std::string & name ) {
    73         // get basename
    74         std::string ret = name.substr( 0, name.find( '.' ) );
    75         // replace invalid characters with _
    76                 static std::string invalid = "/-";
    77         replace_if( ret.begin(), ret.end(), []( char c ) { return invalid.find(c) != std::string::npos; }, '_' );
    78         return ret;
    79   }
    80 
    81         GlobalFixer::GlobalFixer( const std::string & name, bool inLibrary ) : tempNamer( "_global_init" ) {
    82                 std::string fixedName = globalFunctionName( name );
     72        GlobalFixer::GlobalFixer( bool inLibrary ) : tempNamer( "_global_init" ) {
    8373                std::list< Expression * > ctorParameters;
    8474                std::list< Expression * > dtorParameters;
     
    9080                        // for library code are run before constructors and destructors for user code,
    9181                        // specify a priority when building the library. Priorities 0-100 are reserved by gcc.
    92                         ctorParameters.push_back( new ConstantExpr( Constant::from_int( 102 ) ) );
    93                         dtorParameters.push_back( new ConstantExpr( Constant::from_int( 102 ) ) );
     82                        // Priorities 101-200 are reserved by cfa, so use priority 200 for CFA library globals,
     83                        // allowing room for overriding with a higher priority.
     84                        ctorParameters.push_back( new ConstantExpr( Constant::from_int( 200 ) ) );
     85                        dtorParameters.push_back( new ConstantExpr( Constant::from_int( 200 ) ) );
    9486                }
    95                 initFunction = new FunctionDecl( "_init_" + fixedName, Type::StorageClasses( Type::Static ), LinkageSpec::C, new FunctionType( Type::Qualifiers(), false ), new CompoundStmt() );
     87                initFunction = new FunctionDecl( "__global_init__", Type::StorageClasses( Type::Static ), LinkageSpec::C, new FunctionType( Type::Qualifiers(), false ), new CompoundStmt() );
    9688                initFunction->get_attributes().push_back( new Attribute( "constructor", ctorParameters ) );
    97                 destroyFunction = new FunctionDecl( "_destroy_" + fixedName, Type::StorageClasses( Type::Static ), LinkageSpec::C, new FunctionType( Type::Qualifiers(), false ), new CompoundStmt() );
     89                destroyFunction = new FunctionDecl( "__global_destroy__", Type::StorageClasses( Type::Static ), LinkageSpec::C, new FunctionType( Type::Qualifiers(), false ), new CompoundStmt() );
    9890                destroyFunction->get_attributes().push_back( new Attribute( "destructor", dtorParameters ) );
    9991        }
     
    110102                if ( ConstructorInit * ctorInit = dynamic_cast< ConstructorInit * >( objDecl->get_init() ) ) {
    111103                        // a decision should have been made by the resolver, so ctor and init are not both non-NULL
    112                         assert( ! ctorInit->get_ctor() || ! ctorInit->get_init() );
     104                        assert( ! ctorInit->ctor || ! ctorInit->init );
    113105
    114                         Statement * dtor = ctorInit->get_dtor();
     106                        Statement * dtor = ctorInit->dtor;
    115107                        if ( dtor && ! isIntrinsicSingleArgCallStmt( dtor ) ) {
    116108                                // don't need to call intrinsic dtor, because it does nothing, but
    117109                                // non-intrinsic dtors must be called
    118110                                destroyStatements.push_front( dtor );
    119                                 ctorInit->set_dtor( NULL );
     111                                ctorInit->dtor = nullptr;
    120112                        } // if
    121                         if ( Statement * ctor = ctorInit->get_ctor() ) {
     113                        if ( Statement * ctor = ctorInit->ctor ) {
    122114                                initStatements.push_back( ctor );
    123                                 objDecl->set_init( NULL );
    124                                 ctorInit->set_ctor( NULL );
    125                         } else if ( Initializer * init = ctorInit->get_init() ) {
    126                                 objDecl->set_init( init );
    127                                 ctorInit->set_init( NULL );
     115                                objDecl->init = nullptr;
     116                                ctorInit->ctor = nullptr;
     117                        } else if ( Initializer * init = ctorInit->init ) {
     118                                objDecl->init = init;
     119                                ctorInit->init = nullptr;
    128120                        } else {
    129121                                // no constructor and no initializer, which is okay
    130                                 objDecl->set_init( NULL );
     122                                objDecl->init = nullptr;
    131123                        } // if
    132124                        delete ctorInit;
  • src/InitTweak/FixGlobalInit.h

    rd1e0979 r3bbd012  
    2222
    2323namespace InitTweak {
    24   /// Moves global initialization into an _init function that is unique to the translation unit.
    25   /// Sets the priority of the initialization function depending on whether the initialization
    26   /// function is for library code.
    27   void fixGlobalInit( std::list< Declaration * > & translationUnit, const std::string & name, bool inLibrary );
    28 
    29   /// Apply transformations to a file name to get a valid C identifier which will be used as
    30   /// the name of the generated initializer function.
    31   std::string globalFunctionName( const std::string & name );
     24        /// Moves global initialization into an _init function that is unique to the translation unit.
     25        /// Sets the priority of the initialization function depending on whether the initialization
     26        /// function is for library code.
     27        void fixGlobalInit( std::list< Declaration * > & translationUnit, bool inLibrary );
    3228} // namespace
    3329
  • src/InitTweak/FixInit.cc

    rd1e0979 r3bbd012  
    238238        } // namespace
    239239
    240         void fix( std::list< Declaration * > & translationUnit, const std::string & filename, bool inLibrary ) {
     240        void fix( std::list< Declaration * > & translationUnit, bool inLibrary ) {
    241241                PassVisitor<SelfAssignChecker> checker;
    242242                acceptAll( translationUnit, checker );
    243243
    244244                // fixes ConstructorInit for global variables. should happen before fixInitializers.
    245                 InitTweak::fixGlobalInit( translationUnit, filename, inLibrary );
     245                InitTweak::fixGlobalInit( translationUnit, inLibrary );
    246246
    247247                UnqCount unqCount;
  • src/InitTweak/FixInit.h

    rd1e0979 r3bbd012  
    2424  /// replace constructor initializers with expression statements
    2525  /// and unwrap basic C-style initializers
    26         void fix( std::list< Declaration * > & translationUnit, const std::string & name, bool inLibrary );
     26        void fix( std::list< Declaration * > & translationUnit, bool inLibrary );
    2727} // namespace
    2828
  • src/InitTweak/InitTweak.cc

    rd1e0979 r3bbd012  
    408408                return allofCtorDtor( stmt, []( Expression * callExpr ){
    409409                        if ( ApplicationExpr * appExpr = isIntrinsicCallExpr( callExpr ) ) {
    410                                 FunctionType *funcType = GenPoly::getFunctionType( appExpr->get_function()->get_result() );
     410                                FunctionType *funcType = GenPoly::getFunctionType( appExpr->function->result );
    411411                                assert( funcType );
    412412                                return funcType->get_parameters().size() == 1;
  • src/Makefile.am

    rd1e0979 r3bbd012  
    1919
    2020SRC = main.cc \
    21       MakeLibCfa.cc
     21      MakeLibCfa.cc \
     22      CompilationState.cc
    2223
    2324MAINTAINERCLEANFILES =
     
    3738include SynTree/module.mk
    3839include Tuples/module.mk
     40include Validate/module.mk
    3941include Virtual/module.mk
    4042
     
    4547driver_cfa_cpp_SOURCES = ${SRC}
    4648driver_cfa_cpp_LDADD = -ldl                     # yywrap
    47 driver_cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -Wextra -DDEBUG_ALL -I${abs_top_srcdir}/src/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
    4850driver_cfa_cpp_LDFLAGS = -Xlinker -export-dynamic
    4951
     
    9193  SynTree/Attribute.cc \
    9294  SynTree/DeclReplacer.cc \
     95  CompilationState.cc \
    9396  CodeGen/CodeGenerator.cc \
    9497  CodeGen/FixMain.cc \
     
    9699  CodeGen/OperatorTable.cc \
    97100  Common/Assert.cc \
     101  Common/Eval.cc \
    98102  Common/SemanticError.cc \
    99103  Common/UniqueName.cc \
     
    134138  Tuples/Explode.cc \
    135139  Tuples/TupleAssignment.cc \
    136   Tuples/TupleExpansion.cc
     140  Tuples/TupleExpansion.cc \
     141  Validate/HandleAttributes.cc
    137142
    138143MAINTAINERCLEANFILES += ${libdir}/${notdir ${cfa_cpplib_PROGRAMS}}
  • src/Makefile.in

    rd1e0979 r3bbd012  
    2323#SRC +=  ArgTweak/Rewriter.cc \
    2424#       ArgTweak/Mutate.cc
     25
     26######################### -*- Mode: Makefile-Gmake -*- ########################
     27###############################################################################
    2528
    2629######################### -*- Mode: Makefile-Gmake -*- ########################
     
    192195        SynTree/libdemangle_a-Attribute.$(OBJEXT) \
    193196        SynTree/libdemangle_a-DeclReplacer.$(OBJEXT) \
     197        libdemangle_a-CompilationState.$(OBJEXT) \
    194198        CodeGen/libdemangle_a-CodeGenerator.$(OBJEXT) \
    195199        CodeGen/libdemangle_a-FixMain.$(OBJEXT) \
     
    197201        CodeGen/libdemangle_a-OperatorTable.$(OBJEXT) \
    198202        Common/libdemangle_a-Assert.$(OBJEXT) \
     203        Common/libdemangle_a-Eval.$(OBJEXT) \
    199204        Common/libdemangle_a-SemanticError.$(OBJEXT) \
    200205        Common/libdemangle_a-UniqueName.$(OBJEXT) \
     
    235240        Tuples/libdemangle_a-Explode.$(OBJEXT) \
    236241        Tuples/libdemangle_a-TupleAssignment.$(OBJEXT) \
    237         Tuples/libdemangle_a-TupleExpansion.$(OBJEXT)
     242        Tuples/libdemangle_a-TupleExpansion.$(OBJEXT) \
     243        Validate/libdemangle_a-HandleAttributes.$(OBJEXT)
    238244libdemangle_a_OBJECTS = $(am_libdemangle_a_OBJECTS)
    239245am__installdirs = "$(DESTDIR)$(cfa_cpplibdir)"
     
    246252am__objects_1 = driver_cfa_cpp-main.$(OBJEXT) \
    247253        driver_cfa_cpp-MakeLibCfa.$(OBJEXT) \
     254        driver_cfa_cpp-CompilationState.$(OBJEXT) \
    248255        CodeGen/driver_cfa_cpp-Generate.$(OBJEXT) \
    249256        CodeGen/driver_cfa_cpp-CodeGenerator.$(OBJEXT) \
     
    261268        Common/driver_cfa_cpp-Assert.$(OBJEXT) \
    262269        Common/driver_cfa_cpp-Heap.$(OBJEXT) \
     270        Common/driver_cfa_cpp-Eval.$(OBJEXT) \
    263271        ControlStruct/driver_cfa_cpp-LabelGenerator.$(OBJEXT) \
    264272        ControlStruct/driver_cfa_cpp-LabelFixer.$(OBJEXT) \
     
    351359        Tuples/driver_cfa_cpp-TupleExpansion.$(OBJEXT) \
    352360        Tuples/driver_cfa_cpp-Explode.$(OBJEXT) \
     361        Validate/driver_cfa_cpp-HandleAttributes.$(OBJEXT) \
    353362        Virtual/driver_cfa_cpp-ExpandCasts.$(OBJEXT)
    354363am_driver_cfa_cpp_OBJECTS = $(am__objects_1)
     
    390399am__v_CXXLD_0 = @echo "  CXXLD   " $@;
    391400am__v_CXXLD_1 =
    392 @MAINTAINER_MODE_FALSE@am__skiplex = test -f $@ ||
    393401LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS)
    394402AM_V_LEX = $(am__v_LEX_@AM_V@)
     
    397405am__v_LEX_1 =
    398406YLWRAP = $(top_srcdir)/automake/ylwrap
    399 @MAINTAINER_MODE_FALSE@am__skipyacc = test -f $@ ||
    400407am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \
    401408                   -e s/c++$$/h++/ -e s/c$$/h/
     
    426433    *) (install-info --version) >/dev/null 2>&1;; \
    427434  esac
    428 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
     435am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
     436        $(LISP)config.h.in
    429437# Read a list of newline-separated strings from the standard input,
    430438# and print each of them once, without duplicates.  Input order is
     
    452460        $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk \
    453461        $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk \
    454         $(srcdir)/Tuples/module.mk $(srcdir)/Virtual/module.mk \
    455         $(top_srcdir)/automake/depcomp $(top_srcdir)/automake/ylwrap \
    456         Parser/lex.cc Parser/parser.cc Parser/parser.hh
     462        $(srcdir)/Tuples/module.mk $(srcdir)/Validate/module.mk \
     463        $(srcdir)/Virtual/module.mk $(top_srcdir)/automake/depcomp \
     464        $(top_srcdir)/automake/ylwrap Parser/lex.cc Parser/parser.cc \
     465        Parser/parser.hh
    457466DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
    458467ACLOCAL = @ACLOCAL@
     
    505514LTLIBOBJS = @LTLIBOBJS@
    506515MACHINE_TYPE = @MACHINE_TYPE@
    507 MAINT = @MAINT@
    508516MAKEINFO = @MAKEINFO@
    509517MKDIR_P = @MKDIR_P@
     
    579587# create object files in directory with source files
    580588AUTOMAKE_OPTIONS = subdir-objects
    581 SRC = main.cc MakeLibCfa.cc CodeGen/Generate.cc \
     589SRC = main.cc MakeLibCfa.cc CompilationState.cc CodeGen/Generate.cc \
    582590        CodeGen/CodeGenerator.cc CodeGen/GenType.cc \
    583591        CodeGen/FixNames.cc CodeGen/FixMain.cc \
     
    586594        Concurrency/Waitfor.cc Common/SemanticError.cc \
    587595        Common/UniqueName.cc Common/DebugMalloc.cc Common/Assert.cc \
    588         Common/Heap.cc ControlStruct/LabelGenerator.cc \
     596        Common/Heap.cc Common/Eval.cc ControlStruct/LabelGenerator.cc \
    589597        ControlStruct/LabelFixer.cc ControlStruct/MLEMutator.cc \
    590598        ControlStruct/Mutate.cc ControlStruct/ForExprMutator.cc \
     
    628636        SynTree/Attribute.cc SynTree/DeclReplacer.cc \
    629637        Tuples/TupleAssignment.cc Tuples/TupleExpansion.cc \
    630         Tuples/Explode.cc Virtual/ExpandCasts.cc
     638        Tuples/Explode.cc Validate/HandleAttributes.cc \
     639        Virtual/ExpandCasts.cc
    631640MAINTAINERCLEANFILES = Parser/parser.output ${libdir}/${notdir \
    632641        ${cfa_cpplib_PROGRAMS}}
     
    640649driver_cfa_cpp_SOURCES = ${SRC}
    641650driver_cfa_cpp_LDADD = -ldl                     # yywrap
    642 driver_cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -Wextra -DDEBUG_ALL -I${abs_top_srcdir}/src/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
    643652driver_cfa_cpp_LDFLAGS = -Xlinker -export-dynamic
    644653demangler_SOURCES = SymTab/demangler.cc
     
    683692  SynTree/Attribute.cc \
    684693  SynTree/DeclReplacer.cc \
     694  CompilationState.cc \
    685695  CodeGen/CodeGenerator.cc \
    686696  CodeGen/FixMain.cc \
     
    688698  CodeGen/OperatorTable.cc \
    689699  Common/Assert.cc \
     700  Common/Eval.cc \
    690701  Common/SemanticError.cc \
    691702  Common/UniqueName.cc \
     
    726737  Tuples/Explode.cc \
    727738  Tuples/TupleAssignment.cc \
    728   Tuples/TupleExpansion.cc
     739  Tuples/TupleExpansion.cc \
     740  Validate/HandleAttributes.cc
    729741
    730742all: $(BUILT_SOURCES)
     
    733745.SUFFIXES:
    734746.SUFFIXES: .cc .ll .o .obj .yy
    735 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/CodeGen/module.mk $(srcdir)/CodeTools/module.mk $(srcdir)/Concurrency/module.mk $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk $(srcdir)/InitTweak/module.mk $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk $(srcdir)/Virtual/module.mk $(am__configure_deps)
     747$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(srcdir)/CodeGen/module.mk $(srcdir)/CodeTools/module.mk $(srcdir)/Concurrency/module.mk $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk $(srcdir)/InitTweak/module.mk $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk $(srcdir)/Validate/module.mk $(srcdir)/Virtual/module.mk $(am__configure_deps)
    736748        @for dep in $?; do \
    737749          case '$(am__configure_deps)' in \
     
    753765            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
    754766        esac;
    755 $(srcdir)/CodeGen/module.mk $(srcdir)/CodeTools/module.mk $(srcdir)/Concurrency/module.mk $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk $(srcdir)/InitTweak/module.mk $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk $(srcdir)/Virtual/module.mk $(am__empty):
     767$(srcdir)/CodeGen/module.mk $(srcdir)/CodeTools/module.mk $(srcdir)/Concurrency/module.mk $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk $(srcdir)/InitTweak/module.mk $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk $(srcdir)/Validate/module.mk $(srcdir)/Virtual/module.mk $(am__empty):
    756768
    757769$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
    758770        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    759771
    760 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
     772$(top_srcdir)/configure: $(am__configure_deps)
    761773        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    762 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
     774$(ACLOCAL_M4): $(am__aclocal_m4_deps)
    763775        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    764776$(am__aclocal_m4_deps):
     
    871883        @: > Common/$(DEPDIR)/$(am__dirstamp)
    872884Common/libdemangle_a-Assert.$(OBJEXT): Common/$(am__dirstamp) \
     885        Common/$(DEPDIR)/$(am__dirstamp)
     886Common/libdemangle_a-Eval.$(OBJEXT): Common/$(am__dirstamp) \
    873887        Common/$(DEPDIR)/$(am__dirstamp)
    874888Common/libdemangle_a-SemanticError.$(OBJEXT): Common/$(am__dirstamp) \
     
    10141028Tuples/libdemangle_a-TupleExpansion.$(OBJEXT): Tuples/$(am__dirstamp) \
    10151029        Tuples/$(DEPDIR)/$(am__dirstamp)
     1030Validate/$(am__dirstamp):
     1031        @$(MKDIR_P) Validate
     1032        @: > Validate/$(am__dirstamp)
     1033Validate/$(DEPDIR)/$(am__dirstamp):
     1034        @$(MKDIR_P) Validate/$(DEPDIR)
     1035        @: > Validate/$(DEPDIR)/$(am__dirstamp)
     1036Validate/libdemangle_a-HandleAttributes.$(OBJEXT):  \
     1037        Validate/$(am__dirstamp) Validate/$(DEPDIR)/$(am__dirstamp)
    10161038
    10171039libdemangle.a: $(libdemangle_a_OBJECTS) $(libdemangle_a_DEPENDENCIES) $(EXTRA_libdemangle_a_DEPENDENCIES)
     
    11041126        Common/$(DEPDIR)/$(am__dirstamp)
    11051127Common/driver_cfa_cpp-Heap.$(OBJEXT): Common/$(am__dirstamp) \
     1128        Common/$(DEPDIR)/$(am__dirstamp)
     1129Common/driver_cfa_cpp-Eval.$(OBJEXT): Common/$(am__dirstamp) \
    11061130        Common/$(DEPDIR)/$(am__dirstamp)
    11071131ControlStruct/driver_cfa_cpp-LabelGenerator.$(OBJEXT):  \
     
    13121336Tuples/driver_cfa_cpp-Explode.$(OBJEXT): Tuples/$(am__dirstamp) \
    13131337        Tuples/$(DEPDIR)/$(am__dirstamp)
     1338Validate/driver_cfa_cpp-HandleAttributes.$(OBJEXT):  \
     1339        Validate/$(am__dirstamp) Validate/$(DEPDIR)/$(am__dirstamp)
    13141340Virtual/$(am__dirstamp):
    13151341        @$(MKDIR_P) Virtual
     
    13421368        -rm -f SynTree/*.$(OBJEXT)
    13431369        -rm -f Tuples/*.$(OBJEXT)
     1370        -rm -f Validate/*.$(OBJEXT)
    13441371        -rm -f Virtual/*.$(OBJEXT)
    13451372
     
    13471374        -rm -f *.tab.c
    13481375
     1376@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/driver_cfa_cpp-CompilationState.Po@am__quote@
    13491377@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Po@am__quote@
    13501378@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/driver_cfa_cpp-main.Po@am__quote@
     1379@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdemangle_a-CompilationState.Po@am__quote@
    13511380@AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Po@am__quote@
    13521381@AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/driver_cfa_cpp-FixMain.Po@am__quote@
     
    13631392@AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-Assert.Po@am__quote@
    13641393@AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Po@am__quote@
     1394@AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-Eval.Po@am__quote@
    13651395@AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-Heap.Po@am__quote@
    13661396@AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Po@am__quote@
    13671397@AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Po@am__quote@
    13681398@AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/libdemangle_a-Assert.Po@am__quote@
     1399@AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/libdemangle_a-Eval.Po@am__quote@
    13691400@AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/libdemangle_a-SemanticError.Po@am__quote@
    13701401@AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/libdemangle_a-UniqueName.Po@am__quote@
     
    15351566@AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/libdemangle_a-TupleAssignment.Po@am__quote@
    15361567@AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/libdemangle_a-TupleExpansion.Po@am__quote@
     1568@AMDEP_TRUE@@am__include@ @am__quote@Validate/$(DEPDIR)/driver_cfa_cpp-HandleAttributes.Po@am__quote@
     1569@AMDEP_TRUE@@am__include@ @am__quote@Validate/$(DEPDIR)/libdemangle_a-HandleAttributes.Po@am__quote@
    15371570@AMDEP_TRUE@@am__include@ @am__quote@Virtual/$(DEPDIR)/driver_cfa_cpp-ExpandCasts.Po@am__quote@
    15381571
     
    20572090@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/libdemangle_a-DeclReplacer.obj `if test -f 'SynTree/DeclReplacer.cc'; then $(CYGPATH_W) 'SynTree/DeclReplacer.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclReplacer.cc'; fi`
    20582091
     2092libdemangle_a-CompilationState.o: CompilationState.cc
     2093@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -MT libdemangle_a-CompilationState.o -MD -MP -MF $(DEPDIR)/libdemangle_a-CompilationState.Tpo -c -o libdemangle_a-CompilationState.o `test -f 'CompilationState.cc' || echo '$(srcdir)/'`CompilationState.cc
     2094@am__fastdepCXX_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdemangle_a-CompilationState.Tpo $(DEPDIR)/libdemangle_a-CompilationState.Po
     2095@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(AM_V_CXX)source='CompilationState.cc' object='libdemangle_a-CompilationState.o' libtool=no @AMDEPBACKSLASH@
     2096@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2097@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -c -o libdemangle_a-CompilationState.o `test -f 'CompilationState.cc' || echo '$(srcdir)/'`CompilationState.cc
     2098
     2099libdemangle_a-CompilationState.obj: CompilationState.cc
     2100@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -MT libdemangle_a-CompilationState.obj -MD -MP -MF $(DEPDIR)/libdemangle_a-CompilationState.Tpo -c -o libdemangle_a-CompilationState.obj `if test -f 'CompilationState.cc'; then $(CYGPATH_W) 'CompilationState.cc'; else $(CYGPATH_W) '$(srcdir)/CompilationState.cc'; fi`
     2101@am__fastdepCXX_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libdemangle_a-CompilationState.Tpo $(DEPDIR)/libdemangle_a-CompilationState.Po
     2102@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(AM_V_CXX)source='CompilationState.cc' object='libdemangle_a-CompilationState.obj' libtool=no @AMDEPBACKSLASH@
     2103@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2104@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -c -o libdemangle_a-CompilationState.obj `if test -f 'CompilationState.cc'; then $(CYGPATH_W) 'CompilationState.cc'; else $(CYGPATH_W) '$(srcdir)/CompilationState.cc'; fi`
     2105
    20592106CodeGen/libdemangle_a-CodeGenerator.o: CodeGen/CodeGenerator.cc
    20602107@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/libdemangle_a-CodeGenerator.o -MD -MP -MF CodeGen/$(DEPDIR)/libdemangle_a-CodeGenerator.Tpo -c -o CodeGen/libdemangle_a-CodeGenerator.o `test -f 'CodeGen/CodeGenerator.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator.cc
     
    21272174@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -c -o Common/libdemangle_a-Assert.obj `if test -f 'Common/Assert.cc'; then $(CYGPATH_W) 'Common/Assert.cc'; else $(CYGPATH_W) '$(srcdir)/Common/Assert.cc'; fi`
    21282175
     2176Common/libdemangle_a-Eval.o: Common/Eval.cc
     2177@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -MT Common/libdemangle_a-Eval.o -MD -MP -MF Common/$(DEPDIR)/libdemangle_a-Eval.Tpo -c -o Common/libdemangle_a-Eval.o `test -f 'Common/Eval.cc' || echo '$(srcdir)/'`Common/Eval.cc
     2178@am__fastdepCXX_TRUE@   $(AM_V_at)$(am__mv) Common/$(DEPDIR)/libdemangle_a-Eval.Tpo Common/$(DEPDIR)/libdemangle_a-Eval.Po
     2179@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(AM_V_CXX)source='Common/Eval.cc' object='Common/libdemangle_a-Eval.o' libtool=no @AMDEPBACKSLASH@
     2180@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2181@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -c -o Common/libdemangle_a-Eval.o `test -f 'Common/Eval.cc' || echo '$(srcdir)/'`Common/Eval.cc
     2182
     2183Common/libdemangle_a-Eval.obj: Common/Eval.cc
     2184@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -MT Common/libdemangle_a-Eval.obj -MD -MP -MF Common/$(DEPDIR)/libdemangle_a-Eval.Tpo -c -o Common/libdemangle_a-Eval.obj `if test -f 'Common/Eval.cc'; then $(CYGPATH_W) 'Common/Eval.cc'; else $(CYGPATH_W) '$(srcdir)/Common/Eval.cc'; fi`
     2185@am__fastdepCXX_TRUE@   $(AM_V_at)$(am__mv) Common/$(DEPDIR)/libdemangle_a-Eval.Tpo Common/$(DEPDIR)/libdemangle_a-Eval.Po
     2186@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(AM_V_CXX)source='Common/Eval.cc' object='Common/libdemangle_a-Eval.obj' libtool=no @AMDEPBACKSLASH@
     2187@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2188@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -c -o Common/libdemangle_a-Eval.obj `if test -f 'Common/Eval.cc'; then $(CYGPATH_W) 'Common/Eval.cc'; else $(CYGPATH_W) '$(srcdir)/Common/Eval.cc'; fi`
     2189
    21292190Common/libdemangle_a-SemanticError.o: Common/SemanticError.cc
    21302191@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -MT Common/libdemangle_a-SemanticError.o -MD -MP -MF Common/$(DEPDIR)/libdemangle_a-SemanticError.Tpo -c -o Common/libdemangle_a-SemanticError.o `test -f 'Common/SemanticError.cc' || echo '$(srcdir)/'`Common/SemanticError.cc
     
    26732734@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/libdemangle_a-TupleExpansion.obj `if test -f 'Tuples/TupleExpansion.cc'; then $(CYGPATH_W) 'Tuples/TupleExpansion.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/TupleExpansion.cc'; fi`
    26742735
     2736Validate/libdemangle_a-HandleAttributes.o: Validate/HandleAttributes.cc
     2737@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -MT Validate/libdemangle_a-HandleAttributes.o -MD -MP -MF Validate/$(DEPDIR)/libdemangle_a-HandleAttributes.Tpo -c -o Validate/libdemangle_a-HandleAttributes.o `test -f 'Validate/HandleAttributes.cc' || echo '$(srcdir)/'`Validate/HandleAttributes.cc
     2738@am__fastdepCXX_TRUE@   $(AM_V_at)$(am__mv) Validate/$(DEPDIR)/libdemangle_a-HandleAttributes.Tpo Validate/$(DEPDIR)/libdemangle_a-HandleAttributes.Po
     2739@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(AM_V_CXX)source='Validate/HandleAttributes.cc' object='Validate/libdemangle_a-HandleAttributes.o' libtool=no @AMDEPBACKSLASH@
     2740@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2741@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -c -o Validate/libdemangle_a-HandleAttributes.o `test -f 'Validate/HandleAttributes.cc' || echo '$(srcdir)/'`Validate/HandleAttributes.cc
     2742
     2743Validate/libdemangle_a-HandleAttributes.obj: Validate/HandleAttributes.cc
     2744@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -MT Validate/libdemangle_a-HandleAttributes.obj -MD -MP -MF Validate/$(DEPDIR)/libdemangle_a-HandleAttributes.Tpo -c -o Validate/libdemangle_a-HandleAttributes.obj `if test -f 'Validate/HandleAttributes.cc'; then $(CYGPATH_W) 'Validate/HandleAttributes.cc'; else $(CYGPATH_W) '$(srcdir)/Validate/HandleAttributes.cc'; fi`
     2745@am__fastdepCXX_TRUE@   $(AM_V_at)$(am__mv) Validate/$(DEPDIR)/libdemangle_a-HandleAttributes.Tpo Validate/$(DEPDIR)/libdemangle_a-HandleAttributes.Po
     2746@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(AM_V_CXX)source='Validate/HandleAttributes.cc' object='Validate/libdemangle_a-HandleAttributes.obj' libtool=no @AMDEPBACKSLASH@
     2747@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2748@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdemangle_a_CXXFLAGS) $(CXXFLAGS) -c -o Validate/libdemangle_a-HandleAttributes.obj `if test -f 'Validate/HandleAttributes.cc'; then $(CYGPATH_W) 'Validate/HandleAttributes.cc'; else $(CYGPATH_W) '$(srcdir)/Validate/HandleAttributes.cc'; fi`
     2749
    26752750SymTab/demangler-demangler.o: SymTab/demangler.cc
    26762751@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demangler_CXXFLAGS) $(CXXFLAGS) -MT SymTab/demangler-demangler.o -MD -MP -MF SymTab/$(DEPDIR)/demangler-demangler.Tpo -c -o SymTab/demangler-demangler.o `test -f 'SymTab/demangler.cc' || echo '$(srcdir)/'`SymTab/demangler.cc
     
    27152790@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-MakeLibCfa.obj `if test -f 'MakeLibCfa.cc'; then $(CYGPATH_W) 'MakeLibCfa.cc'; else $(CYGPATH_W) '$(srcdir)/MakeLibCfa.cc'; fi`
    27162791
     2792driver_cfa_cpp-CompilationState.o: CompilationState.cc
     2793@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-CompilationState.o -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-CompilationState.Tpo -c -o driver_cfa_cpp-CompilationState.o `test -f 'CompilationState.cc' || echo '$(srcdir)/'`CompilationState.cc
     2794@am__fastdepCXX_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/driver_cfa_cpp-CompilationState.Tpo $(DEPDIR)/driver_cfa_cpp-CompilationState.Po
     2795@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(AM_V_CXX)source='CompilationState.cc' object='driver_cfa_cpp-CompilationState.o' libtool=no @AMDEPBACKSLASH@
     2796@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2797@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-CompilationState.o `test -f 'CompilationState.cc' || echo '$(srcdir)/'`CompilationState.cc
     2798
     2799driver_cfa_cpp-CompilationState.obj: CompilationState.cc
     2800@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-CompilationState.obj -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-CompilationState.Tpo -c -o driver_cfa_cpp-CompilationState.obj `if test -f 'CompilationState.cc'; then $(CYGPATH_W) 'CompilationState.cc'; else $(CYGPATH_W) '$(srcdir)/CompilationState.cc'; fi`
     2801@am__fastdepCXX_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/driver_cfa_cpp-CompilationState.Tpo $(DEPDIR)/driver_cfa_cpp-CompilationState.Po
     2802@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(AM_V_CXX)source='CompilationState.cc' object='driver_cfa_cpp-CompilationState.obj' libtool=no @AMDEPBACKSLASH@
     2803@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2804@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-CompilationState.obj `if test -f 'CompilationState.cc'; then $(CYGPATH_W) 'CompilationState.cc'; else $(CYGPATH_W) '$(srcdir)/CompilationState.cc'; fi`
     2805
    27172806CodeGen/driver_cfa_cpp-Generate.o: CodeGen/Generate.cc
    27182807@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-Generate.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo -c -o CodeGen/driver_cfa_cpp-Generate.o `test -f 'CodeGen/Generate.cc' || echo '$(srcdir)/'`CodeGen/Generate.cc
     
    29253014@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-Heap.obj `if test -f 'Common/Heap.cc'; then $(CYGPATH_W) 'Common/Heap.cc'; else $(CYGPATH_W) '$(srcdir)/Common/Heap.cc'; fi`
    29263015
     3016Common/driver_cfa_cpp-Eval.o: Common/Eval.cc
     3017@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-Eval.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-Eval.Tpo -c -o Common/driver_cfa_cpp-Eval.o `test -f 'Common/Eval.cc' || echo '$(srcdir)/'`Common/Eval.cc
     3018@am__fastdepCXX_TRUE@   $(AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-Eval.Tpo Common/$(DEPDIR)/driver_cfa_cpp-Eval.Po
     3019@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(AM_V_CXX)source='Common/Eval.cc' object='Common/driver_cfa_cpp-Eval.o' libtool=no @AMDEPBACKSLASH@
     3020@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     3021@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-Eval.o `test -f 'Common/Eval.cc' || echo '$(srcdir)/'`Common/Eval.cc
     3022
     3023Common/driver_cfa_cpp-Eval.obj: Common/Eval.cc
     3024@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-Eval.obj -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-Eval.Tpo -c -o Common/driver_cfa_cpp-Eval.obj `if test -f 'Common/Eval.cc'; then $(CYGPATH_W) 'Common/Eval.cc'; else $(CYGPATH_W) '$(srcdir)/Common/Eval.cc'; fi`
     3025@am__fastdepCXX_TRUE@   $(AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-Eval.Tpo Common/$(DEPDIR)/driver_cfa_cpp-Eval.Po
     3026@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(AM_V_CXX)source='Common/Eval.cc' object='Common/driver_cfa_cpp-Eval.obj' libtool=no @AMDEPBACKSLASH@
     3027@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     3028@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-Eval.obj `if test -f 'Common/Eval.cc'; then $(CYGPATH_W) 'Common/Eval.cc'; else $(CYGPATH_W) '$(srcdir)/Common/Eval.cc'; fi`
     3029
    29273030ControlStruct/driver_cfa_cpp-LabelGenerator.o: ControlStruct/LabelGenerator.cc
    29283031@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelGenerator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.o `test -f 'ControlStruct/LabelGenerator.cc' || echo '$(srcdir)/'`ControlStruct/LabelGenerator.cc
     
    41844287@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    41854288@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-Explode.obj `if test -f 'Tuples/Explode.cc'; then $(CYGPATH_W) 'Tuples/Explode.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/Explode.cc'; fi`
     4289
     4290Validate/driver_cfa_cpp-HandleAttributes.o: Validate/HandleAttributes.cc
     4291@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Validate/driver_cfa_cpp-HandleAttributes.o -MD -MP -MF Validate/$(DEPDIR)/driver_cfa_cpp-HandleAttributes.Tpo -c -o Validate/driver_cfa_cpp-HandleAttributes.o `test -f 'Validate/HandleAttributes.cc' || echo '$(srcdir)/'`Validate/HandleAttributes.cc
     4292@am__fastdepCXX_TRUE@   $(AM_V_at)$(am__mv) Validate/$(DEPDIR)/driver_cfa_cpp-HandleAttributes.Tpo Validate/$(DEPDIR)/driver_cfa_cpp-HandleAttributes.Po
     4293@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(AM_V_CXX)source='Validate/HandleAttributes.cc' object='Validate/driver_cfa_cpp-HandleAttributes.o' libtool=no @AMDEPBACKSLASH@
     4294@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     4295@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Validate/driver_cfa_cpp-HandleAttributes.o `test -f 'Validate/HandleAttributes.cc' || echo '$(srcdir)/'`Validate/HandleAttributes.cc
     4296
     4297Validate/driver_cfa_cpp-HandleAttributes.obj: Validate/HandleAttributes.cc
     4298@am__fastdepCXX_TRUE@   $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Validate/driver_cfa_cpp-HandleAttributes.obj -MD -MP -MF Validate/$(DEPDIR)/driver_cfa_cpp-HandleAttributes.Tpo -c -o Validate/driver_cfa_cpp-HandleAttributes.obj `if test -f 'Validate/HandleAttributes.cc'; then $(CYGPATH_W) 'Validate/HandleAttributes.cc'; else $(CYGPATH_W) '$(srcdir)/Validate/HandleAttributes.cc'; fi`
     4299@am__fastdepCXX_TRUE@   $(AM_V_at)$(am__mv) Validate/$(DEPDIR)/driver_cfa_cpp-HandleAttributes.Tpo Validate/$(DEPDIR)/driver_cfa_cpp-HandleAttributes.Po
     4300@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(AM_V_CXX)source='Validate/HandleAttributes.cc' object='Validate/driver_cfa_cpp-HandleAttributes.obj' libtool=no @AMDEPBACKSLASH@
     4301@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     4302@am__fastdepCXX_FALSE@  $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Validate/driver_cfa_cpp-HandleAttributes.obj `if test -f 'Validate/HandleAttributes.cc'; then $(CYGPATH_W) 'Validate/HandleAttributes.cc'; else $(CYGPATH_W) '$(srcdir)/Validate/HandleAttributes.cc'; fi`
    41864303
    41874304Virtual/driver_cfa_cpp-ExpandCasts.o: Virtual/ExpandCasts.cc
     
    43464463        -rm -f Tuples/$(DEPDIR)/$(am__dirstamp)
    43474464        -rm -f Tuples/$(am__dirstamp)
     4465        -rm -f Validate/$(DEPDIR)/$(am__dirstamp)
     4466        -rm -f Validate/$(am__dirstamp)
    43484467        -rm -f Virtual/$(DEPDIR)/$(am__dirstamp)
    43494468        -rm -f Virtual/$(am__dirstamp)
     
    43644483
    43654484distclean: distclean-am
    4366         -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) CodeTools/$(DEPDIR) Common/$(DEPDIR) Concurrency/$(DEPDIR) ControlStruct/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR) Virtual/$(DEPDIR)
     4485        -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) CodeTools/$(DEPDIR) Common/$(DEPDIR) Concurrency/$(DEPDIR) ControlStruct/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR) Validate/$(DEPDIR) Virtual/$(DEPDIR)
    43674486        -rm -f Makefile
    43684487distclean-am: clean-am distclean-compile distclean-generic \
     
    44104529
    44114530maintainer-clean: maintainer-clean-am
    4412         -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) CodeTools/$(DEPDIR) Common/$(DEPDIR) Concurrency/$(DEPDIR) ControlStruct/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR) Virtual/$(DEPDIR)
     4531        -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) CodeTools/$(DEPDIR) Common/$(DEPDIR) Concurrency/$(DEPDIR) ControlStruct/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR) Validate/$(DEPDIR) Virtual/$(DEPDIR)
    44134532        -rm -f Makefile
    44144533maintainer-clean-am: distclean-am maintainer-clean-generic
  • src/Parser/DeclarationNode.cc

    rd1e0979 r3bbd012  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul  6 06:56:08 2018
    13 // Update Count     : 1088
     12// Last Modified On : Fri Jul 20 14:56:54 2018
     13// Update Count     : 1107
    1414//
    1515
     
    5454
    5555DeclarationNode::DeclarationNode() :
    56                 builtin( NoBuiltinType ),
    57                 type( nullptr ),
    58                 bitfieldWidth( nullptr ),
    59                 hasEllipsis( false ),
    60                 linkage( ::linkage ),
    61                 asmName( nullptr ),
    62                 initializer( nullptr ),
    63                 extension( false ),
    64                 asmStmt( nullptr ) {
     56        linkage( ::linkage ) {
    6557
    6658//      variable.name = nullptr;
     
    10496        newnode->builtin = NoBuiltinType;
    10597        newnode->type = maybeClone( type );
     98        newnode->inLine = inLine;
    10699        newnode->storageClasses = storageClasses;
    107100        newnode->funcSpecs = funcSpecs;
     
    131124} // DeclarationNode::clone
    132125
    133 void DeclarationNode::print( std::ostream &os, int indent ) const {
     126void DeclarationNode::print( std::ostream & os, int indent ) const {
    134127        os << string( indent, ' ' );
    135128        if ( name ) {
     
    167160}
    168161
    169 void DeclarationNode::printList( std::ostream &os, int indent ) const {
     162void DeclarationNode::printList( std::ostream & os, int indent ) const {
    170163        ParseNode::printList( os, indent );
    171164        if ( hasEllipsis ) {
     
    521514} // DeclarationNode::copySpecifiers
    522515
    523 static void addQualifiersToType( TypeData *&src, TypeData * dst ) {
     516static void addQualifiersToType( TypeData *& src, TypeData * dst ) {
    524517        if ( dst->base ) {
    525518                addQualifiersToType( src, dst->base );
     
    574567} // addQualifiers
    575568
    576 static void addTypeToType( TypeData *&src, TypeData *&dst ) {
     569static void addTypeToType( TypeData *& src, TypeData *& dst ) {
    577570        if ( src->forall && dst->kind == TypeData::Function ) {
    578571                if ( dst->forall ) {
     
    965958}
    966959
    967 void buildList( const DeclarationNode * firstNode, std::list< Declaration * > &outputList ) {
     960void buildList( const DeclarationNode * firstNode, std::list< Declaration * > & outputList ) {
    968961        SemanticErrorException errors;
    969962        std::back_insert_iterator< std::list< Declaration * > > out( outputList );
     
    1002995                                //   struct T;            // anonymous member
    1003996                                // };
    1004                                 if ( ! (extracted && decl->name == "" && ! anon) ) {
    1005                                         if (decl->name == "") {
     997                                if ( ! (extracted && decl->name == "" && ! anon && ! cur->get_inLine()) ) {
     998                                        if ( decl->name == "" ) {
    1006999                                                if ( DeclarationWithType * dwt = dynamic_cast<DeclarationWithType *>( decl ) ) {
    10071000                                                        if ( ReferenceToType * aggr = dynamic_cast<ReferenceToType *>( dwt->get_type() ) ) {
    10081001                                                                if ( aggr->name.find("anonymous") == std::string::npos ) {
    1009                                                                         bool isInline = false;
    1010                                                                         if (cur->type->kind == TypeData::Aggregate || cur->type->kind == TypeData::AggregateInst) {
    1011                                                                                 if (cur->type->kind == TypeData::Aggregate) {
    1012                                                                                         isInline = cur->type->aggregate.inLine;
    1013                                                                                 } else {
    1014                                                                                         isInline = cur->type->aggInst.inLine;
    1015                                                                                         if ( TypeData * aggr = cur->type->aggInst.aggregate ) {
    1016                                                                                                 if ( aggr->kind == TypeData::Aggregate ) {
    1017                                                                                                         isInline = isInline || aggr->aggregate.inLine;
    1018                                                                                                 }
    1019                                                                                         }
    1020                                                                                 }
    1021                                                                         }
    1022                                                                         if (! isInline) {
    1023                                                                                 // temporary: warn about anonymous member declarations of named types, since this conflicts with the syntax for the forward declaration of an anonymous type
     1002                                                                        if ( ! cur->get_inLine() ) {
     1003                                                                                // temporary: warn about anonymous member declarations of named types, since
     1004                                                                                // this conflicts with the syntax for the forward declaration of an anonymous type
    10241005                                                                                SemanticWarning( cur->location, Warning::AggrForwardDecl, aggr->name.c_str() );
    1025                                                                         }
    1026                                                                 }
    1027                                                         }
    1028                                                 }
    1029                                         }
     1006                                                                        } // if
     1007                                                                } // if
     1008                                                        } // if
     1009                                                } // if
     1010                                        } // if
    10301011                                        decl->location = cur->location;
    1031                                         * out++ = decl;
    1032                                 }
     1012                                        *out++ = decl;
     1013                                } // if
    10331014                        } // if
    1034                 } catch( SemanticErrorException &e ) {
     1015                } catch( SemanticErrorException & e ) {
    10351016                        errors.append( e );
    10361017                } // try
    1037         } // while
     1018        } // for
    10381019
    10391020        if ( ! errors.isEmpty() ) {
     
    10431024
    10441025// currently only builds assertions, function parameters, and return values
    1045 void buildList( const DeclarationNode * firstNode, std::list< DeclarationWithType * > &outputList ) {
     1026void buildList( const DeclarationNode * firstNode, std::list< DeclarationWithType * > & outputList ) {
    10461027        SemanticErrorException errors;
    10471028        std::back_insert_iterator< std::list< DeclarationWithType * > > out( outputList );
     
    10741055                                * out++ = obj;
    10751056                        } // if
    1076                 } catch( SemanticErrorException &e ) {
     1057                } catch( SemanticErrorException & e ) {
    10771058                        errors.append( e );
    10781059                } // try
     
    10841065} // buildList
    10851066
    1086 void buildTypeList( const DeclarationNode * firstNode, std::list< Type * > &outputList ) {
     1067void buildTypeList( const DeclarationNode * firstNode, std::list< Type * > & outputList ) {
    10871068        SemanticErrorException errors;
    10881069        std::back_insert_iterator< std::list< Type * > > out( outputList );
     
    10921073                try {
    10931074                        * out++ = cur->buildType();
    1094                 } catch( SemanticErrorException &e ) {
     1075                } catch( SemanticErrorException & e ) {
    10951076                        errors.append( e );
    10961077                } // try
  • src/Parser/ParseNode.h

    rd1e0979 r3bbd012  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Jun  6 16:17:18 2018
    13 // Update Count     : 843
     12// Last Modified On : Fri Jul 20 14:56:30 2018
     13// Update Count     : 850
    1414//
    1515
     
    6868        }
    6969
    70         virtual void print( __attribute__((unused)) std::ostream &os, __attribute__((unused)) int indent = 0 ) const {}
    71         virtual void printList( std::ostream &os, int indent = 0 ) const {
     70        virtual void print( __attribute__((unused)) std::ostream & os, __attribute__((unused)) int indent = 0 ) const {}
     71        virtual void printList( std::ostream & os, int indent = 0 ) const {
    7272                print( os, indent );
    7373                if ( next ) next->print( os, indent );
     
    103103        InitializerNode * next_init() const { return kids; }
    104104
    105         void print( std::ostream &os, int indent = 0 ) const;
     105        void print( std::ostream & os, int indent = 0 ) const;
    106106        void printOneLine( std::ostream & ) const;
    107107
     
    127127        ExpressionNode * set_extension( bool exten ) { extension = exten; return this; }
    128128
    129         virtual void print( std::ostream &os, __attribute__((unused)) int indent = 0 ) const override {
    130                 os << expr.get() << std::endl;
    131         }
    132         void printOneLine( __attribute__((unused)) std::ostream &os, __attribute__((unused)) int indent = 0 ) const {}
     129        virtual void print( std::ostream & os, __attribute__((unused)) int indent = 0 ) const override {
     130                os << expr.get();
     131        }
     132        void printOneLine( __attribute__((unused)) std::ostream & os, __attribute__((unused)) int indent = 0 ) const {}
    133133
    134134        template<typename T>
     
    290290        }
    291291
    292         virtual void print( __attribute__((unused)) std::ostream &os, __attribute__((unused)) int indent = 0 ) const override;
    293         virtual void printList( __attribute__((unused)) std::ostream &os, __attribute__((unused)) int indent = 0 ) const override;
     292        virtual void print( __attribute__((unused)) std::ostream & os, __attribute__((unused)) int indent = 0 ) const override;
     293        virtual void printList( __attribute__((unused)) std::ostream & os, __attribute__((unused)) int indent = 0 ) const override;
    294294
    295295        Declaration * build() const;
     
    303303        bool get_extension() const { return extension; }
    304304        DeclarationNode * set_extension( bool exten ) { extension = exten; return this; }
     305
     306        bool get_inLine() const { return inLine; }
     307        DeclarationNode * set_inLine( bool inL ) { inLine = inL; return this; }
    305308  public:
    306309        DeclarationNode * get_last() { return (DeclarationNode *)ParseNode::get_last(); }
     
    327330        StaticAssert_t assert;
    328331
    329         BuiltinType builtin;
    330 
    331         TypeData * type;
    332 
     332        BuiltinType builtin = NoBuiltinType;
     333
     334        TypeData * type = nullptr;
     335
     336        bool inLine = false;
    333337        Type::FuncSpecifiers funcSpecs;
    334338        Type::StorageClasses storageClasses;
    335339
    336         ExpressionNode * bitfieldWidth;
     340        ExpressionNode * bitfieldWidth = nullptr;
    337341        std::unique_ptr<ExpressionNode> enumeratorValue;
    338         bool hasEllipsis;
     342        bool hasEllipsis = false;
    339343        LinkageSpec::Spec linkage;
    340         Expression * asmName;
     344        Expression * asmName = nullptr;
    341345        std::list< Attribute * > attributes;
    342         InitializerNode * initializer;
     346        InitializerNode * initializer = nullptr;
    343347        bool extension = false;
    344348        std::string error;
    345         StatementNode * asmStmt;
     349        StatementNode * asmStmt = nullptr;
    346350
    347351        static UniqueName anonymous;
     
    377381        virtual StatementNode * append_last_case( StatementNode * );
    378382
    379         virtual void print( std::ostream &os, __attribute__((unused)) int indent = 0 ) const override {
     383        virtual void print( std::ostream & os, __attribute__((unused)) int indent = 0 ) const override {
    380384                os << stmt.get() << std::endl;
    381385        }
     
    435439
    436440template< typename SynTreeType, typename NodeType, template< typename, typename...> class Container, typename... Args >
    437 void buildList( const NodeType * firstNode, Container< SynTreeType *, Args... > &outputList ) {
     441void buildList( const NodeType * firstNode, Container< SynTreeType *, Args... > & outputList ) {
    438442        SemanticErrorException errors;
    439443        std::back_insert_iterator< Container< SynTreeType *, Args... > > out( outputList );
     
    449453                                assertf(false, "buildList unknown type");
    450454                        } // if
    451                 } catch( SemanticErrorException &e ) {
     455                } catch( SemanticErrorException & e ) {
    452456                        errors.append( e );
    453457                } // try
     
    460464
    461465// in DeclarationNode.cc
    462 void buildList( const DeclarationNode * firstNode, std::list< Declaration * > &outputList );
    463 void buildList( const DeclarationNode * firstNode, std::list< DeclarationWithType * > &outputList );
    464 void buildTypeList( const DeclarationNode * firstNode, std::list< Type * > &outputList );
     466void buildList( const DeclarationNode * firstNode, std::list< Declaration * > & outputList );
     467void buildList( const DeclarationNode * firstNode, std::list< DeclarationWithType * > & outputList );
     468void buildTypeList( const DeclarationNode * firstNode, std::list< Type * > & outputList );
    465469
    466470template< typename SynTreeType, typename NodeType >
    467 void buildMoveList( const NodeType * firstNode, std::list< SynTreeType * > &outputList ) {
     471void buildMoveList( const NodeType * firstNode, std::list< SynTreeType * > & outputList ) {
    468472        buildList( firstNode, outputList );
    469473        delete firstNode;
  • src/Parser/TypeData.cc

    rd1e0979 r3bbd012  
    1010// Created On       : Sat May 16 15:12:51 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 12 13:52:09 2018
    13 // Update Count     : 606
     12// Last Modified On : Fri Jul 20 14:39:31 2018
     13// Update Count     : 622
    1414//
    1515
     
    7676                aggregate.parent = nullptr;
    7777                aggregate.anon = false;
    78                 aggregate.inLine = false;
    7978                break;
    8079          case AggregateInst:
     
    8382                aggInst.params = nullptr;
    8483                aggInst.hoistType = false;
    85                 aggInst.inLine = false;
    8684                break;
    8785          case Symbolic:
     
    221219                newtype->aggregate.body = aggregate.body;
    222220                newtype->aggregate.anon = aggregate.anon;
    223                 newtype->aggregate.inLine = aggregate.inLine;
    224221                newtype->aggregate.tagged = aggregate.tagged;
    225222                newtype->aggregate.parent = aggregate.parent ? new string( *aggregate.parent ) : nullptr;
     
    229226                newtype->aggInst.params = maybeClone( aggInst.params );
    230227                newtype->aggInst.hoistType = aggInst.hoistType;
    231                 newtype->aggInst.inLine = aggInst.inLine;
    232228                break;
    233229          case Enum:
     
    275271
    276272        switch ( kind ) {
    277           case Unknown:
    278                 os << "entity of unknown type ";
     273          case Basic:
     274                if ( signedness != DeclarationNode::NoSignedness ) os << DeclarationNode::signednessNames[ signedness ] << " ";
     275                if ( length != DeclarationNode::NoLength ) os << DeclarationNode::lengthNames[ length ] << " ";
     276                if ( complextype == DeclarationNode::NoComplexType ) { // basic type
     277                        assert( basictype != DeclarationNode::NoBasicType );
     278                        os << DeclarationNode::basicTypeNames[ basictype ] << " ";
     279                } else {                                                                                // complex type
     280                        // handle double _Complex
     281                        if ( basictype != DeclarationNode::NoBasicType ) os << DeclarationNode::basicTypeNames[ basictype ] << " ";
     282                        os << DeclarationNode::complexTypeNames[ complextype ] << " ";
     283                } // if
    279284                break;
    280285          case Pointer:
     
    285290                } // if
    286291                break;
    287           case EnumConstant:
    288                 os << "enumeration constant ";
    289                 break;
    290           case Basic:
    291                 if ( signedness != DeclarationNode::NoSignedness ) os << DeclarationNode::signednessNames[ signedness ] << " ";
    292                 if ( length != DeclarationNode::NoLength ) os << DeclarationNode::lengthNames[ length ] << " ";
    293                 assert( basictype != DeclarationNode::NoBasicType );
    294                 os << DeclarationNode::basicTypeNames[ basictype ] << " ";
    295                 if ( complextype != DeclarationNode::NoComplexType ) os << DeclarationNode::complexTypeNames[ complextype ] << " ";
     292          case Reference:
     293                os << "reference ";
     294                if ( base ) {
     295                        os << "to ";
     296                        base->print( os, indent );
     297                } // if
    296298                break;
    297299          case Array:
     
    379381                } // if
    380382                break;
    381           case SymbolicInst:
    382                 os << "instance of type " << *symbolic.name;
    383                 if ( symbolic.actuals ) {
    384                         os << " with parameters" << endl;
    385                         symbolic.actuals->printList( os, indent + 2 );
    386                 } // if
     383          case EnumConstant:
     384                os << "enumeration constant ";
    387385                break;
    388386          case Symbolic:
     
    406404                } // if
    407405                break;
     406          case SymbolicInst:
     407                os << *symbolic.name;
     408                if ( symbolic.actuals ) {
     409                        os << "(";
     410                        symbolic.actuals->printList( os, indent + 2 );
     411                        os << ")";
     412                } // if
     413                break;
    408414          case Tuple:
    409415                os << "tuple ";
     
    421427          case Builtin:
    422428                os << DeclarationNode::builtinTypeNames[builtintype];
     429                break;
     430          case GlobalScope:
     431                break;
     432          case Qualified:
     433                qualified.parent->print( os );
     434                os << ".";
     435                qualified.child->print( os );
     436                break;
     437          case Unknown:
     438                os << "entity of unknown type ";
    423439                break;
    424440          default:
  • src/Parser/TypeData.h

    rd1e0979 r3bbd012  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 12 14:00:09 2018
    13 // Update Count     : 193
     12// Last Modified On : Fri Jul 20 13:56:40 2018
     13// Update Count     : 195
    1414//
    1515
     
    2626
    2727struct TypeData {
    28         enum Kind { Basic, Pointer, Array, Reference, Function, Aggregate, AggregateInst, Enum, EnumConstant, Symbolic,
     28        enum Kind { Basic, Pointer, Reference, Array, Function, Aggregate, AggregateInst, Enum, EnumConstant, Symbolic,
    2929                                SymbolicInst, Tuple, Typeof, Builtin, GlobalScope, Qualified, Unknown };
    3030
     
    3737                bool body;
    3838                bool anon;
    39                 bool inLine;
    4039
    4140                bool tagged;
     
    4746                ExpressionNode * params;
    4847                bool hoistType;
    49                 bool inLine;
    5048        };
    5149
     
    7977        };
    8078
    81         struct Qualified_t { // qualified type S.T
     79        struct Qualified_t {                                                            // qualified type S.T
    8280                TypeData * parent;
    8381                TypeData * child;
  • src/Parser/TypedefTable.cc

    rd1e0979 r3bbd012  
    1010// Created On       : Sat May 16 15:20:13 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 13 18:35:54 2018
    13 // Update Count     : 257
     12// Last Modified On : Wed Jul 25 15:32:35 2018
     13// Update Count     : 258
    1414//
    1515
     
    4949bool TypedefTable::exists( const string & identifier ) {
    5050        return kindTable.find( identifier ) != kindTable.end();
     51} // TypedefTable::exists
     52
     53bool TypedefTable::existsCurr( const string & identifier ) {
     54        return kindTable.findAt( kindTable.currentScope() - 1, identifier ) != kindTable.end();
    5155} // TypedefTable::exists
    5256
  • src/Parser/TypedefTable.h

    rd1e0979 r3bbd012  
    1010// Created On       : Sat May 16 15:24:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jul 10 18:32:23 2018
    13 // Update Count     : 112
     12// Last Modified On : Wed Jul 25 15:33:55 2018
     13// Update Count     : 114
    1414//
    1515
     
    3131
    3232        bool exists( const std::string & identifier );
     33        bool existsCurr( const std::string & identifier );
    3334        int isKind( const std::string & identifier ) const;
    3435        void makeTypedef( const std::string & name, int kind = TYPEDEFname );
  • src/Parser/parser.yy

    rd1e0979 r3bbd012  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 12 16:16:25 2018
    13 // Update Count     : 3756
     12// Last Modified On : Wed Jul 25 15:54:35 2018
     13// Update Count     : 3841
    1414//
    1515
     
    114114        } // for
    115115} // distExt
     116
     117void distInl( DeclarationNode * declaration ) {
     118        // distribute EXTENSION across all declarations
     119        for ( DeclarationNode *iter = declaration; iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) {
     120                iter->set_inLine( true );
     121        } // for
     122} // distInl
    116123
    117124void distQual( DeclarationNode * declaration, DeclarationNode * qualifiers ) {
     
    166173} // build_postfix_name
    167174
     175DeclarationNode * fieldDecl( DeclarationNode * typeSpec, DeclarationNode * fieldList ) {
     176        if ( ! fieldList ) {                                                            // field declarator ?
     177                if ( ! ( typeSpec->type && typeSpec->type->kind == TypeData::Aggregate ) ) {
     178                        stringstream ss;
     179                        typeSpec->type->print( ss );
     180                        SemanticWarning( yylloc, Warning::SuperfluousDecl, ss.str().c_str() );
     181                        return nullptr;
     182                } // if
     183                fieldList = DeclarationNode::newName( nullptr );
     184        } // if
     185        return distAttr( typeSpec, fieldList );                         // mark all fields in list
     186} // fieldDecl
     187
    168188bool forall = false, yyy = false;                                               // aggregate have one or more forall qualifiers ?
    169189
     
    338358%type<decl> exception_declaration
    339359
    340 %type<decl> field_declaration field_declaration_list_opt field_declarator_opt field_declaring_list
    341 %type<en> field field_list field_name fraction_constants_opt
     360%type<decl> field_declaration_list_opt field_declaration field_declaring_list_opt field_declarator field_abstract_list_opt field_abstract
     361%type<en> field field_name_list field_name fraction_constants_opt
    342362
    343363%type<decl> external_function_definition function_definition function_array function_declarator function_no_ptr function_ptr
     
    352372%type<decl> cfa_array_parameter_1st_dimension
    353373
    354 %type<decl> cfa_trait_declaring_list cfa_declaration cfa_field_declaring_list
     374%type<decl> cfa_trait_declaring_list cfa_declaration cfa_field_declaring_list cfa_field_abstract_list
    355375%type<decl> cfa_function_declaration cfa_function_return cfa_function_specifier
    356376
     
    492512        ;
    493513
    494 identifier:
    495         IDENTIFIER
    496         | ATTR_IDENTIFIER                                                                       // CFA
    497         | quasi_keyword
    498         ;
    499 
    500514no_attr_identifier:
    501515        IDENTIFIER
    502516        | quasi_keyword
     517        | '@'                                                                                           // CFA
     518                { Token tok = { new string( DeclarationNode::anonymous.newName() ), yylval.tok.loc }; $$ = tok; }
     519        ;
     520
     521identifier:
     522        no_attr_identifier
     523        | ATTR_IDENTIFIER                                                                       // CFA
    503524        ;
    504525
     
    541562        | type_name '.' no_attr_identifier                                      // CFA, nested type
    542563                { SemanticError( yylloc, "Qualified name is currently unimplemented." ); $$ = nullptr; }
    543         | type_name '.' '[' field_list ']'                                      // CFA, nested type / tuple field selector
     564        | type_name '.' '[' field_name_list ']'                         // CFA, nested type / tuple field selector
    544565                { SemanticError( yylloc, "Qualified name is currently unimplemented." ); $$ = nullptr; }
    545566        | GENERIC '(' assignment_expression ',' generic_assoc_list ')' // C11
     
    594615        | postfix_expression FLOATING_FRACTIONconstant          // CFA, tuple index
    595616                { $$ = new ExpressionNode( build_fieldSel( $1, build_field_name_FLOATING_FRACTIONconstant( *$2 ) ) ); }
    596         | postfix_expression '.' '[' field_list ']'                     // CFA, tuple field selector
     617        | postfix_expression '.' '[' field_name_list ']'        // CFA, tuple field selector
    597618                { $$ = new ExpressionNode( build_fieldSel( $1, build_tuple( $4 ) ) ); }
    598619        | postfix_expression ARROW no_attr_identifier
     
    602623        | postfix_expression ARROW INTEGERconstant                      // CFA, tuple index
    603624                { $$ = new ExpressionNode( build_pfieldSel( $1, build_constantInteger( *$3 ) ) ); }
    604         | postfix_expression ARROW '[' field_list ']'           // CFA, tuple field selector
     625        | postfix_expression ARROW '[' field_name_list ']'      // CFA, tuple field selector
    605626                { $$ = new ExpressionNode( build_pfieldSel( $1, build_tuple( $4 ) ) ); }
    606627        | postfix_expression ICR
     
    629650        // empty
    630651                { $$ = nullptr; }
    631         // | '@'                                                                                                // use default argument
    632         //      { $$ = new ExpressionNode( build_constantInteger( *new string( "2" ) ) ); }
     652        | '?'                                                                                           // CFA, default parameter
     653                { SemanticError( yylloc, "Default parameter for argument is currently unimplemented." ); $$ = nullptr; }
     654                // { $$ = new ExpressionNode( build_constantInteger( *new string( "2" ) ) ); }
    633655        | assignment_expression
    634656        ;
    635657
    636 field_list:                                                                                             // CFA, tuple field selector
     658field_name_list:                                                                                // CFA, tuple field selector
    637659        field
    638         | field_list ',' field                                          { $$ = (ExpressionNode *)$1->set_last( $3 ); }
     660        | field_name_list ',' field                                     { $$ = (ExpressionNode *)$1->set_last( $3 ); }
    639661        ;
    640662
     
    643665        | FLOATING_DECIMALconstant field
    644666                { $$ = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_FLOATING_DECIMALconstant( *$1 ) ), maybeMoveBuild<Expression>( $2 ) ) ); }
    645         | FLOATING_DECIMALconstant '[' field_list ']'
     667        | FLOATING_DECIMALconstant '[' field_name_list ']'
    646668                { $$ = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_FLOATING_DECIMALconstant( *$1 ) ), build_tuple( $3 ) ) ); }
    647669        | field_name '.' field
    648670                { $$ = new ExpressionNode( build_fieldSel( $1, maybeMoveBuild<Expression>( $3 ) ) ); }
    649         | field_name '.' '[' field_list ']'
     671        | field_name '.' '[' field_name_list ']'
    650672                { $$ = new ExpressionNode( build_fieldSel( $1, build_tuple( $4 ) ) ); }
    651673        | field_name ARROW field
    652674                { $$ = new ExpressionNode( build_pfieldSel( $1, maybeMoveBuild<Expression>( $3 ) ) ); }
    653         | field_name ARROW '[' field_list ']'
     675        | field_name ARROW '[' field_name_list ']'
    654676                { $$ = new ExpressionNode( build_pfieldSel( $1, build_tuple( $4 ) ) ); }
    655677        ;
     
    19321954
    19331955field_declaration:
    1934         type_specifier field_declaring_list ';'
    1935                 { $$ = distAttr( $1, $2 ); }
    1936         | EXTENSION type_specifier field_declaring_list ';'     // GCC
    1937                 { distExt( $3 ); $$ = distAttr( $2, $3 ); }             // mark all fields in list
    1938         | INLINE type_specifier field_declaring_list ';'        // CFA
    1939                 {
    1940                         if ( $2->type && ( $2->type->kind == TypeData::Aggregate || $2->type->kind == TypeData::AggregateInst ) ) {
    1941                                 if ( $2->type->kind == TypeData::Aggregate ) {
    1942                                         $2->type->aggregate.inLine = true;
    1943                                 } else {
    1944                                         $2->type->aggInst.inLine = true;
    1945                                 } // if
    1946                                 $$ = distAttr( $2, $3 );
    1947                         } else {
    1948                                 SemanticError( yylloc, "inline qualifier only allowed for aggregate field declarations." ); $$ = nullptr;
    1949                         } // if
     1956        type_specifier field_declaring_list_opt ';'
     1957                { $$ = fieldDecl( $1, $2 ); }
     1958        | EXTENSION type_specifier field_declaring_list_opt ';' // GCC
     1959                { $$ = fieldDecl( $2, $3 ); distExt( $$ ); }
     1960        | INLINE type_specifier field_abstract_list_opt ';'     // CFA
     1961                {
     1962                        if ( ! $3 ) {                                                           // field declarator ?
     1963                                $3 = DeclarationNode::newName( nullptr );
     1964                        } // if
     1965                        $3->inLine = true;
     1966                        $$ = distAttr( $2, $3 );                                        // mark all fields in list
     1967                        distInl( $3 );
    19501968                }
    19511969        | typedef_declaration ';'                                                       // CFA
     
    19531971        | EXTENSION cfa_field_declaring_list ';'                        // GCC
    19541972                { distExt( $2 ); $$ = $2; }                                             // mark all fields in list
     1973        | INLINE cfa_field_abstract_list ';'                            // CFA, new style field declaration
     1974                { $$ = $2; }                                                                    // mark all fields in list
    19551975        | cfa_typedef_declaration ';'                                           // CFA
    19561976        | static_assert                                                                         // C11
    19571977        ;
    19581978
     1979field_declaring_list_opt:
     1980        // empty
     1981                { $$ = nullptr; }
     1982        | field_declarator
     1983        | field_declaring_list_opt ',' attribute_list_opt field_declarator
     1984                { $$ = $1->appendList( $4->addQualifiers( $3 ) ); }
     1985        ;
     1986
     1987field_declarator:
     1988        bit_subrange_size                                                                       // C special case, no field name
     1989                { $$ = DeclarationNode::newBitfield( $1 ); }
     1990        | variable_declarator bit_subrange_size_opt
     1991                // A semantic check is required to ensure bit_subrange only appears on integral types.
     1992                { $$ = $1->addBitfield( $2 ); }
     1993        | variable_type_redeclarator bit_subrange_size_opt
     1994                // A semantic check is required to ensure bit_subrange only appears on integral types.
     1995                { $$ = $1->addBitfield( $2 ); }
     1996        ;
     1997
     1998field_abstract_list_opt:
     1999        // empty
     2000                { $$ = nullptr; }
     2001        | field_abstract
     2002        | field_abstract_list_opt ',' attribute_list_opt field_abstract
     2003                { $$ = $1->appendList( $4->addQualifiers( $3 ) ); }
     2004        ;
     2005
     2006field_abstract:
     2007                //      no bit fields
     2008        variable_abstract_declarator
     2009        ;
     2010
    19592011cfa_field_declaring_list:                                                               // CFA, new style field declaration
    1960         cfa_abstract_declarator_tuple                                           // CFA, no field name
    1961         | cfa_abstract_declarator_tuple no_attr_identifier_or_type_name
     2012        // bit-fields are handled by C declarations
     2013        cfa_abstract_declarator_tuple no_attr_identifier_or_type_name
    19622014                { $$ = $1->addName( $2 ); }
    19632015        | cfa_field_declaring_list ',' no_attr_identifier_or_type_name
    19642016                { $$ = $1->appendList( $1->cloneType( $3 ) ); }
    1965         | cfa_field_declaring_list ','                                          // CFA, no field name
     2017        ;
     2018
     2019cfa_field_abstract_list:                                                                // CFA, new style field declaration
     2020        // bit-fields are handled by C declarations
     2021        cfa_abstract_declarator_tuple
     2022        | cfa_field_abstract_list ','
    19662023                { $$ = $1->appendList( $1->cloneType( 0 ) ); }
    1967         ;
    1968 
    1969 field_declaring_list:
    1970         field_declarator_opt
    1971         | field_declaring_list ',' attribute_list_opt field_declarator_opt
    1972                 { $$ = $1->appendList( $4->addQualifiers( $3 ) ); }
    1973         ;
    1974 
    1975 field_declarator_opt:
    1976         // empty
    1977                 { $$ = DeclarationNode::newName( 0 ); /* XXX */ } // CFA, no field name
    1978         // '@'
    1979         //      { $$ = DeclarationNode::newName( new string( DeclarationNode::anonymous.newName() ) ); } // CFA, no field name
    1980         | bit_subrange_size                                                                     // no field name
    1981                 { $$ = DeclarationNode::newBitfield( $1 ); }
    1982         | variable_declarator bit_subrange_size_opt
    1983                 // A semantic check is required to ensure bit_subrange only appears on base type int.
    1984                 { $$ = $1->addBitfield( $2 ); }
    1985         | variable_type_redeclarator bit_subrange_size_opt
    1986                 // A semantic check is required to ensure bit_subrange only appears on base type int.
    1987                 { $$ = $1->addBitfield( $2 ); }
    1988         | variable_abstract_declarator                                          // CFA, no field name
    19892024        ;
    19902025
     
    22262261        | '[' push constant_expression ELLIPSIS constant_expression pop ']' // GCC, multiple array elements
    22272262                { $$ = new ExpressionNode( new RangeExpr( maybeMoveBuild< Expression >( $3 ), maybeMoveBuild< Expression >( $5 ) ) ); }
    2228         | '.' '[' push field_list pop ']'                                       // CFA, tuple field selector
     2263        | '.' '[' push field_name_list pop ']'                          // CFA, tuple field selector
    22292264                { $$ = $4; }
    22302265        ;
     
    27692804        typedef
    27702805                // hide type name in enclosing scope by variable name
    2771                 { typedefTable.addToEnclosingScope( *$1->name, IDENTIFIER, "ID" ); }
     2806                {
     2807                        // if ( ! typedefTable.existsCurr( *$1->name ) ) {
     2808                                typedefTable.addToEnclosingScope( *$1->name, IDENTIFIER, "ID" );
     2809                        // } else {
     2810                        //      SemanticError( yylloc, string("'") + *$1->name + "' redeclared as different kind of symbol." ); $$ = nullptr;
     2811                        // } // if
     2812                }
    27722813        | '(' paren_type ')'
    27732814                { $$ = $2; }
     
    27802821                { $$ = $3->addPointer( DeclarationNode::newPointer( $2, $1 ) ); }
    27812822        | '(' type_ptr ')' attribute_list_opt
    2782                 { $$ = $2->addQualifiers( $4 ); }
     2823                { $$ = $2->addQualifiers( $4 ); }                               // redundant parenthesis
    27832824        ;
    27842825
  • src/ResolvExpr/AlternativeFinder.cc

    rd1e0979 r3bbd012  
    2525#include <vector>                  // for vector
    2626
     27#include "CompilationState.h"      // for resolvep
    2728#include "Alternative.h"           // for AltList, Alternative
    2829#include "AlternativeFinder.h"
     
    4950#include "typeops.h"               // for adjustExprType, polyCost, castCost
    5051
    51 bool resolvep;
    5252#define PRINT( text ) if ( resolvep ) { text }
    5353//#define DEBUG_COST
  • src/ResolvExpr/CurrentObject.cc

    rd1e0979 r3bbd012  
    139139                ArrayIterator( ArrayType * at ) : array( at ) {
    140140                        PRINT( std::cerr << "Creating array iterator: " << at << std::endl; )
    141                         base = at->get_base();
     141                        base = at->base;
    142142                        memberIter = createMemberIterator( base );
    143                         if ( at->isVarLen ) SemanticError( at, "VLA initialization does not support @=" );
    144                         setSize( at->get_dimension() );
     143                        if ( at->isVarLen ) SemanticError( at, "VLA initialization does not support @=: " );
     144                        setSize( at->dimension );
    145145                }
    146146
     
    150150
    151151        private:
    152                 void setSize( Expression * expr ) {
    153                         if ( ConstantExpr * constExpr = dynamic_cast< ConstantExpr * >( expr ) ) {
    154                                 try {
    155                                         size = constExpr->intValue();
    156                                         PRINT( std::cerr << "array type with size: " << size << std::endl; )
    157                                 } catch ( SemanticErrorException & ) {
    158                                         SemanticError( expr, "Constant expression of non-integral type in array dimension: " );
    159                                 }
    160                         }       else if ( CastExpr * castExpr = dynamic_cast< CastExpr * >( expr ) ) {
    161                                 setSize( castExpr->get_arg() ); // xxx - need to perform the conversion specified by the cast
    162                         } else if ( VariableExpr * varExpr = dynamic_cast< VariableExpr * >( expr ) ) {
    163                                 if ( EnumInstType * inst = dynamic_cast< EnumInstType * > ( varExpr->result ) ) {
    164                                         long long int value;
    165                                         if ( inst->baseEnum->valueOf( varExpr->var, value ) ) {
    166                                                 size = value;
    167                                         }
    168                                 }
     152                void setSize( Expression * expr ) { // replace this logic with an eval call
     153                        auto res = eval(expr);
     154                        if (res.second) {
     155                                size = res.first;
    169156                        } else {
    170                                 assertf( false, "unhandled expression in setSize: %s", toString( expr ).c_str() ); // xxx - if not a constant expression, it's not simple to determine how long the array actually is, which is necessary for initialization to be done correctly -- fix this
     157                                SemanticError( expr->location, toString("Array designator must be a constant expression: ", expr) );
    171158                        }
    172159                }
  • src/SymTab/Validate.cc

    rd1e0979 r3bbd012  
    6161#include "Parser/LinkageSpec.h"        // for C
    6262#include "ResolvExpr/typeops.h"        // for typesCompatible
     63#include "ResolvExpr/Resolver.h"       // for findSingleExpression
    6364#include "SymTab/Autogen.h"            // for SizeType
    6465#include "SynTree/Attribute.h"         // for noAttributes, Attribute
     
    7273#include "SynTree/TypeSubstitution.h"  // for TypeSubstitution
    7374#include "SynTree/Visitor.h"           // for Visitor
     75#include "Validate/HandleAttributes.h" // for handleAttributes
    7476
    7577class CompoundStmt;
     
    247249        };
    248250
    249         struct ArrayLength {
     251        struct ArrayLength : public WithIndexer {
    250252                /// for array types without an explicit length, compute the length and store it so that it
    251253                /// is known to the rest of the phases. For example,
     
    258260
    259261                void previsit( ObjectDecl * objDecl );
     262                void previsit( ArrayType * arrayType );
    260263        };
    261264
     
    312315                acceptAll( translationUnit, finder ); // xxx - remove this pass soon
    313316                mutateAll( translationUnit, labelAddrFixer );
     317                Validate::handleAttributes( translationUnit );
    314318        }
    315319
     
    12321236        void ArrayLength::previsit( ObjectDecl * objDecl ) {
    12331237                if ( ArrayType * at = dynamic_cast< ArrayType * >( objDecl->type ) ) {
    1234                         if ( at->get_dimension() ) return;
     1238                        if ( at->dimension ) return;
    12351239                        if ( ListInit * init = dynamic_cast< ListInit * >( objDecl->init ) ) {
    1236                                 at->set_dimension( new ConstantExpr( Constant::from_ulong( init->initializers.size() ) ) );
    1237                         }
     1240                                at->dimension = new ConstantExpr( Constant::from_ulong( init->initializers.size() ) );
     1241                        }
     1242                }
     1243        }
     1244
     1245        void ArrayLength::previsit( ArrayType * type ) {
     1246                if ( type->dimension ) {
     1247                        // need to resolve array dimensions early so that constructor code can correctly determine
     1248                        // if a type is a VLA (and hence whether its elements need to be constructed)
     1249                        ResolvExpr::findSingleExpression( type->dimension, SymTab::SizeType->clone(), indexer );
     1250
     1251                        // must re-evaluate whether a type is a VLA, now that more information is available
     1252                        // (e.g. the dimension may have been an enumerator, which was unknown prior to this step)
     1253                        type->isVarLen = ! InitTweak::isConstExpr( type->dimension );
    12381254                }
    12391255        }
  • src/benchmark/Makefile.am

    rd1e0979 r3bbd012  
    1717# applies to both programs
    1818CFLAGS =
    19 AM_CFLAGS = -g -Wall -Wno-unused-function -O2
    20 CC = @CFA_BINDIR@/@CFA_NAME@
     19AM_CFLAGS = \
     20        -XCFA \
     21        -t \
     22        -B${abs_top_builddir}/src/driver \
     23        -g \
     24        -O2 \
     25        -Wall \
     26        -Wno-unused-function \
     27        -quiet \
     28        -I$(srcdir) \
     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
    2136TOOLSDIR = ${abs_top_srcdir}/tools/
    2237REPEAT   = ${TOOLSDIR}repeat
     
    93108## =========================================================================================================
    94109loop$(EXEEXT):
    95         @@BACKEND_CC@ loop.c      -DBENCH_N=5000000000 -I. -lrt -pthread ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     110        @@BACKEND_CC@ loop.c      -DBENCH_N=5000000000 -I$(srcdir) -lrt -pthread ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    96111
    97112function$(EXEEXT):
    98         @@BACKEND_CC@ function.c  -DBENCH_N=5000000000 -I. -lrt -pthread ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     113        @@BACKEND_CC@ function.c  -DBENCH_N=5000000000 -I$(srcdir) -lrt -pthread ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    99114
    100115fetch_add$(EXEEXT):
    101         @@BACKEND_CC@ fetch_add.c -DBENCH_N=500000000  -I. -lrt -pthread ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     116        @@BACKEND_CC@ fetch_add.c -DBENCH_N=500000000  -I$(srcdir) -lrt -pthread ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    102117
    103118## =========================================================================================================
     
    118133
    119134ctxswitch-pthread$(EXEEXT):
    120         @@BACKEND_CC@ ctxswitch/pthreads.c     -DBENCH_N=50000000  -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     135        @@BACKEND_CC@ $(srcdir)/ctxswitch/pthreads.c     -DBENCH_N=50000000  -I$(srcdir) -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    121136
    122137ctxswitch-cfa_coroutine$(EXEEXT):
    123         @${CC}        ctxswitch/cfa_cor.c      -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     138        @${CC}        $(srcdir)/ctxswitch/cfa_cor.c      -DBENCH_N=50000000  -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    124139
    125140ctxswitch-cfa_thread$(EXEEXT):
    126         @${CC}        ctxswitch/cfa_thrd.c     -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     141        @${CC}        $(srcdir)/ctxswitch/cfa_thrd.c     -DBENCH_N=50000000  -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    127142
    128143ctxswitch-cfa_thread2$(EXEEXT):
    129         @${CC}        ctxswitch/cfa_thrd2.c    -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     144        @${CC}        $(srcdir)/ctxswitch/cfa_thrd2.c    -DBENCH_N=50000000  -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    130145
    131146ctxswitch-upp_coroutine$(EXEEXT):
    132         @u++          ctxswitch/upp_cor.cc     -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     147        @u++          $(srcdir)/ctxswitch/upp_cor.cc     -DBENCH_N=50000000  -I$(srcdir) -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    133148
    134149ctxswitch-upp_thread$(EXEEXT):
    135         @u++          ctxswitch/upp_thrd.cc    -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     150        @u++          $(srcdir)/ctxswitch/upp_thrd.cc    -DBENCH_N=50000000  -I$(srcdir) -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    136151
    137152ctxswitch-kos_fibre$(EXEEXT):
    138         @${CXX}       ctxswitch/kos_fibre.cpp  -DBENCH_N=50000000  -I. -I/home/tdelisle/software/KOS/src/ -g -O2 -lfibre -lpthread -lrt
     153        @${CXX}       $(srcdir)/ctxswitch/kos_fibre.cpp  -DBENCH_N=50000000  -I$(srcdir) -I/home/tdelisle/software/KOS/src/ -g -O2 -lfibre -lpthread -lrt
    139154
    140155ctxswitch-kos_fibre2$(EXEEXT):
    141         @${CXX}       ctxswitch/kos_fibre2.cpp -DBENCH_N=50000000  -I. -I/home/tdelisle/software/KOS/src/ -g -O2 -lfibre -lpthread -lrt
     156        @${CXX}       $(srcdir)/ctxswitch/kos_fibre2.cpp -DBENCH_N=50000000  -I$(srcdir) -I/home/tdelisle/software/KOS/src/ -g -O2 -lfibre -lpthread -lrt
    142157
    143158ctxswitch-goroutine$(EXEEXT):
    144         @go build -o a.out ctxswitch/goroutine.go
     159        @go build -o a.out $(srcdir)/ctxswitch/goroutine.go
    145160
    146161ctxswitch-java_thread$(EXEEXT):
    147         @javac ctxswitch/JavaThread.java
     162        @javac $(srcdir)/ctxswitch/JavaThread.java
    148163        @echo "#!/bin/sh" > a.out
    149164        @echo "cd ctxswitch && java JavaThread" >> a.out
     
    163178
    164179mutex-pthread_lock$(EXEEXT):
    165         @@BACKEND_CC@ mutex/pthreads.c    -DBENCH_N=50000000    -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     180        @@BACKEND_CC@ $(srcdir)/mutex/pthreads.c    -DBENCH_N=50000000    -I$(srcdir) -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    166181
    167182mutex-upp$(EXEEXT):
    168         @u++          mutex/upp.cc        -DBENCH_N=50000000    -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     183        @u++          $(srcdir)/mutex/upp.cc        -DBENCH_N=50000000    -I$(srcdir) -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    169184
    170185mutex-cfa1$(EXEEXT):
    171         @${CC}        mutex/cfa1.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     186        @${CC}        $(srcdir)/mutex/cfa1.c        -DBENCH_N=5000000     -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    172187
    173188mutex-cfa2$(EXEEXT):
    174         @${CC}        mutex/cfa2.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     189        @${CC}        $(srcdir)/mutex/cfa2.c        -DBENCH_N=5000000     -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    175190
    176191mutex-cfa4$(EXEEXT):
    177         @${CC}        mutex/cfa4.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     192        @${CC}        $(srcdir)/mutex/cfa4.c        -DBENCH_N=5000000     -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    178193
    179194mutex-java_thread$(EXEEXT):
    180         @javac mutex/JavaThread.java
     195        @javac $(srcdir)/mutex/JavaThread.java
    181196        @echo "#!/bin/sh" > a.out
    182197        @echo "cd mutex && java JavaThread" >> a.out
     
    193208
    194209signal-pthread_cond$(EXEEXT):
    195         @@BACKEND_CC@ schedint/pthreads.c -DBENCH_N=500000      -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     210        @@BACKEND_CC@ $(srcdir)/schedint/pthreads.c -DBENCH_N=500000      -I$(srcdir) -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    196211
    197212signal-upp$(EXEEXT):
    198         @u++          schedint/upp.cc     -DBENCH_N=5000000     -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     213        @u++          $(srcdir)/schedint/upp.cc     -DBENCH_N=5000000     -I$(srcdir) -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    199214
    200215signal-cfa1$(EXEEXT):
    201         @${CC}        schedint/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     216        @${CC}        $(srcdir)/schedint/cfa1.c     -DBENCH_N=500000      -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    202217
    203218signal-cfa2$(EXEEXT):
    204         @${CC}        schedint/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     219        @${CC}        $(srcdir)/schedint/cfa2.c     -DBENCH_N=500000      -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    205220
    206221signal-cfa4$(EXEEXT):
    207         @${CC}        schedint/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     222        @${CC}        $(srcdir)/schedint/cfa4.c     -DBENCH_N=500000      -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    208223
    209224signal-java_thread$(EXEEXT):
    210         @javac schedint/JavaThread.java
     225        @javac $(srcdir)/schedint/JavaThread.java
    211226        @echo "#!/bin/sh" > a.out
    212227        @echo "cd schedint && java JavaThread" >> a.out
     
    222237
    223238waitfor-upp$(EXEEXT):
    224         @u++          schedext/upp.cc     -DBENCH_N=5000000     -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     239        @u++          $(srcdir)/schedext/upp.cc     -DBENCH_N=5000000     -I$(srcdir) -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    225240
    226241waitfor-cfa1$(EXEEXT):
    227         @${CC}        schedext/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     242        @${CC}        $(srcdir)/schedext/cfa1.c     -DBENCH_N=500000      -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    228243
    229244waitfor-cfa2$(EXEEXT):
    230         @${CC}        schedext/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     245        @${CC}        $(srcdir)/schedext/cfa2.c     -DBENCH_N=500000      -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    231246
    232247waitfor-cfa4$(EXEEXT):
    233         @${CC}        schedext/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     248        @${CC}        $(srcdir)/schedext/cfa4.c     -DBENCH_N=500000      -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    234249
    235250## =========================================================================================================
     
    245260
    246261creation-cfa_coroutine$(EXEEXT):
    247         @${CC}        creation/cfa_cor.c   -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     262        @${CC}        $(srcdir)/creation/cfa_cor.c   -DBENCH_N=10000000   -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    248263
    249264creation-cfa_coroutine_eager$(EXEEXT):
    250         @${CC}        creation/cfa_cor.c   -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags} -DEAGER
     265        @${CC}        $(srcdir)/creation/cfa_cor.c   -DBENCH_N=10000000   -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags} -DEAGER
    251266
    252267creation-cfa_thread$(EXEEXT):
    253         @${CC}        creation/cfa_thrd.c  -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     268        @${CC}        $(srcdir)/creation/cfa_thrd.c  -DBENCH_N=10000000   -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    254269
    255270creation-upp_coroutine$(EXEEXT):
    256         @u++          creation/upp_cor.cc  -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     271        @u++          $(srcdir)/creation/upp_cor.cc  -DBENCH_N=50000000   -I$(srcdir) -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    257272
    258273creation-upp_thread$(EXEEXT):
    259         @u++          creation/upp_thrd.cc -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     274        @u++          $(srcdir)/creation/upp_thrd.cc -DBENCH_N=50000000   -I$(srcdir) -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    260275
    261276creation-pthread$(EXEEXT):
    262         @@BACKEND_CC@ creation/pthreads.c  -DBENCH_N=250000     -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     277        @@BACKEND_CC@ $(srcdir)/creation/pthreads.c  -DBENCH_N=250000     -I$(srcdir) -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    263278
    264279creation-goroutine$(EXEEXT):
    265         @go build -o a.out creation/goroutine.go
     280        @go build -o a.out $(srcdir)/creation/goroutine.go
    266281
    267282creation-java_thread$(EXEEXT):
    268         @javac creation/JavaThread.java
     283        @javac $(srcdir)/creation/JavaThread.java
    269284        @echo "#!/bin/sh" > a.out
    270285        @echo "cd creation && java JavaThread" >> a.out
     
    284299
    285300
     301testdir = $(top_srcdir)/src/tests
     302
    286303compile-array$(EXEEXT):
    287         @${CC} -quiet -fsyntax-only -w ../tests/array.c                         @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     304        @${CC} -quiet -fsyntax-only -w $(testdir)/array.c                       @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    288305
    289306compile-attributes$(EXEEXT):
    290         @${CC} -quiet -fsyntax-only -w ../tests/attributes.c                    @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     307        @${CC} -quiet -fsyntax-only -w $(testdir)/attributes.c          @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    291308
    292309compile-empty$(EXEEXT):
    293         @${CC} -quiet -fsyntax-only -w compile/empty.c                          @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     310        @${CC} -quiet -fsyntax-only -w $(srcdir)/compile/empty.c          @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    294311
    295312compile-expression$(EXEEXT):
    296         @${CC} -quiet -fsyntax-only -w ../tests/expression.c                    @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     313        @${CC} -quiet -fsyntax-only -w $(testdir)/expression.c          @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    297314
    298315compile-io$(EXEEXT):
    299         @${CC} -quiet -fsyntax-only -w ../tests/io1.c                           @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     316        @${CC} -quiet -fsyntax-only -w $(testdir)/io1.c                         @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    300317
    301318compile-monitor$(EXEEXT):
    302         @${CC} -quiet -fsyntax-only -w ../tests/concurrent/monitor.c    @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     319        @${CC} -quiet -fsyntax-only -w $(testdir)/concurrent/monitor.c  @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    303320
    304321compile-operators$(EXEEXT):
    305         @${CC} -quiet -fsyntax-only -w ../tests/operators.c                     @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     322        @${CC} -quiet -fsyntax-only -w $(testdir)/operators.c                   @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    306323
    307324compile-thread$(EXEEXT):
    308         @${CC} -quiet -fsyntax-only -w ../tests/concurrent/thread.c             @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     325        @${CC} -quiet -fsyntax-only -w $(testdir)/concurrent/thread.c   @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    309326
    310327compile-typeof$(EXEEXT):
    311         @${CC} -quiet -fsyntax-only -w ../tests/typeof.c                        @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    312 
     328        @${CC} -quiet -fsyntax-only -w $(testdir)/typeof.c                      @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     329
  • src/benchmark/Makefile.in

    rd1e0979 r3bbd012  
    135135AWK = @AWK@
    136136BACKEND_CC = @BACKEND_CC@
    137 CC = @CFA_BINDIR@/@CFA_NAME@
     137CC = ${top_builddir}/src/driver/cfa
    138138CCAS = @CCAS@
    139139CCASDEPMODE = @CCASDEPMODE@
     
    177177LTLIBOBJS = @LTLIBOBJS@
    178178MACHINE_TYPE = @MACHINE_TYPE@
    179 MAINT = @MAINT@
    180179MAKEINFO = @MAKEINFO@
    181180MKDIR_P = @MKDIR_P@
     
    248247top_builddir = @top_builddir@
    249248top_srcdir = @top_srcdir@
    250 AM_CFLAGS = -g -Wall -Wno-unused-function -O2
     249AM_CFLAGS = \
     250        -XCFA \
     251        -t \
     252        -B${abs_top_builddir}/src/driver \
     253        -g \
     254        -O2 \
     255        -Wall \
     256        -Wno-unused-function \
     257        -quiet \
     258        -I$(srcdir) \
     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
     264
    251265TOOLSDIR = ${abs_top_srcdir}/tools/
    252266REPEAT = ${TOOLSDIR}repeat
     
    256270TIME_FORMAT = "%E"
    257271PRINT_FORMAT = %20s: #Comments needed for spacing
     272testdir = $(top_srcdir)/src/tests
    258273all: all-am
    259274
    260275.SUFFIXES:
    261 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
     276$(srcdir)/Makefile.in: $(srcdir)/Makefile.am  $(am__configure_deps)
    262277        @for dep in $?; do \
    263278          case '$(am__configure_deps)' in \
     
    283298        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    284299
    285 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
     300$(top_srcdir)/configure: $(am__configure_deps)
    286301        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    287 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
     302$(ACLOCAL_M4): $(am__aclocal_m4_deps)
    288303        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    289304$(am__aclocal_m4_deps):
     
    506521
    507522loop$(EXEEXT):
    508         @@BACKEND_CC@ loop.c      -DBENCH_N=5000000000 -I. -lrt -pthread ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     523        @@BACKEND_CC@ loop.c      -DBENCH_N=5000000000 -I$(srcdir) -lrt -pthread ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    509524
    510525function$(EXEEXT):
    511         @@BACKEND_CC@ function.c  -DBENCH_N=5000000000 -I. -lrt -pthread ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     526        @@BACKEND_CC@ function.c  -DBENCH_N=5000000000 -I$(srcdir) -lrt -pthread ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    512527
    513528fetch_add$(EXEEXT):
    514         @@BACKEND_CC@ fetch_add.c -DBENCH_N=500000000  -I. -lrt -pthread ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     529        @@BACKEND_CC@ fetch_add.c -DBENCH_N=500000000  -I$(srcdir) -lrt -pthread ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    515530
    516531ctxswitch$(EXEEXT): \
     
    530545
    531546ctxswitch-pthread$(EXEEXT):
    532         @@BACKEND_CC@ ctxswitch/pthreads.c     -DBENCH_N=50000000  -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     547        @@BACKEND_CC@ $(srcdir)/ctxswitch/pthreads.c     -DBENCH_N=50000000  -I$(srcdir) -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    533548
    534549ctxswitch-cfa_coroutine$(EXEEXT):
    535         @${CC}        ctxswitch/cfa_cor.c      -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     550        @${CC}        $(srcdir)/ctxswitch/cfa_cor.c      -DBENCH_N=50000000  -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    536551
    537552ctxswitch-cfa_thread$(EXEEXT):
    538         @${CC}        ctxswitch/cfa_thrd.c     -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     553        @${CC}        $(srcdir)/ctxswitch/cfa_thrd.c     -DBENCH_N=50000000  -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    539554
    540555ctxswitch-cfa_thread2$(EXEEXT):
    541         @${CC}        ctxswitch/cfa_thrd2.c    -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     556        @${CC}        $(srcdir)/ctxswitch/cfa_thrd2.c    -DBENCH_N=50000000  -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    542557
    543558ctxswitch-upp_coroutine$(EXEEXT):
    544         @u++          ctxswitch/upp_cor.cc     -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     559        @u++          $(srcdir)/ctxswitch/upp_cor.cc     -DBENCH_N=50000000  -I$(srcdir) -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    545560
    546561ctxswitch-upp_thread$(EXEEXT):
    547         @u++          ctxswitch/upp_thrd.cc    -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     562        @u++          $(srcdir)/ctxswitch/upp_thrd.cc    -DBENCH_N=50000000  -I$(srcdir) -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    548563
    549564ctxswitch-kos_fibre$(EXEEXT):
    550         @${CXX}       ctxswitch/kos_fibre.cpp  -DBENCH_N=50000000  -I. -I/home/tdelisle/software/KOS/src/ -g -O2 -lfibre -lpthread -lrt
     565        @${CXX}       $(srcdir)/ctxswitch/kos_fibre.cpp  -DBENCH_N=50000000  -I$(srcdir) -I/home/tdelisle/software/KOS/src/ -g -O2 -lfibre -lpthread -lrt
    551566
    552567ctxswitch-kos_fibre2$(EXEEXT):
    553         @${CXX}       ctxswitch/kos_fibre2.cpp -DBENCH_N=50000000  -I. -I/home/tdelisle/software/KOS/src/ -g -O2 -lfibre -lpthread -lrt
     568        @${CXX}       $(srcdir)/ctxswitch/kos_fibre2.cpp -DBENCH_N=50000000  -I$(srcdir) -I/home/tdelisle/software/KOS/src/ -g -O2 -lfibre -lpthread -lrt
    554569
    555570ctxswitch-goroutine$(EXEEXT):
    556         @go build -o a.out ctxswitch/goroutine.go
     571        @go build -o a.out $(srcdir)/ctxswitch/goroutine.go
    557572
    558573ctxswitch-java_thread$(EXEEXT):
    559         @javac ctxswitch/JavaThread.java
     574        @javac $(srcdir)/ctxswitch/JavaThread.java
    560575        @echo "#!/bin/sh" > a.out
    561576        @echo "cd ctxswitch && java JavaThread" >> a.out
     
    574589
    575590mutex-pthread_lock$(EXEEXT):
    576         @@BACKEND_CC@ mutex/pthreads.c    -DBENCH_N=50000000    -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     591        @@BACKEND_CC@ $(srcdir)/mutex/pthreads.c    -DBENCH_N=50000000    -I$(srcdir) -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    577592
    578593mutex-upp$(EXEEXT):
    579         @u++          mutex/upp.cc        -DBENCH_N=50000000    -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     594        @u++          $(srcdir)/mutex/upp.cc        -DBENCH_N=50000000    -I$(srcdir) -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    580595
    581596mutex-cfa1$(EXEEXT):
    582         @${CC}        mutex/cfa1.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     597        @${CC}        $(srcdir)/mutex/cfa1.c        -DBENCH_N=5000000     -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    583598
    584599mutex-cfa2$(EXEEXT):
    585         @${CC}        mutex/cfa2.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     600        @${CC}        $(srcdir)/mutex/cfa2.c        -DBENCH_N=5000000     -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    586601
    587602mutex-cfa4$(EXEEXT):
    588         @${CC}        mutex/cfa4.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     603        @${CC}        $(srcdir)/mutex/cfa4.c        -DBENCH_N=5000000     -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    589604
    590605mutex-java_thread$(EXEEXT):
    591         @javac mutex/JavaThread.java
     606        @javac $(srcdir)/mutex/JavaThread.java
    592607        @echo "#!/bin/sh" > a.out
    593608        @echo "cd mutex && java JavaThread" >> a.out
     
    603618
    604619signal-pthread_cond$(EXEEXT):
    605         @@BACKEND_CC@ schedint/pthreads.c -DBENCH_N=500000      -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     620        @@BACKEND_CC@ $(srcdir)/schedint/pthreads.c -DBENCH_N=500000      -I$(srcdir) -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    606621
    607622signal-upp$(EXEEXT):
    608         @u++          schedint/upp.cc     -DBENCH_N=5000000     -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     623        @u++          $(srcdir)/schedint/upp.cc     -DBENCH_N=5000000     -I$(srcdir) -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    609624
    610625signal-cfa1$(EXEEXT):
    611         @${CC}        schedint/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     626        @${CC}        $(srcdir)/schedint/cfa1.c     -DBENCH_N=500000      -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    612627
    613628signal-cfa2$(EXEEXT):
    614         @${CC}        schedint/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     629        @${CC}        $(srcdir)/schedint/cfa2.c     -DBENCH_N=500000      -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    615630
    616631signal-cfa4$(EXEEXT):
    617         @${CC}        schedint/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     632        @${CC}        $(srcdir)/schedint/cfa4.c     -DBENCH_N=500000      -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    618633
    619634signal-java_thread$(EXEEXT):
    620         @javac schedint/JavaThread.java
     635        @javac $(srcdir)/schedint/JavaThread.java
    621636        @echo "#!/bin/sh" > a.out
    622637        @echo "cd schedint && java JavaThread" >> a.out
     
    630645
    631646waitfor-upp$(EXEEXT):
    632         @u++          schedext/upp.cc     -DBENCH_N=5000000     -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     647        @u++          $(srcdir)/schedext/upp.cc     -DBENCH_N=5000000     -I$(srcdir) -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    633648
    634649waitfor-cfa1$(EXEEXT):
    635         @${CC}        schedext/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     650        @${CC}        $(srcdir)/schedext/cfa1.c     -DBENCH_N=500000      -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    636651
    637652waitfor-cfa2$(EXEEXT):
    638         @${CC}        schedext/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     653        @${CC}        $(srcdir)/schedext/cfa2.c     -DBENCH_N=500000      -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    639654
    640655waitfor-cfa4$(EXEEXT):
    641         @${CC}        schedext/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     656        @${CC}        $(srcdir)/schedext/cfa4.c     -DBENCH_N=500000      -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    642657
    643658creation$(EXEEXT) :\
     
    652667
    653668creation-cfa_coroutine$(EXEEXT):
    654         @${CC}        creation/cfa_cor.c   -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     669        @${CC}        $(srcdir)/creation/cfa_cor.c   -DBENCH_N=10000000   -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    655670
    656671creation-cfa_coroutine_eager$(EXEEXT):
    657         @${CC}        creation/cfa_cor.c   -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags} -DEAGER
     672        @${CC}        $(srcdir)/creation/cfa_cor.c   -DBENCH_N=10000000   -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags} -DEAGER
    658673
    659674creation-cfa_thread$(EXEEXT):
    660         @${CC}        creation/cfa_thrd.c  -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     675        @${CC}        $(srcdir)/creation/cfa_thrd.c  -DBENCH_N=10000000   -I$(srcdir) -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    661676
    662677creation-upp_coroutine$(EXEEXT):
    663         @u++          creation/upp_cor.cc  -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     678        @u++          $(srcdir)/creation/upp_cor.cc  -DBENCH_N=50000000   -I$(srcdir) -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    664679
    665680creation-upp_thread$(EXEEXT):
    666         @u++          creation/upp_thrd.cc -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     681        @u++          $(srcdir)/creation/upp_thrd.cc -DBENCH_N=50000000   -I$(srcdir) -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    667682
    668683creation-pthread$(EXEEXT):
    669         @@BACKEND_CC@ creation/pthreads.c  -DBENCH_N=250000     -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     684        @@BACKEND_CC@ $(srcdir)/creation/pthreads.c  -DBENCH_N=250000     -I$(srcdir) -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    670685
    671686creation-goroutine$(EXEEXT):
    672         @go build -o a.out creation/goroutine.go
     687        @go build -o a.out $(srcdir)/creation/goroutine.go
    673688
    674689creation-java_thread$(EXEEXT):
    675         @javac creation/JavaThread.java
     690        @javac $(srcdir)/creation/JavaThread.java
    676691        @echo "#!/bin/sh" > a.out
    677692        @echo "cd creation && java JavaThread" >> a.out
     
    689704
    690705compile-array$(EXEEXT):
    691         @${CC} -quiet -fsyntax-only -w ../tests/array.c                         @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     706        @${CC} -quiet -fsyntax-only -w $(testdir)/array.c                       @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    692707
    693708compile-attributes$(EXEEXT):
    694         @${CC} -quiet -fsyntax-only -w ../tests/attributes.c                    @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     709        @${CC} -quiet -fsyntax-only -w $(testdir)/attributes.c          @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    695710
    696711compile-empty$(EXEEXT):
    697         @${CC} -quiet -fsyntax-only -w compile/empty.c                          @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     712        @${CC} -quiet -fsyntax-only -w $(srcdir)/compile/empty.c          @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    698713
    699714compile-expression$(EXEEXT):
    700         @${CC} -quiet -fsyntax-only -w ../tests/expression.c                    @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     715        @${CC} -quiet -fsyntax-only -w $(testdir)/expression.c          @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    701716
    702717compile-io$(EXEEXT):
    703         @${CC} -quiet -fsyntax-only -w ../tests/io1.c                           @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     718        @${CC} -quiet -fsyntax-only -w $(testdir)/io1.c                         @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    704719
    705720compile-monitor$(EXEEXT):
    706         @${CC} -quiet -fsyntax-only -w ../tests/concurrent/monitor.c    @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     721        @${CC} -quiet -fsyntax-only -w $(testdir)/concurrent/monitor.c  @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    707722
    708723compile-operators$(EXEEXT):
    709         @${CC} -quiet -fsyntax-only -w ../tests/operators.c                     @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     724        @${CC} -quiet -fsyntax-only -w $(testdir)/operators.c                   @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    710725
    711726compile-thread$(EXEEXT):
    712         @${CC} -quiet -fsyntax-only -w ../tests/concurrent/thread.c             @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     727        @${CC} -quiet -fsyntax-only -w $(testdir)/concurrent/thread.c   @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    713728
    714729compile-typeof$(EXEEXT):
    715         @${CC} -quiet -fsyntax-only -w ../tests/typeof.c                        @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
     730        @${CC} -quiet -fsyntax-only -w $(testdir)/typeof.c                      @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
    716731
    717732# Tell versions [3.59,3.63) of GNU make to not export all variables.
  • src/config.h.in

    rd1e0979 r3bbd012  
    1 /* config.h.in.  Generated from configure.ac by autoheader.  */
     1/* src/config.h.in.  Generated from configure.ac by autoheader.  */
    22
    33/* Location of include files. */
  • src/driver/Makefile.am

    rd1e0979 r3bbd012  
    2828endif
    2929
     30# don't install cfa directly
    3031noinst_PROGRAMS = cfa
    31 cfa_SOURCES = cfa.cc
    3232
     33# use
    3334install-exec-hook:
    3435        @test -z "$(CFA_BINDIR)" || $(MKDIR_P) "$(CFA_BINDIR)"
     
    4041        cd "$(CFA_BINDIR)" && rm -f $(CFA_NAME)
    4142
     43cfa_SOURCES = cfa.cc
     44
    4245# put into lib for now
    4346cc1libdir = ${CFA_LIBDIR}
  • src/driver/Makefile.in

    rd1e0979 r3bbd012  
    221221LTLIBOBJS = @LTLIBOBJS@
    222222MACHINE_TYPE = @MACHINE_TYPE@
    223 MAINT = @MAINT@
    224223MAKEINFO = @MAKEINFO@
    225224MKDIR_P = @MKDIR_P@
     
    306305.SUFFIXES:
    307306.SUFFIXES: .cc .o .obj
    308 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
     307$(srcdir)/Makefile.in: $(srcdir)/Makefile.am  $(am__configure_deps)
    309308        @for dep in $?; do \
    310309          case '$(am__configure_deps)' in \
     
    330329        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    331330
    332 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
     331$(top_srcdir)/configure: $(am__configure_deps)
    333332        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    334 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
     333$(ACLOCAL_M4): $(am__aclocal_m4_deps)
    335334        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    336335$(am__aclocal_m4_deps):
     
    626625
    627626
     627# use
    628628install-exec-hook:
    629629        @test -z "$(CFA_BINDIR)" || $(MKDIR_P) "$(CFA_BINDIR)"
  • src/driver/cc1.cc

    rd1e0979 r3bbd012  
    1010// Created On       : Fri Aug 26 14:23:51 2005
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 13 17:40:10 2018
    13 // Update Count     : 110
     12// Last Modified On : Thu Jul 19 10:46:11 2018
     13// Update Count     : 111
    1414//
    1515
     
    454454                                        args[nargs] = argv[i];                          // pass the argument along
    455455                                        nargs += 1;
    456                 #ifdef __DEBUG_H__
     456                                        #ifdef __DEBUG_H__
    457457                                        cerr << "arg:\"" << argv[i] << "\"" << endl;
    458                 #endif // __DEBUG_H__
     458                                        #endif // __DEBUG_H__
    459459                                } // if
    460460                        } // if
  • src/driver/cfa.cc

    rd1e0979 r3bbd012  
    343343                args[nargs] = "--undefined=__cfaabi_interpose_startup";
    344344                nargs += 1;
     345                args[nargs] = "-Xlinker";
     346                nargs += 1;
     347                args[nargs] = "--undefined=__cfaabi_appready_startup";
     348                nargs += 1;
    345349
    346350                // include the cfa library in case it's needed
  • src/examples/Makefile.in

    rd1e0979 r3bbd012  
    231231LTLIBOBJS = @LTLIBOBJS@
    232232MACHINE_TYPE = @MACHINE_TYPE@
    233 MAINT = @MAINT@
    234233MAKEINFO = @MAKEINFO@
    235234MKDIR_P = @MKDIR_P@
     
    310309.SUFFIXES:
    311310.SUFFIXES: .c .o .obj
    312 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
     311$(srcdir)/Makefile.in: $(srcdir)/Makefile.am  $(am__configure_deps)
    313312        @for dep in $?; do \
    314313          case '$(am__configure_deps)' in \
     
    334333        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    335334
    336 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
     335$(top_srcdir)/configure: $(am__configure_deps)
    337336        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    338 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
     337$(ACLOCAL_M4): $(am__aclocal_m4_deps)
    339338        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    340339$(am__aclocal_m4_deps):
  • src/libcfa/Makefile.am

    rd1e0979 r3bbd012  
    1111## Created On       : Sun May 31 08:54:01 2015
    1212## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Thu Jul 12 08:04:35 2018
    14 ## Update Count     : 234
     13## Last Modified On : Tue Jul 24 17:25:39 2018
     14## Update Count     : 240
    1515###############################################################################
    1616
     
    3636         ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -D__CFA_DEBUG__ -Wall -O0 -c -o $@ $<
    3737
    38 EXTRA_FLAGS = -g -Wall -Wno-unused-function -imacros libcfa-prelude.c @CFA_FLAGS@
     38EXTRA_FLAGS = -g -Wall -Wno-unused-function -imacros libcfa-prelude.c @CFA_FLAGS@ $(DEFAULT_INCLUDES)
    3939
    4040AM_CCASFLAGS = @CFA_FLAGS@
     
    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 -I${abs_top_srcdir}/src/libcfa/stdhdr -XCFA -t -B${abs_top_srcdir}/src/driver ${EXTRA_FLAGS}
    46 CC = ${abs_top_srcdir}/src/driver/cfa
     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 \
     
    5555
    5656libobjs = ${headers:=.o}
    57 libsrc = libcfa-prelude.c interpose.c bits/debug.c ${headers:=.c} \
    58          assert.c exception.c virtual.c
     57libsrc = libcfa-prelude.c startup.c interpose.c bits/debug.c assert.c exception.c virtual.c heap.c \
     58        ${headers:=.c}
    5959
    6060# not all platforms support concurrency, add option do disable it
     
    6464
    6565# extensionless header files are overridden by -o flag in default makerule => explicitly override default rule to silently do nothing
     66# SKULLDUGGERY in order to make sure this isn't called make the rule always fail but also create a rule for headers
    6667% : %.c
    67         @true
     68        echo "Dummy rule, should never be called"
     69        false
     70
     71# This rule should always match headers and since it has no prerequisite it will never be called
     72$(addprefix $(srcdir)/,$(headers)):
     73        echo "Dummy rule, should never be called"
     74        false
    6875
    6976concurrency/libcfa_a-invoke.o : concurrency/invoke.c
     
    9299libcfa_d_a_CFLAGS = -debug -O0 #No need for __CFA_DEBUG__ since we pass -debug
    93100
    94 stdhdr = ${shell find stdhdr -type f -printf "%p "}
     101stdhdr = ${shell find ${srcdir}/stdhdr -type f -printf "%p "}
    95102
    96103cfa_includedir = $(CFA_INCDIR)
  • src/libcfa/Makefile.in

    rd1e0979 r3bbd012  
    148148libcfa_d_a_AR = $(AR) $(ARFLAGS)
    149149libcfa_d_a_LIBADD =
    150 am__libcfa_d_a_SOURCES_DIST = libcfa-prelude.c interpose.c \
    151         bits/debug.c fstream.c iostream.c iterator.c limits.c \
    152         rational.c time.c stdlib.c common.c containers/maybe.c \
    153         containers/pair.c containers/result.c containers/vector.c \
     150am__libcfa_d_a_SOURCES_DIST = libcfa-prelude.c startup.c interpose.c \
     151        bits/debug.c assert.c exception.c virtual.c heap.c fstream.c \
     152        iostream.c iterator.c limits.c rational.c time.c stdlib.c \
     153        common.c containers/maybe.c containers/pair.c \
     154        containers/result.c containers/vector.c \
    154155        concurrency/coroutine.c concurrency/thread.c \
    155156        concurrency/kernel.c concurrency/monitor.c concurrency/mutex.c \
    156         assert.c exception.c virtual.c \
    157157        concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/alarm.c \
    158158        concurrency/invoke.c concurrency/preemption.c
     
    177177@BUILD_CONCURRENCY_TRUE@        concurrency/libcfa_d_a-preemption.$(OBJEXT)
    178178am__objects_4 = libcfa_d_a-libcfa-prelude.$(OBJEXT) \
    179         libcfa_d_a-interpose.$(OBJEXT) bits/libcfa_d_a-debug.$(OBJEXT) \
    180         $(am__objects_2) libcfa_d_a-assert.$(OBJEXT) \
     179        libcfa_d_a-startup.$(OBJEXT) libcfa_d_a-interpose.$(OBJEXT) \
     180        bits/libcfa_d_a-debug.$(OBJEXT) libcfa_d_a-assert.$(OBJEXT) \
    181181        libcfa_d_a-exception.$(OBJEXT) libcfa_d_a-virtual.$(OBJEXT) \
    182         $(am__objects_3)
     182        libcfa_d_a-heap.$(OBJEXT) $(am__objects_2) $(am__objects_3)
    183183am_libcfa_d_a_OBJECTS = $(am__objects_4)
    184184libcfa_d_a_OBJECTS = $(am_libcfa_d_a_OBJECTS)
    185185libcfa_a_AR = $(AR) $(ARFLAGS)
    186186libcfa_a_LIBADD =
    187 am__libcfa_a_SOURCES_DIST = libcfa-prelude.c interpose.c bits/debug.c \
    188         fstream.c iostream.c iterator.c limits.c rational.c time.c \
    189         stdlib.c common.c containers/maybe.c containers/pair.c \
     187am__libcfa_a_SOURCES_DIST = libcfa-prelude.c startup.c interpose.c \
     188        bits/debug.c assert.c exception.c virtual.c heap.c fstream.c \
     189        iostream.c iterator.c limits.c rational.c time.c stdlib.c \
     190        common.c containers/maybe.c containers/pair.c \
    190191        containers/result.c containers/vector.c \
    191192        concurrency/coroutine.c concurrency/thread.c \
    192193        concurrency/kernel.c concurrency/monitor.c concurrency/mutex.c \
    193         assert.c exception.c virtual.c \
    194194        concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/alarm.c \
    195195        concurrency/invoke.c concurrency/preemption.c
     
    212212@BUILD_CONCURRENCY_TRUE@        concurrency/libcfa_a-preemption.$(OBJEXT)
    213213am__objects_8 = libcfa_a-libcfa-prelude.$(OBJEXT) \
    214         libcfa_a-interpose.$(OBJEXT) bits/libcfa_a-debug.$(OBJEXT) \
    215         $(am__objects_6) libcfa_a-assert.$(OBJEXT) \
     214        libcfa_a-startup.$(OBJEXT) libcfa_a-interpose.$(OBJEXT) \
     215        bits/libcfa_a-debug.$(OBJEXT) libcfa_a-assert.$(OBJEXT) \
    216216        libcfa_a-exception.$(OBJEXT) libcfa_a-virtual.$(OBJEXT) \
    217         $(am__objects_7)
     217        libcfa_a-heap.$(OBJEXT) $(am__objects_6) $(am__objects_7)
    218218am_libcfa_a_OBJECTS = $(am__objects_8)
    219219libcfa_a_OBJECTS = $(am_libcfa_a_OBJECTS)
     
    268268        containers/result containers/vector concurrency/coroutine \
    269269        concurrency/thread concurrency/kernel concurrency/monitor \
    270         concurrency/mutex ${shell find stdhdr -type f -printf "%p "} \
    271         math gmp time_t.h bits/align.h bits/containers.h bits/defs.h \
    272         bits/debug.h bits/locks.h concurrency/invoke.h
     270        concurrency/mutex ${shell find ${srcdir}/stdhdr -type f \
     271        -printf "%p "} math gmp time_t.h bits/align.h \
     272        bits/containers.h bits/defs.h bits/debug.h bits/locks.h \
     273        concurrency/invoke.h
    273274HEADERS = $(nobase_cfa_include_HEADERS)
    274275am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
     
    302303AWK = @AWK@
    303304BACKEND_CC = @BACKEND_CC@
    304 CC = ${abs_top_srcdir}/src/driver/cfa
     305CC = ${abs_top_builddir}/src/driver/cfa
    305306CCAS = @CCAS@
    306307CCASDEPMODE = @CCASDEPMODE@
     
    318319#use -no-include-stdhdr to prevent rebuild cycles
    319320#The built sources must not depend on the installed headers
    320 CFLAGS = -quiet -no-include-stdhdr -I${abs_top_srcdir}/src/libcfa/stdhdr -XCFA -t -B${abs_top_srcdir}/src/driver ${EXTRA_FLAGS}
     321CFLAGS = -quiet -no-include-stdhdr -I${abs_top_srcdir}/src/libcfa/stdhdr -XCFA -t -B${abs_top_builddir}/src/driver ${EXTRA_FLAGS}
    321322CPP = @CPP@
    322323CPPFLAGS = @CPPFLAGS@
     
    346347LTLIBOBJS = @LTLIBOBJS@
    347348MACHINE_TYPE = @MACHINE_TYPE@
    348 MAINT = @MAINT@
    349349MAKEINFO = @MAKEINFO@
    350350MKDIR_P = @MKDIR_P@
     
    422422ARFLAGS = cr
    423423lib_LIBRARIES = $(am__append_1) $(am__append_2)
    424 EXTRA_FLAGS = -g -Wall -Wno-unused-function -imacros libcfa-prelude.c @CFA_FLAGS@
     424EXTRA_FLAGS = -g -Wall -Wno-unused-function -imacros libcfa-prelude.c @CFA_FLAGS@ $(DEFAULT_INCLUDES)
    425425AM_CCASFLAGS = @CFA_FLAGS@
    426426headers = fstream iostream iterator limits rational time stdlib common \
     
    428428        containers/vector $(am__append_3)
    429429libobjs = ${headers:=.o}
    430 libsrc = libcfa-prelude.c interpose.c bits/debug.c ${headers:=.c} \
    431         assert.c exception.c virtual.c $(am__append_4)
     430libsrc = libcfa-prelude.c startup.c interpose.c bits/debug.c assert.c \
     431        exception.c virtual.c heap.c ${headers:=.c} $(am__append_4)
    432432libcfa_a_SOURCES = ${libsrc}
    433433libcfa_a_CFLAGS = -nodebug -O2
    434434libcfa_d_a_SOURCES = ${libsrc}
    435435libcfa_d_a_CFLAGS = -debug -O0 #No need for __CFA_DEBUG__ since we pass -debug
    436 stdhdr = ${shell find stdhdr -type f -printf "%p "}
     436stdhdr = ${shell find ${srcdir}/stdhdr -type f -printf "%p "}
    437437cfa_includedir = $(CFA_INCDIR)
    438438nobase_cfa_include_HEADERS = \
     
    454454.SUFFIXES:
    455455.SUFFIXES: .S .c .o .obj
    456 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
     456$(srcdir)/Makefile.in: $(srcdir)/Makefile.am  $(am__configure_deps)
    457457        @for dep in $?; do \
    458458          case '$(am__configure_deps)' in \
     
    478478        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    479479
    480 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
     480$(top_srcdir)/configure: $(am__configure_deps)
    481481        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    482 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
     482$(ACLOCAL_M4): $(am__aclocal_m4_deps)
    483483        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    484484$(am__aclocal_m4_deps):
     
    614614@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-exception.Po@am__quote@
    615615@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-fstream.Po@am__quote@
     616@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-heap.Po@am__quote@
    616617@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-interpose.Po@am__quote@
    617618@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-iostream.Po@am__quote@
     
    620621@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-limits.Po@am__quote@
    621622@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-rational.Po@am__quote@
     623@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-startup.Po@am__quote@
    622624@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-stdlib.Po@am__quote@
    623625@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-time.Po@am__quote@
     
    627629@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-exception.Po@am__quote@
    628630@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-fstream.Po@am__quote@
     631@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-heap.Po@am__quote@
    629632@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-interpose.Po@am__quote@
    630633@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-iostream.Po@am__quote@
     
    633636@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-limits.Po@am__quote@
    634637@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-rational.Po@am__quote@
     638@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-startup.Po@am__quote@
    635639@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-stdlib.Po@am__quote@
    636640@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-time.Po@am__quote@
     
    703707@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-libcfa-prelude.obj `if test -f 'libcfa-prelude.c'; then $(CYGPATH_W) 'libcfa-prelude.c'; else $(CYGPATH_W) '$(srcdir)/libcfa-prelude.c'; fi`
    704708
     709libcfa_d_a-startup.o: startup.c
     710@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-startup.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-startup.Tpo -c -o libcfa_d_a-startup.o `test -f 'startup.c' || echo '$(srcdir)/'`startup.c
     711@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-startup.Tpo $(DEPDIR)/libcfa_d_a-startup.Po
     712@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='startup.c' object='libcfa_d_a-startup.o' libtool=no @AMDEPBACKSLASH@
     713@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     714@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-startup.o `test -f 'startup.c' || echo '$(srcdir)/'`startup.c
     715
     716libcfa_d_a-startup.obj: startup.c
     717@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-startup.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-startup.Tpo -c -o libcfa_d_a-startup.obj `if test -f 'startup.c'; then $(CYGPATH_W) 'startup.c'; else $(CYGPATH_W) '$(srcdir)/startup.c'; fi`
     718@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-startup.Tpo $(DEPDIR)/libcfa_d_a-startup.Po
     719@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='startup.c' object='libcfa_d_a-startup.obj' libtool=no @AMDEPBACKSLASH@
     720@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     721@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-startup.obj `if test -f 'startup.c'; then $(CYGPATH_W) 'startup.c'; else $(CYGPATH_W) '$(srcdir)/startup.c'; fi`
     722
    705723libcfa_d_a-interpose.o: interpose.c
    706724@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-interpose.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-interpose.Tpo -c -o libcfa_d_a-interpose.o `test -f 'interpose.c' || echo '$(srcdir)/'`interpose.c
     
    731749@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o bits/libcfa_d_a-debug.obj `if test -f 'bits/debug.c'; then $(CYGPATH_W) 'bits/debug.c'; else $(CYGPATH_W) '$(srcdir)/bits/debug.c'; fi`
    732750
     751libcfa_d_a-assert.o: assert.c
     752@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-assert.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-assert.Tpo -c -o libcfa_d_a-assert.o `test -f 'assert.c' || echo '$(srcdir)/'`assert.c
     753@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-assert.Tpo $(DEPDIR)/libcfa_d_a-assert.Po
     754@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='assert.c' object='libcfa_d_a-assert.o' libtool=no @AMDEPBACKSLASH@
     755@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     756@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-assert.o `test -f 'assert.c' || echo '$(srcdir)/'`assert.c
     757
     758libcfa_d_a-assert.obj: assert.c
     759@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-assert.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-assert.Tpo -c -o libcfa_d_a-assert.obj `if test -f 'assert.c'; then $(CYGPATH_W) 'assert.c'; else $(CYGPATH_W) '$(srcdir)/assert.c'; fi`
     760@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-assert.Tpo $(DEPDIR)/libcfa_d_a-assert.Po
     761@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='assert.c' object='libcfa_d_a-assert.obj' libtool=no @AMDEPBACKSLASH@
     762@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     763@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-assert.obj `if test -f 'assert.c'; then $(CYGPATH_W) 'assert.c'; else $(CYGPATH_W) '$(srcdir)/assert.c'; fi`
     764
     765libcfa_d_a-exception.obj: exception.c
     766@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-exception.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-exception.Tpo -c -o libcfa_d_a-exception.obj `if test -f 'exception.c'; then $(CYGPATH_W) 'exception.c'; else $(CYGPATH_W) '$(srcdir)/exception.c'; fi`
     767@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-exception.Tpo $(DEPDIR)/libcfa_d_a-exception.Po
     768@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='exception.c' object='libcfa_d_a-exception.obj' libtool=no @AMDEPBACKSLASH@
     769@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     770@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-exception.obj `if test -f 'exception.c'; then $(CYGPATH_W) 'exception.c'; else $(CYGPATH_W) '$(srcdir)/exception.c'; fi`
     771
     772libcfa_d_a-virtual.obj: virtual.c
     773@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-virtual.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-virtual.Tpo -c -o libcfa_d_a-virtual.obj `if test -f 'virtual.c'; then $(CYGPATH_W) 'virtual.c'; else $(CYGPATH_W) '$(srcdir)/virtual.c'; fi`
     774@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-virtual.Tpo $(DEPDIR)/libcfa_d_a-virtual.Po
     775@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='virtual.c' object='libcfa_d_a-virtual.obj' libtool=no @AMDEPBACKSLASH@
     776@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     777@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-virtual.obj `if test -f 'virtual.c'; then $(CYGPATH_W) 'virtual.c'; else $(CYGPATH_W) '$(srcdir)/virtual.c'; fi`
     778
     779libcfa_d_a-heap.o: heap.c
     780@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-heap.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-heap.Tpo -c -o libcfa_d_a-heap.o `test -f 'heap.c' || echo '$(srcdir)/'`heap.c
     781@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-heap.Tpo $(DEPDIR)/libcfa_d_a-heap.Po
     782@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='heap.c' object='libcfa_d_a-heap.o' libtool=no @AMDEPBACKSLASH@
     783@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     784@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-heap.o `test -f 'heap.c' || echo '$(srcdir)/'`heap.c
     785
     786libcfa_d_a-heap.obj: heap.c
     787@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-heap.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-heap.Tpo -c -o libcfa_d_a-heap.obj `if test -f 'heap.c'; then $(CYGPATH_W) 'heap.c'; else $(CYGPATH_W) '$(srcdir)/heap.c'; fi`
     788@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-heap.Tpo $(DEPDIR)/libcfa_d_a-heap.Po
     789@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='heap.c' object='libcfa_d_a-heap.obj' libtool=no @AMDEPBACKSLASH@
     790@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     791@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-heap.obj `if test -f 'heap.c'; then $(CYGPATH_W) 'heap.c'; else $(CYGPATH_W) '$(srcdir)/heap.c'; fi`
     792
    733793libcfa_d_a-fstream.o: fstream.c
    734794@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-fstream.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-fstream.Tpo -c -o libcfa_d_a-fstream.o `test -f 'fstream.c' || echo '$(srcdir)/'`fstream.c
     
    9691029@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-mutex.obj `if test -f 'concurrency/mutex.c'; then $(CYGPATH_W) 'concurrency/mutex.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/mutex.c'; fi`
    9701030
    971 libcfa_d_a-assert.o: assert.c
    972 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-assert.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-assert.Tpo -c -o libcfa_d_a-assert.o `test -f 'assert.c' || echo '$(srcdir)/'`assert.c
    973 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-assert.Tpo $(DEPDIR)/libcfa_d_a-assert.Po
    974 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='assert.c' object='libcfa_d_a-assert.o' libtool=no @AMDEPBACKSLASH@
    975 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    976 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-assert.o `test -f 'assert.c' || echo '$(srcdir)/'`assert.c
    977 
    978 libcfa_d_a-assert.obj: assert.c
    979 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-assert.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-assert.Tpo -c -o libcfa_d_a-assert.obj `if test -f 'assert.c'; then $(CYGPATH_W) 'assert.c'; else $(CYGPATH_W) '$(srcdir)/assert.c'; fi`
    980 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-assert.Tpo $(DEPDIR)/libcfa_d_a-assert.Po
    981 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='assert.c' object='libcfa_d_a-assert.obj' libtool=no @AMDEPBACKSLASH@
    982 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    983 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-assert.obj `if test -f 'assert.c'; then $(CYGPATH_W) 'assert.c'; else $(CYGPATH_W) '$(srcdir)/assert.c'; fi`
    984 
    985 libcfa_d_a-exception.obj: exception.c
    986 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-exception.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-exception.Tpo -c -o libcfa_d_a-exception.obj `if test -f 'exception.c'; then $(CYGPATH_W) 'exception.c'; else $(CYGPATH_W) '$(srcdir)/exception.c'; fi`
    987 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-exception.Tpo $(DEPDIR)/libcfa_d_a-exception.Po
    988 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='exception.c' object='libcfa_d_a-exception.obj' libtool=no @AMDEPBACKSLASH@
    989 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    990 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-exception.obj `if test -f 'exception.c'; then $(CYGPATH_W) 'exception.c'; else $(CYGPATH_W) '$(srcdir)/exception.c'; fi`
    991 
    992 libcfa_d_a-virtual.obj: virtual.c
    993 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-virtual.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-virtual.Tpo -c -o libcfa_d_a-virtual.obj `if test -f 'virtual.c'; then $(CYGPATH_W) 'virtual.c'; else $(CYGPATH_W) '$(srcdir)/virtual.c'; fi`
    994 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-virtual.Tpo $(DEPDIR)/libcfa_d_a-virtual.Po
    995 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='virtual.c' object='libcfa_d_a-virtual.obj' libtool=no @AMDEPBACKSLASH@
    996 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    997 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-virtual.obj `if test -f 'virtual.c'; then $(CYGPATH_W) 'virtual.c'; else $(CYGPATH_W) '$(srcdir)/virtual.c'; fi`
    998 
    9991031concurrency/libcfa_d_a-alarm.o: concurrency/alarm.c
    10001032@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-alarm.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-alarm.Tpo -c -o concurrency/libcfa_d_a-alarm.o `test -f 'concurrency/alarm.c' || echo '$(srcdir)/'`concurrency/alarm.c
     
    10391071@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-libcfa-prelude.obj `if test -f 'libcfa-prelude.c'; then $(CYGPATH_W) 'libcfa-prelude.c'; else $(CYGPATH_W) '$(srcdir)/libcfa-prelude.c'; fi`
    10401072
     1073libcfa_a-startup.o: startup.c
     1074@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-startup.o -MD -MP -MF $(DEPDIR)/libcfa_a-startup.Tpo -c -o libcfa_a-startup.o `test -f 'startup.c' || echo '$(srcdir)/'`startup.c
     1075@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-startup.Tpo $(DEPDIR)/libcfa_a-startup.Po
     1076@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='startup.c' object='libcfa_a-startup.o' libtool=no @AMDEPBACKSLASH@
     1077@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1078@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-startup.o `test -f 'startup.c' || echo '$(srcdir)/'`startup.c
     1079
     1080libcfa_a-startup.obj: startup.c
     1081@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-startup.obj -MD -MP -MF $(DEPDIR)/libcfa_a-startup.Tpo -c -o libcfa_a-startup.obj `if test -f 'startup.c'; then $(CYGPATH_W) 'startup.c'; else $(CYGPATH_W) '$(srcdir)/startup.c'; fi`
     1082@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-startup.Tpo $(DEPDIR)/libcfa_a-startup.Po
     1083@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='startup.c' object='libcfa_a-startup.obj' libtool=no @AMDEPBACKSLASH@
     1084@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1085@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-startup.obj `if test -f 'startup.c'; then $(CYGPATH_W) 'startup.c'; else $(CYGPATH_W) '$(srcdir)/startup.c'; fi`
     1086
    10411087libcfa_a-interpose.o: interpose.c
    10421088@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-interpose.o -MD -MP -MF $(DEPDIR)/libcfa_a-interpose.Tpo -c -o libcfa_a-interpose.o `test -f 'interpose.c' || echo '$(srcdir)/'`interpose.c
     
    10671113@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o bits/libcfa_a-debug.obj `if test -f 'bits/debug.c'; then $(CYGPATH_W) 'bits/debug.c'; else $(CYGPATH_W) '$(srcdir)/bits/debug.c'; fi`
    10681114
     1115libcfa_a-assert.o: assert.c
     1116@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-assert.o -MD -MP -MF $(DEPDIR)/libcfa_a-assert.Tpo -c -o libcfa_a-assert.o `test -f 'assert.c' || echo '$(srcdir)/'`assert.c
     1117@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-assert.Tpo $(DEPDIR)/libcfa_a-assert.Po
     1118@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='assert.c' object='libcfa_a-assert.o' libtool=no @AMDEPBACKSLASH@
     1119@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1120@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-assert.o `test -f 'assert.c' || echo '$(srcdir)/'`assert.c
     1121
     1122libcfa_a-assert.obj: assert.c
     1123@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-assert.obj -MD -MP -MF $(DEPDIR)/libcfa_a-assert.Tpo -c -o libcfa_a-assert.obj `if test -f 'assert.c'; then $(CYGPATH_W) 'assert.c'; else $(CYGPATH_W) '$(srcdir)/assert.c'; fi`
     1124@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-assert.Tpo $(DEPDIR)/libcfa_a-assert.Po
     1125@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='assert.c' object='libcfa_a-assert.obj' libtool=no @AMDEPBACKSLASH@
     1126@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1127@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-assert.obj `if test -f 'assert.c'; then $(CYGPATH_W) 'assert.c'; else $(CYGPATH_W) '$(srcdir)/assert.c'; fi`
     1128
     1129libcfa_a-exception.obj: exception.c
     1130@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-exception.obj -MD -MP -MF $(DEPDIR)/libcfa_a-exception.Tpo -c -o libcfa_a-exception.obj `if test -f 'exception.c'; then $(CYGPATH_W) 'exception.c'; else $(CYGPATH_W) '$(srcdir)/exception.c'; fi`
     1131@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-exception.Tpo $(DEPDIR)/libcfa_a-exception.Po
     1132@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='exception.c' object='libcfa_a-exception.obj' libtool=no @AMDEPBACKSLASH@
     1133@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1134@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-exception.obj `if test -f 'exception.c'; then $(CYGPATH_W) 'exception.c'; else $(CYGPATH_W) '$(srcdir)/exception.c'; fi`
     1135
     1136libcfa_a-virtual.obj: virtual.c
     1137@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-virtual.obj -MD -MP -MF $(DEPDIR)/libcfa_a-virtual.Tpo -c -o libcfa_a-virtual.obj `if test -f 'virtual.c'; then $(CYGPATH_W) 'virtual.c'; else $(CYGPATH_W) '$(srcdir)/virtual.c'; fi`
     1138@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-virtual.Tpo $(DEPDIR)/libcfa_a-virtual.Po
     1139@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='virtual.c' object='libcfa_a-virtual.obj' libtool=no @AMDEPBACKSLASH@
     1140@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1141@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-virtual.obj `if test -f 'virtual.c'; then $(CYGPATH_W) 'virtual.c'; else $(CYGPATH_W) '$(srcdir)/virtual.c'; fi`
     1142
     1143libcfa_a-heap.o: heap.c
     1144@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-heap.o -MD -MP -MF $(DEPDIR)/libcfa_a-heap.Tpo -c -o libcfa_a-heap.o `test -f 'heap.c' || echo '$(srcdir)/'`heap.c
     1145@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-heap.Tpo $(DEPDIR)/libcfa_a-heap.Po
     1146@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='heap.c' object='libcfa_a-heap.o' libtool=no @AMDEPBACKSLASH@
     1147@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1148@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-heap.o `test -f 'heap.c' || echo '$(srcdir)/'`heap.c
     1149
     1150libcfa_a-heap.obj: heap.c
     1151@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-heap.obj -MD -MP -MF $(DEPDIR)/libcfa_a-heap.Tpo -c -o libcfa_a-heap.obj `if test -f 'heap.c'; then $(CYGPATH_W) 'heap.c'; else $(CYGPATH_W) '$(srcdir)/heap.c'; fi`
     1152@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-heap.Tpo $(DEPDIR)/libcfa_a-heap.Po
     1153@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='heap.c' object='libcfa_a-heap.obj' libtool=no @AMDEPBACKSLASH@
     1154@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1155@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-heap.obj `if test -f 'heap.c'; then $(CYGPATH_W) 'heap.c'; else $(CYGPATH_W) '$(srcdir)/heap.c'; fi`
     1156
    10691157libcfa_a-fstream.o: fstream.c
    10701158@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-fstream.o -MD -MP -MF $(DEPDIR)/libcfa_a-fstream.Tpo -c -o libcfa_a-fstream.o `test -f 'fstream.c' || echo '$(srcdir)/'`fstream.c
     
    13041392@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    13051393@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-mutex.obj `if test -f 'concurrency/mutex.c'; then $(CYGPATH_W) 'concurrency/mutex.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/mutex.c'; fi`
    1306 
    1307 libcfa_a-assert.o: assert.c
    1308 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-assert.o -MD -MP -MF $(DEPDIR)/libcfa_a-assert.Tpo -c -o libcfa_a-assert.o `test -f 'assert.c' || echo '$(srcdir)/'`assert.c
    1309 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-assert.Tpo $(DEPDIR)/libcfa_a-assert.Po
    1310 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='assert.c' object='libcfa_a-assert.o' libtool=no @AMDEPBACKSLASH@
    1311 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    1312 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-assert.o `test -f 'assert.c' || echo '$(srcdir)/'`assert.c
    1313 
    1314 libcfa_a-assert.obj: assert.c
    1315 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-assert.obj -MD -MP -MF $(DEPDIR)/libcfa_a-assert.Tpo -c -o libcfa_a-assert.obj `if test -f 'assert.c'; then $(CYGPATH_W) 'assert.c'; else $(CYGPATH_W) '$(srcdir)/assert.c'; fi`
    1316 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-assert.Tpo $(DEPDIR)/libcfa_a-assert.Po
    1317 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='assert.c' object='libcfa_a-assert.obj' libtool=no @AMDEPBACKSLASH@
    1318 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    1319 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-assert.obj `if test -f 'assert.c'; then $(CYGPATH_W) 'assert.c'; else $(CYGPATH_W) '$(srcdir)/assert.c'; fi`
    1320 
    1321 libcfa_a-exception.obj: exception.c
    1322 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-exception.obj -MD -MP -MF $(DEPDIR)/libcfa_a-exception.Tpo -c -o libcfa_a-exception.obj `if test -f 'exception.c'; then $(CYGPATH_W) 'exception.c'; else $(CYGPATH_W) '$(srcdir)/exception.c'; fi`
    1323 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-exception.Tpo $(DEPDIR)/libcfa_a-exception.Po
    1324 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='exception.c' object='libcfa_a-exception.obj' libtool=no @AMDEPBACKSLASH@
    1325 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    1326 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-exception.obj `if test -f 'exception.c'; then $(CYGPATH_W) 'exception.c'; else $(CYGPATH_W) '$(srcdir)/exception.c'; fi`
    1327 
    1328 libcfa_a-virtual.obj: virtual.c
    1329 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-virtual.obj -MD -MP -MF $(DEPDIR)/libcfa_a-virtual.Tpo -c -o libcfa_a-virtual.obj `if test -f 'virtual.c'; then $(CYGPATH_W) 'virtual.c'; else $(CYGPATH_W) '$(srcdir)/virtual.c'; fi`
    1330 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-virtual.Tpo $(DEPDIR)/libcfa_a-virtual.Po
    1331 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='virtual.c' object='libcfa_a-virtual.obj' libtool=no @AMDEPBACKSLASH@
    1332 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    1333 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-virtual.obj `if test -f 'virtual.c'; then $(CYGPATH_W) 'virtual.c'; else $(CYGPATH_W) '$(srcdir)/virtual.c'; fi`
    13341394
    13351395concurrency/libcfa_a-alarm.o: concurrency/alarm.c
     
    16161676
    16171677# extensionless header files are overridden by -o flag in default makerule => explicitly override default rule to silently do nothing
     1678# SKULLDUGGERY in order to make sure this isn't called make the rule always fail but also create a rule for headers
    16181679% : %.c
    1619         @true
     1680        echo "Dummy rule, should never be called"
     1681        false
     1682
     1683# This rule should always match headers and since it has no prerequisite it will never be called
     1684$(addprefix $(srcdir)/,$(headers)):
     1685        echo "Dummy rule, should never be called"
     1686        false
    16201687
    16211688concurrency/libcfa_a-invoke.o : concurrency/invoke.c
  • src/libcfa/concurrency/kernel.c

    rd1e0979 r3bbd012  
    3737
    3838//Start and stop routine for the kernel, declared first to make sure they run first
    39 void kernel_startup(void)  __attribute__(( constructor( STARTUP_PRIORITY_KERNEL ) ));
    40 void kernel_shutdown(void) __attribute__(( destructor ( STARTUP_PRIORITY_KERNEL ) ));
     39static void kernel_startup(void)  __attribute__(( constructor( STARTUP_PRIORITY_KERNEL ) ));
     40static void kernel_shutdown(void) __attribute__(( destructor ( STARTUP_PRIORITY_KERNEL ) ));
    4141
    4242//-----------------------------------------------------------------------------
     
    133133
    134134// Construct the processor context of non-main processors
    135 void ?{}(processorCtx_t & this, processor * proc, current_stack_info_t * info) {
     135static void ?{}(processorCtx_t & this, processor * proc, current_stack_info_t * info) {
    136136        (this.__cor){ info };
    137137        this.proc = proc;
    138138}
    139139
     140static void start(processor * this);
    140141void ?{}(processor & this, const char * name, cluster & cltr) with( this ) {
    141142        this.name = name;
     
    186187// Kernel Scheduling logic
    187188//=============================================================================================
     189static void runThread(processor * this, thread_desc * dst);
     190static void finishRunning(processor * this);
     191static void halt(processor * this);
     192
    188193//Main of the processor contexts
    189194void main(processorCtx_t & runner) {
     
    239244// runThread runs a thread by context switching
    240245// from the processor coroutine to the target thread
    241 void runThread(processor * this, thread_desc * dst) {
     246static void runThread(processor * this, thread_desc * dst) {
    242247        assert(dst->curr_cor);
    243248        coroutine_desc * proc_cor = get_coroutine(this->runner);
     
    256261
    257262// KERNEL_ONLY
    258 void returnToKernel() {
     263static void returnToKernel() {
    259264        coroutine_desc * proc_cor = get_coroutine(kernelTLS.this_processor->runner);
    260265        coroutine_desc * thrd_cor = kernelTLS.this_thread->curr_cor = kernelTLS.this_coroutine;
     
    265270// Once a thread has finished running, some of
    266271// its final actions must be executed from the kernel
    267 void finishRunning(processor * this) with( this->finish ) {
     272static void finishRunning(processor * this) with( this->finish ) {
    268273        verify( ! kernelTLS.preemption_state.enabled );
    269274        choose( action_code ) {
     
    299304// This is the entry point for processors (kernel threads)
    300305// It effectively constructs a coroutine by stealing the pthread stack
    301 void * CtxInvokeProcessor(void * arg) {
     306static void * CtxInvokeProcessor(void * arg) {
    302307        processor * proc = (processor *) arg;
    303308        kernelTLS.this_processor = proc;
     
    336341}
    337342
    338 void start(processor * this) {
     343static void start(processor * this) {
    339344        __cfaabi_dbg_print_safe("Kernel : Starting core %p\n", this);
    340345
     
    542547//-----------------------------------------------------------------------------
    543548// Kernel boot procedures
    544 void kernel_startup(void) {
     549static void kernel_startup(void) {
    545550        verify( ! kernelTLS.preemption_state.enabled );
    546551        __cfaabi_dbg_print_safe("Kernel : Starting\n");
     
    618623}
    619624
    620 void kernel_shutdown(void) {
     625static void kernel_shutdown(void) {
    621626        __cfaabi_dbg_print_safe("\n--------------------------------------------------\nKernel : Shutting down\n");
    622627
     
    655660// Kernel Quiescing
    656661//=============================================================================================
    657 
    658 void halt(processor * this) with( *this ) {
     662static void halt(processor * this) with( *this ) {
    659663        // verify( ! __atomic_load_n(&do_terminate, __ATOMIC_SEQ_CST) );
    660664
     
    683687// Unexpected Terminating logic
    684688//=============================================================================================
    685 
    686 
    687689static __spinlock_t kernel_abort_lock;
    688690static bool kernel_abort_called = false;
  • src/libcfa/concurrency/kernel_private.h

    rd1e0979 r3bbd012  
    5454// Processor
    5555void main(processorCtx_t *);
    56 void start(processor * this);
    57 void runThread(processor * this, thread_desc * dst);
    58 void finishRunning(processor * this);
    59 void halt(processor * this);
    6056
    6157static inline void wake_fast(processor * this) {
  • src/libcfa/concurrency/preemption.c

    rd1e0979 r3bbd012  
    3939
    4040// FwdDeclarations : Signal handlers
    41 void sigHandler_ctxSwitch( __CFA_SIGPARMS__ );
    42 void sigHandler_segv     ( __CFA_SIGPARMS__ );
    43 void sigHandler_ill      ( __CFA_SIGPARMS__ );
    44 void sigHandler_fpe      ( __CFA_SIGPARMS__ );
    45 void sigHandler_abort    ( __CFA_SIGPARMS__ );
     41static void sigHandler_ctxSwitch( __CFA_SIGPARMS__ );
     42static void sigHandler_segv     ( __CFA_SIGPARMS__ );
     43static void sigHandler_ill      ( __CFA_SIGPARMS__ );
     44static void sigHandler_fpe      ( __CFA_SIGPARMS__ );
     45static void sigHandler_abort    ( __CFA_SIGPARMS__ );
    4646
    4747// FwdDeclarations : alarm thread main
    48 void * alarm_loop( __attribute__((unused)) void * args );
     48static void * alarm_loop( __attribute__((unused)) void * args );
    4949
    5050// Machine specific register name
     
    6363static pthread_t alarm_thread;                        // pthread handle to alarm thread
    6464
    65 void ?{}(event_kernel_t & this) with( this ) {
     65static void ?{}(event_kernel_t & this) with( this ) {
    6666        alarms{};
    6767        lock{};
     
    8585
    8686// Tick one frame of the Discrete Event Simulation for alarms
    87 void tick_preemption() {
     87static void tick_preemption() {
    8888        alarm_node_t * node = NULL;                     // Used in the while loop but cannot be declared in the while condition
    8989        alarm_list_t * alarms = &event_kernel->alarms;  // Local copy for ease of reading
     
    350350// Context switch signal handler
    351351// Receives SIGUSR1 signal and causes the current thread to yield
    352 void sigHandler_ctxSwitch( __CFA_SIGPARMS__ ) {
     352static void sigHandler_ctxSwitch( __CFA_SIGPARMS__ ) {
    353353        __cfaabi_dbg_debug_do( last_interrupt = (void *)(cxt->uc_mcontext.CFA_REG_IP); )
    354354
     
    393393// Main of the alarm thread
    394394// Waits on SIGALRM and send SIGUSR1 to whom ever needs it
    395 void * alarm_loop( __attribute__((unused)) void * args ) {
     395static void * alarm_loop( __attribute__((unused)) void * args ) {
    396396        // Block sigalrms to control when they arrive
    397397        sigset_t mask;
  • src/libcfa/concurrency/preemption.h

    rd1e0979 r3bbd012  
    2222void kernel_stop_preemption();
    2323void update_preemption( processor * this, Duration duration );
    24 void tick_preemption();
    2524
    2625struct preemption_scope {
  • src/libcfa/startup.h

    rd1e0979 r3bbd012  
    1010// Created On       : Wed Mar 29 15:56:41 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 20 21:37:11 2017
    13 // Update Count     : 2
     12// Last Modified On : Tue Jul 24 16:16:37 2018
     13// Update Count     : 4
    1414//
    1515
     
    1919extern "C" {
    2020        enum {
    21                 STARTUP_PRIORITY_CORE       = 101,
    22                 STARTUP_PRIORITY_KERNEL     = 102,
    23                 STARTUP_PRIORITY_MEMORY     = 103,
     21                STARTUP_PRIORITY_MEMORY     = 101,
     22                STARTUP_PRIORITY_CORE       = 102,
     23                STARTUP_PRIORITY_KERNEL     = 103,
    2424                STARTUP_PRIORITY_IOSTREAM   = 104,
     25                STARTUP_PRIORITY_APPREADY   = 105,
    2526        };
    2627}
    2728#else
    28 #define STARTUP_PRIORITY_CORE       101
    29 #define STARTUP_PRIORITY_KERNEL     102
    30 #define STARTUP_PRIORITY_MEMORY     103
     29#define STARTUP_PRIORITY_MEMORY     101
     30#define STARTUP_PRIORITY_CORE       102
     31#define STARTUP_PRIORITY_KERNEL     103
    3132#define STARTUP_PRIORITY_IOSTREAM   104
     33#define STARTUP_PRIORITY_APPREADY   105
    3234#endif
    3335
  • src/libcfa/stdhdr/bfdlink.h

    rd1e0979 r3bbd012  
    1010// Created On       : Tue Jul 18 07:26:04 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jul 18 07:46:50 2017
    13 // Update Count     : 3
     12// Last Modified On : Sun Jul 22 13:49:30 2018
     13// Update Count     : 4
    1414//
    1515
     
    2020#endif
    2121
    22 #include_next <bfdlink.h>                                                               // must have internal check for multiple expansion
     22#include_next <bfdlink.h>                                                               // has internal check for multiple expansion
    2323
    2424#if defined( with ) && defined( __CFA_BFDLINK_H__ )             // reset only if set
  • src/libcfa/stdhdr/hwloc.h

    rd1e0979 r3bbd012  
    1010// Created On       : Tue Jul 18 07:45:00 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jul 18 07:56:33 2017
    13 // Update Count     : 3
     12// Last Modified On : Sun Jul 22 13:49:58 2018
     13// Update Count     : 4
    1414//
    1515
     
    2020#endif
    2121
    22 #include_next <hwloc.h>                                                                 // must have internal check for multiple expansion
     22#include_next <hwloc.h>                                                                 // has internal check for multiple expansion
    2323
    2424#if defined( thread ) && defined( __CFA_HWLOC_H__ )             // reset only if set
  • src/libcfa/stdhdr/krb5.h

    rd1e0979 r3bbd012  
    1010// Created On       : Tue Jul 18 07:55:44 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jul 18 07:58:01 2017
    13 // Update Count     : 3
     12// Last Modified On : Sun Jul 22 13:50:24 2018
     13// Update Count     : 4
    1414//
    1515
     
    2020#endif
    2121
    22 #include_next <krb5.h>                                                                  // must have internal check for multiple expansion
     22#include_next <krb5.h>                                                                  // has internal check for multiple expansion
    2323
    2424#if defined( enable ) && defined( __CFA_KRB5_H__ )              // reset only if set
  • src/libcfa/stdhdr/malloc.h

    rd1e0979 r3bbd012  
    1010// Created On       : Thu Jul 20 15:58:16 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 20 16:00:12 2017
    13 // Update Count     : 4
     12// Last Modified On : Mon Jul 23 18:20:32 2018
     13// Update Count     : 8
    1414//
     15
     16
     17size_t default_mmap_start();                                                    // CFA extras
     18size_t default_heap_expansion();
     19extern "C" {
     20size_t malloc_alignment( void * );
     21_Bool malloc_zero_fill( void * );
     22int malloc_stats_fd( int fd );
     23void * cmemalign( size_t alignment, size_t noOfElems, size_t elemSize );
     24} // extern "C"
    1525
    1626extern "C" {
  • src/libcfa/stdlib

    rd1e0979 r3bbd012  
    1010// Created On       : Thu Jan 28 17:12:35 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 12 08:03:58 2018
    13 // Update Count     : 337
     12// Last Modified On : Fri Jul 27 07:21:36 2018
     13// Update Count     : 345
    1414//
    1515
    1616#pragma once
    1717
    18 #include <stdlib.h>                                                                             // allocation, strto*, ato*
     18#include <stdlib.h>                                                                             // *alloc, strto*, ato*
    1919extern "C" {
    2020        void * memalign( size_t align, size_t size );           // malloc.h
    21         void * memset( void * dest, int c, size_t size );       // string.h
     21        void * memset( void * dest, int fill, size_t size ); // string.h
    2222        void * memcpy( void * dest, const void * src, size_t size ); // string.h
     23    void * cmemalign( size_t alignment, size_t noOfElems, size_t elemSize ); // CFA
    2324} // extern "C"
    2425
     
    3637
    3738        T * malloc( void ) {
    38                 // printf( "* malloc\n" );
    3939                return (T *)(void *)malloc( (size_t)sizeof(T) ); // C malloc
    4040        } // malloc
     
    4848
    4949        T * calloc( size_t dim ) {
    50                 //printf( "X2\n" );
    5150                return (T *)(void *)calloc( dim, sizeof(T) );   // C calloc
    5251        } // calloc
    5352
    5453        T * realloc( T * ptr, size_t size ) {
    55                 //printf( "X3\n" );
    5654                return (T *)(void *)realloc( (void *)ptr, size );
    5755        } // realloc
    5856
    5957        T * memalign( size_t align ) {
    60                 //printf( "X4\n" );
    6158                return (T *)memalign( align, sizeof(T) );
    6259        } // memalign
    6360
    6461        T * aligned_alloc( size_t align ) {
    65                 //printf( "X5\n" );
    6662                return (T *)aligned_alloc( align, sizeof(T) );
    6763        } // aligned_alloc
    6864
    6965        int posix_memalign( T ** ptr, size_t align ) {
    70                 //printf( "X6\n" );
    7166                return posix_memalign( (void **)ptr, align, sizeof(T) ); // C posix_memalign
    7267        } // posix_memalign
     
    7671
    7772        T * alloc( void ) {
    78                 //printf( "X7\n" );
    7973                return (T *)(void *)malloc( (size_t)sizeof(T) ); // C malloc
    8074        } // alloc
    8175
    8276        T * alloc( char fill ) {
    83                 //printf( "X8\n" );
    8477                T * ptr = (T *)(void *)malloc( (size_t)sizeof(T) );     // C malloc
    8578                return (T *)memset( ptr, (int)fill, sizeof(T) );        // initial with fill value
     
    8780
    8881        T * alloc( size_t dim ) {
    89                 //printf( "X9\n" );
    9082                return (T *)(void *)malloc( dim * (size_t)sizeof(T) ); // C malloc
    9183        } // alloc
    9284
    9385        T * alloc( size_t dim, char fill ) {
    94                 //printf( "X10\n" );
    9586                T * ptr = (T *)(void *)malloc( dim * (size_t)sizeof(T) ); // C malloc
    9687                return (T *)memset( ptr, (int)fill, dim * sizeof(T) );    // initial with fill value
     
    9889
    9990        T * alloc( T ptr[], size_t dim ) {
    100                 //printf( "X11\n" );
    10191                return (T *)(void *)realloc( (void *)ptr, dim * (size_t)sizeof(T) ); // C realloc
    10292        } // alloc
     
    10999static inline forall( dtype T | sized(T) ) {
    110100        T * align_alloc( size_t align ) {
    111                 //printf( "X13\n" );
    112101                return (T *)memalign( align, sizeof(T) );
    113102        } // align_alloc
    114103
    115104        T * align_alloc( size_t align, char fill ) {
    116                 //printf( "X14\n" );
    117105                T * ptr = (T *)memalign( align, sizeof(T) );
    118106                return (T *)memset( ptr, (int)fill, sizeof(T) );
     
    120108
    121109        T * align_alloc( size_t align, size_t dim ) {
    122                 //printf( "X15\n" );
    123110                return (T *)memalign( align, dim * sizeof(T) );
    124111        } // align_alloc
    125112
    126113        T * align_alloc( size_t align, size_t dim, char fill ) {
    127                 //printf( "X16\n" );
    128                 T * ptr = (T *)memalign( align, dim * sizeof(T) );
    129                 return (T *)memset( ptr, (int)fill, dim * sizeof(T) );
     114                T * ptr;
     115                if ( fill == '\0' ) {
     116                        ptr = (T *)cmemalign( align, dim, sizeof(T) );
     117                } else {
     118                        ptr = (T *)memalign( align, dim * sizeof(T) );
     119                        return (T *)memset( ptr, (int)fill, dim * sizeof(T) );
     120                } // if
     121                return ptr;
    130122        } // align_alloc
    131123} // distribution
     
    135127        // data, non-array types
    136128
    137         T * memset( T * dest, char c ) {
    138                 //printf( "X17\n" );
    139                 return (T *)memset( dest, c, sizeof(T) );
     129        T * memset( T * dest, char fill ) {
     130                return (T *)memset( dest, fill, sizeof(T) );
    140131        } // memset
    141132
    142133        T * memcpy( T * dest, const T * src ) {
    143                 //printf( "X18\n" );
    144134                return (T *)memcpy( dest, src, sizeof(T) );
    145135        } // memcpy
     
    149139        // data, array types
    150140
    151         T * memset( T dest[], size_t dim, char c ) {
    152                 //printf( "X19\n" );
    153                 return (T *)(void *)memset( dest, c, dim * sizeof(T) ); // C memset
    154         } // memset
    155 
    156         T * memcpy( T dest[], const T src[], size_t dim ) {
    157                 //printf( "X20\n" );
     141        T * amemset( T dest[], char fill, size_t dim ) {
     142                return (T *)(void *)memset( dest, fill, dim * sizeof(T) ); // C memset
     143        } // amemset
     144
     145        T * amemcpy( T dest[], const T src[], size_t dim ) {
    158146                return (T *)(void *)memcpy( dest, src, dim * sizeof(T) ); // C memcpy
    159         } // memcpy
     147        } // amemcpy
    160148} // distribution
    161149
     
    215203        E * bsearchu( E key, const E * vals, size_t dim );
    216204        size_t bsearchu( E key, const E * vals, size_t dim );
    217 
    218         void qsort( E * vals, size_t dim );
    219205} // distribution
    220206
     
    226212        E * bsearchu( K key, const E * vals, size_t dim );
    227213        size_t bsearchu( K key, const E * vals, size_t dim );
     214} // distribution
     215
     216forall( otype E | { int ?<?( E, E ); } ) {
     217        void qsort( E * vals, size_t dim );
    228218} // distribution
    229219
  • src/main.cc

    rd1e0979 r3bbd012  
    2828#include <string>                           // for char_traits, operator<<
    2929
     30#include "CompilationState.h"
    3031#include "../config.h"                      // for CFA_LIBDIR
    3132#include "CodeGen/FixMain.h"                // for FixMain
     
    7273DeclarationNode * parseTree = nullptr;                                  // program parse tree
    7374
    74 extern int yydebug;                                                                             // set for -g flag (Grammar)
    75 bool
    76         astp = false,
    77         bresolvep = false,
    78         bboxp = false,
    79         bcodegenp = false,
    80         ctorinitp = false,
    81         declstatsp = false,
    82         exprp = false,
    83         expraltp = false,
    84         genericsp = false,
    85         libcfap = false,
    86         nopreludep = false,
    87         noprotop = false,
    88         nomainp = false,
    89         parsep = false,
    90         symtabp = false,
    91         treep = false,
    92         tuplep = false,
    93         validp = false,
    94         errorp = false,
    95         codegenp = false,
    96         prettycodegenp = false,
    97         linemarks = false;
    98 extern bool resolvep;                                                           // used in AlternativeFinder
    99 
    10075static void parse_cmdline( int argc, char *argv[], const char *& filename );
    10176static void parse( FILE * input, LinkageSpec::Spec linkage, bool shouldExit = false );
     
    208183
    209184                        // Read to gcc builtins, if not generating the cfa library
    210                         FILE * gcc_builtins = fopen( libcfap | treep ? "../prelude/gcc-builtins.cf" : CFA_LIBDIR "/gcc-builtins.cf", "r" );
     185                        FILE * gcc_builtins = fopen( buildingLibrary() ? "../prelude/gcc-builtins.cf" : CFA_LIBDIR "/gcc-builtins.cf", "r" );
    211186                        assertf( gcc_builtins, "cannot open gcc-builtins.cf\n" );
    212187                        parse( gcc_builtins, LinkageSpec::Compiler );
    213188
    214189                        // read the extra prelude in, if not generating the cfa library
    215                         FILE * extras = fopen( libcfap | treep ? "../prelude/extras.cf" : CFA_LIBDIR "/extras.cf", "r" );
     190                        FILE * extras = fopen( buildingLibrary() ? "../prelude/extras.cf" : CFA_LIBDIR "/extras.cf", "r" );
    216191                        assertf( extras, "cannot open extras.cf\n" );
    217192                        parse( extras, LinkageSpec::BuiltinC );
     
    219194                        if ( ! libcfap ) {
    220195                                // read the prelude in, if not generating the cfa library
    221                                 FILE * prelude = fopen( treep ? "../prelude/prelude.cf" : CFA_LIBDIR "/prelude.cf", "r" );
     196                                FILE * prelude = fopen( buildingLibrary() ? "../prelude/prelude.cf" : CFA_LIBDIR "/prelude.cf", "r" );
    222197                                assertf( prelude, "cannot open prelude.cf\n" );
    223198                                parse( prelude, LinkageSpec::Intrinsic );
    224199
    225200                                // Read to cfa builtins, if not generating the cfa library
    226                                 FILE * builtins = fopen( libcfap | treep ? "../prelude/builtins.cf" : CFA_LIBDIR "/builtins.cf", "r" );
     201                                FILE * builtins = fopen( buildingLibrary() ? "../prelude/builtins.cf" : CFA_LIBDIR "/builtins.cf", "r" );
    227202                                assertf( builtins, "cannot open builtins.cf\n" );
    228203                                parse( builtins, LinkageSpec::BuiltinCFA );
     
    299274
    300275                // fix ObjectDecl - replaces ConstructorInit nodes
    301                 PASS( "fixInit", InitTweak::fix( translationUnit, filename, libcfap || treep ) );
     276                PASS( "fixInit", InitTweak::fix( translationUnit, buildingLibrary() ) );
    302277                if ( ctorinitp ) {
    303278                        dump ( translationUnit );
  • src/prelude/Makefile.am

    rd1e0979 r3bbd012  
    2323noinst_DATA = ../libcfa/libcfa-prelude.c
    2424
    25 CC = ${abs_top_srcdir}/src/driver/cfa
     25CC = ${abs_top_builddir}/src/driver/cfa
    2626
    2727$(DEPDIR) :
     
    3232
    3333# create extra forward types/declarations to reduce inclusion of library files
    34 extras.cf : extras.regx extras.c
    35         ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -E ${srcdir}/extras.c | grep -f extras.regx > ${srcdir}/extras.cf
     34extras.cf : ${srcdir}/extras.regx ${srcdir}/extras.c
     35        ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -E ${srcdir}/extras.c | grep -f ${srcdir}/extras.regx > extras.cf
    3636
    3737# create forward declarations for gcc builtins
    38 gcc-builtins.cf : gcc-builtins.c prototypes.sed
    39         ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -E -P $< | sed -r -f prototypes.sed > $@
     38gcc-builtins.cf : gcc-builtins.c ${srcdir}/prototypes.sed
     39        ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -I${srcdir} -E -P $< | sed -r -f ${srcdir}/prototypes.sed > $@
    4040
    41 gcc-builtins.c : builtins.def prototypes.awk sync-builtins.cf
    42         ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -E prototypes.c | awk -f prototypes.awk > $@
     41gcc-builtins.c : ${srcdir}/builtins.def ${srcdir}/prototypes.awk ${srcdir}/sync-builtins.cf ${srcdir}/prototypes.c
     42        ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -I${srcdir} -E ${srcdir}/prototypes.c | awk -f ${srcdir}/prototypes.awk > $@
    4343
    4444prelude.cf : prelude-gen.cc
     
    5858include $(DEPDIR)/builtins.Po
    5959
    60 ../libcfa/libcfa-prelude.c : prelude.cf extras.cf gcc-builtins.cf builtins.cf ${abs_top_srcdir}/src/driver/cfa-cpp
    61         ${AM_V_GEN}${abs_top_srcdir}/src/driver/cfa-cpp -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 : bootloader.cf prelude.cf extras.cf gcc-builtins.cf builtins.cf ${abs_top_srcdir}/src/driver/cfa-cpp
    64         ${AM_V_GEN}${abs_top_srcdir}/src/driver/cfa-cpp -tpm 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

    rd1e0979 r3bbd012  
    162162AWK = @AWK@
    163163BACKEND_CC = @BACKEND_CC@
    164 CC = ${abs_top_srcdir}/src/driver/cfa
     164CC = ${abs_top_builddir}/src/driver/cfa
    165165CCAS = @CCAS@
    166166CCASDEPMODE = @CCASDEPMODE@
     
    202202LTLIBOBJS = @LTLIBOBJS@
    203203MACHINE_TYPE = @MACHINE_TYPE@
    204 MAINT = @MAINT@
    205204MAKEINFO = @MAKEINFO@
    206205MKDIR_P = @MKDIR_P@
     
    285284
    286285.SUFFIXES:
    287 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
     286$(srcdir)/Makefile.in: $(srcdir)/Makefile.am  $(am__configure_deps)
    288287        @for dep in $?; do \
    289288          case '$(am__configure_deps)' in \
     
    309308        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    310309
    311 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
     310$(top_srcdir)/configure: $(am__configure_deps)
    312311        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    313 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
     312$(ACLOCAL_M4): $(am__aclocal_m4_deps)
    314313        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    315314$(am__aclocal_m4_deps):
     
    501500
    502501# create extra forward types/declarations to reduce inclusion of library files
    503 extras.cf : extras.regx extras.c
    504         ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -E ${srcdir}/extras.c | grep -f extras.regx > ${srcdir}/extras.cf
     502extras.cf : ${srcdir}/extras.regx ${srcdir}/extras.c
     503        ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -E ${srcdir}/extras.c | grep -f ${srcdir}/extras.regx > extras.cf
    505504
    506505# create forward declarations for gcc builtins
    507 gcc-builtins.cf : gcc-builtins.c prototypes.sed
    508         ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -E -P $< | sed -r -f prototypes.sed > $@
    509 
    510 gcc-builtins.c : builtins.def prototypes.awk sync-builtins.cf
    511         ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -E prototypes.c | awk -f prototypes.awk > $@
     506gcc-builtins.cf : gcc-builtins.c ${srcdir}/prototypes.sed
     507        ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -I${srcdir} -E -P $< | sed -r -f ${srcdir}/prototypes.sed > $@
     508
     509gcc-builtins.c : ${srcdir}/builtins.def ${srcdir}/prototypes.awk ${srcdir}/sync-builtins.cf ${srcdir}/prototypes.c
     510        ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -I${srcdir} -E ${srcdir}/prototypes.c | awk -f ${srcdir}/prototypes.awk > $@
    512511
    513512prelude.cf : prelude-gen.cc
     
    527526include $(DEPDIR)/builtins.Po
    528527
    529 ../libcfa/libcfa-prelude.c : prelude.cf extras.cf gcc-builtins.cf builtins.cf ${abs_top_srcdir}/src/driver/cfa-cpp
    530         ${AM_V_GEN}${abs_top_srcdir}/src/driver/cfa-cpp -l prelude.cf $@  # use src/cfa-cpp as not in lib until after install
    531 
    532 bootloader.c : bootloader.cf prelude.cf extras.cf gcc-builtins.cf builtins.cf ${abs_top_srcdir}/src/driver/cfa-cpp
    533         ${AM_V_GEN}${abs_top_srcdir}/src/driver/cfa-cpp -tpm 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
    534533
    535534maintainer-clean-local :
  • src/tests/.expect/alloc-ERROR.txt

    rd1e0979 r3bbd012  
    1 alloc.c:264:1 error: No reasonable alternatives for expression Applying untyped:
     1alloc.c:265:1 error: No reasonable alternatives for expression Applying untyped:
    22  Name: ?=?
    33...to:
     
    1919
    2020
    21 alloc.c:265:1 error: No reasonable alternatives for expression Applying untyped:
     21alloc.c:266:1 error: No reasonable alternatives for expression Applying untyped:
    2222  Name: ?=?
    2323...to:
     
    3939
    4040
    41 alloc.c:266:1 error: No reasonable alternatives for expression Applying untyped:
     41alloc.c:267:1 error: No reasonable alternatives for expression Applying untyped:
    4242  Name: ?=?
    4343...to:
     
    5050
    5151
    52 alloc.c:267:1 error: No reasonable alternatives for expression Applying untyped:
     52alloc.c:268:1 error: No reasonable alternatives for expression Applying untyped:
    5353  Name: ?=?
    5454...to:
  • src/tests/.expect/alloc.txt

    rd1e0979 r3bbd012  
    4949CFA array memset
    50500xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan,
    51 CFA memcpy
     51CFA array memcpy
    52520xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan,
    5353
  • src/tests/.expect/attributes.x64.txt

    rd1e0979 r3bbd012  
    8888    __attribute__ ((used,unused,unused)) signed int __f7__i_1;
    8989    __attribute__ ((used,used,unused)) signed int __f8__i_1;
    90     __attribute__ ((unused)) signed int __anonymous_object0;
    9190    __attribute__ ((unused,unused)) signed int *__f9__Pi_1;
    9291};
     
    103102static inline void ___constructor__F_4sFdliiiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1);
    104103static inline void ___constructor__F_4sFdliiiiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1);
    105 static inline void ___constructor__F_4sFdliiiiiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused)) signed int __anonymous_object1);
    106 static inline void ___constructor__F_4sFdliiiiiiiiiPi_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused)) signed int __anonymous_object2, __attribute__ ((unused,unused)) signed int *__f9__Pi_1);
     104static inline void ___constructor__F_4sFdliiiiiiiiPi_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused,unused)) signed int *__f9__Pi_1);
    107105static inline void ___constructor__F_4sFdl_autogen___1(struct Fdl *___dst__4sFdl_1){
    108106    ((void)((*___dst__4sFdl_1).__f1__i_1) /* ?{} */);
     
    114112    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */);
    115113    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    116     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    117114    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    118115}
     
    126123    ((void)((*___dst__4sFdl_1).__f7__i_1=___src__4sFdl_1.__f7__i_1) /* ?{} */);
    127124    ((void)((*___dst__4sFdl_1).__f8__i_1=___src__4sFdl_1.__f8__i_1) /* ?{} */);
    128     ((void)((*___dst__4sFdl_1).__anonymous_object0=___src__4sFdl_1.__anonymous_object0) /* ?{} */);
    129125    ((void)((*___dst__4sFdl_1).__f9__Pi_1=___src__4sFdl_1.__f9__Pi_1) /* ?{} */);
    130126}
    131127static inline void ___destructor__F_4sFdl_autogen___1(struct Fdl *___dst__4sFdl_1){
    132128    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ^?{} */);
    133     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ^?{} */);
    134129    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ^?{} */);
    135130    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ^?{} */);
     
    151146    ((void)((*___dst__4sFdl_1).__f7__i_1=___src__4sFdl_1.__f7__i_1));
    152147    ((void)((*___dst__4sFdl_1).__f8__i_1=___src__4sFdl_1.__f8__i_1));
    153     ((void)((*___dst__4sFdl_1).__anonymous_object0=___src__4sFdl_1.__anonymous_object0));
    154148    ((void)((*___dst__4sFdl_1).__f9__Pi_1=___src__4sFdl_1.__f9__Pi_1));
    155149    ((void)___constructor__F_4sFdl4sFdl_autogen___1((&___ret__4sFdl_1), (*___dst__4sFdl_1)));
     
    165159    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */);
    166160    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    167     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    168161    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    169162}
     
    177170    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */);
    178171    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    179     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    180172    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    181173}
     
    189181    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */);
    190182    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    191     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    192183    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    193184}
     
    201192    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */);
    202193    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    203     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    204194    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    205195}
     
    213203    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */);
    214204    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    215     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    216205    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    217206}
     
    225214    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */);
    226215    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    227     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    228216    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    229217}
     
    237225    ((void)((*___dst__4sFdl_1).__f7__i_1=__f7__i_1) /* ?{} */);
    238226    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    239     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    240227    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    241228}
     
    249236    ((void)((*___dst__4sFdl_1).__f7__i_1=__f7__i_1) /* ?{} */);
    250237    ((void)((*___dst__4sFdl_1).__f8__i_1=__f8__i_1) /* ?{} */);
    251     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    252     ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    253 }
    254 static inline void ___constructor__F_4sFdliiiiiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused)) signed int __anonymous_object3){
     238    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
     239}
     240static inline void ___constructor__F_4sFdliiiiiiiiPi_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused,unused)) signed int *__f9__Pi_1){
    255241    ((void)((*___dst__4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */);
    256242    ((void)((*___dst__4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */);
     
    261247    ((void)((*___dst__4sFdl_1).__f7__i_1=__f7__i_1) /* ?{} */);
    262248    ((void)((*___dst__4sFdl_1).__f8__i_1=__f8__i_1) /* ?{} */);
    263     ((void)((*___dst__4sFdl_1).__anonymous_object0=__anonymous_object3) /* ?{} */);
    264     ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    265 }
    266 static inline void ___constructor__F_4sFdliiiiiiiiiPi_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused)) signed int __anonymous_object4, __attribute__ ((unused,unused)) signed int *__f9__Pi_1){
    267     ((void)((*___dst__4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */);
    268     ((void)((*___dst__4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */);
    269     ((void)((*___dst__4sFdl_1).__f3__i_1=__f3__i_1) /* ?{} */);
    270     ((void)((*___dst__4sFdl_1).__f4__i_1=__f4__i_1) /* ?{} */);
    271     ((void)((*___dst__4sFdl_1).__f5__i_1=__f5__i_1) /* ?{} */);
    272     ((void)((*___dst__4sFdl_1).__f6__i_1=__f6__i_1) /* ?{} */);
    273     ((void)((*___dst__4sFdl_1).__f7__i_1=__f7__i_1) /* ?{} */);
    274     ((void)((*___dst__4sFdl_1).__f8__i_1=__f8__i_1) /* ?{} */);
    275     ((void)((*___dst__4sFdl_1).__anonymous_object0=__anonymous_object4) /* ?{} */);
    276249    ((void)((*___dst__4sFdl_1).__f9__Pi_1=__f9__Pi_1) /* ?{} */);
    277250}
     
    293266    __attribute__ ((unused)) signed int **const ___retval_f2__CPPi_1;
    294267}
    295 __attribute__ ((unused,used,unused)) signed int (*__f3__FPA0i_i__1(signed int __anonymous_object5))[];
     268__attribute__ ((unused,used,unused)) signed int (*__f3__FPA0i_i__1(signed int __anonymous_object0))[];
    296269__attribute__ ((unused,unused)) signed int (*__f3__FPA0i_i__1(signed int __p__i_1))[]{
    297270    __attribute__ ((unused)) signed int (*___retval_f3__PA0i_1)[];
    298271}
    299 __attribute__ ((unused,used,unused)) signed int (*__f4__FFi_i____1())(signed int __anonymous_object6);
    300 __attribute__ ((unused,unused)) signed int (*__f4__FFi_i____1())(signed int __anonymous_object7){
    301     __attribute__ ((unused)) signed int (*___retval_f4__Fi_i__1)(signed int __anonymous_object8);
     272__attribute__ ((unused,used,unused)) signed int (*__f4__FFi_i____1())(signed int __anonymous_object1);
     273__attribute__ ((unused,unused)) signed int (*__f4__FFi_i____1())(signed int __anonymous_object2){
     274    __attribute__ ((unused)) signed int (*___retval_f4__Fi_i__1)(signed int __anonymous_object3);
    302275}
    303276signed int __vtr__Fi___1(){
     
    329302signed int __tpr2__Fi_PPi__1(__attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **__Foo__PPi_1);
    330303signed int __tpr3__Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *__Foo__Pi_1);
    331 signed int __tpr4__Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object9)(__attribute__ ((unused,unused)) signed int __anonymous_object10[((unsigned long int )5)]));
     304signed int __tpr4__Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object4)(__attribute__ ((unused,unused)) signed int __anonymous_object5[((unsigned long int )5)]));
    332305signed int __tpr5__Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__Foo__Fi___1)());
    333306signed int __tpr6__Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__Foo__Fi___1)());
    334 signed int __tpr7__Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object11)(__attribute__ ((unused)) signed int (*__anonymous_object12)(__attribute__ ((unused,unused)) signed int __anonymous_object13)));
     307signed int __tpr7__Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object6)(__attribute__ ((unused)) signed int (*__anonymous_object7)(__attribute__ ((unused,unused)) signed int __anonymous_object8)));
    335308signed int __ad__Fi___1(){
    336309    __attribute__ ((unused)) signed int ___retval_ad__i_1;
     
    343316    ((void)sizeof(__attribute__ ((unused,unused)) signed int ));
    344317    ((void)sizeof(__attribute__ ((unused,unused,unused,unused)) signed int **));
    345     ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int [5]));
    346     ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (*)[10]));
     318    ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int [((unsigned long int )5)]));
     319    ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (*)[((unsigned long int )10)]));
    347320    ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ()));
    348321    struct __attribute__ ((unused)) __anonymous3 {
     
    386359    ((void)sizeof(enum __anonymous4 ));
    387360}
    388 signed int __apd1__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object14, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object15);
    389 signed int __apd2__Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object16, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object17);
    390 signed int __apd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object18, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object19);
    391 signed int __apd4__Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object20)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object21)());
    392 signed int __apd5__Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object22)(__attribute__ ((unused)) signed int __anonymous_object23), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object24)(__attribute__ ((unused)) signed int __anonymous_object25));
    393 signed int __apd6__Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object26)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object27)());
    394 signed int __apd7__Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object28)(__attribute__ ((unused)) signed int __anonymous_object29), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object30)(__attribute__ ((unused)) signed int __anonymous_object31));
     361signed int __apd1__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object9, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object10);
     362signed int __apd2__Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object11, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object12);
     363signed int __apd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object13, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object14);
     364signed int __apd4__Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)());
     365signed int __apd5__Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(__attribute__ ((unused)) signed int __anonymous_object18), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object19)(__attribute__ ((unused)) signed int __anonymous_object20));
     366signed int __apd6__Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object21)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object22)());
     367signed int __apd7__Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object23)(__attribute__ ((unused)) signed int __anonymous_object24), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object25)(__attribute__ ((unused)) signed int __anonymous_object26));
    395368struct Vad {
    396     __attribute__ ((unused)) signed int __anonymous_object32;
    397     __attribute__ ((unused,unused)) signed int *__anonymous_object33;
    398     __attribute__ ((unused,unused)) signed int __anonymous_object34[((unsigned long int )10)];
    399     __attribute__ ((unused,unused)) signed int (*__anonymous_object35)();
     369    __attribute__ ((unused)) signed int __anonymous_object27:4;
     370    __attribute__ ((unused)) signed int __anonymous_object28:4;
     371    __attribute__ ((unused,unused)) signed int __anonymous_object29:6;
    400372};
    401373static inline void ___constructor__F_4sVad_autogen___1(struct Vad *___dst__4sVad_1);
     
    403375static inline void ___destructor__F_4sVad_autogen___1(struct Vad *___dst__4sVad_1);
    404376static inline struct Vad ___operator_assign__F4sVad_4sVad4sVad_autogen___1(struct Vad *___dst__4sVad_1, struct Vad ___src__4sVad_1);
    405 static inline void ___constructor__F_4sVadi_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object36);
    406 static inline void ___constructor__F_4sVadiPi_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object37, __attribute__ ((unused,unused)) signed int *__anonymous_object38);
    407 static inline void ___constructor__F_4sVadiPiA0i_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object39, __attribute__ ((unused,unused)) signed int *__anonymous_object40, __attribute__ ((unused,unused)) signed int __anonymous_object41[((unsigned long int )10)]);
    408 static inline void ___constructor__F_4sVadiPiA0iFi___autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object42, __attribute__ ((unused,unused)) signed int *__anonymous_object43, __attribute__ ((unused,unused)) signed int __anonymous_object44[((unsigned long int )10)], __attribute__ ((unused,unused)) signed int (*__anonymous_object45)());
    409377static inline void ___constructor__F_4sVad_autogen___1(struct Vad *___dst__4sVad_1){
    410     ((void)((*___dst__4sVad_1).__anonymous_object32) /* ?{} */);
    411     ((void)((*___dst__4sVad_1).__anonymous_object33) /* ?{} */);
    412     {
    413         signed int _index0 = 0;
    414         for (;(_index0<10);((void)(++_index0))) {
    415             ((void)((*___dst__4sVad_1).__anonymous_object34[((signed long int )_index0)]) /* ?{} */);
    416         }
    417 
    418     }
    419 
    420     ((void)((*___dst__4sVad_1).__anonymous_object35) /* ?{} */);
    421378}
    422379static inline void ___constructor__F_4sVad4sVad_autogen___1(struct Vad *___dst__4sVad_1, struct Vad ___src__4sVad_1){
    423     ((void)((*___dst__4sVad_1).__anonymous_object32=___src__4sVad_1.__anonymous_object32) /* ?{} */);
    424     ((void)((*___dst__4sVad_1).__anonymous_object33=___src__4sVad_1.__anonymous_object33) /* ?{} */);
    425     {
    426         signed int _index1 = 0;
    427         for (;(_index1<10);((void)(++_index1))) {
    428             ((void)((*___dst__4sVad_1).__anonymous_object34[((signed long int )_index1)]=___src__4sVad_1.__anonymous_object34[((signed long int )_index1)]) /* ?{} */);
    429         }
    430 
    431     }
    432 
    433     ((void)((*___dst__4sVad_1).__anonymous_object35=___src__4sVad_1.__anonymous_object35) /* ?{} */);
    434380}
    435381static inline void ___destructor__F_4sVad_autogen___1(struct Vad *___dst__4sVad_1){
    436     ((void)((*___dst__4sVad_1).__anonymous_object35) /* ^?{} */);
    437     {
    438         signed int _index2 = (10-1);
    439         for (;(_index2>=0);((void)(--_index2))) {
    440             ((void)((*___dst__4sVad_1).__anonymous_object34[((signed long int )_index2)]) /* ^?{} */);
    441         }
    442 
    443     }
    444 
    445     ((void)((*___dst__4sVad_1).__anonymous_object33) /* ^?{} */);
    446     ((void)((*___dst__4sVad_1).__anonymous_object32) /* ^?{} */);
    447382}
    448383static inline struct Vad ___operator_assign__F4sVad_4sVad4sVad_autogen___1(struct Vad *___dst__4sVad_1, struct Vad ___src__4sVad_1){
    449384    struct Vad ___ret__4sVad_1;
    450     ((void)((*___dst__4sVad_1).__anonymous_object32=___src__4sVad_1.__anonymous_object32));
    451     ((void)((*___dst__4sVad_1).__anonymous_object33=___src__4sVad_1.__anonymous_object33));
    452     {
    453         signed int _index3 = 0;
    454         for (;(_index3<10);((void)(++_index3))) {
    455             ((void)((*___dst__4sVad_1).__anonymous_object34[((signed long int )_index3)]=___src__4sVad_1.__anonymous_object34[((signed long int )_index3)]));
    456         }
    457 
    458     }
    459 
    460     ((void)((*___dst__4sVad_1).__anonymous_object35=___src__4sVad_1.__anonymous_object35));
    461385    ((void)___constructor__F_4sVad4sVad_autogen___1((&___ret__4sVad_1), (*___dst__4sVad_1)));
    462386    return ___ret__4sVad_1;
    463387}
    464 static inline void ___constructor__F_4sVadi_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object46){
    465     ((void)((*___dst__4sVad_1).__anonymous_object32=__anonymous_object46) /* ?{} */);
    466     ((void)((*___dst__4sVad_1).__anonymous_object33) /* ?{} */);
    467     {
    468         signed int _index4 = 0;
    469         for (;(_index4<10);((void)(++_index4))) {
    470             ((void)((*___dst__4sVad_1).__anonymous_object34[((signed long int )_index4)]) /* ?{} */);
    471         }
    472 
    473     }
    474 
    475     ((void)((*___dst__4sVad_1).__anonymous_object35) /* ?{} */);
    476 }
    477 static inline void ___constructor__F_4sVadiPi_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object47, __attribute__ ((unused,unused)) signed int *__anonymous_object48){
    478     ((void)((*___dst__4sVad_1).__anonymous_object32=__anonymous_object47) /* ?{} */);
    479     ((void)((*___dst__4sVad_1).__anonymous_object33=__anonymous_object48) /* ?{} */);
    480     {
    481         signed int _index5 = 0;
    482         for (;(_index5<10);((void)(++_index5))) {
    483             ((void)((*___dst__4sVad_1).__anonymous_object34[((signed long int )_index5)]) /* ?{} */);
    484         }
    485 
    486     }
    487 
    488     ((void)((*___dst__4sVad_1).__anonymous_object35) /* ?{} */);
    489 }
    490 static inline void ___constructor__F_4sVadiPiA0i_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object49, __attribute__ ((unused,unused)) signed int *__anonymous_object50, __attribute__ ((unused,unused)) signed int __anonymous_object51[((unsigned long int )10)]){
    491     ((void)((*___dst__4sVad_1).__anonymous_object32=__anonymous_object49) /* ?{} */);
    492     ((void)((*___dst__4sVad_1).__anonymous_object33=__anonymous_object50) /* ?{} */);
    493     {
    494         signed int _index6 = 0;
    495         for (;(_index6<10);((void)(++_index6))) {
    496             ((void)((*___dst__4sVad_1).__anonymous_object34[((signed long int )_index6)]=__anonymous_object51[((signed long int )_index6)]) /* ?{} */);
    497         }
    498 
    499     }
    500 
    501     ((void)((*___dst__4sVad_1).__anonymous_object35) /* ?{} */);
    502 }
    503 static inline void ___constructor__F_4sVadiPiA0iFi___autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object52, __attribute__ ((unused,unused)) signed int *__anonymous_object53, __attribute__ ((unused,unused)) signed int __anonymous_object54[((unsigned long int )10)], __attribute__ ((unused,unused)) signed int (*__anonymous_object55)()){
    504     ((void)((*___dst__4sVad_1).__anonymous_object32=__anonymous_object52) /* ?{} */);
    505     ((void)((*___dst__4sVad_1).__anonymous_object33=__anonymous_object53) /* ?{} */);
    506     {
    507         signed int _index7 = 0;
    508         for (;(_index7<10);((void)(++_index7))) {
    509             ((void)((*___dst__4sVad_1).__anonymous_object34[((signed long int )_index7)]=__anonymous_object54[((signed long int )_index7)]) /* ?{} */);
    510         }
    511 
    512     }
    513 
    514     ((void)((*___dst__4sVad_1).__anonymous_object35=__anonymous_object55) /* ?{} */);
    515 }
  • src/tests/.expect/attributes.x86.txt

    rd1e0979 r3bbd012  
    8888    __attribute__ ((used,unused,unused)) signed int __f7__i_1;
    8989    __attribute__ ((used,used,unused)) signed int __f8__i_1;
    90     __attribute__ ((unused)) signed int __anonymous_object0;
    9190    __attribute__ ((unused,unused)) signed int *__f9__Pi_1;
    9291};
     
    103102static inline void ___constructor__F_4sFdliiiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1);
    104103static inline void ___constructor__F_4sFdliiiiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1);
    105 static inline void ___constructor__F_4sFdliiiiiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused)) signed int __anonymous_object1);
    106 static inline void ___constructor__F_4sFdliiiiiiiiiPi_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused)) signed int __anonymous_object2, __attribute__ ((unused,unused)) signed int *__f9__Pi_1);
     104static inline void ___constructor__F_4sFdliiiiiiiiPi_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused,unused)) signed int *__f9__Pi_1);
    107105static inline void ___constructor__F_4sFdl_autogen___1(struct Fdl *___dst__4sFdl_1){
    108106    ((void)((*___dst__4sFdl_1).__f1__i_1) /* ?{} */);
     
    114112    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */);
    115113    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    116     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    117114    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    118115}
     
    126123    ((void)((*___dst__4sFdl_1).__f7__i_1=___src__4sFdl_1.__f7__i_1) /* ?{} */);
    127124    ((void)((*___dst__4sFdl_1).__f8__i_1=___src__4sFdl_1.__f8__i_1) /* ?{} */);
    128     ((void)((*___dst__4sFdl_1).__anonymous_object0=___src__4sFdl_1.__anonymous_object0) /* ?{} */);
    129125    ((void)((*___dst__4sFdl_1).__f9__Pi_1=___src__4sFdl_1.__f9__Pi_1) /* ?{} */);
    130126}
    131127static inline void ___destructor__F_4sFdl_autogen___1(struct Fdl *___dst__4sFdl_1){
    132128    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ^?{} */);
    133     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ^?{} */);
    134129    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ^?{} */);
    135130    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ^?{} */);
     
    151146    ((void)((*___dst__4sFdl_1).__f7__i_1=___src__4sFdl_1.__f7__i_1));
    152147    ((void)((*___dst__4sFdl_1).__f8__i_1=___src__4sFdl_1.__f8__i_1));
    153     ((void)((*___dst__4sFdl_1).__anonymous_object0=___src__4sFdl_1.__anonymous_object0));
    154148    ((void)((*___dst__4sFdl_1).__f9__Pi_1=___src__4sFdl_1.__f9__Pi_1));
    155149    ((void)___constructor__F_4sFdl4sFdl_autogen___1((&___ret__4sFdl_1), (*___dst__4sFdl_1)));
     
    165159    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */);
    166160    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    167     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    168161    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    169162}
     
    177170    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */);
    178171    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    179     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    180172    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    181173}
     
    189181    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */);
    190182    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    191     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    192183    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    193184}
     
    201192    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */);
    202193    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    203     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    204194    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    205195}
     
    213203    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */);
    214204    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    215     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    216205    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    217206}
     
    225214    ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */);
    226215    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    227     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    228216    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    229217}
     
    237225    ((void)((*___dst__4sFdl_1).__f7__i_1=__f7__i_1) /* ?{} */);
    238226    ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */);
    239     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    240227    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    241228}
     
    249236    ((void)((*___dst__4sFdl_1).__f7__i_1=__f7__i_1) /* ?{} */);
    250237    ((void)((*___dst__4sFdl_1).__f8__i_1=__f8__i_1) /* ?{} */);
    251     ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */);
    252     ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    253 }
    254 static inline void ___constructor__F_4sFdliiiiiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused)) signed int __anonymous_object3){
     238    ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
     239}
     240static inline void ___constructor__F_4sFdliiiiiiiiPi_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused,unused)) signed int *__f9__Pi_1){
    255241    ((void)((*___dst__4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */);
    256242    ((void)((*___dst__4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */);
     
    261247    ((void)((*___dst__4sFdl_1).__f7__i_1=__f7__i_1) /* ?{} */);
    262248    ((void)((*___dst__4sFdl_1).__f8__i_1=__f8__i_1) /* ?{} */);
    263     ((void)((*___dst__4sFdl_1).__anonymous_object0=__anonymous_object3) /* ?{} */);
    264     ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */);
    265 }
    266 static inline void ___constructor__F_4sFdliiiiiiiiiPi_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused)) signed int __anonymous_object4, __attribute__ ((unused,unused)) signed int *__f9__Pi_1){
    267     ((void)((*___dst__4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */);
    268     ((void)((*___dst__4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */);
    269     ((void)((*___dst__4sFdl_1).__f3__i_1=__f3__i_1) /* ?{} */);
    270     ((void)((*___dst__4sFdl_1).__f4__i_1=__f4__i_1) /* ?{} */);
    271     ((void)((*___dst__4sFdl_1).__f5__i_1=__f5__i_1) /* ?{} */);
    272     ((void)((*___dst__4sFdl_1).__f6__i_1=__f6__i_1) /* ?{} */);
    273     ((void)((*___dst__4sFdl_1).__f7__i_1=__f7__i_1) /* ?{} */);
    274     ((void)((*___dst__4sFdl_1).__f8__i_1=__f8__i_1) /* ?{} */);
    275     ((void)((*___dst__4sFdl_1).__anonymous_object0=__anonymous_object4) /* ?{} */);
    276249    ((void)((*___dst__4sFdl_1).__f9__Pi_1=__f9__Pi_1) /* ?{} */);
    277250}
     
    293266    __attribute__ ((unused)) signed int **const ___retval_f2__CPPi_1;
    294267}
    295 __attribute__ ((unused,used,unused)) signed int (*__f3__FPA0i_i__1(signed int __anonymous_object5))[];
     268__attribute__ ((unused,used,unused)) signed int (*__f3__FPA0i_i__1(signed int __anonymous_object0))[];
    296269__attribute__ ((unused,unused)) signed int (*__f3__FPA0i_i__1(signed int __p__i_1))[]{
    297270    __attribute__ ((unused)) signed int (*___retval_f3__PA0i_1)[];
    298271}
    299 __attribute__ ((unused,used,unused)) signed int (*__f4__FFi_i____1())(signed int __anonymous_object6);
    300 __attribute__ ((unused,unused)) signed int (*__f4__FFi_i____1())(signed int __anonymous_object7){
    301     __attribute__ ((unused)) signed int (*___retval_f4__Fi_i__1)(signed int __anonymous_object8);
     272__attribute__ ((unused,used,unused)) signed int (*__f4__FFi_i____1())(signed int __anonymous_object1);
     273__attribute__ ((unused,unused)) signed int (*__f4__FFi_i____1())(signed int __anonymous_object2){
     274    __attribute__ ((unused)) signed int (*___retval_f4__Fi_i__1)(signed int __anonymous_object3);
    302275}
    303276signed int __vtr__Fi___1(){
     
    329302signed int __tpr2__Fi_PPi__1(__attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **__Foo__PPi_1);
    330303signed int __tpr3__Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *__Foo__Pi_1);
    331 signed int __tpr4__Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object9)(__attribute__ ((unused,unused)) signed int __anonymous_object10[((unsigned int )5)]));
     304signed int __tpr4__Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object4)(__attribute__ ((unused,unused)) signed int __anonymous_object5[((unsigned int )5)]));
    332305signed int __tpr5__Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__Foo__Fi___1)());
    333306signed int __tpr6__Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__Foo__Fi___1)());
    334 signed int __tpr7__Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object11)(__attribute__ ((unused)) signed int (*__anonymous_object12)(__attribute__ ((unused,unused)) signed int __anonymous_object13)));
     307signed int __tpr7__Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object6)(__attribute__ ((unused)) signed int (*__anonymous_object7)(__attribute__ ((unused,unused)) signed int __anonymous_object8)));
    335308signed int __ad__Fi___1(){
    336309    __attribute__ ((unused)) signed int ___retval_ad__i_1;
     
    386359    ((void)sizeof(enum __anonymous4 ));
    387360}
    388 signed int __apd1__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object14, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object15);
    389 signed int __apd2__Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object16, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object17);
    390 signed int __apd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object18, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object19);
    391 signed int __apd4__Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object20)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object21)());
    392 signed int __apd5__Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object22)(__attribute__ ((unused)) signed int __anonymous_object23), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object24)(__attribute__ ((unused)) signed int __anonymous_object25));
    393 signed int __apd6__Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object26)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object27)());
    394 signed int __apd7__Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object28)(__attribute__ ((unused)) signed int __anonymous_object29), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object30)(__attribute__ ((unused)) signed int __anonymous_object31));
     361signed int __apd1__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object9, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object10);
     362signed int __apd2__Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object11, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object12);
     363signed int __apd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object13, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object14);
     364signed int __apd4__Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)());
     365signed int __apd5__Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(__attribute__ ((unused)) signed int __anonymous_object18), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object19)(__attribute__ ((unused)) signed int __anonymous_object20));
     366signed int __apd6__Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object21)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object22)());
     367signed int __apd7__Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object23)(__attribute__ ((unused)) signed int __anonymous_object24), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object25)(__attribute__ ((unused)) signed int __anonymous_object26));
    395368struct Vad {
    396     __attribute__ ((unused)) signed int __anonymous_object32;
    397     __attribute__ ((unused,unused)) signed int *__anonymous_object33;
    398     __attribute__ ((unused,unused)) signed int __anonymous_object34[((unsigned int )10)];
    399     __attribute__ ((unused,unused)) signed int (*__anonymous_object35)();
     369    __attribute__ ((unused)) signed int __anonymous_object27:4;
     370    __attribute__ ((unused)) signed int __anonymous_object28:4;
     371    __attribute__ ((unused,unused)) signed int __anonymous_object29:6;
    400372};
    401373static inline void ___constructor__F_4sVad_autogen___1(struct Vad *___dst__4sVad_1);
     
    403375static inline void ___destructor__F_4sVad_autogen___1(struct Vad *___dst__4sVad_1);
    404376static inline struct Vad ___operator_assign__F4sVad_4sVad4sVad_autogen___1(struct Vad *___dst__4sVad_1, struct Vad ___src__4sVad_1);
    405 static inline void ___constructor__F_4sVadi_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object36);
    406 static inline void ___constructor__F_4sVadiPi_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object37, __attribute__ ((unused,unused)) signed int *__anonymous_object38);
    407 static inline void ___constructor__F_4sVadiPiA0i_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object39, __attribute__ ((unused,unused)) signed int *__anonymous_object40, __attribute__ ((unused,unused)) signed int __anonymous_object41[((unsigned int )10)]);
    408 static inline void ___constructor__F_4sVadiPiA0iFi___autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object42, __attribute__ ((unused,unused)) signed int *__anonymous_object43, __attribute__ ((unused,unused)) signed int __anonymous_object44[((unsigned int )10)], __attribute__ ((unused,unused)) signed int (*__anonymous_object45)());
    409377static inline void ___constructor__F_4sVad_autogen___1(struct Vad *___dst__4sVad_1){
    410     ((void)((*___dst__4sVad_1).__anonymous_object32) /* ?{} */);
    411     ((void)((*___dst__4sVad_1).__anonymous_object33) /* ?{} */);
    412     {
    413         signed int _index0 = 0;
    414         for (;(_index0<10);((void)(++_index0))) {
    415             ((void)((*___dst__4sVad_1).__anonymous_object34[_index0]) /* ?{} */);
    416         }
    417 
    418     }
    419 
    420     ((void)((*___dst__4sVad_1).__anonymous_object35) /* ?{} */);
    421378}
    422379static inline void ___constructor__F_4sVad4sVad_autogen___1(struct Vad *___dst__4sVad_1, struct Vad ___src__4sVad_1){
    423     ((void)((*___dst__4sVad_1).__anonymous_object32=___src__4sVad_1.__anonymous_object32) /* ?{} */);
    424     ((void)((*___dst__4sVad_1).__anonymous_object33=___src__4sVad_1.__anonymous_object33) /* ?{} */);
    425     {
    426         signed int _index1 = 0;
    427         for (;(_index1<10);((void)(++_index1))) {
    428             ((void)((*___dst__4sVad_1).__anonymous_object34[_index1]=___src__4sVad_1.__anonymous_object34[_index1]) /* ?{} */);
    429         }
    430 
    431     }
    432 
    433     ((void)((*___dst__4sVad_1).__anonymous_object35=___src__4sVad_1.__anonymous_object35) /* ?{} */);
    434380}
    435381static inline void ___destructor__F_4sVad_autogen___1(struct Vad *___dst__4sVad_1){
    436     ((void)((*___dst__4sVad_1).__anonymous_object35) /* ^?{} */);
    437     {
    438         signed int _index2 = (10-1);
    439         for (;(_index2>=0);((void)(--_index2))) {
    440             ((void)((*___dst__4sVad_1).__anonymous_object34[_index2]) /* ^?{} */);
    441         }
    442 
    443     }
    444 
    445     ((void)((*___dst__4sVad_1).__anonymous_object33) /* ^?{} */);
    446     ((void)((*___dst__4sVad_1).__anonymous_object32) /* ^?{} */);
    447382}
    448383static inline struct Vad ___operator_assign__F4sVad_4sVad4sVad_autogen___1(struct Vad *___dst__4sVad_1, struct Vad ___src__4sVad_1){
    449384    struct Vad ___ret__4sVad_1;
    450     ((void)((*___dst__4sVad_1).__anonymous_object32=___src__4sVad_1.__anonymous_object32));
    451     ((void)((*___dst__4sVad_1).__anonymous_object33=___src__4sVad_1.__anonymous_object33));
    452     {
    453         signed int _index3 = 0;
    454         for (;(_index3<10);((void)(++_index3))) {
    455             ((void)((*___dst__4sVad_1).__anonymous_object34[_index3]=___src__4sVad_1.__anonymous_object34[_index3]));
    456         }
    457 
    458     }
    459 
    460     ((void)((*___dst__4sVad_1).__anonymous_object35=___src__4sVad_1.__anonymous_object35));
    461385    ((void)___constructor__F_4sVad4sVad_autogen___1((&___ret__4sVad_1), (*___dst__4sVad_1)));
    462386    return ___ret__4sVad_1;
    463387}
    464 static inline void ___constructor__F_4sVadi_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object46){
    465     ((void)((*___dst__4sVad_1).__anonymous_object32=__anonymous_object46) /* ?{} */);
    466     ((void)((*___dst__4sVad_1).__anonymous_object33) /* ?{} */);
    467     {
    468         signed int _index4 = 0;
    469         for (;(_index4<10);((void)(++_index4))) {
    470             ((void)((*___dst__4sVad_1).__anonymous_object34[_index4]) /* ?{} */);
    471         }
    472 
    473     }