Changes in / [3e91c6f9:3bd9508]


Ignore:
Files:
2 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • libcfa/prelude/prelude-gen.cc

    r3e91c6f9 r3bd9508  
    1010// Created On       : Sat Feb 16 08:44:58 2019
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Mar 10 17:30:48 2025
    13 // Update Count     : 65
     12// Last Modified On : Mon Jan 13 14:15:29 2025
     13// Update Count     : 55
    1414//
    1515
  • libcfa/prelude/prototypes.awk

    r3e91c6f9 r3bd9508  
    1010# Created On       : Sat May 16 07:57:37 2015
    1111# Last Modified By : Peter A. Buhr
    12 # Last Modified On : Mon Mar 10 17:52:39 2025
    13 # Update Count     : 73
     12# Last Modified On : Sat Feb 15 13:16:28 2025
     13# Update Count     : 60
    1414#
    1515
     
    160160        printf( "double _Complex __builtin_complex( double, double );\n" );
    161161        printf( "long double _Complex __builtin_complex( long double, long double );\n" );
    162 
    163         # assorted gcc builltin types
    164         # ARM vector floating-point types, strip off text "__builtin.*__"
    165         printf( "struct __builtin__Float32x4_t__ {};\n" );
    166         printf( "struct __builtin__Float64x2_t__ {};\n" );
    167         printf( "struct __builtin__SVFloat32_t__ {};\n" );
    168         printf( "struct __builtin__SVFloat64_t__ {};\n" );
    169         printf( "struct __builtin__SVBool_t__ {};\n" );
    170162} # END
    171163
  • src/BasicTypes-gen.cpp

    r3e91c6f9 r3bd9508  
    5353        Float128xComplex,
    5454        NUMBER_OF_BASIC_TYPES,
     55
     56        Float32x4,                                                                                      // ARM, gcc-14
     57        Float64x2,
     58        Svfloat32,
     59        Svfloat64,
     60        Svbool,
    5561};
    5662
  • src/Common/Iterate.hpp

    r3e91c6f9 r3bd9508  
    208208        return group_iterate_t<Args...>( std::forward<Args>( args )... );
    209209}
     210
     211// -----------------------------------------------------------------------------
     212// Helper struct and function to support
     213// for ( val : lazy_map( container1, f ) ) {}
     214// syntax to have a for each that iterates a container,
     215// mapping each element by applying f.
     216
     217template< typename T, typename Func >
     218struct lambda_iterate_t {
     219        const T & ref;
     220        std::function<Func> f;
     221
     222        struct iterator {
     223                typedef decltype(begin(ref)) Iter;
     224                Iter it;
     225                std::function<Func> f;
     226                iterator( Iter it, std::function<Func> f ) : it(it), f(f) {}
     227                iterator & operator++() {
     228                        ++it; return *this;
     229                }
     230                bool operator!=( const iterator &other ) const { return it != other.it; }
     231                auto operator*() const -> decltype(f(*it)) { return f(*it); }
     232        };
     233
     234        lambda_iterate_t( const T & ref, std::function<Func> f ) : ref(ref), f(f) {}
     235
     236        auto begin() const -> decltype(iterator(std::begin(ref), f)) { return iterator(std::begin(ref), f); }
     237        auto end() const   -> decltype(iterator(std::end(ref), f)) { return iterator(std::end(ref), f); }
     238};
     239
     240template< typename... Args >
     241lambda_iterate_t<Args...> lazy_map( const Args &... args ) {
     242        return lambda_iterate_t<Args...>( args...);
     243}
     244
     245// Local Variables: //
     246// tab-width: 4 //
     247// mode: c++ //
     248// compile-command: "make install" //
     249// End: //
  • src/GenPoly/InstantiateGeneric.cpp

    r3e91c6f9 r3bd9508  
    1010// Created On       : Tue Aug 16 10:51:00 2022
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Wed Mar 12 15:18:00 2025
    13 // Update Count     : 2
     12// Last Modified On : Mon Oct 31 16:48:00 2022
     13// Update Count     : 1
    1414//
    1515
     
    159159}
    160160
    161 /// Get the scrubbed type of a declaration (see scrubTypeVars functions).
    162 ast::TypeExpr const * scrubTypeDecl(
    163                 CodeLocation const & location, ast::TypeDecl const * typeDecl ) {
    164         switch ( typeDecl->kind ) {
    165         // Erase any incomplete dtype to `void` (`T *` -> `void *`).
    166         case ast::TypeDecl::Dtype:
    167                 return new ast::TypeExpr( location, new ast::VoidType() );
    168         // Erase any ftype to `void (*)(void)`.
    169         case ast::TypeDecl::Ftype:
    170                 return new ast::TypeExpr( location, new ast::FunctionType() );
    171         // Remaining cases are not supported.
    172         case ast::TypeDecl::Ttype:
    173                 assertf( false, "Ttype parameters are not currently allowed as parameters to generic types." );
    174                 break;
    175         default:
    176                 assertf( false, "Unhandled type parameter kind" );
    177                 break;
    178         }
    179 }
    180 
    181161/// Makes substitutions of params into baseParams; returns dtypeStatic if
    182162/// there is a concrete instantiation based only on {d,f}type-to-void
     
    210190                                gt |= GenericType::concrete;
    211191                        }
    212                 } else {
    213                         out.emplace_back( scrubTypeDecl( paramExpr->location, *baseParam ) );
     192                } else switch ( (*baseParam)->kind ) {
     193                case ast::TypeDecl::Dtype:
     194                        // Here, pretend that any incomplete dtype is `void`.
     195                        out.emplace_back( new ast::TypeExpr( paramExpr->location,
     196                                new ast::VoidType() ) );
     197                        break;
     198                case ast::TypeDecl::Ftype:
     199                        // Here, pretend that any ftype is `void (*)(void)`.
     200                        out.emplace_back( new ast::TypeExpr( paramExpr->location,
     201                                new ast::FunctionType() ) );
     202                        break;
     203                case ast::TypeDecl::Ttype:
     204                        assertf( false, "Ttype parameters are not currently allowed as parameters to generic types." );
     205                        break;
     206                default:
     207                        assertf( false, "Unhandled type parameter kind" );
     208                        break;
    214209                }
    215210        }
     
    448443                instantiations(), dtypeStatics(), typeNamer("_conc_") {}
    449444
    450         ast::StructDecl const * previsit( ast::StructDecl const * );
    451         ast::UnionDecl const * previsit( ast::UnionDecl const * );
    452 
    453445        ast::Type const * postvisit( ast::StructInstType const * inst );
    454446        ast::Type const * postvisit( ast::UnionInstType const * inst );
     
    489481
    490482        template<typename AggrDecl>
    491         AggrDecl const * fixAggrDecl( AggrDecl const * decl );
    492 
    493         template<typename AggrDecl>
    494483        ast::Type const * fixInstType( ast::SueInstType<AggrDecl> const * inst );
    495484
     
    500489                ast::vector<ast::TypeExpr> const & typeSubs );
    501490};
    502 
    503 ast::StructDecl const * GenericInstantiator::previsit( ast::StructDecl const * decl ) {
    504         return fixAggrDecl( decl );
    505 }
    506 
    507 ast::UnionDecl const * GenericInstantiator::previsit( ast::UnionDecl const * decl ) {
    508         return fixAggrDecl( decl );
    509 }
    510 
    511 template<typename AggrDecl>
    512 AggrDecl const * GenericInstantiator::fixAggrDecl( AggrDecl const * decl ) {
    513         // This function and stripDtypeParams handle declarations before their
    514         // first use (required to be in the previsit for types with a self use).
    515         if ( decl->params.empty() || !isDtypeStatic( decl->params ) ) {
    516                 return decl;
    517         }
    518 
    519         ast::vector<ast::TypeExpr> typeSubs;
    520         for ( auto const & param : decl->params ) {
    521                 assert( !param->isComplete() );
    522                 typeSubs.emplace_back( scrubTypeDecl( param->location, param ) );
    523         }
    524 
    525         assert( decl->unique() );
    526         auto mutDecl = ast::mutate( decl );
    527         stripDtypeParams( mutDecl, mutDecl->params, typeSubs );
    528 
    529         return mutDecl;
    530 }
    531491
    532492ast::Type const * GenericInstantiator::postvisit(
     
    571531        case GenericType::dtypeStatic:
    572532        {
    573                 // This call to stripDtypeParams is used when a forward declaration
    574                 // has allowed an instance to appear before the full declaration.
    575533                auto mutInst = ast::mutate( inst );
    576534                assert( mutInst->base->unique() );
  • src/Parser/lex.ll

    r3e91c6f9 r3bd9508  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Mon Mar  3 09:21:33 2025
    13  * Update Count     : 880
     12 * Last Modified On : Fri Jan 17 14:36:16 2025
     13 * Update Count     : 878
    1414 */
    1515
     
    240240basetypeof              { KEYWORD_RETURN(BASETYPEOF); }                 // CFA
    241241_Bool                   { KEYWORD_RETURN(BOOL); }                               // C99
    242 __SVBool_t              { KEYWORD_RETURN(BOOL); }                               // gcc (ARM)
     242__SVBool_t              { KEYWORD_RETURN(SVBOOL); }                             // gcc (ARM)
    243243break                   { KEYWORD_RETURN(BREAK); }
    244244case                    { KEYWORD_RETURN(CASE); }
     
    287287_Float128               { FLOATXX(FLOAT128); }                                  // GCC
    288288_Float128x              { FLOATXX(FLOAT128X); }                                 // GCC
    289 __Float32x4_t   { FLOATXX(FLOAT128); }                                  // GCC (ARM)
    290 __Float64x2_t   { FLOATXX(FLOAT128); }                                  // GCC (ARM)
    291 __SVFloat32_t   { FLOATXX(FLOAT128); }                                  // GCC (ARM)
    292 __SVFloat64_t   { FLOATXX(FLOAT128); }                                  // GCC (ARM)
     289__Float32x4_t   { FLOATXX(FLOAT32X4); }                                 // GCC (ARM)
     290__Float64x2_t   { FLOATXX(FLOAT64X2); }                                 // GCC (ARM)
     291__SVFloat32_t   { FLOATXX(SVFLOAT32); }                                 // GCC (ARM)
     292__SVFloat64_t   { FLOATXX(SVFLOAT64); }                                 // GCC (ARM)
    293293for                             { KEYWORD_RETURN(FOR); }
    294294forall                  { KEYWORD_RETURN(FORALL); }                             // CFA
  • src/Parser/parser.yy

    r3e91c6f9 r3bd9508  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Mar 13 09:23:21 2025
    13 // Update Count     : 7255
     12// Last Modified On : Mon Mar  3 20:47:00 2025
     13// Update Count     : 7254
    1414//
    1515
     
    22442244        basic_type_specifier
    22452245        | sue_type_specifier
    2246         | type_type_specifier attribute_list_opt
     2246        | type_type_specifier
    22472247        ;
    22482248
  • tests/.expect/attributes.x86.txt

    r3e91c6f9 r3bd9508  
    9797    __attribute__ ((used,used,unused)) signed int _X2f8i_1;
    9898    __attribute__ ((unused)) signed int *_X2f9Pi_1;
    99     __attribute__ ((used,unused)) signed int *_X3f10Pi_1;
     99    __attribute__ ((unused,used)) signed int *_X3f10Pi_1;
    100100    __attribute__ ((unused,unused)) signed int *_X3f11Pi_1;
    101101    __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1;
    102102    __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1;
    103103    __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_1;
    104     __attribute__ ((used)) signed short int _X4shi3s_1;
    105     __attribute__ ((used,used)) signed short int _X4shi4s_1;
    106104};
    107105static inline void _X12_constructorFv_S3Fdl_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1){
     
    162160    }
    163161
    164     {
    165         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    166     }
    167 
    168     {
    169         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    170     }
    171 
    172162}
    173163static inline void _X12_constructorFv_S3FdlS3Fdl_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) struct Fdl _X4_srcS3Fdl_1){
     
    228218    }
    229219
    230     {
    231         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1=_X4_srcS3Fdl_1._X4shi3s_1) /* ?{} */);
    232     }
    233 
    234     {
    235         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1=_X4_srcS3Fdl_1._X4shi4s_1) /* ?{} */);
    236     }
    237 
    238220}
    239221static inline void _X11_destructorFv_S3Fdl_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1){
    240     {
    241         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ^?{} */);
    242     }
    243 
    244     {
    245         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ^?{} */);
    246     }
    247 
    248222    {
    249223        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ^?{} */);
     
    362336
    363337    {
    364         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1=_X4_srcS3Fdl_1._X4shi3s_1));
    365     }
    366 
    367     {
    368         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1=_X4_srcS3Fdl_1._X4shi4s_1));
    369     }
    370 
    371     {
    372338        ((void)_X12_constructorFv_S3FdlS3Fdl_autogen___1((&_X4_retS3Fdl_1), (*_X4_dstS3Fdl_1)));
    373339    }
     
    432398    }
    433399
    434     {
    435         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    436     }
    437 
    438     {
    439         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    440     }
    441 
    442400}
    443401static inline void _X12_constructorFv_S3Fdlii_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1){
     
    498456    }
    499457
    500     {
    501         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    502     }
    503 
    504     {
    505         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    506     }
    507 
    508458}
    509459static inline void _X12_constructorFv_S3Fdliii_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1){
     
    564514    }
    565515
    566     {
    567         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    568     }
    569 
    570     {
    571         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    572     }
    573 
    574516}
    575517static inline void _X12_constructorFv_S3Fdliiii_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1){
     
    630572    }
    631573
    632     {
    633         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    634     }
    635 
    636     {
    637         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    638     }
    639 
    640574}
    641575static inline void _X12_constructorFv_S3Fdliiiii_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1){
     
    696630    }
    697631
    698     {
    699         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    700     }
    701 
    702     {
    703         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    704     }
    705 
    706632}
    707633static inline void _X12_constructorFv_S3Fdliiiiii_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1){
     
    762688    }
    763689
    764     {
    765         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    766     }
    767 
    768     {
    769         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    770     }
    771 
    772690}
    773691static inline void _X12_constructorFv_S3Fdliiiiiii_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1){
     
    828746    }
    829747
    830     {
    831         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    832     }
    833 
    834     {
    835         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    836     }
    837 
    838748}
    839749static inline void _X12_constructorFv_S3Fdliiiiiiii_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1){
     
    894804    }
    895805
    896     {
    897         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    898     }
    899 
    900     {
    901         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    902     }
    903 
    904806}
    905807static inline void _X12_constructorFv_S3FdliiiiiiiiPi_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused)) signed int *_X2f9Pi_1){
     
    960862    }
    961863
    962     {
    963         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    964     }
    965 
    966     {
    967         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    968     }
    969 
    970864}
    971865static inline void _X12_constructorFv_S3FdliiiiiiiiPiPi_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1){
     
    1026920    }
    1027921
    1028     {
    1029         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    1030     }
    1031 
    1032     {
    1033         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    1034     }
    1035 
    1036922}
    1037923static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPi_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1){
     
    1092978    }
    1093979
    1094     {
    1095         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    1096     }
    1097 
    1098     {
    1099         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    1100     }
    1101 
    1102980}
    1103981static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPi_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1){
     
    11581036    }
    11591037
    1160     {
    1161         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    1162     }
    1163 
    1164     {
    1165         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    1166     }
    1167 
    11681038}
    11691039static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPi_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1){
     
    12241094    }
    12251095
    1226     {
    1227         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    1228     }
    1229 
    1230     {
    1231         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    1232     }
    1233 
    12341096}
    12351097static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPi_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_1){
     
    12881150    {
    12891151        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X3f14Pi_1) /* ?{} */);
    1290     }
    1291 
    1292     {
    1293         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
    1294     }
    1295 
    1296     {
    1297         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    1298     }
    1299 
    1300 }
    1301 static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPis_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_1, signed short int _X4shi3s_1){
    1302     {
    1303         ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
    1304     }
    1305 
    1306     {
    1307         ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
    1308     }
    1309 
    1310     {
    1311         ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
    1312     }
    1313 
    1314     {
    1315         ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
    1316     }
    1317 
    1318     {
    1319         ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
    1320     }
    1321 
    1322     {
    1323         ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
    1324     }
    1325 
    1326     {
    1327         ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X2f7i_1) /* ?{} */);
    1328     }
    1329 
    1330     {
    1331         ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X2f8i_1) /* ?{} */);
    1332     }
    1333 
    1334     {
    1335         ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1=_X2f9Pi_1) /* ?{} */);
    1336     }
    1337 
    1338     {
    1339         ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
    1340     }
    1341 
    1342     {
    1343         ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
    1344     }
    1345 
    1346     {
    1347         ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
    1348     }
    1349 
    1350     {
    1351         ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
    1352     }
    1353 
    1354     {
    1355         ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X3f14Pi_1) /* ?{} */);
    1356     }
    1357 
    1358     {
    1359         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1=_X4shi3s_1) /* ?{} */);
    1360     }
    1361 
    1362     {
    1363         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
    1364     }
    1365 
    1366 }
    1367 static inline void _X12_constructorFv_S3FdliiiiiiiiPiPiPiPiPiPiss_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused)) signed int *_X2f9Pi_1, __attribute__ ((unused)) signed int *_X3f10Pi_1, __attribute__ ((unused,unused)) signed int *_X3f11Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1, __attribute__ ((unused,unused,unused)) signed int *_X3f14Pi_1, signed short int _X4shi3s_1, signed short int _X4shi4s_1){
    1368     {
    1369         ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
    1370     }
    1371 
    1372     {
    1373         ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
    1374     }
    1375 
    1376     {
    1377         ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
    1378     }
    1379 
    1380     {
    1381         ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
    1382     }
    1383 
    1384     {
    1385         ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
    1386     }
    1387 
    1388     {
    1389         ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
    1390     }
    1391 
    1392     {
    1393         ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X2f7i_1) /* ?{} */);
    1394     }
    1395 
    1396     {
    1397         ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X2f8i_1) /* ?{} */);
    1398     }
    1399 
    1400     {
    1401         ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1=_X2f9Pi_1) /* ?{} */);
    1402     }
    1403 
    1404     {
    1405         ((void)((*_X4_dstS3Fdl_1)._X3f10Pi_1=_X3f10Pi_1) /* ?{} */);
    1406     }
    1407 
    1408     {
    1409         ((void)((*_X4_dstS3Fdl_1)._X3f11Pi_1=_X3f11Pi_1) /* ?{} */);
    1410     }
    1411 
    1412     {
    1413         ((void)((*_X4_dstS3Fdl_1)._X3f12Pi_1=_X3f12Pi_1) /* ?{} */);
    1414     }
    1415 
    1416     {
    1417         ((void)((*_X4_dstS3Fdl_1)._X3f13Pi_1=_X3f13Pi_1) /* ?{} */);
    1418     }
    1419 
    1420     {
    1421         ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1=_X3f14Pi_1) /* ?{} */);
    1422     }
    1423 
    1424     {
    1425         ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1=_X4shi3s_1) /* ?{} */);
    1426     }
    1427 
    1428     {
    1429         ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1=_X4shi4s_1) /* ?{} */);
    14301152    }
    14311153
     
    16831405
    16841406}
    1685 void _X4fredFv___1(void){
    1686     __attribute__ ((unused)) signed int _X1ii_2;
    1687     {
    1688         __attribute__ ((unused)) signed int _X3reti_3;
    1689         switch ( 3 ) {
    1690             case 2:
    1691                 {
    1692                     {
    1693                         ((void)4);
    1694                     }
    1695 
    1696                     /* null statement */ ;
    1697                     /* null statement */ ;
    1698                 }
    1699             case 1:
    1700                 {
    1701                     {
    1702                         ((void)3);
    1703                     }
    1704 
    1705                 }
    1706         }
    1707 
    1708     }
    1709 
    1710     L: __attribute__ ((unused)) goto L;
    1711     L2: __attribute__ (( unused )) L1: __attribute__ (( unused )) goto L2;
    1712     return ;
    1713     return ;
    1714     return ;
    1715     {
    1716         ((void)(_X1ii_2+=((signed int )1)));
    1717     }
    1718 
    1719 }
    1720 void _X4maryFv___1(void){
    1721     struct __attribute__ ((aligned(64))) S {
    1722         signed int _X1ii_2;
    1723     };
    1724     inline void _X12_constructorFv_S1S_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2){
    1725         {
    1726             ((void)((*_X4_dstS1S_2)._X1ii_2) /* ?{} */);
    1727         }
    1728 
    1729     }
    1730     inline void _X12_constructorFv_S1SS1S_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2, __attribute__ ((unused)) struct S _X4_srcS1S_2){
    1731         {
    1732             ((void)((*_X4_dstS1S_2)._X1ii_2=_X4_srcS1S_2._X1ii_2) /* ?{} */);
    1733         }
    1734 
    1735     }
    1736     inline void _X11_destructorFv_S1S_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2){
    1737         {
    1738             ((void)((*_X4_dstS1S_2)._X1ii_2) /* ^?{} */);
    1739         }
    1740 
    1741     }
    1742     inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2, __attribute__ ((unused)) struct S _X4_srcS1S_2){
    1743         __attribute__ ((unused)) struct S _X4_retS1S_2;
    1744         {
    1745             ((void)((*_X4_dstS1S_2)._X1ii_2=_X4_srcS1S_2._X1ii_2));
    1746         }
    1747 
    1748         {
    1749             ((void)_X12_constructorFv_S1SS1S_autogen___2((&_X4_retS1S_2), (*_X4_dstS1S_2)));
    1750         }
    1751 
    1752         return _X4_retS1S_2;
    1753     }
    1754     inline void _X12_constructorFv_S1Si_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2, signed int _X1ii_2){
    1755         {
    1756             ((void)((*_X4_dstS1S_2)._X1ii_2=_X1ii_2) /* ?{} */);
    1757         }
    1758 
    1759     }
     1407__attribute__ (( noreturn )) void _X4fredFv___1(void){
    17601408    __attribute__ ((unused)) signed int _X1ii_2;
    17611409    switch ( 3 ) {
     
    17661414                }
    17671415
    1768                 /* null statement */ ;
    1769                 /* null statement */ ;
    17701416            }
    17711417        case 1:
     
    17781424    }
    17791425
    1780     L: __attribute__ ((unused)) goto L;
    1781     L2: __attribute__ ((unused)) L1: __attribute__ ((unused)) goto L2;
    1782     return ;
    1783     return ;
    1784     return ;
    1785 }
    1786 __attribute__ (( noreturn )) void _X4jackFv___1(void){
    1787     {
    1788         ((void)exit((-((signed int )1))));
    1789     }
    1790 
    1791 }
     1426    {
     1427        ((void)abort());
     1428    }
     1429
     1430}
     1431__attribute__ ((noreturn)) void _X4maryFv___1(void){
     1432    struct __attribute__ ((aligned(16))) S {
     1433        signed int _X1ii_2;
     1434    };
     1435    inline void _X12_constructorFv_S1S_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2){
     1436        {
     1437            ((void)((*_X4_dstS1S_2)._X1ii_2) /* ?{} */);
     1438        }
     1439
     1440    }
     1441    inline void _X12_constructorFv_S1SS1S_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2, __attribute__ ((unused)) struct S _X4_srcS1S_2){
     1442        {
     1443            ((void)((*_X4_dstS1S_2)._X1ii_2=_X4_srcS1S_2._X1ii_2) /* ?{} */);
     1444        }
     1445
     1446    }
     1447    inline void _X11_destructorFv_S1S_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2){
     1448        {
     1449            ((void)((*_X4_dstS1S_2)._X1ii_2) /* ^?{} */);
     1450        }
     1451
     1452    }
     1453    inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2, __attribute__ ((unused)) struct S _X4_srcS1S_2){
     1454        __attribute__ ((unused)) struct S _X4_retS1S_2;
     1455        {
     1456            ((void)((*_X4_dstS1S_2)._X1ii_2=_X4_srcS1S_2._X1ii_2));
     1457        }
     1458
     1459        {
     1460            ((void)_X12_constructorFv_S1SS1S_autogen___2((&_X4_retS1S_2), (*_X4_dstS1S_2)));
     1461        }
     1462
     1463        return _X4_retS1S_2;
     1464    }
     1465    inline void _X12_constructorFv_S1Si_autogen___2(__attribute__ ((unused)) struct S *_X4_dstS1S_2, signed int _X1ii_2){
     1466        {
     1467            ((void)((*_X4_dstS1S_2)._X1ii_2=_X1ii_2) /* ?{} */);
     1468        }
     1469
     1470    }
     1471    __attribute__ ((unused)) signed int _X1ii_2;
     1472    switch ( 3 ) {
     1473        case 2:
     1474            {
     1475                {
     1476                    ((void)4);
     1477                }
     1478
     1479            }
     1480        case 1:
     1481            {
     1482                {
     1483                    ((void)3);
     1484                }
     1485
     1486            }
     1487    }
     1488
     1489    {
     1490        ((void)abort());
     1491    }
     1492
     1493}
  • tests/include/includes.cfa

    r3e91c6f9 r3bd9508  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Mar 10 18:52:14 2025
    13 // Update Count     : 830
     12// Last Modified On : Wed Feb 22 10:16:58 2023
     13// Update Count     : 811
    1414//
    1515
     
    6363#include <ftw.h>
    6464#include <sys/types.h>
     65//#include <gawkapi.h>                                                                  // CFA bug #240 nested anonymous enum fails
    6566#include <gconv.h>
    6667#include <getopt.h>
     
    7172#include <gshadow.h>
    7273#include <iconv.h>
    73 #include <ifaddrs.h>
     74//#include <ifaddrs.h>                                                                  // causes warning messages that break the build
    7475#include <inttypes.h>
    7576#include <langinfo.h>
     
    7879#include <libintl.h>
    7980#include <limits.h>
    80 #include <link.h>
     81//#include <link.h>                                                                             // CFA bug #240 nested anonymous enum fails
    8182#include <locale.h>
    8283#if __has_include( "ltdl.h" )
     
    9697#include <ncurses_dll.h>                                                                // may not be installed, comes with ncurses
    9798#endif
    98 #include <netdb.h>
     99//#include <netdb.h>
    99100#include <nl_types.h>
    100101#include <nss.h>
     
    110111#include <pwd.h>
    111112#include <regex.h>
    112 #include <resolv.h>
     113//#include <resolv.h>
    113114#include <re_comp.h>
    114115#include <sched.h>
     
    124125#include <stdint.h>
    125126#include <stdio.h>
    126 #include <gawkapi.h>                                                                    // requires stdio.h, so appears after it
    127127#include <stdio_ext.h>
    128128#include <stdlib.h>
     
    140140#include <termio.h>
    141141#include <termios.h>
    142 #include <term_entry.h>
     142// #include <term_entry.h>                                                              // conflicts with search.h on some machines
    143143#include <tgmath.h>
    144 #include <threads.h>                                                                    // does not exist
     144//#include <threads.h>                                                                  // does not exist
    145145#include <thread_db.h>
    146146#include <time.h>
  • tests/meta/dumpable.cfa

    r3e91c6f9 r3bd9508  
    1010// Created On       : Wed Jan 05 13:53:22 2022
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Mar  2 20:56:32 2025
    13 // Update Count     : 18
     12// Last Modified On : Fri Jul 19 07:58:45 2024
     13// Update Count     : 10
    1414//
    1515
     
    4444void check_permission() {
    4545        char myExe[PATH_MAX];
    46 
    47         #define exe "/proc/self/exe"
    48         ssize_t n = readlink( exe, myExe, sizeof(myExe));
     46        ssize_t n = readlink( "/proc/self/exe", myExe, sizeof(myExe));
    4947        if ( n < 0 ) {
    50                 perror( "readlink( " exe " ) error" );
     48                perror( "readlink(/proc/self/exe ) error" );
    5149                return 1;
    5250        } // if
     
    105103
    106104void check_core_pattern() {
    107         #define core_pattern "/proc/sys/kernel/core_pattern"
    108105        int ret;
    109         int cp = open( core_pattern, 0, O_RDONLY );
     106        int cp = open( "/proc/sys/kernel/core_pattern", 0, O_RDONLY );
    110107
    111108        if ( cp < 0 ) {
    112                 perror( "open( " core_pattern ", 0, O_RDONLY ) error" );
     109                perror( "open(/proc/sys/kernel/core_pattern, O_RDONLY ) error" );
    113110                return;
    114111        } // if
     
    131128        } finally {
    132129                ret = close( cp );
    133                 if ( ret < 0 ) perror( "close( " core_pattern " ) error" );
     130                if ( ret < 0 ) perror( "close( /proc/sys/kernel/core_pattern ) error" );
    134131        } // try
    135132}
Note: See TracChangeset for help on using the changeset viewer.