Changeset 2514607d


Ignore:
Timestamp:
Jul 23, 2018, 6:00:57 PM (3 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, no_list, persistent-indexer
Children:
e68b3a8
Parents:
cbdf565 (diff), c29c342 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Location:
src
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • src/Common/SemanticError.h

    rcbdf565 r2514607d  
    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},
    5960};
    6061
     
    6465        BadQualifiersZeroOne,
    6566        AggrForwardDecl,
    66         NUMBER_OF_WARNINGS, //This MUST be the last warning
     67        SuperfluousDecl,
     68        NUMBER_OF_WARNINGS, // This MUST be the last warning
    6769};
    6870
  • src/Parser/DeclarationNode.cc

    rcbdf565 r2514607d  
    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

    rcbdf565 r2514607d  
    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

    rcbdf565 r2514607d  
    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

    rcbdf565 r2514607d  
    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/parser.yy

    rcbdf565 r2514607d  
    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 : Fri Jul 20 11:46:46 2018
     13// Update Count     : 3837
    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        ;
  • src/SymTab/Validate.cc

    rcbdf565 r2514607d  
    368368                                auto base = td->base;
    369369                                assert( base );
    370                                 return base->clone();
     370                                Type * ret = base->clone();
     371                                ret->get_qualifiers() = qualType->get_qualifiers();
     372                                return ret;
    371373                        } else {
    372374                                // .T => T is not a type name
     
    388390                                        if ( StructDecl * aggr = dynamic_cast< StructDecl * >( member ) ) {
    389391                                                if ( aggr->name == inst->name ) {
     392                                                        // TODO: is this case, and other non-TypeInstType cases, necessary?
    390393                                                        return new StructInstType( qualType->get_qualifiers(), aggr );
    391394                                                }
     
    404407                                        }
    405408                                } else if ( TypeInstType * inst = dynamic_cast< TypeInstType * >( child ) ) {
    406                                         // struct typedefs are being replaced by forward decls too early; move it to hoist struct
     409                                        // name on the right is a typedef
    407410                                        if ( NamedTypeDecl * aggr = dynamic_cast< NamedTypeDecl * > ( member ) ) {
    408411                                                if ( aggr->name == inst->name ) {
    409412                                                        assert( aggr->base );
    410                                                         return aggr->base->clone();
     413                                                        Type * ret = aggr->base->clone();
     414                                                        ret->get_qualifiers() = qualType->get_qualifiers();
     415                                                        return ret;
    411416                                                }
    412417                                        }
  • src/driver/cc1.cc

    rcbdf565 r2514607d  
    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/libcfa/concurrency/kernel.c

    rcbdf565 r2514607d  
    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

    rcbdf565 r2514607d  
    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

    rcbdf565 r2514607d  
    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

    rcbdf565 r2514607d  
    2222void kernel_stop_preemption();
    2323void update_preemption( processor * this, Duration duration );
    24 void tick_preemption();
    2524
    2625struct preemption_scope {
  • src/tests/.expect/attributes.x64.txt

    rcbdf565 r2514607d  
    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;
     
    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

    rcbdf565 r2514607d  
    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

    rcbdf565 r2514607d  
    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/attributes.c

    rcbdf565 r2514607d  
    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
Note: See TracChangeset for help on using the changeset viewer.