Changeset 3bbd012 for src


Ignore:
Timestamp:
Jul 31, 2018, 2:43:04 PM (7 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

Location:
src
Files:
9 added
59 edited
2 moved

Legend:

Unmodified
Added
Removed
  • 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     }
    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[_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 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[_index6]=__anonymous_object51[_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 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[_index7]=__anonymous_object54[_index7]) /* ?{} */);
    510         }
    511 
    512     }
    513 
    514     ((void)((*___dst__4sVad_1).__anonymous_object35=__anonymous_object55) /* ?{} */);
    515 }
  • src/tests/.expect/declarationErrors.txt

    rd1e0979 r3bbd012  
    1717
    1818
    19 declarationErrors.c:22:1 error: duplicate static in declaration of x6: static const volatile instance of type Int
     19declarationErrors.c:22:1 error: duplicate static in declaration of x6: static const volatile Int
    2020
    2121declarationErrors.c:24:1 error: duplicate const in declaration of f01: static inline function
  • src/tests/Makefile.am

    rd1e0979 r3bbd012  
    1515###############################################################################
    1616
     17
    1718debug=yes
    1819
     
    2526endif
    2627
     28TEST_PY = python ${srcdir}/test.py
     29
    2730# applies to both programs
    28 DEBUG_FLAGS =
     31AM_CFLAGS = $(if $(test), 2> $(test), ) \
     32        -XCFA \
     33        -t \
     34        -B${abs_top_builddir}/src/driver \
     35        -g \
     36        -Wall \
     37        -Wno-unused-function \
     38        -quiet @CFA_FLAGS@ \
     39        -I. \
     40        -DIN_DIR="${srcdir}/.in/" \
     41        -L${abs_top_builddir}/src/libcfa \
     42        -I${abs_top_srcdir}/src/libcfa \
     43        -I${abs_top_srcdir}/src/libcfa/containers \
     44        -I${abs_top_srcdir}/src/libcfa/concurrency \
     45        -I${abs_top_srcdir}/src/libcfa/stdhdr
    2946
    30 BUILD_FLAGS = -g -Wall -Wno-unused-function -quiet @CFA_FLAGS@ -I.
    3147if !BUILD_DEBUG
    32 BUILD_FLAGS += -nodebug
     48AM_CFLAGS += -nodebug
    3349else
    3450if !BUILD_RELEASE
    35 BUILD_FLAGS += -debug
     51AM_CFLAGS += -debug
    3652else
    37 BUILD_FLAGS += ${DEBUG_FLAGS}
     53AM_CFLAGS += ${DEBUG_FLAGS}
    3854endif
    3955endif
    4056
    41 TEST_FLAGS = $(if $(test), 2> $(test), )
    42 AM_CFLAGS = ${TEST_FLAGS} ${BUILD_FLAGS}
    43 CC = @CFA_BINDIR@/@CFA_NAME@
     57CC = ${abs_top_builddir}/src/driver/cfa
    4458
    4559.PHONY : list
     
    4761
    4862fstream_test_SOURCES = fstream_test.c
    49 fstream_test_CFLAGS = $(if $(test), 2>> $(test), ) ${BUILD_FLAGS}
    5063
    5164avl_test_SOURCES = avltree/avl_test.c avltree/avl0.c avltree/avl1.c avltree/avl2.c avltree/avl3.c avltree/avl4.c avltree/avl-private.c
    52 avl_test_CFLAGS = $(if $(test), 2>> $(test), ) ${BUILD_FLAGS}
    5365
    5466all-local :
    55         @+python test.py --debug=${debug} ${concurrent} ${quick_test}
     67        @+${TEST_PY} --debug=${debug} ${concurrent} ${quick_test}
    5668
    5769all-tests :
    58         @+python test.py --all --debug=${debug} ${concurrent}           # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program
     70        @+${TEST_PY} --all --debug=${debug} ${concurrent}               # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program
    5971
    6072clean-local :
     
    6274
    6375list :
    64         @+python test.py --list ${concurrent}
     76        @+${TEST_PY} --list ${concurrent}
    6577
    6678concurrency :
    67         @+python test.py --debug=${debug} -Iconcurrent
     79        @+${TEST_PY} --debug=${debug} -Iconcurrent
    6880
    69 .dummy : .dummy.c @CFA_BINDIR@/@CFA_NAME@
    70         ${CC} ${BUILD_FLAGS} -XCFA -n ${<} -o ${@}                              #don't use CFLAGS, this rule is not a real test
     81# SKULLDUGGERY like libcfa/Makefile.am prevent extensionless headers from being generated
     82# however, here it is more complicated because it must match the dependencies based on how
     83# they are generated by gcc
     84headers = $(shell find $(top_srcdir)/src/libcfa -type f ! -name "*.*")
     85headers_real = $(shell realpath --relative-to=$(top_srcdir)/src/libcfa $(headers))
     86headers_deps = $(addprefix %/, $(headers_real))
     87$(headers_deps) :
     88        echo "Dummy rule, should never be called"
    7189
     90# %/stdlib:
     91#       echo "Dummy rule, should never be called"
    7292
    73 % : %.c @CFA_BINDIR@/@CFA_NAME@
    74         ${CC} ${AM_CFLAGS} ${CFLAGS} ${<} -o ${@}
     93# implicit rule so not all test require a rule
     94% : %.c $(CC)
     95        echo $(headers_deps)
     96        $(COMPILE) $(abspath ${<}) -o ${@}
    7597
    76 declarationSpecifier: declarationSpecifier.c @CFA_BINDIR@/@CFA_NAME@
    77         ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
     98declarationSpecifier: declarationSpecifier.c $(CC)
     99        $(COMPILE) -CFA -XCFA -p $(abspath ${<}) -o ${@}
    78100
    79 gccExtensions : gccExtensions.c @CFA_BINDIR@/@CFA_NAME@
    80         ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
     101gccExtensions : gccExtensions.c $(CC)
     102        $(COMPILE) -CFA -XCFA -p $(abspath ${<}) -o ${@}
    81103
    82 extension : extension.c @CFA_BINDIR@/@CFA_NAME@
    83         ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
     104extension : extension.c $(CC)
     105        $(COMPILE) -CFA -XCFA -p $(abspath ${<}) -o ${@}
    84106
    85 attributes : attributes.c @CFA_BINDIR@/@CFA_NAME@
    86         ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
     107attributes : attributes.c $(CC)
     108        $(COMPILE) -CFA -XCFA -p $(abspath ${<}) -o ${@}
    87109
    88 functions: functions.c @CFA_BINDIR@/@CFA_NAME@
    89         ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
     110functions: functions.c $(CC)
     111        $(COMPILE) -CFA -XCFA -p $(abspath ${<}) -o ${@}
    90112
    91 KRfunctions : KRfunctions.c @CFA_BINDIR@/@CFA_NAME@
    92         ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
     113KRfunctions : KRfunctions.c $(CC)
     114        $(COMPILE) -CFA -XCFA -p $(abspath ${<}) -o ${@}
    93115
    94 sched-ext-parse : sched-ext-parse.c @CFA_BINDIR@/@CFA_NAME@
    95         ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
     116sched-ext-parse : sched-ext-parse.c $(CC)
     117        $(COMPILE) -CFA -XCFA -p $(abspath ${<}) -o ${@}
    96118
    97 gmp : gmp.c @CFA_BINDIR@/@CFA_NAME@
    98         ${CC} ${AM_CFLAGS} ${CFLAGS} -lgmp ${<} -o ${@}
     119gmp : gmp.c $(CC)
     120        $(COMPILE) -lgmp $(abspath ${<}) -o ${@}
    99121
    100 completeTypeError : completeTypeError.c @CFA_BINDIR@/@CFA_NAME@
    101         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
     122completeTypeError : completeTypeError.c $(CC)
     123        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
    102124
    103 typedefRedef-ERR1: typedefRedef.c @CFA_BINDIR@/@CFA_NAME@
    104         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
     125typedefRedef-ERR1: typedefRedef.c $(CC)
     126        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
    105127
    106 alloc-ERROR: alloc.c @CFA_BINDIR@/@CFA_NAME@
    107         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
     128alloc-ERROR: alloc.c $(CC)
     129        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
    108130
    109 fallthrough-ERROR: fallthrough.c @CFA_BINDIR@/@CFA_NAME@
    110         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
     131fallthrough-ERROR: fallthrough.c $(CC)
     132        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
    111133
    112 nested-types-ERR1: nested-types.c @CFA_BINDIR@/@CFA_NAME@
    113         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
     134nested-types-ERR1: nested-types.c $(CC)
     135        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
    114136
    115 nested-types-ERR2: nested-types.c @CFA_BINDIR@/@CFA_NAME@
    116         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR2 ${<} -o ${@}
     137nested-types-ERR2: nested-types.c $(CC)
     138        $(COMPILE) -DERR2 $(abspath ${<}) -o ${@}
    117139
    118140# Constructor/destructor tests
    119 raii/dtor-early-exit-ERR1: raii/dtor-early-exit.c @CFA_BINDIR@/@CFA_NAME@
    120         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
     141raii/dtor-early-exit-ERR1: raii/dtor-early-exit.c $(CC)
     142        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
    121143
    122 raii/dtor-early-exit-ERR2: raii/dtor-early-exit.c @CFA_BINDIR@/@CFA_NAME@
    123         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR2 ${<} -o ${@}
     144raii/dtor-early-exit-ERR2: raii/dtor-early-exit.c $(CC)
     145        $(COMPILE) -DERR2 $(abspath ${<}) -o ${@}
    124146
    125 raii/memberCtors-ERR1: raii/memberCtors.c @CFA_BINDIR@/@CFA_NAME@
    126         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
     147raii/memberCtors-ERR1: raii/memberCtors.c $(CC)
     148        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
    127149
    128 raii/ctor-autogen-ERR1: raii/ctor-autogen.c @CFA_BINDIR@/@CFA_NAME@
    129         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
     150raii/ctor-autogen-ERR1: raii/ctor-autogen.c $(CC)
     151        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
    130152
    131153# Warnings
    132 warnings/self-assignment: warnings/self-assignment.c @CFA_BINDIR@/@CFA_NAME@
    133         ${CC} ${AM_CFLAGS} ${CFLAGS} ${<} 2> ${@} -fsyntax-only
     154warnings/self-assignment: warnings/self-assignment.c $(CC)
     155        $(COMPILE) $(abspath ${<}) 2> ${@} -fsyntax-only
    134156
    135157#builtins
    136 builtins/sync: builtins/sync.c @CFA_BINDIR@/@CFA_NAME@
    137         ${CC} ${AM_CFLAGS} ${CFLAGS} ${<} 2> ${@} -fsyntax-only
     158builtins/sync: builtins/sync.c $(CC)
     159        $(COMPILE) $(abspath ${<}) 2> ${@} -fsyntax-only
  • src/tests/Makefile.in

    rd1e0979 r3bbd012  
    103103mkinstalldirs = $(install_sh) -d
    104104CONFIG_HEADER = $(top_builddir)/config.h
    105 CONFIG_CLEAN_FILES =
    106 CONFIG_CLEAN_VPATH_FILES =
     105CONFIG_CLEAN_FILES = config.py
     106CONFIG_CLEAN_VPATH_FILES = test.py
    107107am__dirstamp = $(am__leading_dot)dirstamp
    108 am_avl_test_OBJECTS = avltree/avl_test-avl_test.$(OBJEXT) \
    109         avltree/avl_test-avl0.$(OBJEXT) \
    110         avltree/avl_test-avl1.$(OBJEXT) \
    111         avltree/avl_test-avl2.$(OBJEXT) \
    112         avltree/avl_test-avl3.$(OBJEXT) \
    113         avltree/avl_test-avl4.$(OBJEXT) \
    114         avltree/avl_test-avl-private.$(OBJEXT)
     108am_avl_test_OBJECTS = avltree/avl_test.$(OBJEXT) \
     109        avltree/avl0.$(OBJEXT) avltree/avl1.$(OBJEXT) \
     110        avltree/avl2.$(OBJEXT) avltree/avl3.$(OBJEXT) \
     111        avltree/avl4.$(OBJEXT) avltree/avl-private.$(OBJEXT)
    115112avl_test_OBJECTS = $(am_avl_test_OBJECTS)
    116113avl_test_LDADD = $(LDADD)
    117 avl_test_LINK = $(CCLD) $(avl_test_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
    118         $(LDFLAGS) -o $@
    119 am_fstream_test_OBJECTS = fstream_test-fstream_test.$(OBJEXT)
     114am_fstream_test_OBJECTS = fstream_test.$(OBJEXT)
    120115fstream_test_OBJECTS = $(am_fstream_test_OBJECTS)
    121116fstream_test_LDADD = $(LDADD)
    122 fstream_test_LINK = $(CCLD) $(fstream_test_CFLAGS) $(CFLAGS) \
    123         $(AM_LDFLAGS) $(LDFLAGS) -o $@
    124117AM_V_P = $(am__v_P_@AM_V@)
    125118am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
     
    138131am__depfiles_maybe = depfiles
    139132am__mv = mv -f
    140 AM_V_lt = $(am__v_lt_@AM_V@)
    141 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
    142 am__v_lt_0 = --silent
    143 am__v_lt_1 =
    144133COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
    145134        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
     
    180169ETAGS = etags
    181170CTAGS = ctags
    182 am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/automake/depcomp
     171am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.py.in \
     172        $(srcdir)/test.py $(top_srcdir)/automake/depcomp
    183173DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
    184174ACLOCAL = @ACLOCAL@
     
    191181AWK = @AWK@
    192182BACKEND_CC = @BACKEND_CC@
    193 CC = @CFA_BINDIR@/@CFA_NAME@
     183CC = ${abs_top_builddir}/src/driver/cfa
    194184CCAS = @CCAS@
    195185CCASDEPMODE = @CCASDEPMODE@
     
    231221LTLIBOBJS = @LTLIBOBJS@
    232222MACHINE_TYPE = @MACHINE_TYPE@
    233 MAINT = @MAINT@
    234223MAKEINFO = @MAKEINFO@
    235224MKDIR_P = @MKDIR_P@
     
    306295@BUILD_CONCURRENCY_FALSE@concurrent = '-Econcurrent'
    307296@BUILD_CONCURRENCY_TRUE@concurrent =
     297TEST_PY = python ${srcdir}/test.py
    308298
    309299# applies to both programs
    310 DEBUG_FLAGS =
    311 BUILD_FLAGS = -g -Wall -Wno-unused-function -quiet @CFA_FLAGS@ -I. \
    312         $(am__append_1) $(am__append_2) $(am__append_3)
    313 TEST_FLAGS = $(if $(test), 2> $(test), )
    314 AM_CFLAGS = ${TEST_FLAGS} ${BUILD_FLAGS}
     300AM_CFLAGS = $(if $(test), 2> $(test), ) -XCFA -t \
     301        -B${abs_top_builddir}/src/driver -g -Wall -Wno-unused-function \
     302        -quiet @CFA_FLAGS@ -I. -DIN_DIR="${srcdir}/.in/" \
     303        -L${abs_top_builddir}/src/libcfa \
     304        -I${abs_top_srcdir}/src/libcfa \
     305        -I${abs_top_srcdir}/src/libcfa/containers \
     306        -I${abs_top_srcdir}/src/libcfa/concurrency \
     307        -I${abs_top_srcdir}/src/libcfa/stdhdr $(am__append_1) \
     308        $(am__append_2) $(am__append_3)
    315309fstream_test_SOURCES = fstream_test.c
    316 fstream_test_CFLAGS = $(if $(test), 2>> $(test), ) ${BUILD_FLAGS}
    317310avl_test_SOURCES = avltree/avl_test.c avltree/avl0.c avltree/avl1.c avltree/avl2.c avltree/avl3.c avltree/avl4.c avltree/avl-private.c
    318 avl_test_CFLAGS = $(if $(test), 2>> $(test), ) ${BUILD_FLAGS}
     311
     312# SKULLDUGGERY like libcfa/Makefile.am prevent extensionless headers from being generated
     313# however, here it is more complicated because it must match the dependencies based on how
     314# they are generated by gcc
     315headers = $(shell find $(top_srcdir)/src/libcfa -type f ! -name "*.*")
     316headers_real = $(shell realpath --relative-to=$(top_srcdir)/src/libcfa $(headers))
     317headers_deps = $(addprefix %/, $(headers_real))
    319318all: all-am
    320319
    321320.SUFFIXES:
    322321.SUFFIXES: .c .o .obj
    323 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
     322$(srcdir)/Makefile.in: $(srcdir)/Makefile.am  $(am__configure_deps)
    324323        @for dep in $?; do \
    325324          case '$(am__configure_deps)' in \
     
    345344        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    346345
    347 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
     346$(top_srcdir)/configure: $(am__configure_deps)
    348347        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    349 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
     348$(ACLOCAL_M4): $(am__aclocal_m4_deps)
    350349        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    351350$(am__aclocal_m4_deps):
     351config.py: $(top_builddir)/config.status $(srcdir)/config.py.in
     352        cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
    352353avltree/$(am__dirstamp):
    353354        @$(MKDIR_P) avltree
     
    356357        @$(MKDIR_P) avltree/$(DEPDIR)
    357358        @: > avltree/$(DEPDIR)/$(am__dirstamp)
    358 avltree/avl_test-avl_test.$(OBJEXT): avltree/$(am__dirstamp) \
     359avltree/avl_test.$(OBJEXT): avltree/$(am__dirstamp) \
    359360        avltree/$(DEPDIR)/$(am__dirstamp)
    360 avltree/avl_test-avl0.$(OBJEXT): avltree/$(am__dirstamp) \
     361avltree/avl0.$(OBJEXT): avltree/$(am__dirstamp) \
    361362        avltree/$(DEPDIR)/$(am__dirstamp)
    362 avltree/avl_test-avl1.$(OBJEXT): avltree/$(am__dirstamp) \
     363avltree/avl1.$(OBJEXT): avltree/$(am__dirstamp) \
    363364        avltree/$(DEPDIR)/$(am__dirstamp)
    364 avltree/avl_test-avl2.$(OBJEXT): avltree/$(am__dirstamp) \
     365avltree/avl2.$(OBJEXT): avltree/$(am__dirstamp) \
    365366        avltree/$(DEPDIR)/$(am__dirstamp)
    366 avltree/avl_test-avl3.$(OBJEXT): avltree/$(am__dirstamp) \
     367avltree/avl3.$(OBJEXT): avltree/$(am__dirstamp) \
    367368        avltree/$(DEPDIR)/$(am__dirstamp)
    368 avltree/avl_test-avl4.$(OBJEXT): avltree/$(am__dirstamp) \
     369avltree/avl4.$(OBJEXT): avltree/$(am__dirstamp) \
    369370        avltree/$(DEPDIR)/$(am__dirstamp)
    370 avltree/avl_test-avl-private.$(OBJEXT): avltree/$(am__dirstamp) \
     371avltree/avl-private.$(OBJEXT): avltree/$(am__dirstamp) \
    371372        avltree/$(DEPDIR)/$(am__dirstamp)
    372373
    373374avl_test$(EXEEXT): $(avl_test_OBJECTS) $(avl_test_DEPENDENCIES) $(EXTRA_avl_test_DEPENDENCIES)
    374375        @rm -f avl_test$(EXEEXT)
    375         $(AM_V_CCLD)$(avl_test_LINK) $(avl_test_OBJECTS) $(avl_test_LDADD) $(LIBS)
     376        $(AM_V_CCLD)$(LINK) $(avl_test_OBJECTS) $(avl_test_LDADD) $(LIBS)
    376377
    377378fstream_test$(EXEEXT): $(fstream_test_OBJECTS) $(fstream_test_DEPENDENCIES) $(EXTRA_fstream_test_DEPENDENCIES)
    378379        @rm -f fstream_test$(EXEEXT)
    379         $(AM_V_CCLD)$(fstream_test_LINK) $(fstream_test_OBJECTS) $(fstream_test_LDADD) $(LIBS)
     380        $(AM_V_CCLD)$(LINK) $(fstream_test_OBJECTS) $(fstream_test_LDADD) $(LIBS)
    380381
    381382mostlyclean-compile:
     
    386387        -rm -f *.tab.c
    387388
    388 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstream_test-fstream_test.Po@am__quote@
    389 @AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl_test-avl-private.Po@am__quote@
    390 @AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl_test-avl0.Po@am__quote@
    391 @AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl_test-avl1.Po@am__quote@
    392 @AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl_test-avl2.Po@am__quote@
    393 @AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl_test-avl3.Po@am__quote@
    394 @AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl_test-avl4.Po@am__quote@
    395 @AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl_test-avl_test.Po@am__quote@
     389@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstream_test.Po@am__quote@
     390@AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl-private.Po@am__quote@
     391@AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl0.Po@am__quote@
     392@AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl1.Po@am__quote@
     393@AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl2.Po@am__quote@
     394@AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl3.Po@am__quote@
     395@AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl4.Po@am__quote@
     396@AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl_test.Po@am__quote@
    396397
    397398.c.o:
     
    410411@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    411412@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
    412 
    413 avltree/avl_test-avl_test.o: avltree/avl_test.c
    414 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -MT avltree/avl_test-avl_test.o -MD -MP -MF avltree/$(DEPDIR)/avl_test-avl_test.Tpo -c -o avltree/avl_test-avl_test.o `test -f 'avltree/avl_test.c' || echo '$(srcdir)/'`avltree/avl_test.c
    415 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) avltree/$(DEPDIR)/avl_test-avl_test.Tpo avltree/$(DEPDIR)/avl_test-avl_test.Po
    416 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='avltree/avl_test.c' object='avltree/avl_test-avl_test.o' libtool=no @AMDEPBACKSLASH@
    417 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    418 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -c -o avltree/avl_test-avl_test.o `test -f 'avltree/avl_test.c' || echo '$(srcdir)/'`avltree/avl_test.c
    419 
    420 avltree/avl_test-avl_test.obj: avltree/avl_test.c
    421 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -MT avltree/avl_test-avl_test.obj -MD -MP -MF avltree/$(DEPDIR)/avl_test-avl_test.Tpo -c -o avltree/avl_test-avl_test.obj `if test -f 'avltree/avl_test.c'; then $(CYGPATH_W) 'avltree/avl_test.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl_test.c'; fi`
    422 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) avltree/$(DEPDIR)/avl_test-avl_test.Tpo avltree/$(DEPDIR)/avl_test-avl_test.Po
    423 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='avltree/avl_test.c' object='avltree/avl_test-avl_test.obj' libtool=no @AMDEPBACKSLASH@
    424 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    425 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -c -o avltree/avl_test-avl_test.obj `if test -f 'avltree/avl_test.c'; then $(CYGPATH_W) 'avltree/avl_test.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl_test.c'; fi`
    426 
    427 avltree/avl_test-avl0.o: avltree/avl0.c
    428 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -MT avltree/avl_test-avl0.o -MD -MP -MF avltree/$(DEPDIR)/avl_test-avl0.Tpo -c -o avltree/avl_test-avl0.o `test -f 'avltree/avl0.c' || echo '$(srcdir)/'`avltree/avl0.c
    429 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) avltree/$(DEPDIR)/avl_test-avl0.Tpo avltree/$(DEPDIR)/avl_test-avl0.Po
    430 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='avltree/avl0.c' object='avltree/avl_test-avl0.o' libtool=no @AMDEPBACKSLASH@
    431 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    432 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -c -o avltree/avl_test-avl0.o `test -f 'avltree/avl0.c' || echo '$(srcdir)/'`avltree/avl0.c
    433 
    434 avltree/avl_test-avl0.obj: avltree/avl0.c
    435 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -MT avltree/avl_test-avl0.obj -MD -MP -MF avltree/$(DEPDIR)/avl_test-avl0.Tpo -c -o avltree/avl_test-avl0.obj `if test -f 'avltree/avl0.c'; then $(CYGPATH_W) 'avltree/avl0.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl0.c'; fi`
    436 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) avltree/$(DEPDIR)/avl_test-avl0.Tpo avltree/$(DEPDIR)/avl_test-avl0.Po
    437 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='avltree/avl0.c' object='avltree/avl_test-avl0.obj' libtool=no @AMDEPBACKSLASH@
    438 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    439 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -c -o avltree/avl_test-avl0.obj `if test -f 'avltree/avl0.c'; then $(CYGPATH_W) 'avltree/avl0.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl0.c'; fi`
    440 
    441 avltree/avl_test-avl1.o: avltree/avl1.c
    442 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -MT avltree/avl_test-avl1.o -MD -MP -MF avltree/$(DEPDIR)/avl_test-avl1.Tpo -c -o avltree/avl_test-avl1.o `test -f 'avltree/avl1.c' || echo '$(srcdir)/'`avltree/avl1.c
    443 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) avltree/$(DEPDIR)/avl_test-avl1.Tpo avltree/$(DEPDIR)/avl_test-avl1.Po
    444 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='avltree/avl1.c' object='avltree/avl_test-avl1.o' libtool=no @AMDEPBACKSLASH@
    445 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    446 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -c -o avltree/avl_test-avl1.o `test -f 'avltree/avl1.c' || echo '$(srcdir)/'`avltree/avl1.c
    447 
    448 avltree/avl_test-avl1.obj: avltree/avl1.c
    449 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -MT avltree/avl_test-avl1.obj -MD -MP -MF avltree/$(DEPDIR)/avl_test-avl1.Tpo -c -o avltree/avl_test-avl1.obj `if test -f 'avltree/avl1.c'; then $(CYGPATH_W) 'avltree/avl1.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl1.c'; fi`
    450 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) avltree/$(DEPDIR)/avl_test-avl1.Tpo avltree/$(DEPDIR)/avl_test-avl1.Po
    451 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='avltree/avl1.c' object='avltree/avl_test-avl1.obj' libtool=no @AMDEPBACKSLASH@
    452 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    453 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -c -o avltree/avl_test-avl1.obj `if test -f 'avltree/avl1.c'; then $(CYGPATH_W) 'avltree/avl1.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl1.c'; fi`
    454 
    455 avltree/avl_test-avl2.o: avltree/avl2.c
    456 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -MT avltree/avl_test-avl2.o -MD -MP -MF avltree/$(DEPDIR)/avl_test-avl2.Tpo -c -o avltree/avl_test-avl2.o `test -f 'avltree/avl2.c' || echo '$(srcdir)/'`avltree/avl2.c
    457 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) avltree/$(DEPDIR)/avl_test-avl2.Tpo avltree/$(DEPDIR)/avl_test-avl2.Po
    458 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='avltree/avl2.c' object='avltree/avl_test-avl2.o' libtool=no @AMDEPBACKSLASH@
    459 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    460 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -c -o avltree/avl_test-avl2.o `test -f 'avltree/avl2.c' || echo '$(srcdir)/'`avltree/avl2.c
    461 
    462 avltree/avl_test-avl2.obj: avltree/avl2.c
    463 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -MT avltree/avl_test-avl2.obj -MD -MP -MF avltree/$(DEPDIR)/avl_test-avl2.Tpo -c -o avltree/avl_test-avl2.obj `if test -f 'avltree/avl2.c'; then $(CYGPATH_W) 'avltree/avl2.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl2.c'; fi`
    464 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) avltree/$(DEPDIR)/avl_test-avl2.Tpo avltree/$(DEPDIR)/avl_test-avl2.Po
    465 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='avltree/avl2.c' object='avltree/avl_test-avl2.obj' libtool=no @AMDEPBACKSLASH@
    466 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    467 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -c -o avltree/avl_test-avl2.obj `if test -f 'avltree/avl2.c'; then $(CYGPATH_W) 'avltree/avl2.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl2.c'; fi`
    468 
    469 avltree/avl_test-avl3.o: avltree/avl3.c
    470 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -MT avltree/avl_test-avl3.o -MD -MP -MF avltree/$(DEPDIR)/avl_test-avl3.Tpo -c -o avltree/avl_test-avl3.o `test -f 'avltree/avl3.c' || echo '$(srcdir)/'`avltree/avl3.c
    471 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) avltree/$(DEPDIR)/avl_test-avl3.Tpo avltree/$(DEPDIR)/avl_test-avl3.Po
    472 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='avltree/avl3.c' object='avltree/avl_test-avl3.o' libtool=no @AMDEPBACKSLASH@
    473 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    474 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -c -o avltree/avl_test-avl3.o `test -f 'avltree/avl3.c' || echo '$(srcdir)/'`avltree/avl3.c
    475 
    476 avltree/avl_test-avl3.obj: avltree/avl3.c
    477 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -MT avltree/avl_test-avl3.obj -MD -MP -MF avltree/$(DEPDIR)/avl_test-avl3.Tpo -c -o avltree/avl_test-avl3.obj `if test -f 'avltree/avl3.c'; then $(CYGPATH_W) 'avltree/avl3.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl3.c'; fi`
    478 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) avltree/$(DEPDIR)/avl_test-avl3.Tpo avltree/$(DEPDIR)/avl_test-avl3.Po
    479 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='avltree/avl3.c' object='avltree/avl_test-avl3.obj' libtool=no @AMDEPBACKSLASH@
    480 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    481 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -c -o avltree/avl_test-avl3.obj `if test -f 'avltree/avl3.c'; then $(CYGPATH_W) 'avltree/avl3.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl3.c'; fi`
    482 
    483 avltree/avl_test-avl4.o: avltree/avl4.c
    484 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -MT avltree/avl_test-avl4.o -MD -MP -MF avltree/$(DEPDIR)/avl_test-avl4.Tpo -c -o avltree/avl_test-avl4.o `test -f 'avltree/avl4.c' || echo '$(srcdir)/'`avltree/avl4.c
    485 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) avltree/$(DEPDIR)/avl_test-avl4.Tpo avltree/$(DEPDIR)/avl_test-avl4.Po
    486 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='avltree/avl4.c' object='avltree/avl_test-avl4.o' libtool=no @AMDEPBACKSLASH@
    487 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    488 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -c -o avltree/avl_test-avl4.o `test -f 'avltree/avl4.c' || echo '$(srcdir)/'`avltree/avl4.c
    489 
    490 avltree/avl_test-avl4.obj: avltree/avl4.c
    491 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -MT avltree/avl_test-avl4.obj -MD -MP -MF avltree/$(DEPDIR)/avl_test-avl4.Tpo -c -o avltree/avl_test-avl4.obj `if test -f 'avltree/avl4.c'; then $(CYGPATH_W) 'avltree/avl4.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl4.c'; fi`
    492 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) avltree/$(DEPDIR)/avl_test-avl4.Tpo avltree/$(DEPDIR)/avl_test-avl4.Po
    493 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='avltree/avl4.c' object='avltree/avl_test-avl4.obj' libtool=no @AMDEPBACKSLASH@
    494 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    495 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -c -o avltree/avl_test-avl4.obj `if test -f 'avltree/avl4.c'; then $(CYGPATH_W) 'avltree/avl4.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl4.c'; fi`
    496 
    497 avltree/avl_test-avl-private.o: avltree/avl-private.c
    498 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -MT avltree/avl_test-avl-private.o -MD -MP -MF avltree/$(DEPDIR)/avl_test-avl-private.Tpo -c -o avltree/avl_test-avl-private.o `test -f 'avltree/avl-private.c' || echo '$(srcdir)/'`avltree/avl-private.c
    499 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) avltree/$(DEPDIR)/avl_test-avl-private.Tpo avltree/$(DEPDIR)/avl_test-avl-private.Po
    500 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='avltree/avl-private.c' object='avltree/avl_test-avl-private.o' libtool=no @AMDEPBACKSLASH@
    501 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    502 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -c -o avltree/avl_test-avl-private.o `test -f 'avltree/avl-private.c' || echo '$(srcdir)/'`avltree/avl-private.c
    503 
    504 avltree/avl_test-avl-private.obj: avltree/avl-private.c
    505 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -MT avltree/avl_test-avl-private.obj -MD -MP -MF avltree/$(DEPDIR)/avl_test-avl-private.Tpo -c -o avltree/avl_test-avl-private.obj `if test -f 'avltree/avl-private.c'; then $(CYGPATH_W) 'avltree/avl-private.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl-private.c'; fi`
    506 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) avltree/$(DEPDIR)/avl_test-avl-private.Tpo avltree/$(DEPDIR)/avl_test-avl-private.Po
    507 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='avltree/avl-private.c' object='avltree/avl_test-avl-private.obj' libtool=no @AMDEPBACKSLASH@
    508 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    509 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(avl_test_CFLAGS) $(CFLAGS) -c -o avltree/avl_test-avl-private.obj `if test -f 'avltree/avl-private.c'; then $(CYGPATH_W) 'avltree/avl-private.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl-private.c'; fi`
    510 
    511 fstream_test-fstream_test.o: fstream_test.c
    512 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fstream_test_CFLAGS) $(CFLAGS) -MT fstream_test-fstream_test.o -MD -MP -MF $(DEPDIR)/fstream_test-fstream_test.Tpo -c -o fstream_test-fstream_test.o `test -f 'fstream_test.c' || echo '$(srcdir)/'`fstream_test.c
    513 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/fstream_test-fstream_test.Tpo $(DEPDIR)/fstream_test-fstream_test.Po
    514 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='fstream_test.c' object='fstream_test-fstream_test.o' libtool=no @AMDEPBACKSLASH@
    515 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    516 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fstream_test_CFLAGS) $(CFLAGS) -c -o fstream_test-fstream_test.o `test -f 'fstream_test.c' || echo '$(srcdir)/'`fstream_test.c
    517 
    518 fstream_test-fstream_test.obj: fstream_test.c
    519 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fstream_test_CFLAGS) $(CFLAGS) -MT fstream_test-fstream_test.obj -MD -MP -MF $(DEPDIR)/fstream_test-fstream_test.Tpo -c -o fstream_test-fstream_test.obj `if test -f 'fstream_test.c'; then $(CYGPATH_W) 'fstream_test.c'; else $(CYGPATH_W) '$(srcdir)/fstream_test.c'; fi`
    520 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) $(DEPDIR)/fstream_test-fstream_test.Tpo $(DEPDIR)/fstream_test-fstream_test.Po
    521 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='fstream_test.c' object='fstream_test-fstream_test.obj' libtool=no @AMDEPBACKSLASH@
    522 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    523 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fstream_test_CFLAGS) $(CFLAGS) -c -o fstream_test-fstream_test.obj `if test -f 'fstream_test.c'; then $(CYGPATH_W) 'fstream_test.c'; else $(CYGPATH_W) '$(srcdir)/fstream_test.c'; fi`
    524413
    525414ID: $(am__tagged_files)
     
    731620
    732621all-local :
    733         @+python test.py --debug=${debug} ${concurrent} ${quick_test}
     622        @+${TEST_PY} --debug=${debug} ${concurrent} ${quick_test}
    734623
    735624all-tests :
    736         @+python test.py --all --debug=${debug} ${concurrent}           # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program
     625        @+${TEST_PY} --all --debug=${debug} ${concurrent}               # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program
    737626
    738627clean-local :
     
    740629
    741630list :
    742         @+python test.py --list ${concurrent}
     631        @+${TEST_PY} --list ${concurrent}
    743632
    744633concurrency :
    745         @+python test.py --debug=${debug} -Iconcurrent
    746 
    747 .dummy : .dummy.c @CFA_BINDIR@/@CFA_NAME@
    748         ${CC} ${BUILD_FLAGS} -XCFA -n ${<} -o ${@}                              #don't use CFLAGS, this rule is not a real test
    749 
    750 % : %.c @CFA_BINDIR@/@CFA_NAME@
    751         ${CC} ${AM_CFLAGS} ${CFLAGS} ${<} -o ${@}
    752 
    753 declarationSpecifier: declarationSpecifier.c @CFA_BINDIR@/@CFA_NAME@
    754         ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
    755 
    756 gccExtensions : gccExtensions.c @CFA_BINDIR@/@CFA_NAME@
    757         ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
    758 
    759 extension : extension.c @CFA_BINDIR@/@CFA_NAME@
    760         ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
    761 
    762 attributes : attributes.c @CFA_BINDIR@/@CFA_NAME@
    763         ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
    764 
    765 functions: functions.c @CFA_BINDIR@/@CFA_NAME@
    766         ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
    767 
    768 KRfunctions : KRfunctions.c @CFA_BINDIR@/@CFA_NAME@
    769         ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
    770 
    771 sched-ext-parse : sched-ext-parse.c @CFA_BINDIR@/@CFA_NAME@
    772         ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
    773 
    774 gmp : gmp.c @CFA_BINDIR@/@CFA_NAME@
    775         ${CC} ${AM_CFLAGS} ${CFLAGS} -lgmp ${<} -o ${@}
    776 
    777 completeTypeError : completeTypeError.c @CFA_BINDIR@/@CFA_NAME@
    778         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
    779 
    780 typedefRedef-ERR1: typedefRedef.c @CFA_BINDIR@/@CFA_NAME@
    781         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
    782 
    783 alloc-ERROR: alloc.c @CFA_BINDIR@/@CFA_NAME@
    784         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
    785 
    786 fallthrough-ERROR: fallthrough.c @CFA_BINDIR@/@CFA_NAME@
    787         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
    788 
    789 nested-types-ERR1: nested-types.c @CFA_BINDIR@/@CFA_NAME@
    790         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
    791 
    792 nested-types-ERR2: nested-types.c @CFA_BINDIR@/@CFA_NAME@
    793         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR2 ${<} -o ${@}
     634        @+${TEST_PY} --debug=${debug} -Iconcurrent
     635$(headers_deps) :
     636        echo "Dummy rule, should never be called"
     637
     638# %/stdlib:
     639#       echo "Dummy rule, should never be called"
     640
     641# implicit rule so not all test require a rule
     642% : %.c $(CC)
     643        echo $(headers_deps)
     644        $(COMPILE) $(abspath ${<}) -o ${@}
     645
     646declarationSpecifier: declarationSpecifier.c $(CC)
     647        $(COMPILE) -CFA -XCFA -p $(abspath ${<}) -o ${@}
     648
     649gccExtensions : gccExtensions.c $(CC)
     650        $(COMPILE) -CFA -XCFA -p $(abspath ${<}) -o ${@}
     651
     652extension : extension.c $(CC)
     653        $(COMPILE) -CFA -XCFA -p $(abspath ${<}) -o ${@}
     654
     655attributes : attributes.c $(CC)
     656        $(COMPILE) -CFA -XCFA -p $(abspath ${<}) -o ${@}
     657
     658functions: functions.c $(CC)
     659        $(COMPILE) -CFA -XCFA -p $(abspath ${<}) -o ${@}
     660
     661KRfunctions : KRfunctions.c $(CC)
     662        $(COMPILE) -CFA -XCFA -p $(abspath ${<}) -o ${@}
     663
     664sched-ext-parse : sched-ext-parse.c $(CC)
     665        $(COMPILE) -CFA -XCFA -p $(abspath ${<}) -o ${@}
     666
     667gmp : gmp.c $(CC)
     668        $(COMPILE) -lgmp $(abspath ${<}) -o ${@}
     669
     670completeTypeError : completeTypeError.c $(CC)
     671        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
     672
     673typedefRedef-ERR1: typedefRedef.c $(CC)
     674        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
     675
     676alloc-ERROR: alloc.c $(CC)
     677        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
     678
     679fallthrough-ERROR: fallthrough.c $(CC)
     680        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
     681
     682nested-types-ERR1: nested-types.c $(CC)
     683        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
     684
     685nested-types-ERR2: nested-types.c $(CC)
     686        $(COMPILE) -DERR2 $(abspath ${<}) -o ${@}
    794687
    795688# Constructor/destructor tests
    796 raii/dtor-early-exit-ERR1: raii/dtor-early-exit.c @CFA_BINDIR@/@CFA_NAME@
    797         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
    798 
    799 raii/dtor-early-exit-ERR2: raii/dtor-early-exit.c @CFA_BINDIR@/@CFA_NAME@
    800         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR2 ${<} -o ${@}
    801 
    802 raii/memberCtors-ERR1: raii/memberCtors.c @CFA_BINDIR@/@CFA_NAME@
    803         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
    804 
    805 raii/ctor-autogen-ERR1: raii/ctor-autogen.c @CFA_BINDIR@/@CFA_NAME@
    806         ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
     689raii/dtor-early-exit-ERR1: raii/dtor-early-exit.c $(CC)
     690        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
     691
     692raii/dtor-early-exit-ERR2: raii/dtor-early-exit.c $(CC)
     693        $(COMPILE) -DERR2 $(abspath ${<}) -o ${@}
     694
     695raii/memberCtors-ERR1: raii/memberCtors.c $(CC)
     696        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
     697
     698raii/ctor-autogen-ERR1: raii/ctor-autogen.c $(CC)
     699        $(COMPILE) -DERR1 $(abspath ${<}) -o ${@}
    807700
    808701# Warnings
    809 warnings/self-assignment: warnings/self-assignment.c @CFA_BINDIR@/@CFA_NAME@
    810         ${CC} ${AM_CFLAGS} ${CFLAGS} ${<} 2> ${@} -fsyntax-only
     702warnings/self-assignment: warnings/self-assignment.c $(CC)
     703        $(COMPILE) $(abspath ${<}) 2> ${@} -fsyntax-only
    811704
    812705#builtins
    813 builtins/sync: builtins/sync.c @CFA_BINDIR@/@CFA_NAME@
    814         ${CC} ${AM_CFLAGS} ${CFLAGS} ${<} 2> ${@} -fsyntax-only
     706builtins/sync: builtins/sync.c $(CC)
     707        $(COMPILE) $(abspath ${<}) 2> ${@} -fsyntax-only
    815708
    816709# Tell versions [3.59,3.63) of GNU make to not export all variables.
  • src/tests/alloc.c

    rd1e0979 r3bbd012  
    1010// Created On       : Wed Feb  3 07:56:22 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Feb 16 15:42:31 2018
    13 // Update Count     : 330
     12// Last Modified On : Thu Jul 26 20:58:05 2018
     13// Update Count     : 334
    1414//
    1515
     
    5454        p = alloc( fill );                                  // CFA alloc, fill
    5555        printf( "CFA alloc, fill %08x\n", *p );
     56        free( p );
    5657
    5758
     
    218219        printf( "\n" );
    219220
    220         memset( sta, dim, fill );                           // CFA array memset, type safe
     221        amemset( sta, fill, dim );                                                      // CFA array memset, type safe
    221222        printf( "CFA array memset\n" );
    222223        for ( int i = 0; i < dim; i += 1 ) { printf( "%#x %a, ", sta[i].x, sta[i].y ); }
    223224        printf( "\n" );
    224225
    225         memcpy( sta1, sta, dim );                           // CFA array memcpy, type safe
    226         printf( "CFA memcpy\n" );
     226        amemcpy( sta1, sta, dim );                                                      // CFA array memcpy, type safe
     227        printf( "CFA array memcpy\n" );
    227228        for ( int i = 0; i < dim; i += 1 ) { printf( "%#x %a, ", sta1[i].x, sta1[i].y ); }
    228229        printf( "\n" );
  • src/tests/attributes.c

    rd1e0979 r3bbd012  
    1010// Created On       : Mon Feb  6 16:07:02 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Jul  8 21:12:07 2018
    13 // Update Count     : 8
     12// Last Modified On : Thu Jul 19 13:50:51 2018
     13// Update Count     : 15
    1414//
    1515
     
    4242    __attribute__(( unused )) int f5 __attribute__(( unused ));
    4343    __attribute__(( used )) int f6 __attribute__(( packed )), f7 __attribute__(( unused )) __attribute__(( unused )), __attribute__(( used )) f8 __attribute__(( unused ));
    44     int __attribute__(( unused ));
    4544    int ( ( * (f9) __attribute__(( unused )) ) __attribute__(( unused )) );
    4645};
     
    149148struct Vad {
    150149    int __attribute__(( unused ));
    151     int __attribute__(( unused )) * __attribute__(( unused ));
    152     int __attribute__(( unused )) [10] __attribute__(( unused ));
    153     int __attribute__(( unused )) (*)() __attribute__(( unused ));
     150    int __attribute__(( unused )) :4;
     151    int __attribute__(( unused )) :4, __attribute__(( unused )) :6;
    154152};
    155153
  • src/tests/io2.c

    rd1e0979 r3bbd012  
    1 // 
     1//
    22// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
    33//
    44// The contents of this file are covered under the licence agreement in the
    55// file "LICENCE" distributed with Cforall.
    6 // 
    7 // io2.c -- 
    8 // 
     6//
     7// io2.c --
     8//
    99// Author           : Peter A. Buhr
    1010// Created On       : Wed Mar  2 16:56:02 2016
     
    1212// Last Modified On : Thu May 24 21:17:41 2018
    1313// Update Count     : 103
    14 // 
     14//
    1515
    1616#include <fstream>
     17
     18 #define xstr(s) str(s)
     19#define str(s) #s
    1720
    1821int main() {
     
    3841        char s1[size], s2[size];
    3942
    40         ifstream in = { "io.data" };                                            // create / open file
     43        ifstream in = { xstr(IN_DIR) "io.data" };                                               // create / open file
    4144
    4245        sout | "input bacis types" | endl;
  • src/tests/preempt_longrun/Makefile.am

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

    rd1e0979 r3bbd012  
    337337AWK = @AWK@
    338338BACKEND_CC = @BACKEND_CC@
    339 CC = @CFA_BINDIR@/@CFA_NAME@
     339CC = ${top_builddir}/src/driver/cfa
    340340CCAS = @CCAS@
    341341CCASDEPMODE = @CCASDEPMODE@
     
    377377LTLIBOBJS = @LTLIBOBJS@
    378378MACHINE_TYPE = @MACHINE_TYPE@
    379 MAINT = @MAINT@
    380379MAKEINFO = @MAKEINFO@
    381380MKDIR_P = @MKDIR_P@
     
    466465.SUFFIXES:
    467466.SUFFIXES: .log .test .test$(EXEEXT) .trs
    468 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
     467$(srcdir)/Makefile.in: $(srcdir)/Makefile.am  $(am__configure_deps)
    469468        @for dep in $?; do \
    470469          case '$(am__configure_deps)' in \
     
    490489        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    491490
    492 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
     491$(top_srcdir)/configure: $(am__configure_deps)
    493492        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    494 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
     493$(ACLOCAL_M4): $(am__aclocal_m4_deps)
    495494        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
    496495$(am__aclocal_m4_deps):
  • src/tests/pybin/settings.py

    rd1e0979 r3bbd012  
     1from __future__ import print_function
     2
     3import os
    14import sys
     5
     6try :
     7        sys.path.append(os.getcwd())
     8        import config
     9
     10        SRCDIR = os.path.abspath(config.SRCDIR)
     11        BUILDDIR = os.path.abspath(config.BUILDDIR)
     12except:
     13        print('ERROR: missing config.py, re-run configure script.', file=sys.stderr)
     14        sys.exit(1)
    215
    316class Architecture:
     
    518                'x64'                   : 'x64',
    619                'x86-64'                : 'x64',
     20                'x86_64'                : 'x64',
    721                'x86'                   : 'x86',
    822                'i386'          : 'x86',
     
    2539                        self.cross_compile = False
    2640                        try:
    27                                 arch = machine_default()
     41                                arch = config.HOSTARCH
    2842                                self.target = Architecture.makeCanonical( arch )
    2943                        except KeyError:
     
    6680        arch       = Architecture(options.arch)
    6781
     82
    6883def updateMakeCmd(force, jobs):
    6984        global make
    7085
    7186        make = "make" if not force else ("make -j%i" % jobs)
    72 
    73 
    74 def set_machine_default( func ):
    75         global machine_default
    76 
    77         machine_default = func
  • src/tests/pybin/test_run.py

    rd1e0979 r3bbd012  
    2828
    2929        def prepare(self):
    30                 sh("mkdir -p %s" % os.path.join(self.path, '.err'))
    31                 sh("mkdir -p %s" % os.path.join(self.path, '.out'))
    32                 sh("mkdir -p %s" % os.path.join(self.path, '.in' ))
     30                mkdir( (self.output_log(), self.error_log(), self.input()            ) )
     31                rm   ( (self.output_log(), self.error_log(), self.target_executable()) )
    3332
    3433        def expect(self):
    35                 return ("%s/.expect/%s%s.txt" % (self.path, self.name, '' if not self.arch else ".%s" % self.arch))
     34                return os.path.normpath( os.path.join(settings.SRCDIR  , self.path, ".expect", "%s%s.txt" % (self.name,'' if not self.arch else ".%s" % self.arch)) )
    3635
    3736        def error_log(self):
    38                 return ("%s/.err/%s.log"    % (self.path, self.name))
     37                return os.path.normpath( os.path.join(settings.BUILDDIR, self.path, ".err"   , "%s.log" % self.name) )
    3938
    4039        def output_log(self):
    41                 return ("%s/.out/%s.log"    % (self.path, self.name))
     40                return os.path.normpath( os.path.join(settings.BUILDDIR, self.path, ".out"   , "%s.log" % self.name) )
    4241
    4342        def input(self):
    44                 return ("%s/.in/%s.txt"     % (self.path, self.name))
     43                return os.path.normpath( os.path.join(settings.SRCDIR  , self.path, ".in"    , "%s.txt" % self.name) )
    4544
    4645        def target_output(self):
     
    4847
    4948        def target(self):
    50                 return os.path.join(self.path, self.name)
     49                return os.path.normpath( os.path.join(self.path, self.name) )
     50
     51        def target_executable(self):
     52                return os.path.normpath( os.path.join(settings.BUILDDIR, self.path, self.name) )
    5153
    5254        @classmethod
     
    5860                test = Test()
    5961                test.name = os.path.basename(target)
    60                 test.path = os.path.dirname (target)
     62                test.path = os.path.relpath (os.path.dirname(target), settings.SRCDIR)
    6163                test.arch = settings.arch.toString() if settings.arch.cross_compile else ''
    6264                return test
  • src/tests/pybin/tools.py

    rd1e0979 r3bbd012  
    99import stat
    1010import sys
     11import fileinput
    1112
    1213from pybin import settings
     
    3334                out, err = proc.communicate()
    3435                return proc.returncode, out
     36
     37def is_ascii(fname):
     38        if not os.path.isfile(fname):
     39                return False
     40
     41        code, out = sh("file %s" % fname, print2stdout = False)
     42        if code != 0:
     43                return False
     44
     45        match = re.search(".*: (.*)", out)
     46
     47        if not match:
     48                return False
     49
     50        return match.group(1) == "ASCII text"
    3551
    3652# Remove 1 or more files silently
     
    4157        except TypeError:
    4258                sh("rm -f %s > /dev/null 2>&1" % files )
     59
     60# Create 1 or more directory
     61def mkdir( files ):
     62        try:
     63                for file in files:
     64                        sh("mkdir -p %s" % os.path.dirname(file) )
     65        except TypeError:
     66                sh("mkdir -p %s" % os.path.dirname(files) )
    4367
    4468def chdir( dest = __main__.__file__ ):
     
    105129# helper function to replace patterns in a file
    106130def file_replace(fname, pat, s_after):
    107     # first, see if the pattern is even in the file.
    108     with open(fname) as f:
    109         if not any(re.search(pat, line) for line in f):
    110             return # pattern does not occur in file so we are done.
    111 
    112     # pattern is in the file, so perform replace operation.
    113     with open(fname) as f:
    114         out_fname = fname + ".tmp"
    115         out = open(out_fname, "w")
    116         for line in f:
    117             out.write(re.sub(pat, s_after, line))
    118         out.close()
    119         os.rename(out_fname, fname)
     131        file = fileinput.FileInput(fname, inplace=True, backup='.bak')
     132        for line in file:
     133                print(line.replace(pat, s_after), end='')
     134        file.close()
    120135
    121136# helper function to check if a files contains only a specific string
     
    140155# transform path to canonical form
    141156def canonicalPath(path):
    142         return os.path.join('.', os.path.normpath(path) )
     157        abspath = os.path.abspath(__main__.__file__)
     158        dname = os.path.dirname(abspath)
     159        return os.path.join(dname, os.path.normpath(path) )
    143160
    144161# compare path even if form is different
     
    151168                for name in names:
    152169                        path = os.path.join(dirname, name)
    153 
    154170                        op( path )
    155171
    156172        # Start the walk
    157         os.path.walk('.', step, '')
     173        dname = settings.SRCDIR
     174        os.path.walk(dname, step, '')
    158175
    159176################################################################################
    160177#               system
    161178################################################################################
    162 
    163 # parses the Makefile to find the machine type (32-bit / 64-bit)
    164 def getMachineType():
    165         sh('echo "void ?{}(int&a,int b){}int main(){return 0;}" > .dummy.c')
    166         ret, out = make('.dummy', silent = True)
    167 
    168         if ret != 0:
    169                 print("Failed to identify architecture:")
    170                 print(out)
    171                 print("Stopping")
    172                 rm( (".dummy.c",".dummy") )
    173                 sys.exit(1)
    174 
    175         _, out = sh("file .dummy", print2stdout=False)
    176         rm( (".dummy.c",".dummy") )
    177 
    178         if settings.dry_run :
    179                 return 'x64'
    180 
    181         return re.search(r"[^,]+,([^,]+),", out).group(1).strip()
    182 
    183179# count number of jobs to create
    184180def jobCount( options, tests ):
     
    244240        else:
    245241                print(text)
    246 
    247 settings.set_machine_default( getMachineType )
  • src/tests/structMember.c

    rd1e0979 r3bbd012  
    1 typedef int T;
     1typedef int TD;
     2extern struct TTT {};
    23
    34struct S {
     
    89        int m4, m5, m6;
    910        int *m7, *m8, *m9;
    10         int (*m10)();
    11         int *(*m11)(int);
    12         T (T);
     11        __extension__ int (*m10)();
     12        __extension__ int *(*m11)(int);
     13//      TD (TD);
    1314
    14 // Cforall extensions
     15// Cforall declarations
    1516
    1617        * int m12, m13;
    1718        * [ * int ] (int) m14;
    18         int ;
    19         int , , ;
    20         int * , , ;
    21         int *, *, *;
    22         * int , , ;
    23         int (*)();
    24         int (**)( int );
    25         T ;
    2619
    27 // errors
     20// C anonymous declarations (padding)
    2821
    29 //    void f(void);
     22        int :4;
     23        int :4, :6;
     24
     25// Cforall anonymous declarations (padding)
     26
     27        int @;
     28        TD @;
     29        int @, @, @;
     30        int * @ , @, @;
     31        int * @, * @, * @;
     32        * int @, @, @;
     33        struct TTT @;
     34        TTT @, @;
     35        int @ :4, @ :6;
     36        * int @, @;
     37        int (*@)();
     38        int (*@)(int), (*@)(int);
     39        * [int](int) @, @;
     40        int (**@)( int );
     41        * * [int](int) @;
     42
     43// C aggregate open declarations
     44
     45        __extension__ union { int i; };
     46        struct T { int k; };
     47
     48// Cforall forward declaration
     49
     50        struct PPP;
     51        __extension__ struct QQQ;
     52
     53// C useless declarations
     54
     55        int;
     56        TD;
     57        unsigned int;
     58        __extension__ long double;
     59        _Complex;
     60        double _Complex;
     61        volatile zero_t;
     62        const one_t;
     63        S;
     64        .S;
     65        S.T;
     66        .S.T;
     67        forall( otype S, otype T ) struct W {
     68                struct X {};
     69        };
     70        W(int);
     71        W(int).X;
    3072};
    3173
    3274struct S s;
     75
     76// Cforall Plan 9 declarations
     77
     78struct UUU {};
     79extern struct SSS {
     80        inline struct WWW {};
     81        inline UUU;
     82        inline UUU *, **;
     83        inline UUU (*)( int p );
     84        inline int;
     85        inline int *;
     86        inline * int;
     87        inline int (*)( int p );
     88        inline * [int](int p);
     89};
    3390
    3491union U {
  • src/tests/test.py

    rd1e0979 r3bbd012  
    1919
    2020        def matchTest(path):
    21                 match = re.search("(\.[\w\/\-_]*)\/.expect\/([\w\-_]+)(\.[\w\-_]+)?\.txt", path)
     21                match = re.search("%s\/([\w\/\-_]*).expect\/([\w\-_]+)(\.[\w\-_]+)?\.txt" % settings.SRCDIR, path)
    2222                if match :
    2323                        test = Test()
     
    6464                        testname = canonicalPath( testname )
    6565                        if Test.valid_name(testname):
    66                                 found = [test for test in allTests if test.target() == testname]
     66                                found = [test for test in allTests if canonicalPath( test.target() ) == testname]
    6767                                tests.append( found[0] if len(found) == 1 else Test.from_target(testname) )
    6868                        else :
     
    116116#               running test functions
    117117################################################################################
     118# fix the absolute paths in the output
     119def fixoutput( fname ):
     120        if not is_ascii(fname):
     121                return
     122
     123        file_replace(fname, "%s/" % settings.SRCDIR, "")
     124
     125
    118126# logic to run a single test and return the result (No handling of printing or other test framework logic)
    119127def run_single_test(test):
    120128
    121129        # find the output file based on the test name and options flag
     130        exe_file = test.target_executable();
    122131        out_file = test.target_output()
    123132        err_file = test.error_log()
     
    127136        # prepare the proper directories
    128137        test.prepare()
    129 
    130         # remove any outputs from the previous tests to prevent side effects
    131         rm( (out_file, err_file, test.target()) )
    132138
    133139        # build, skipping to next test on error
     
    146152        if make_ret == 0 or settings.dry_run:
    147153                before = time.time()
    148                 if settings.dry_run or fileIsExecutable(test.target()) :
     154                if settings.dry_run or fileIsExecutable(exe_file) :
    149155                        # run test
    150                         retcode, _ = sh("timeout 60 %s > %s 2>&1" % (test.target(), out_file), input = in_file)
     156                        retcode, _ = sh("timeout 60 %s > %s 2>&1" % (exe_file, out_file), input = in_file)
    151157                else :
    152158                        # simply cat the result into the output
    153                         retcode, _ = sh("cat %s > %s" % (test.target(), out_file))
     159                        retcode, _ = sh("cat %s > %s" % (exe_file, out_file))
    154160
    155161                after = time.time()
     
    170176                else :
    171177                        # fetch return code and error from the diff command
     178                        fixoutput(out_file)
    172179                        retcode, error = diff(cmp_file, out_file)
    173180
     
    241248################################################################################
    242249if __name__ == "__main__":
    243         #always run from same folder
    244         chdir()
    245250
    246251        # parse the command line arguments
Note: See TracChangeset for help on using the changeset viewer.