Changeset 3e91c6f9


Ignore:
Timestamp:
Mar 13, 2025, 9:26:17 AM (6 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
master
Children:
8b639f9
Parents:
3bd9508 (diff), 594671a (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:

fix pull conflicit

Files:
2 added
10 edited

Legend:

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

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

    r3bd9508 r3e91c6f9  
    1010# Created On       : Sat May 16 07:57:37 2015
    1111# Last Modified By : Peter A. Buhr
    12 # Last Modified On : Sat Feb 15 13:16:28 2025
    13 # Update Count     : 60
     12# Last Modified On : Mon Mar 10 17:52:39 2025
     13# Update Count     : 73
    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" );
    162170} # END
    163171
  • src/BasicTypes-gen.cpp

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

    r3bd9508 r3e91c6f9  
    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 
    217 template< typename T, typename Func >
    218 struct 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 
    240 template< typename... Args >
    241 lambda_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

    r3bd9508 r3e91c6f9  
    1010// Created On       : Tue Aug 16 10:51:00 2022
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Mon Oct 31 16:48:00 2022
    13 // Update Count     : 1
     12// Last Modified On : Wed Mar 12 15:18:00 2025
     13// Update Count     : 2
    1414//
    1515
     
    159159}
    160160
     161/// Get the scrubbed type of a declaration (see scrubTypeVars functions).
     162ast::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
    161181/// Makes substitutions of params into baseParams; returns dtypeStatic if
    162182/// there is a concrete instantiation based only on {d,f}type-to-void
     
    190210                                gt |= GenericType::concrete;
    191211                        }
    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;
     212                } else {
     213                        out.emplace_back( scrubTypeDecl( paramExpr->location, *baseParam ) );
    209214                }
    210215        }
     
    443448                instantiations(), dtypeStatics(), typeNamer("_conc_") {}
    444449
     450        ast::StructDecl const * previsit( ast::StructDecl const * );
     451        ast::UnionDecl const * previsit( ast::UnionDecl const * );
     452
    445453        ast::Type const * postvisit( ast::StructInstType const * inst );
    446454        ast::Type const * postvisit( ast::UnionInstType const * inst );
     
    481489
    482490        template<typename AggrDecl>
     491        AggrDecl const * fixAggrDecl( AggrDecl const * decl );
     492
     493        template<typename AggrDecl>
    483494        ast::Type const * fixInstType( ast::SueInstType<AggrDecl> const * inst );
    484495
     
    489500                ast::vector<ast::TypeExpr> const & typeSubs );
    490501};
     502
     503ast::StructDecl const * GenericInstantiator::previsit( ast::StructDecl const * decl ) {
     504        return fixAggrDecl( decl );
     505}
     506
     507ast::UnionDecl const * GenericInstantiator::previsit( ast::UnionDecl const * decl ) {
     508        return fixAggrDecl( decl );
     509}
     510
     511template<typename AggrDecl>
     512AggrDecl 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}
    491531
    492532ast::Type const * GenericInstantiator::postvisit(
     
    531571        case GenericType::dtypeStatic:
    532572        {
     573                // This call to stripDtypeParams is used when a forward declaration
     574                // has allowed an instance to appear before the full declaration.
    533575                auto mutInst = ast::mutate( inst );
    534576                assert( mutInst->base->unique() );
  • src/Parser/lex.ll

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

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

    r3bd9508 r3e91c6f9  
    9797    __attribute__ ((used,used,unused)) signed int _X2f8i_1;
    9898    __attribute__ ((unused)) signed int *_X2f9Pi_1;
    99     __attribute__ ((unused,used)) signed int *_X3f10Pi_1;
     99    __attribute__ ((used,unused)) 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;
    104106};
    105107static inline void _X12_constructorFv_S3Fdl_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1){
     
    160162    }
    161163
     164    {
     165        ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
     166    }
     167
     168    {
     169        ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
     170    }
     171
    162172}
    163173static inline void _X12_constructorFv_S3FdlS3Fdl_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) struct Fdl _X4_srcS3Fdl_1){
     
    218228    }
    219229
     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
    220238}
    221239static 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
    222248    {
    223249        ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ^?{} */);
     
    336362
    337363    {
     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    {
    338372        ((void)_X12_constructorFv_S3FdlS3Fdl_autogen___1((&_X4_retS3Fdl_1), (*_X4_dstS3Fdl_1)));
    339373    }
     
    398432    }
    399433
     434    {
     435        ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
     436    }
     437
     438    {
     439        ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
     440    }
     441
    400442}
    401443static 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){
     
    456498    }
    457499
     500    {
     501        ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
     502    }
     503
     504    {
     505        ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
     506    }
     507
    458508}
    459509static 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){
     
    514564    }
    515565
     566    {
     567        ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
     568    }
     569
     570    {
     571        ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
     572    }
     573
    516574}
    517575static 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){
     
    572630    }
    573631
     632    {
     633        ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
     634    }
     635
     636    {
     637        ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
     638    }
     639
    574640}
    575641static 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){
     
    630696    }
    631697
     698    {
     699        ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
     700    }
     701
     702    {
     703        ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
     704    }
     705
    632706}
    633707static 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){
     
    688762    }
    689763
     764    {
     765        ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
     766    }
     767
     768    {
     769        ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
     770    }
     771
    690772}
    691773static 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){
     
    746828    }
    747829
     830    {
     831        ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
     832    }
     833
     834    {
     835        ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
     836    }
     837
    748838}
    749839static 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){
     
    804894    }
    805895
     896    {
     897        ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
     898    }
     899
     900    {
     901        ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
     902    }
     903
    806904}
    807905static 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){
     
    862960    }
    863961
     962    {
     963        ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
     964    }
     965
     966    {
     967        ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
     968    }
     969
    864970}
    865971static 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){
     
    9201026    }
    9211027
     1028    {
     1029        ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
     1030    }
     1031
     1032    {
     1033        ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
     1034    }
     1035
    9221036}
    9231037static 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){
     
    9781092    }
    9791093
     1094    {
     1095        ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
     1096    }
     1097
     1098    {
     1099        ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
     1100    }
     1101
    9801102}
    9811103static 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){
     
    10361158    }
    10371159
     1160    {
     1161        ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
     1162    }
     1163
     1164    {
     1165        ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
     1166    }
     1167
    10381168}
    10391169static 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){
     
    10941224    }
    10951225
     1226    {
     1227        ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */);
     1228    }
     1229
     1230    {
     1231        ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */);
     1232    }
     1233
    10961234}
    10971235static 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){
     
    11501288    {
    11511289        ((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}
     1301static 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}
     1367static 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) /* ?{} */);
    11521430    }
    11531431
     
    14051683
    14061684}
    1407 __attribute__ (( noreturn )) void _X4fredFv___1(void){
     1685void _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}
     1720void _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    }
    14081760    __attribute__ ((unused)) signed int _X1ii_2;
    14091761    switch ( 3 ) {
     
    14141766                }
    14151767
     1768                /* null statement */ ;
     1769                /* null statement */ ;
    14161770            }
    14171771        case 1:
     
    14241778    }
    14251779
    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 }
     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}
  • tests/include/includes.cfa

    r3bd9508 r3e91c6f9  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Feb 22 10:16:58 2023
    13 // Update Count     : 811
     12// Last Modified On : Mon Mar 10 18:52:14 2025
     13// Update Count     : 830
    1414//
    1515
     
    6363#include <ftw.h>
    6464#include <sys/types.h>
    65 //#include <gawkapi.h>                                                                  // CFA bug #240 nested anonymous enum fails
    6665#include <gconv.h>
    6766#include <getopt.h>
     
    7271#include <gshadow.h>
    7372#include <iconv.h>
    74 //#include <ifaddrs.h>                                                                  // causes warning messages that break the build
     73#include <ifaddrs.h>
    7574#include <inttypes.h>
    7675#include <langinfo.h>
     
    7978#include <libintl.h>
    8079#include <limits.h>
    81 //#include <link.h>                                                                             // CFA bug #240 nested anonymous enum fails
     80#include <link.h>
    8281#include <locale.h>
    8382#if __has_include( "ltdl.h" )
     
    9796#include <ncurses_dll.h>                                                                // may not be installed, comes with ncurses
    9897#endif
    99 //#include <netdb.h>
     98#include <netdb.h>
    10099#include <nl_types.h>
    101100#include <nss.h>
     
    111110#include <pwd.h>
    112111#include <regex.h>
    113 //#include <resolv.h>
     112#include <resolv.h>
    114113#include <re_comp.h>
    115114#include <sched.h>
     
    125124#include <stdint.h>
    126125#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>                                                              // conflicts with search.h on some machines
     142#include <term_entry.h>
    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

    r3bd9508 r3e91c6f9  
    1010// Created On       : Wed Jan 05 13:53:22 2022
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul 19 07:58:45 2024
    13 // Update Count     : 10
     12// Last Modified On : Sun Mar  2 20:56:32 2025
     13// Update Count     : 18
    1414//
    1515
     
    4444void check_permission() {
    4545        char myExe[PATH_MAX];
    46         ssize_t n = readlink( "/proc/self/exe", myExe, sizeof(myExe));
     46
     47        #define exe "/proc/self/exe"
     48        ssize_t n = readlink( exe, myExe, sizeof(myExe));
    4749        if ( n < 0 ) {
    48                 perror( "readlink(/proc/self/exe ) error" );
     50                perror( "readlink( " exe " ) error" );
    4951                return 1;
    5052        } // if
     
    103105
    104106void check_core_pattern() {
     107        #define core_pattern "/proc/sys/kernel/core_pattern"
    105108        int ret;
    106         int cp = open( "/proc/sys/kernel/core_pattern", 0, O_RDONLY );
     109        int cp = open( core_pattern, 0, O_RDONLY );
    107110
    108111        if ( cp < 0 ) {
    109                 perror( "open(/proc/sys/kernel/core_pattern, O_RDONLY ) error" );
     112                perror( "open( " core_pattern ", 0, O_RDONLY ) error" );
    110113                return;
    111114        } // if
     
    128131        } finally {
    129132                ret = close( cp );
    130                 if ( ret < 0 ) perror( "close( /proc/sys/kernel/core_pattern ) error" );
     133                if ( ret < 0 ) perror( "close( " core_pattern " ) error" );
    131134        } // try
    132135}
Note: See TracChangeset for help on using the changeset viewer.