Changeset 29917c6


Ignore:
Timestamp:
Aug 16, 2016, 6:09:36 PM (6 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
08ac489
Parents:
0da3e2c (diff), b7ea418 (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:

more refactoring of parser code

Location:
src
Files:
2 added
8 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    r0da3e2c r29917c6  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Aug 15 20:48:55 2016
    13 // Update Count     : 178
     12// Last Modified On : Tue Aug 16 18:00:34 2016
     13// Update Count     : 179
    1414//
    1515
     
    2525#include "SynTree/Expression.h"
    2626
    27 #include "Parser.h"
    2827#include "TypedefTable.h"
    2928extern TypedefTable typedefTable;
     
    4847        newnode->type = maybeClone( type );
    4948        newnode->name = name;
    50         newnode->storageClasses = storageClasses;
     49        newnode->storageClass = storageClass;
     50        newnode->isInline = isInline;
     51        newnode->isNoreturn = isNoreturn;
    5152        newnode->bitfieldWidth = bitfieldWidth;
    5253        newnode->hasEllipsis = hasEllipsis;
     
    5758} // DeclarationNode::clone
    5859
    59 DeclarationNode::DeclarationNode() : type( 0 ), bitfieldWidth( 0 ), initializer( 0 ), hasEllipsis( false ), linkage( ::linkage ) {
     60DeclarationNode::DeclarationNode()
     61        : type( 0 )
     62        , storageClass( NoStorageClass )
     63        , isInline( false )
     64        , isNoreturn( false )
     65        , bitfieldWidth( 0 )
     66        , initializer( 0 )
     67        , hasEllipsis( false )
     68        , linkage( ::linkage )
     69        , extension( false )
     70        , error() {
    6071}
    6172
     
    8293        } // if
    8394
    84         printEnums( storageClasses.begin(), storageClasses.end(), DeclarationNode::storageName, os );
     95        if(storageClass != NoStorageClass) os << DeclarationNode::storageName[storageClass] << ' ';
     96        if(isInline) os << DeclarationNode::storageName[Inline] << ' ';
     97        if(isNoreturn) os << DeclarationNode::storageName[Noreturn] << ' ';
    8598        if ( type ) {
    8699                type->print( os, indent );
     
    143156DeclarationNode *DeclarationNode::newStorageClass( DeclarationNode::StorageClass sc ) {
    144157        DeclarationNode *newnode = new DeclarationNode;
    145         newnode->storageClasses.push_back( sc );
     158        switch (sc) {
     159                case Inline: newnode->isInline = true; break;
     160                case Noreturn: newnode->isNoreturn = true; break;
     161                default: newnode->storageClass = sc; break;
     162        }
    146163        return newnode;
    147164} // DeclarationNode::newStorageClass
     
    359376DeclarationNode *DeclarationNode::addQualifiers( DeclarationNode *q ) {
    360377        if ( q ) {
    361                 storageClasses.splice( storageClasses.end(), q->storageClasses );
     378                copyStorageClasses(q);
    362379                if ( q->type ) {
    363380                        if ( ! type ) {
     
    386403
    387404DeclarationNode *DeclarationNode::copyStorageClasses( DeclarationNode *q ) {
    388         storageClasses = q->storageClasses;
     405        isInline = isInline || q->isInline;
     406        isNoreturn = isNoreturn || q->isNoreturn;
     407        if(storageClass == NoStorageClass) {
     408                storageClass = q->storageClass;
     409        }
     410        else if (q->storageClass != NoStorageClass) {
     411                q->error = "invalid combination of storage classes in declaration of ";
     412        }
     413        if(error.empty()) error = q->error;
    389414        return this;
    390415}
     
    446471DeclarationNode *DeclarationNode::addType( DeclarationNode *o ) {
    447472        if ( o ) {
    448                 storageClasses.splice( storageClasses.end(), o->storageClasses );
     473                copyStorageClasses( o );
    449474                if ( o->type ) {
    450475                        if ( ! type ) {
     
    693718        } // if
    694719        newnode->type->forall = maybeClone( type->forall );
    695         newnode->storageClasses = storageClasses;
     720        newnode->copyStorageClasses( this );
    696721        newnode->name = assign_strptr( newName );
    697722        return newnode;
     
    700725DeclarationNode *DeclarationNode::cloneBaseType( DeclarationNode *o ) {
    701726        if ( o ) {
    702                 o->storageClasses.insert( o->storageClasses.end(), storageClasses.begin(), storageClasses.end() );
     727                o->copyStorageClasses( this );
    703728                if ( type ) {
    704729                        TypeData *srcType = type;
     
    733758        DeclarationNode *newnode = new DeclarationNode;
    734759        newnode->type = maybeClone( type );
    735         newnode->storageClasses = storageClasses;
     760        newnode->copyStorageClasses( this );
    736761        newnode->name = assign_strptr( newName );
    737762        return newnode;
     
    740765DeclarationNode *DeclarationNode::cloneType( DeclarationNode *o ) {
    741766        if ( o ) {
    742                 o->storageClasses.insert( o->storageClasses.end(), storageClasses.begin(), storageClasses.end() );
     767                o->copyStorageClasses( this );
    743768                if ( type ) {
    744769                        TypeData *newType = type->clone();
     
    855880
    856881Declaration *DeclarationNode::build() const {
     882        if( !error.empty() ) throw SemanticError( error, this );
    857883        if ( type ) {
    858                 return type->buildDecl( name, buildStorageClass(), maybeBuild< Expression >( bitfieldWidth ), buildFuncSpecifier( Inline ), buildFuncSpecifier( Noreturn ), linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension );
    859         } // if
    860         if ( ! buildFuncSpecifier( Inline ) && ! buildFuncSpecifier( Noreturn ) ) {
    861                 return (new ObjectDecl( name, buildStorageClass(), linkage, maybeBuild< Expression >( bitfieldWidth ), 0, maybeBuild< Initializer >( initializer ) ))->set_extension( extension );
     884                return type->buildDecl( name, storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension );
     885        } // if
     886        if ( ! isInline && ! isNoreturn ) {
     887                return (new ObjectDecl( name, storageClass, linkage, maybeBuild< Expression >( bitfieldWidth ), 0, maybeBuild< Initializer >( initializer ) ))->set_extension( extension );
    862888        } // if
    863889        throw SemanticError( "invalid function specifier in declaration of ", this );
     
    898924}
    899925
    900 DeclarationNode::StorageClass DeclarationNode::buildStorageClass() const {
    901         DeclarationNode::StorageClass ret = DeclarationNode::NoStorageClass;
    902         for ( std::list< DeclarationNode::StorageClass >::const_iterator i = storageClasses.begin(); i != storageClasses.end(); ++i ) {
    903           if ( *i == DeclarationNode::Inline || *i == DeclarationNode::Noreturn ) continue; // ignore function specifiers
    904           if ( ret != DeclarationNode::NoStorageClass ) {       // already have a valid storage class ?
    905                         throw SemanticError( "invalid combination of storage classes in declaration of ", this );
    906                 } // if
    907                 ret = *i;
    908         } // for
    909         return ret;
    910 }
    911 
    912 bool DeclarationNode::buildFuncSpecifier( DeclarationNode::StorageClass key ) const {
    913         std::list< DeclarationNode::StorageClass >::const_iterator first = std::find( storageClasses.begin(), storageClasses.end(), key );
    914   if ( first == storageClasses.end() ) return false;    // not found
    915         first = std::find( ++first, storageClasses.end(), key ); // found
    916   if ( first == storageClasses.end() ) return true;             // not found again
    917         throw SemanticError( "duplicate function specifier in declaration of ", this );
    918 }
     926// DeclarationNode::StorageClass DeclarationNode::buildStorageClass() const {
     927//      DeclarationNode::StorageClass ret = DeclarationNode::NoStorageClass;
     928//      for ( std::list< DeclarationNode::StorageClass >::const_iterator i = storageClasses.begin(); i != storageClasses.end(); ++i ) {
     929//        if ( *i == DeclarationNode::Inline || *i == DeclarationNode::Noreturn ) continue; // ignore function specifiers
     930//        if ( ret != DeclarationNode::NoStorageClass ) {       // already have a valid storage class ?
     931//                      throw SemanticError( "invalid combination of storage classes in declaration of ", this );
     932//              } // if
     933//              ret = *i;
     934//      } // for
     935//      return ret;
     936// }
     937
     938// bool DeclarationNode::buildFuncSpecifier( DeclarationNode::StorageClass key ) const {
     939//      std::list< DeclarationNode::StorageClass >::const_iterator first = std::find( storageClasses.begin(), storageClasses.end(), key );
     940//   if ( first == storageClasses.end() ) return false; // not found
     941//      first = std::find( ++first, storageClasses.end(), key ); // found
     942//   if ( first == storageClasses.end() ) return true;          // not found again
     943//      throw SemanticError( "duplicate function specifier in declaration of ", this );
     944// }
    919945
    920946// Local Variables: //
  • src/Parser/ParseNode.h

    r0da3e2c r29917c6  
    271271        DeclarationNode *set_extension( bool exten ) { extension = exten; return this; }
    272272  private:
    273         StorageClass buildStorageClass() const;
    274         bool buildFuncSpecifier( StorageClass key ) const;
     273        // StorageClass buildStorageClass() const;
     274        // bool buildFuncSpecifier( StorageClass key ) const;
    275275
    276276        TypeData *type;
    277277        std::string name;
    278         std::list< StorageClass > storageClasses;
     278        // std::list< StorageClass > storageClasses;
     279        StorageClass storageClass;
     280        bool isInline, isNoreturn;
    279281        std::list< std::string > attributes;
    280282        ExpressionNode *bitfieldWidth;
     
    284286        LinkageSpec::Type linkage;
    285287        bool extension = false;
     288        std::string error;
    286289
    287290        static UniqueName anonymous;
  • src/tests/.expect/declarationErrors.txt

    r0da3e2c r29917c6  
    11CFA Version 1.0.0 (debug)
    2 Error: invalid combination of storage classes in declaration of x9: static static volatile const short int
     2Error: invalid combination of storage classes in declaration of x9: static volatile const short int
    33
    4 Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous0
     4Error: invalid combination of storage classes in declaration of x18: static const volatile instance of struct __anonymous0
    55  with members
    66   with body
    77
    88
    9 Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous1
     9Error: invalid combination of storage classes in declaration of x19: static const volatile volatile instance of struct __anonymous1
    1010  with members
    1111   with body
    1212
    1313
    14 Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
     14Error: invalid combination of storage classes in declaration of x28: static volatile const instance of type Int
    1515
    1616make: *** [declarationErrors] Error 1
  • src/tests/.expect/declarationSpecifier.txt

    r0da3e2c r29917c6  
    1 CFA Version 1.0.0 (debug)
    2 Error: invalid combination of storage classes in declaration of x9: static static volatile const short int
    3 
    4 Error: invalid combination of storage classes in declaration of x18: static static const volatile instance of struct __anonymous8
    5   with members
    6    with body
    7 
    8 
    9 Error: invalid combination of storage classes in declaration of x19: static static const volatile volatile instance of struct __anonymous9
    10   with members
    11    with body
    12 
    13 
    14 Error: invalid combination of storage classes in declaration of x28: static static volatile const instance of type Int
    15 
    16 make: *** [declarationSpecifier] Error 1
     1extern void *malloc(long unsigned int __size);
     2extern void free(void *__ptr);
     3extern void abort(void);
     4extern int atexit(void (*__func)(void));
     5extern void exit(int __status);
     6extern int printf(const char *__restrict __format, ...);
     7volatile const short __x1__CVs_1;
     8static volatile const short __x2__CVs_1;
     9static volatile const short __x3__CVs_1;
     10static volatile const short __x4__CVs_1;
     11static volatile const short __x5__CVs_1;
     12static volatile const short __x6__CVs_1;
     13static volatile const short __x7__CVs_1;
     14static volatile const short __x8__CVs_1;
     15struct __anonymous0 {
     16    int __i__i_1;
     17};
     18static inline struct __anonymous0 ___operator_assign__F13s__anonymous0_P13s__anonymous013s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1, struct __anonymous0 ___src__13s__anonymous0_1){
     19    ((void)((*___dst__P13s__anonymous0_1).__i__i_1=___src__13s__anonymous0_1.__i__i_1));
     20    return ((struct __anonymous0 )___src__13s__anonymous0_1);
     21}
     22static inline void ___constructor__F_P13s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1){
     23    ((void)((*((int *)(&(*___dst__P13s__anonymous0_1).__i__i_1)))) /* ?{} */);
     24}
     25static inline void ___constructor__F_P13s__anonymous013s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1, struct __anonymous0 ___src__13s__anonymous0_1){
     26    ((void)((*((int *)(&(*___dst__P13s__anonymous0_1).__i__i_1)))=___src__13s__anonymous0_1.__i__i_1) /* ?{} */);
     27}
     28static inline void ___destructor__F_P13s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1){
     29    ((void)((*((int *)(&(*___dst__P13s__anonymous0_1).__i__i_1)))) /* ^?{} */);
     30}
     31static inline void ___constructor__F_P13s__anonymous0i_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1, int __i__i_1){
     32    ((void)((*((int *)(&(*___dst__P13s__anonymous0_1).__i__i_1)))=__i__i_1) /* ?{} */);
     33}
     34volatile const struct __anonymous0 __x10__CV13s__anonymous0_1;
     35struct __anonymous1 {
     36    int __i__i_1;
     37};
     38static inline struct __anonymous1 ___operator_assign__F13s__anonymous1_P13s__anonymous113s__anonymous1_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1, struct __anonymous1 ___src__13s__anonymous1_1){
     39    ((void)((*___dst__P13s__anonymous1_1).__i__i_1=___src__13s__anonymous1_1.__i__i_1));
     40    return ((struct __anonymous1 )___src__13s__anonymous1_1);
     41}
     42static inline void ___constructor__F_P13s__anonymous1_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1){
     43    ((void)((*((int *)(&(*___dst__P13s__anonymous1_1).__i__i_1)))) /* ?{} */);
     44}
     45static inline void ___constructor__F_P13s__anonymous113s__anonymous1_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1, struct __anonymous1 ___src__13s__anonymous1_1){
     46    ((void)((*((int *)(&(*___dst__P13s__anonymous1_1).__i__i_1)))=___src__13s__anonymous1_1.__i__i_1) /* ?{} */);
     47}
     48static inline void ___destructor__F_P13s__anonymous1_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1){
     49    ((void)((*((int *)(&(*___dst__P13s__anonymous1_1).__i__i_1)))) /* ^?{} */);
     50}
     51static inline void ___constructor__F_P13s__anonymous1i_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1, int __i__i_1){
     52    ((void)((*((int *)(&(*___dst__P13s__anonymous1_1).__i__i_1)))=__i__i_1) /* ?{} */);
     53}
     54volatile const struct __anonymous1 __x11__CV13s__anonymous1_1;
     55struct __anonymous2 {
     56    int __i__i_1;
     57};
     58static inline struct __anonymous2 ___operator_assign__F13s__anonymous2_P13s__anonymous213s__anonymous2_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1, struct __anonymous2 ___src__13s__anonymous2_1){
     59    ((void)((*___dst__P13s__anonymous2_1).__i__i_1=___src__13s__anonymous2_1.__i__i_1));
     60    return ((struct __anonymous2 )___src__13s__anonymous2_1);
     61}
     62static inline void ___constructor__F_P13s__anonymous2_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1){
     63    ((void)((*((int *)(&(*___dst__P13s__anonymous2_1).__i__i_1)))) /* ?{} */);
     64}
     65static inline void ___constructor__F_P13s__anonymous213s__anonymous2_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1, struct __anonymous2 ___src__13s__anonymous2_1){
     66    ((void)((*((int *)(&(*___dst__P13s__anonymous2_1).__i__i_1)))=___src__13s__anonymous2_1.__i__i_1) /* ?{} */);
     67}
     68static inline void ___destructor__F_P13s__anonymous2_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1){
     69    ((void)((*((int *)(&(*___dst__P13s__anonymous2_1).__i__i_1)))) /* ^?{} */);
     70}
     71static inline void ___constructor__F_P13s__anonymous2i_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1, int __i__i_1){
     72    ((void)((*((int *)(&(*___dst__P13s__anonymous2_1).__i__i_1)))=__i__i_1) /* ?{} */);
     73}
     74volatile const struct __anonymous2 __x12__CV13s__anonymous2_1;
     75struct __anonymous3 {
     76    int __i__i_1;
     77};
     78static inline struct __anonymous3 ___operator_assign__F13s__anonymous3_P13s__anonymous313s__anonymous3_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1, struct __anonymous3 ___src__13s__anonymous3_1){
     79    ((void)((*___dst__P13s__anonymous3_1).__i__i_1=___src__13s__anonymous3_1.__i__i_1));
     80    return ((struct __anonymous3 )___src__13s__anonymous3_1);
     81}
     82static inline void ___constructor__F_P13s__anonymous3_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1){
     83    ((void)((*((int *)(&(*___dst__P13s__anonymous3_1).__i__i_1)))) /* ?{} */);
     84}
     85static inline void ___constructor__F_P13s__anonymous313s__anonymous3_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1, struct __anonymous3 ___src__13s__anonymous3_1){
     86    ((void)((*((int *)(&(*___dst__P13s__anonymous3_1).__i__i_1)))=___src__13s__anonymous3_1.__i__i_1) /* ?{} */);
     87}
     88static inline void ___destructor__F_P13s__anonymous3_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1){
     89    ((void)((*((int *)(&(*___dst__P13s__anonymous3_1).__i__i_1)))) /* ^?{} */);
     90}
     91static inline void ___constructor__F_P13s__anonymous3i_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1, int __i__i_1){
     92    ((void)((*((int *)(&(*___dst__P13s__anonymous3_1).__i__i_1)))=__i__i_1) /* ?{} */);
     93}
     94static volatile const struct __anonymous3 __x13__CV13s__anonymous3_1;
     95struct __anonymous4 {
     96    int __i__i_1;
     97};
     98static inline struct __anonymous4 ___operator_assign__F13s__anonymous4_P13s__anonymous413s__anonymous4_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1, struct __anonymous4 ___src__13s__anonymous4_1){
     99    ((void)((*___dst__P13s__anonymous4_1).__i__i_1=___src__13s__anonymous4_1.__i__i_1));
     100    return ((struct __anonymous4 )___src__13s__anonymous4_1);
     101}
     102static inline void ___constructor__F_P13s__anonymous4_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1){
     103    ((void)((*((int *)(&(*___dst__P13s__anonymous4_1).__i__i_1)))) /* ?{} */);
     104}
     105static inline void ___constructor__F_P13s__anonymous413s__anonymous4_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1, struct __anonymous4 ___src__13s__anonymous4_1){
     106    ((void)((*((int *)(&(*___dst__P13s__anonymous4_1).__i__i_1)))=___src__13s__anonymous4_1.__i__i_1) /* ?{} */);
     107}
     108static inline void ___destructor__F_P13s__anonymous4_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1){
     109    ((void)((*((int *)(&(*___dst__P13s__anonymous4_1).__i__i_1)))) /* ^?{} */);
     110}
     111static inline void ___constructor__F_P13s__anonymous4i_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1, int __i__i_1){
     112    ((void)((*((int *)(&(*___dst__P13s__anonymous4_1).__i__i_1)))=__i__i_1) /* ?{} */);
     113}
     114static volatile const struct __anonymous4 __x14__CV13s__anonymous4_1;
     115struct __anonymous5 {
     116    int __i__i_1;
     117};
     118static inline struct __anonymous5 ___operator_assign__F13s__anonymous5_P13s__anonymous513s__anonymous5_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1, struct __anonymous5 ___src__13s__anonymous5_1){
     119    ((void)((*___dst__P13s__anonymous5_1).__i__i_1=___src__13s__anonymous5_1.__i__i_1));
     120    return ((struct __anonymous5 )___src__13s__anonymous5_1);
     121}
     122static inline void ___constructor__F_P13s__anonymous5_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1){
     123    ((void)((*((int *)(&(*___dst__P13s__anonymous5_1).__i__i_1)))) /* ?{} */);
     124}
     125static inline void ___constructor__F_P13s__anonymous513s__anonymous5_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1, struct __anonymous5 ___src__13s__anonymous5_1){
     126    ((void)((*((int *)(&(*___dst__P13s__anonymous5_1).__i__i_1)))=___src__13s__anonymous5_1.__i__i_1) /* ?{} */);
     127}
     128static inline void ___destructor__F_P13s__anonymous5_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1){
     129    ((void)((*((int *)(&(*___dst__P13s__anonymous5_1).__i__i_1)))) /* ^?{} */);
     130}
     131static inline void ___constructor__F_P13s__anonymous5i_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1, int __i__i_1){
     132    ((void)((*((int *)(&(*___dst__P13s__anonymous5_1).__i__i_1)))=__i__i_1) /* ?{} */);
     133}
     134static volatile const struct __anonymous5 __x15__CV13s__anonymous5_1;
     135struct __anonymous6 {
     136    int __i__i_1;
     137};
     138static inline struct __anonymous6 ___operator_assign__F13s__anonymous6_P13s__anonymous613s__anonymous6_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1, struct __anonymous6 ___src__13s__anonymous6_1){
     139    ((void)((*___dst__P13s__anonymous6_1).__i__i_1=___src__13s__anonymous6_1.__i__i_1));
     140    return ((struct __anonymous6 )___src__13s__anonymous6_1);
     141}
     142static inline void ___constructor__F_P13s__anonymous6_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1){
     143    ((void)((*((int *)(&(*___dst__P13s__anonymous6_1).__i__i_1)))) /* ?{} */);
     144}
     145static inline void ___constructor__F_P13s__anonymous613s__anonymous6_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1, struct __anonymous6 ___src__13s__anonymous6_1){
     146    ((void)((*((int *)(&(*___dst__P13s__anonymous6_1).__i__i_1)))=___src__13s__anonymous6_1.__i__i_1) /* ?{} */);
     147}
     148static inline void ___destructor__F_P13s__anonymous6_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1){
     149    ((void)((*((int *)(&(*___dst__P13s__anonymous6_1).__i__i_1)))) /* ^?{} */);
     150}
     151static inline void ___constructor__F_P13s__anonymous6i_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1, int __i__i_1){
     152    ((void)((*((int *)(&(*___dst__P13s__anonymous6_1).__i__i_1)))=__i__i_1) /* ?{} */);
     153}
     154static volatile const struct __anonymous6 __x16__CV13s__anonymous6_1;
     155struct __anonymous7 {
     156    int __i__i_1;
     157};
     158static inline struct __anonymous7 ___operator_assign__F13s__anonymous7_P13s__anonymous713s__anonymous7_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1, struct __anonymous7 ___src__13s__anonymous7_1){
     159    ((void)((*___dst__P13s__anonymous7_1).__i__i_1=___src__13s__anonymous7_1.__i__i_1));
     160    return ((struct __anonymous7 )___src__13s__anonymous7_1);
     161}
     162static inline void ___constructor__F_P13s__anonymous7_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1){
     163    ((void)((*((int *)(&(*___dst__P13s__anonymous7_1).__i__i_1)))) /* ?{} */);
     164}
     165static inline void ___constructor__F_P13s__anonymous713s__anonymous7_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1, struct __anonymous7 ___src__13s__anonymous7_1){
     166    ((void)((*((int *)(&(*___dst__P13s__anonymous7_1).__i__i_1)))=___src__13s__anonymous7_1.__i__i_1) /* ?{} */);
     167}
     168static inline void ___destructor__F_P13s__anonymous7_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1){
     169    ((void)((*((int *)(&(*___dst__P13s__anonymous7_1).__i__i_1)))) /* ^?{} */);
     170}
     171static inline void ___constructor__F_P13s__anonymous7i_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1, int __i__i_1){
     172    ((void)((*((int *)(&(*___dst__P13s__anonymous7_1).__i__i_1)))=__i__i_1) /* ?{} */);
     173}
     174static volatile const struct __anonymous7 __x17__CV13s__anonymous7_1;
     175volatile const short __x20__CVs_1;
     176static volatile const short __x21__CVs_1;
     177static volatile const short __x22__CVs_1;
     178static volatile const short __x23__CVs_1;
     179static volatile const short __x24__CVs_1;
     180static volatile const short __x25__CVs_1;
     181static volatile const short __x26__CVs_1;
     182static volatile const short __x27__CVs_1;
     183struct __anonymous8 {
     184    short __i__s_1;
     185};
     186static inline struct __anonymous8 ___operator_assign__F13s__anonymous8_P13s__anonymous813s__anonymous8_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1, struct __anonymous8 ___src__13s__anonymous8_1){
     187    ((void)((*___dst__P13s__anonymous8_1).__i__s_1=___src__13s__anonymous8_1.__i__s_1));
     188    return ((struct __anonymous8 )___src__13s__anonymous8_1);
     189}
     190static inline void ___constructor__F_P13s__anonymous8_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1){
     191    ((void)((*((short *)(&(*___dst__P13s__anonymous8_1).__i__s_1)))) /* ?{} */);
     192}
     193static inline void ___constructor__F_P13s__anonymous813s__anonymous8_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1, struct __anonymous8 ___src__13s__anonymous8_1){
     194    ((void)((*((short *)(&(*___dst__P13s__anonymous8_1).__i__s_1)))=___src__13s__anonymous8_1.__i__s_1) /* ?{} */);
     195}
     196static inline void ___destructor__F_P13s__anonymous8_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1){
     197    ((void)((*((short *)(&(*___dst__P13s__anonymous8_1).__i__s_1)))) /* ^?{} */);
     198}
     199static inline void ___constructor__F_P13s__anonymous8s_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1, short __i__s_1){
     200    ((void)((*((short *)(&(*___dst__P13s__anonymous8_1).__i__s_1)))=__i__s_1) /* ?{} */);
     201}
     202volatile const struct __anonymous8 __x29__CV13s__anonymous8_1;
     203struct __anonymous9 {
     204    short __i__s_1;
     205};
     206static inline struct __anonymous9 ___operator_assign__F13s__anonymous9_P13s__anonymous913s__anonymous9_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1, struct __anonymous9 ___src__13s__anonymous9_1){
     207    ((void)((*___dst__P13s__anonymous9_1).__i__s_1=___src__13s__anonymous9_1.__i__s_1));
     208    return ((struct __anonymous9 )___src__13s__anonymous9_1);
     209}
     210static inline void ___constructor__F_P13s__anonymous9_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1){
     211    ((void)((*((short *)(&(*___dst__P13s__anonymous9_1).__i__s_1)))) /* ?{} */);
     212}
     213static inline void ___constructor__F_P13s__anonymous913s__anonymous9_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1, struct __anonymous9 ___src__13s__anonymous9_1){
     214    ((void)((*((short *)(&(*___dst__P13s__anonymous9_1).__i__s_1)))=___src__13s__anonymous9_1.__i__s_1) /* ?{} */);
     215}
     216static inline void ___destructor__F_P13s__anonymous9_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1){
     217    ((void)((*((short *)(&(*___dst__P13s__anonymous9_1).__i__s_1)))) /* ^?{} */);
     218}
     219static inline void ___constructor__F_P13s__anonymous9s_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1, short __i__s_1){
     220    ((void)((*((short *)(&(*___dst__P13s__anonymous9_1).__i__s_1)))=__i__s_1) /* ?{} */);
     221}
     222volatile const struct __anonymous9 __x30__CV13s__anonymous9_1;
     223struct __anonymous10 {
     224    short __i__s_1;
     225};
     226static inline struct __anonymous10 ___operator_assign__F14s__anonymous10_P14s__anonymous1014s__anonymous10_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1, struct __anonymous10 ___src__14s__anonymous10_1){
     227    ((void)((*___dst__P14s__anonymous10_1).__i__s_1=___src__14s__anonymous10_1.__i__s_1));
     228    return ((struct __anonymous10 )___src__14s__anonymous10_1);
     229}
     230static inline void ___constructor__F_P14s__anonymous10_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1){
     231    ((void)((*((short *)(&(*___dst__P14s__anonymous10_1).__i__s_1)))) /* ?{} */);
     232}
     233static inline void ___constructor__F_P14s__anonymous1014s__anonymous10_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1, struct __anonymous10 ___src__14s__anonymous10_1){
     234    ((void)((*((short *)(&(*___dst__P14s__anonymous10_1).__i__s_1)))=___src__14s__anonymous10_1.__i__s_1) /* ?{} */);
     235}
     236static inline void ___destructor__F_P14s__anonymous10_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1){
     237    ((void)((*((short *)(&(*___dst__P14s__anonymous10_1).__i__s_1)))) /* ^?{} */);
     238}
     239static inline void ___constructor__F_P14s__anonymous10s_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1, short __i__s_1){
     240    ((void)((*((short *)(&(*___dst__P14s__anonymous10_1).__i__s_1)))=__i__s_1) /* ?{} */);
     241}
     242volatile const struct __anonymous10 __x31__CV14s__anonymous10_1;
     243struct __anonymous11 {
     244    short __i__s_1;
     245};
     246static inline struct __anonymous11 ___operator_assign__F14s__anonymous11_P14s__anonymous1114s__anonymous11_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1, struct __anonymous11 ___src__14s__anonymous11_1){
     247    ((void)((*___dst__P14s__anonymous11_1).__i__s_1=___src__14s__anonymous11_1.__i__s_1));
     248    return ((struct __anonymous11 )___src__14s__anonymous11_1);
     249}
     250static inline void ___constructor__F_P14s__anonymous11_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1){
     251    ((void)((*((short *)(&(*___dst__P14s__anonymous11_1).__i__s_1)))) /* ?{} */);
     252}
     253static inline void ___constructor__F_P14s__anonymous1114s__anonymous11_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1, struct __anonymous11 ___src__14s__anonymous11_1){
     254    ((void)((*((short *)(&(*___dst__P14s__anonymous11_1).__i__s_1)))=___src__14s__anonymous11_1.__i__s_1) /* ?{} */);
     255}
     256static inline void ___destructor__F_P14s__anonymous11_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1){
     257    ((void)((*((short *)(&(*___dst__P14s__anonymous11_1).__i__s_1)))) /* ^?{} */);
     258}
     259static inline void ___constructor__F_P14s__anonymous11s_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1, short __i__s_1){
     260    ((void)((*((short *)(&(*___dst__P14s__anonymous11_1).__i__s_1)))=__i__s_1) /* ?{} */);
     261}
     262static volatile const struct __anonymous11 __x32__CV14s__anonymous11_1;
     263struct __anonymous12 {
     264    short __i__s_1;
     265};
     266static inline struct __anonymous12 ___operator_assign__F14s__anonymous12_P14s__anonymous1214s__anonymous12_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1, struct __anonymous12 ___src__14s__anonymous12_1){
     267    ((void)((*___dst__P14s__anonymous12_1).__i__s_1=___src__14s__anonymous12_1.__i__s_1));
     268    return ((struct __anonymous12 )___src__14s__anonymous12_1);
     269}
     270static inline void ___constructor__F_P14s__anonymous12_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1){
     271    ((void)((*((short *)(&(*___dst__P14s__anonymous12_1).__i__s_1)))) /* ?{} */);
     272}
     273static inline void ___constructor__F_P14s__anonymous1214s__anonymous12_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1, struct __anonymous12 ___src__14s__anonymous12_1){
     274    ((void)((*((short *)(&(*___dst__P14s__anonymous12_1).__i__s_1)))=___src__14s__anonymous12_1.__i__s_1) /* ?{} */);
     275}
     276static inline void ___destructor__F_P14s__anonymous12_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1){
     277    ((void)((*((short *)(&(*___dst__P14s__anonymous12_1).__i__s_1)))) /* ^?{} */);
     278}
     279static inline void ___constructor__F_P14s__anonymous12s_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1, short __i__s_1){
     280    ((void)((*((short *)(&(*___dst__P14s__anonymous12_1).__i__s_1)))=__i__s_1) /* ?{} */);
     281}
     282static volatile const struct __anonymous12 __x33__CV14s__anonymous12_1;
     283struct __anonymous13 {
     284    short __i__s_1;
     285};
     286static inline struct __anonymous13 ___operator_assign__F14s__anonymous13_P14s__anonymous1314s__anonymous13_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1, struct __anonymous13 ___src__14s__anonymous13_1){
     287    ((void)((*___dst__P14s__anonymous13_1).__i__s_1=___src__14s__anonymous13_1.__i__s_1));
     288    return ((struct __anonymous13 )___src__14s__anonymous13_1);
     289}
     290static inline void ___constructor__F_P14s__anonymous13_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1){
     291    ((void)((*((short *)(&(*___dst__P14s__anonymous13_1).__i__s_1)))) /* ?{} */);
     292}
     293static inline void ___constructor__F_P14s__anonymous1314s__anonymous13_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1, struct __anonymous13 ___src__14s__anonymous13_1){
     294    ((void)((*((short *)(&(*___dst__P14s__anonymous13_1).__i__s_1)))=___src__14s__anonymous13_1.__i__s_1) /* ?{} */);
     295}
     296static inline void ___destructor__F_P14s__anonymous13_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1){
     297    ((void)((*((short *)(&(*___dst__P14s__anonymous13_1).__i__s_1)))) /* ^?{} */);
     298}
     299static inline void ___constructor__F_P14s__anonymous13s_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1, short __i__s_1){
     300    ((void)((*((short *)(&(*___dst__P14s__anonymous13_1).__i__s_1)))=__i__s_1) /* ?{} */);
     301}
     302static volatile const struct __anonymous13 __x34__CV14s__anonymous13_1;
     303struct __anonymous14 {
     304    short __i__s_1;
     305};
     306static inline struct __anonymous14 ___operator_assign__F14s__anonymous14_P14s__anonymous1414s__anonymous14_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1, struct __anonymous14 ___src__14s__anonymous14_1){
     307    ((void)((*___dst__P14s__anonymous14_1).__i__s_1=___src__14s__anonymous14_1.__i__s_1));
     308    return ((struct __anonymous14 )___src__14s__anonymous14_1);
     309}
     310static inline void ___constructor__F_P14s__anonymous14_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1){
     311    ((void)((*((short *)(&(*___dst__P14s__anonymous14_1).__i__s_1)))) /* ?{} */);
     312}
     313static inline void ___constructor__F_P14s__anonymous1414s__anonymous14_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1, struct __anonymous14 ___src__14s__anonymous14_1){
     314    ((void)((*((short *)(&(*___dst__P14s__anonymous14_1).__i__s_1)))=___src__14s__anonymous14_1.__i__s_1) /* ?{} */);
     315}
     316static inline void ___destructor__F_P14s__anonymous14_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1){
     317    ((void)((*((short *)(&(*___dst__P14s__anonymous14_1).__i__s_1)))) /* ^?{} */);
     318}
     319static inline void ___constructor__F_P14s__anonymous14s_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1, short __i__s_1){
     320    ((void)((*((short *)(&(*___dst__P14s__anonymous14_1).__i__s_1)))=__i__s_1) /* ?{} */);
     321}
     322static volatile const struct __anonymous14 __x35__CV14s__anonymous14_1;
     323struct __anonymous15 {
     324    short __i__s_1;
     325};
     326static inline struct __anonymous15 ___operator_assign__F14s__anonymous15_P14s__anonymous1514s__anonymous15_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1, struct __anonymous15 ___src__14s__anonymous15_1){
     327    ((void)((*___dst__P14s__anonymous15_1).__i__s_1=___src__14s__anonymous15_1.__i__s_1));
     328    return ((struct __anonymous15 )___src__14s__anonymous15_1);
     329}
     330static inline void ___constructor__F_P14s__anonymous15_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1){
     331    ((void)((*((short *)(&(*___dst__P14s__anonymous15_1).__i__s_1)))) /* ?{} */);
     332}
     333static inline void ___constructor__F_P14s__anonymous1514s__anonymous15_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1, struct __anonymous15 ___src__14s__anonymous15_1){
     334    ((void)((*((short *)(&(*___dst__P14s__anonymous15_1).__i__s_1)))=___src__14s__anonymous15_1.__i__s_1) /* ?{} */);
     335}
     336static inline void ___destructor__F_P14s__anonymous15_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1){
     337    ((void)((*((short *)(&(*___dst__P14s__anonymous15_1).__i__s_1)))) /* ^?{} */);
     338}
     339static inline void ___constructor__F_P14s__anonymous15s_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1, short __i__s_1){
     340    ((void)((*((short *)(&(*___dst__P14s__anonymous15_1).__i__s_1)))=__i__s_1) /* ?{} */);
     341}
     342static volatile const struct __anonymous15 __x36__CV14s__anonymous15_1;
     343static inline volatile const int __f11__FCVi___1();
     344static inline volatile const int __f12__FCVi___1();
     345static inline volatile const int __f13__FCVi___1();
     346static inline volatile const int __f14__FCVi___1();
     347static inline volatile const int __f15__FCVi___1();
     348static inline volatile const int __f16__FCVi___1();
     349static inline volatile const int __f17__FCVi___1();
     350static inline volatile const int __f18__FCVi___1();
     351static inline volatile const short __f21__FCVs___1();
     352static inline volatile const short __f22__FCVs___1();
     353static inline volatile const short __f23__FCVs___1();
     354static inline volatile const short __f24__FCVs___1();
     355static inline volatile const short __f25__FCVs___1();
     356static inline volatile const short __f26__FCVs___1();
     357static inline volatile const short __f27__FCVs___1();
     358static inline volatile const short __f28__FCVs___1();
     359struct __anonymous16 {
     360    int __i__i_1;
     361};
     362static inline struct __anonymous16 ___operator_assign__F14s__anonymous16_P14s__anonymous1614s__anonymous16_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1, struct __anonymous16 ___src__14s__anonymous16_1){
     363    ((void)((*___dst__P14s__anonymous16_1).__i__i_1=___src__14s__anonymous16_1.__i__i_1));
     364    return ((struct __anonymous16 )___src__14s__anonymous16_1);
     365}
     366static inline void ___constructor__F_P14s__anonymous16_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1){
     367    ((void)((*((int *)(&(*___dst__P14s__anonymous16_1).__i__i_1)))) /* ?{} */);
     368}
     369static inline void ___constructor__F_P14s__anonymous1614s__anonymous16_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1, struct __anonymous16 ___src__14s__anonymous16_1){
     370    ((void)((*((int *)(&(*___dst__P14s__anonymous16_1).__i__i_1)))=___src__14s__anonymous16_1.__i__i_1) /* ?{} */);
     371}
     372static inline void ___destructor__F_P14s__anonymous16_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1){
     373    ((void)((*((int *)(&(*___dst__P14s__anonymous16_1).__i__i_1)))) /* ^?{} */);
     374}
     375static inline void ___constructor__F_P14s__anonymous16i_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1, int __i__i_1){
     376    ((void)((*((int *)(&(*___dst__P14s__anonymous16_1).__i__i_1)))=__i__i_1) /* ?{} */);
     377}
     378static inline volatile const struct __anonymous16 __f31__FCV14s__anonymous16___1();
     379struct __anonymous17 {
     380    int __i__i_1;
     381};
     382static inline struct __anonymous17 ___operator_assign__F14s__anonymous17_P14s__anonymous1714s__anonymous17_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1, struct __anonymous17 ___src__14s__anonymous17_1){
     383    ((void)((*___dst__P14s__anonymous17_1).__i__i_1=___src__14s__anonymous17_1.__i__i_1));
     384    return ((struct __anonymous17 )___src__14s__anonymous17_1);
     385}
     386static inline void ___constructor__F_P14s__anonymous17_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1){
     387    ((void)((*((int *)(&(*___dst__P14s__anonymous17_1).__i__i_1)))) /* ?{} */);
     388}
     389static inline void ___constructor__F_P14s__anonymous1714s__anonymous17_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1, struct __anonymous17 ___src__14s__anonymous17_1){
     390    ((void)((*((int *)(&(*___dst__P14s__anonymous17_1).__i__i_1)))=___src__14s__anonymous17_1.__i__i_1) /* ?{} */);
     391}
     392static inline void ___destructor__F_P14s__anonymous17_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1){
     393    ((void)((*((int *)(&(*___dst__P14s__anonymous17_1).__i__i_1)))) /* ^?{} */);
     394}
     395static inline void ___constructor__F_P14s__anonymous17i_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1, int __i__i_1){
     396    ((void)((*((int *)(&(*___dst__P14s__anonymous17_1).__i__i_1)))=__i__i_1) /* ?{} */);
     397}
     398static inline volatile const struct __anonymous17 __f32__FCV14s__anonymous17___1();
     399struct __anonymous18 {
     400    int __i__i_1;
     401};
     402static inline struct __anonymous18 ___operator_assign__F14s__anonymous18_P14s__anonymous1814s__anonymous18_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1, struct __anonymous18 ___src__14s__anonymous18_1){
     403    ((void)((*___dst__P14s__anonymous18_1).__i__i_1=___src__14s__anonymous18_1.__i__i_1));
     404    return ((struct __anonymous18 )___src__14s__anonymous18_1);
     405}
     406static inline void ___constructor__F_P14s__anonymous18_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1){
     407    ((void)((*((int *)(&(*___dst__P14s__anonymous18_1).__i__i_1)))) /* ?{} */);
     408}
     409static inline void ___constructor__F_P14s__anonymous1814s__anonymous18_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1, struct __anonymous18 ___src__14s__anonymous18_1){
     410    ((void)((*((int *)(&(*___dst__P14s__anonymous18_1).__i__i_1)))=___src__14s__anonymous18_1.__i__i_1) /* ?{} */);
     411}
     412static inline void ___destructor__F_P14s__anonymous18_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1){
     413    ((void)((*((int *)(&(*___dst__P14s__anonymous18_1).__i__i_1)))) /* ^?{} */);
     414}
     415static inline void ___constructor__F_P14s__anonymous18i_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1, int __i__i_1){
     416    ((void)((*((int *)(&(*___dst__P14s__anonymous18_1).__i__i_1)))=__i__i_1) /* ?{} */);
     417}
     418static inline volatile const struct __anonymous18 __f33__FCV14s__anonymous18___1();
     419struct __anonymous19 {
     420    int __i__i_1;
     421};
     422static inline struct __anonymous19 ___operator_assign__F14s__anonymous19_P14s__anonymous1914s__anonymous19_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1, struct __anonymous19 ___src__14s__anonymous19_1){
     423    ((void)((*___dst__P14s__anonymous19_1).__i__i_1=___src__14s__anonymous19_1.__i__i_1));
     424    return ((struct __anonymous19 )___src__14s__anonymous19_1);
     425}
     426static inline void ___constructor__F_P14s__anonymous19_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1){
     427    ((void)((*((int *)(&(*___dst__P14s__anonymous19_1).__i__i_1)))) /* ?{} */);
     428}
     429static inline void ___constructor__F_P14s__anonymous1914s__anonymous19_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1, struct __anonymous19 ___src__14s__anonymous19_1){
     430    ((void)((*((int *)(&(*___dst__P14s__anonymous19_1).__i__i_1)))=___src__14s__anonymous19_1.__i__i_1) /* ?{} */);
     431}
     432static inline void ___destructor__F_P14s__anonymous19_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1){
     433    ((void)((*((int *)(&(*___dst__P14s__anonymous19_1).__i__i_1)))) /* ^?{} */);
     434}
     435static inline void ___constructor__F_P14s__anonymous19i_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1, int __i__i_1){
     436    ((void)((*((int *)(&(*___dst__P14s__anonymous19_1).__i__i_1)))=__i__i_1) /* ?{} */);
     437}
     438static inline volatile const struct __anonymous19 __f34__FCV14s__anonymous19___1();
     439struct __anonymous20 {
     440    int __i__i_1;
     441};
     442static inline struct __anonymous20 ___operator_assign__F14s__anonymous20_P14s__anonymous2014s__anonymous20_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1, struct __anonymous20 ___src__14s__anonymous20_1){
     443    ((void)((*___dst__P14s__anonymous20_1).__i__i_1=___src__14s__anonymous20_1.__i__i_1));
     444    return ((struct __anonymous20 )___src__14s__anonymous20_1);
     445}
     446static inline void ___constructor__F_P14s__anonymous20_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1){
     447    ((void)((*((int *)(&(*___dst__P14s__anonymous20_1).__i__i_1)))) /* ?{} */);
     448}
     449static inline void ___constructor__F_P14s__anonymous2014s__anonymous20_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1, struct __anonymous20 ___src__14s__anonymous20_1){
     450    ((void)((*((int *)(&(*___dst__P14s__anonymous20_1).__i__i_1)))=___src__14s__anonymous20_1.__i__i_1) /* ?{} */);
     451}
     452static inline void ___destructor__F_P14s__anonymous20_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1){
     453    ((void)((*((int *)(&(*___dst__P14s__anonymous20_1).__i__i_1)))) /* ^?{} */);
     454}
     455static inline void ___constructor__F_P14s__anonymous20i_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1, int __i__i_1){
     456    ((void)((*((int *)(&(*___dst__P14s__anonymous20_1).__i__i_1)))=__i__i_1) /* ?{} */);
     457}
     458static inline volatile const struct __anonymous20 __f35__FCV14s__anonymous20___1();
     459struct __anonymous21 {
     460    int __i__i_1;
     461};
     462static inline struct __anonymous21 ___operator_assign__F14s__anonymous21_P14s__anonymous2114s__anonymous21_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1, struct __anonymous21 ___src__14s__anonymous21_1){
     463    ((void)((*___dst__P14s__anonymous21_1).__i__i_1=___src__14s__anonymous21_1.__i__i_1));
     464    return ((struct __anonymous21 )___src__14s__anonymous21_1);
     465}
     466static inline void ___constructor__F_P14s__anonymous21_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1){
     467    ((void)((*((int *)(&(*___dst__P14s__anonymous21_1).__i__i_1)))) /* ?{} */);
     468}
     469static inline void ___constructor__F_P14s__anonymous2114s__anonymous21_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1, struct __anonymous21 ___src__14s__anonymous21_1){
     470    ((void)((*((int *)(&(*___dst__P14s__anonymous21_1).__i__i_1)))=___src__14s__anonymous21_1.__i__i_1) /* ?{} */);
     471}
     472static inline void ___destructor__F_P14s__anonymous21_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1){
     473    ((void)((*((int *)(&(*___dst__P14s__anonymous21_1).__i__i_1)))) /* ^?{} */);
     474}
     475static inline void ___constructor__F_P14s__anonymous21i_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1, int __i__i_1){
     476    ((void)((*((int *)(&(*___dst__P14s__anonymous21_1).__i__i_1)))=__i__i_1) /* ?{} */);
     477}
     478static inline volatile const struct __anonymous21 __f36__FCV14s__anonymous21___1();
     479struct __anonymous22 {
     480    int __i__i_1;
     481};
     482static inline struct __anonymous22 ___operator_assign__F14s__anonymous22_P14s__anonymous2214s__anonymous22_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1, struct __anonymous22 ___src__14s__anonymous22_1){
     483    ((void)((*___dst__P14s__anonymous22_1).__i__i_1=___src__14s__anonymous22_1.__i__i_1));
     484    return ((struct __anonymous22 )___src__14s__anonymous22_1);
     485}
     486static inline void ___constructor__F_P14s__anonymous22_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1){
     487    ((void)((*((int *)(&(*___dst__P14s__anonymous22_1).__i__i_1)))) /* ?{} */);
     488}
     489static inline void ___constructor__F_P14s__anonymous2214s__anonymous22_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1, struct __anonymous22 ___src__14s__anonymous22_1){
     490    ((void)((*((int *)(&(*___dst__P14s__anonymous22_1).__i__i_1)))=___src__14s__anonymous22_1.__i__i_1) /* ?{} */);
     491}
     492static inline void ___destructor__F_P14s__anonymous22_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1){
     493    ((void)((*((int *)(&(*___dst__P14s__anonymous22_1).__i__i_1)))) /* ^?{} */);
     494}
     495static inline void ___constructor__F_P14s__anonymous22i_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1, int __i__i_1){
     496    ((void)((*((int *)(&(*___dst__P14s__anonymous22_1).__i__i_1)))=__i__i_1) /* ?{} */);
     497}
     498static inline volatile const struct __anonymous22 __f37__FCV14s__anonymous22___1();
     499struct __anonymous23 {
     500    int __i__i_1;
     501};
     502static inline struct __anonymous23 ___operator_assign__F14s__anonymous23_P14s__anonymous2314s__anonymous23_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1, struct __anonymous23 ___src__14s__anonymous23_1){
     503    ((void)((*___dst__P14s__anonymous23_1).__i__i_1=___src__14s__anonymous23_1.__i__i_1));
     504    return ((struct __anonymous23 )___src__14s__anonymous23_1);
     505}
     506static inline void ___constructor__F_P14s__anonymous23_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1){
     507    ((void)((*((int *)(&(*___dst__P14s__anonymous23_1).__i__i_1)))) /* ?{} */);
     508}
     509static inline void ___constructor__F_P14s__anonymous2314s__anonymous23_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1, struct __anonymous23 ___src__14s__anonymous23_1){
     510    ((void)((*((int *)(&(*___dst__P14s__anonymous23_1).__i__i_1)))=___src__14s__anonymous23_1.__i__i_1) /* ?{} */);
     511}
     512static inline void ___destructor__F_P14s__anonymous23_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1){
     513    ((void)((*((int *)(&(*___dst__P14s__anonymous23_1).__i__i_1)))) /* ^?{} */);
     514}
     515static inline void ___constructor__F_P14s__anonymous23i_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1, int __i__i_1){
     516    ((void)((*((int *)(&(*___dst__P14s__anonymous23_1).__i__i_1)))=__i__i_1) /* ?{} */);
     517}
     518static inline volatile const struct __anonymous23 __f38__FCV14s__anonymous23___1();
     519static inline volatile const short __f41__FCVs___1();
     520static inline volatile const short __f42__FCVs___1();
     521static inline volatile const short __f43__FCVs___1();
     522static inline volatile const short __f44__FCVs___1();
     523static inline volatile const short __f45__FCVs___1();
     524static inline volatile const short __f46__FCVs___1();
     525static inline volatile const short __f47__FCVs___1();
     526static inline volatile const short __f48__FCVs___1();
     527int main(int __argc__i_1, const char **__argv__PPCc_1){
     528    int _retVal0 = { 0 };
     529    ((void)(_retVal0=0) /* ?{} */);
     530    return ((int )_retVal0);
     531}
     532__attribute__ ((constructor(),)) static void _init_declarationSpecifier(void){
     533    ((void)___constructor__F_P13s__anonymous0_autogen___1(((struct __anonymous0 *)(&__x10__CV13s__anonymous0_1))));
     534    ((void)___constructor__F_P13s__anonymous1_autogen___1(((struct __anonymous1 *)(&__x11__CV13s__anonymous1_1))));
     535    ((void)___constructor__F_P13s__anonymous2_autogen___1(((struct __anonymous2 *)(&__x12__CV13s__anonymous2_1))));
     536    ((void)___constructor__F_P13s__anonymous3_autogen___1(((struct __anonymous3 *)(&__x13__CV13s__anonymous3_1))));
     537    ((void)___constructor__F_P13s__anonymous4_autogen___1(((struct __anonymous4 *)(&__x14__CV13s__anonymous4_1))));
     538    ((void)___constructor__F_P13s__anonymous5_autogen___1(((struct __anonymous5 *)(&__x15__CV13s__anonymous5_1))));
     539    ((void)___constructor__F_P13s__anonymous6_autogen___1(((struct __anonymous6 *)(&__x16__CV13s__anonymous6_1))));
     540    ((void)___constructor__F_P13s__anonymous7_autogen___1(((struct __anonymous7 *)(&__x17__CV13s__anonymous7_1))));
     541    ((void)___constructor__F_P13s__anonymous8_autogen___1(((struct __anonymous8 *)(&__x29__CV13s__anonymous8_1))));
     542    ((void)___constructor__F_P13s__anonymous9_autogen___1(((struct __anonymous9 *)(&__x30__CV13s__anonymous9_1))));
     543    ((void)___constructor__F_P14s__anonymous10_autogen___1(((struct __anonymous10 *)(&__x31__CV14s__anonymous10_1))));
     544    ((void)___constructor__F_P14s__anonymous11_autogen___1(((struct __anonymous11 *)(&__x32__CV14s__anonymous11_1))));
     545    ((void)___constructor__F_P14s__anonymous12_autogen___1(((struct __anonymous12 *)(&__x33__CV14s__anonymous12_1))));
     546    ((void)___constructor__F_P14s__anonymous13_autogen___1(((struct __anonymous13 *)(&__x34__CV14s__anonymous13_1))));
     547    ((void)___constructor__F_P14s__anonymous14_autogen___1(((struct __anonymous14 *)(&__x35__CV14s__anonymous14_1))));
     548    ((void)___constructor__F_P14s__anonymous15_autogen___1(((struct __anonymous15 *)(&__x36__CV14s__anonymous15_1))));
     549}
     550__attribute__ ((destructor(),)) static void _destroy_declarationSpecifier(void){
     551    ((void)___destructor__F_P14s__anonymous15_autogen___1(((struct __anonymous15 *)(&__x36__CV14s__anonymous15_1))));
     552    ((void)___destructor__F_P14s__anonymous14_autogen___1(((struct __anonymous14 *)(&__x35__CV14s__anonymous14_1))));
     553    ((void)___destructor__F_P14s__anonymous13_autogen___1(((struct __anonymous13 *)(&__x34__CV14s__anonymous13_1))));
     554    ((void)___destructor__F_P14s__anonymous12_autogen___1(((struct __anonymous12 *)(&__x33__CV14s__anonymous12_1))));
     555    ((void)___destructor__F_P14s__anonymous11_autogen___1(((struct __anonymous11 *)(&__x32__CV14s__anonymous11_1))));
     556    ((void)___destructor__F_P14s__anonymous10_autogen___1(((struct __anonymous10 *)(&__x31__CV14s__anonymous10_1))));
     557    ((void)___destructor__F_P13s__anonymous9_autogen___1(((struct __anonymous9 *)(&__x30__CV13s__anonymous9_1))));
     558    ((void)___destructor__F_P13s__anonymous8_autogen___1(((struct __anonymous8 *)(&__x29__CV13s__anonymous8_1))));
     559    ((void)___destructor__F_P13s__anonymous7_autogen___1(((struct __anonymous7 *)(&__x17__CV13s__anonymous7_1))));
     560    ((void)___destructor__F_P13s__anonymous6_autogen___1(((struct __anonymous6 *)(&__x16__CV13s__anonymous6_1))));
     561    ((void)___destructor__F_P13s__anonymous5_autogen___1(((struct __anonymous5 *)(&__x15__CV13s__anonymous5_1))));
     562    ((void)___destructor__F_P13s__anonymous4_autogen___1(((struct __anonymous4 *)(&__x14__CV13s__anonymous4_1))));
     563    ((void)___destructor__F_P13s__anonymous3_autogen___1(((struct __anonymous3 *)(&__x13__CV13s__anonymous3_1))));
     564    ((void)___destructor__F_P13s__anonymous2_autogen___1(((struct __anonymous2 *)(&__x12__CV13s__anonymous2_1))));
     565    ((void)___destructor__F_P13s__anonymous1_autogen___1(((struct __anonymous1 *)(&__x11__CV13s__anonymous1_1))));
     566    ((void)___destructor__F_P13s__anonymous0_autogen___1(((struct __anonymous0 *)(&__x10__CV13s__anonymous0_1))));
     567}
  • src/tests/Makefile.am

    r0da3e2c r29917c6  
    5353        ${CC} ${CFLAGS} -DERR2 ${<} -o ${@}
    5454
     55declarationSpecifier: declarationSpecifier.c
     56        ${CC} ${CFALGS} -CFA -XCFA -p ${<} -o ${@}
     57
    5558gccExtensions : gccExtensions.c
    5659        ${CC} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
  • src/tests/Makefile.in

    r0da3e2c r29917c6  
    661661        ${CC} ${CFLAGS} -DERR2 ${<} -o ${@}
    662662
     663declarationSpecifier: declarationSpecifier.c
     664        ${CC} ${CFALGS} -CFA -XCFA -p ${<} -o ${@}
     665
    663666gccExtensions : gccExtensions.c
    664667        ${CC} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@}
  • src/tests/declarationErrors.c

    r0da3e2c r29917c6  
     1const short static int volatile x4;
     2const static volatile short int x4;
    13static short int volatile static const x9;              // duplicate static
    24struct { int i; } const static volatile static x18;     // duplicate static
     
    57static Int volatile static const x28;                   // duplicate static
    68
     9const static inline const volatile int f01();           // duplicate const
     10volatile inline const volatile static int f02();        // duplicate volatile
     11const inline const volatile int static f03();           // duplicate const
     12volatile inline static const volatile int f04();        // duplicate volatile
     13const static const inline volatile int f05();           // duplicate const
     14volatile static const volatile inline int f06();        // duplicate volatile
     15const static const volatile int inline f07();           // duplicate const
     16volatile static const int inline volatile f08();        // duplicate volatile
     17
    718//Dummy main
    819int main(int argc, char const *argv[])
  • src/tests/declarationSpecifier.c

    r0da3e2c r29917c6  
    11typedef short int Int;
    2 
    32
    43const short int volatile x1;
    54static const short int volatile x2;
    65const static short int volatile x3;
    7 const short static int volatile x4;
    86const static volatile short int x4;
    97const short int static volatile x5;
     
    119const short volatile int static x7;
    1210short int volatile static const x8;
    13 static short int volatile static const x9;              // duplicate static
    1411
    1512const volatile struct { int i; } x10;
     
    2118struct { int i; } const static volatile x16;
    2219struct { int i; } const volatile static x17;
    23 struct { int i; } const static volatile static x18;     // duplicate static
    24 struct { int i; } const static volatile static volatile x19; // duplicate static & volatile
    2520
    2621const Int volatile x20;
     
    3227const volatile Int static x26;
    3328Int volatile static const x27;
    34 static Int volatile static const x28;                   // duplicate static
    3529
    3630const volatile struct { Int i; } x29;
     
    4236struct { Int i; } const static volatile x35;
    4337struct { Int i; } const volatile static x36;
    44 
    45 
    46 const static inline const volatile int f01();           // duplicate const
    47 volatile inline const volatile static int f02();        // duplicate volatile
    48 const inline const volatile int static f03();           // duplicate const
    49 volatile inline static const volatile int f04();        // duplicate volatile
    50 const static const inline volatile int f05();           // duplicate const
    51 volatile static const volatile inline int f06();        // duplicate volatile
    52 const static const volatile int inline f07();           // duplicate const
    53 volatile static const int inline volatile f08();        // duplicate volatile
    5438
    5539static inline const volatile int f11();
Note: See TracChangeset for help on using the changeset viewer.