Changeset 3e91c6f9
- Timestamp:
- Mar 13, 2025, 9:26:17 AM (6 months ago)
- 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. - Files:
-
- 2 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/prelude/prelude-gen.cc
r3bd9508 r3e91c6f9 10 10 // Created On : Sat Feb 16 08:44:58 2019 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jan 13 14:15:29202513 // Update Count : 5512 // Last Modified On : Mon Mar 10 17:30:48 2025 13 // Update Count : 65 14 14 // 15 15 -
libcfa/prelude/prototypes.awk
r3bd9508 r3e91c6f9 10 10 # Created On : Sat May 16 07:57:37 2015 11 11 # Last Modified By : Peter A. Buhr 12 # Last Modified On : Sat Feb 15 13:16:28202513 # Update Count : 6012 # Last Modified On : Mon Mar 10 17:52:39 2025 13 # Update Count : 73 14 14 # 15 15 … … 160 160 printf( "double _Complex __builtin_complex( double, double );\n" ); 161 161 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" ); 162 170 } # END 163 171 -
src/BasicTypes-gen.cpp
r3bd9508 r3e91c6f9 53 53 Float128xComplex, 54 54 NUMBER_OF_BASIC_TYPES, 55 56 Float32x4, // ARM, gcc-1457 Float64x2,58 Svfloat32,59 Svfloat64,60 Svbool,61 55 }; 62 56 -
src/Common/Iterate.hpp
r3bd9508 r3e91c6f9 208 208 return group_iterate_t<Args...>( std::forward<Args>( args )... ); 209 209 } 210 211 // -----------------------------------------------------------------------------212 // Helper struct and function to support213 // 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 10 10 // Created On : Tue Aug 16 10:51:00 2022 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Mon Oct 31 16:48:00 202213 // Update Count : 112 // Last Modified On : Wed Mar 12 15:18:00 2025 13 // Update Count : 2 14 14 // 15 15 … … 159 159 } 160 160 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 161 181 /// Makes substitutions of params into baseParams; returns dtypeStatic if 162 182 /// there is a concrete instantiation based only on {d,f}type-to-void … … 190 210 gt |= GenericType::concrete; 191 211 } 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 ) ); 209 214 } 210 215 } … … 443 448 instantiations(), dtypeStatics(), typeNamer("_conc_") {} 444 449 450 ast::StructDecl const * previsit( ast::StructDecl const * ); 451 ast::UnionDecl const * previsit( ast::UnionDecl const * ); 452 445 453 ast::Type const * postvisit( ast::StructInstType const * inst ); 446 454 ast::Type const * postvisit( ast::UnionInstType const * inst ); … … 481 489 482 490 template<typename AggrDecl> 491 AggrDecl const * fixAggrDecl( AggrDecl const * decl ); 492 493 template<typename AggrDecl> 483 494 ast::Type const * fixInstType( ast::SueInstType<AggrDecl> const * inst ); 484 495 … … 489 500 ast::vector<ast::TypeExpr> const & typeSubs ); 490 501 }; 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 } 491 531 492 532 ast::Type const * GenericInstantiator::postvisit( … … 531 571 case GenericType::dtypeStatic: 532 572 { 573 // This call to stripDtypeParams is used when a forward declaration 574 // has allowed an instance to appear before the full declaration. 533 575 auto mutInst = ast::mutate( inst ); 534 576 assert( mutInst->base->unique() ); -
src/Parser/lex.ll
r3bd9508 r3e91c6f9 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Fri Jan 17 14:36:16202513 * Update Count : 8 7812 * Last Modified On : Mon Mar 3 09:21:33 2025 13 * Update Count : 880 14 14 */ 15 15 … … 240 240 basetypeof { KEYWORD_RETURN(BASETYPEOF); } // CFA 241 241 _Bool { KEYWORD_RETURN(BOOL); } // C99 242 __SVBool_t { KEYWORD_RETURN( SVBOOL); } // gcc (ARM)242 __SVBool_t { KEYWORD_RETURN(BOOL); } // gcc (ARM) 243 243 break { KEYWORD_RETURN(BREAK); } 244 244 case { KEYWORD_RETURN(CASE); } … … 287 287 _Float128 { FLOATXX(FLOAT128); } // GCC 288 288 _Float128x { FLOATXX(FLOAT128X); } // GCC 289 __Float32x4_t { FLOATXX(FLOAT 32X4); } // GCC (ARM)290 __Float64x2_t { FLOATXX(FLOAT 64X2); } // 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) 293 293 for { KEYWORD_RETURN(FOR); } 294 294 forall { KEYWORD_RETURN(FORALL); } // CFA -
src/Parser/parser.yy
r3bd9508 r3e91c6f9 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Mar 3 20:47:00202513 // Update Count : 725 412 // Last Modified On : Thu Mar 13 09:23:21 2025 13 // Update Count : 7255 14 14 // 15 15 … … 2244 2244 basic_type_specifier 2245 2245 | sue_type_specifier 2246 | type_type_specifier 2246 | type_type_specifier attribute_list_opt 2247 2247 ; 2248 2248 -
tests/.expect/attributes.x86.txt
r3bd9508 r3e91c6f9 97 97 __attribute__ ((used,used,unused)) signed int _X2f8i_1; 98 98 __attribute__ ((unused)) signed int *_X2f9Pi_1; 99 __attribute__ ((u nused,used)) signed int *_X3f10Pi_1;99 __attribute__ ((used,unused)) signed int *_X3f10Pi_1; 100 100 __attribute__ ((unused,unused)) signed int *_X3f11Pi_1; 101 101 __attribute__ ((unused,unused,unused)) signed int *_X3f12Pi_1; 102 102 __attribute__ ((unused,unused,unused)) signed int *_X3f13Pi_1; 103 103 __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; 104 106 }; 105 107 static inline void _X12_constructorFv_S3Fdl_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1){ … … 160 162 } 161 163 164 { 165 ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */); 166 } 167 168 { 169 ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */); 170 } 171 162 172 } 163 173 static inline void _X12_constructorFv_S3FdlS3Fdl_autogen___1(__attribute__ ((unused)) struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) struct Fdl _X4_srcS3Fdl_1){ … … 218 228 } 219 229 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 220 238 } 221 239 static 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 222 248 { 223 249 ((void)((*_X4_dstS3Fdl_1)._X3f14Pi_1) /* ^?{} */); … … 336 362 337 363 { 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 { 338 372 ((void)_X12_constructorFv_S3FdlS3Fdl_autogen___1((&_X4_retS3Fdl_1), (*_X4_dstS3Fdl_1))); 339 373 } … … 398 432 } 399 433 434 { 435 ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */); 436 } 437 438 { 439 ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */); 440 } 441 400 442 } 401 443 static 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){ … … 456 498 } 457 499 500 { 501 ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */); 502 } 503 504 { 505 ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */); 506 } 507 458 508 } 459 509 static 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){ … … 514 564 } 515 565 566 { 567 ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */); 568 } 569 570 { 571 ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */); 572 } 573 516 574 } 517 575 static 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){ … … 572 630 } 573 631 632 { 633 ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */); 634 } 635 636 { 637 ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */); 638 } 639 574 640 } 575 641 static 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){ … … 630 696 } 631 697 698 { 699 ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */); 700 } 701 702 { 703 ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */); 704 } 705 632 706 } 633 707 static 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){ … … 688 762 } 689 763 764 { 765 ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */); 766 } 767 768 { 769 ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */); 770 } 771 690 772 } 691 773 static 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){ … … 746 828 } 747 829 830 { 831 ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */); 832 } 833 834 { 835 ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */); 836 } 837 748 838 } 749 839 static 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){ … … 804 894 } 805 895 896 { 897 ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */); 898 } 899 900 { 901 ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */); 902 } 903 806 904 } 807 905 static 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){ … … 862 960 } 863 961 962 { 963 ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */); 964 } 965 966 { 967 ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */); 968 } 969 864 970 } 865 971 static 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){ … … 920 1026 } 921 1027 1028 { 1029 ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */); 1030 } 1031 1032 { 1033 ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */); 1034 } 1035 922 1036 } 923 1037 static 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){ … … 978 1092 } 979 1093 1094 { 1095 ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */); 1096 } 1097 1098 { 1099 ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */); 1100 } 1101 980 1102 } 981 1103 static 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){ … … 1036 1158 } 1037 1159 1160 { 1161 ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */); 1162 } 1163 1164 { 1165 ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */); 1166 } 1167 1038 1168 } 1039 1169 static 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){ … … 1094 1224 } 1095 1225 1226 { 1227 ((void)((*_X4_dstS3Fdl_1)._X4shi3s_1) /* ?{} */); 1228 } 1229 1230 { 1231 ((void)((*_X4_dstS3Fdl_1)._X4shi4s_1) /* ?{} */); 1232 } 1233 1096 1234 } 1097 1235 static 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){ … … 1150 1288 { 1151 1289 ((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) /* ?{} */); 1152 1430 } 1153 1431 … … 1405 1683 1406 1684 } 1407 __attribute__ (( noreturn )) void _X4fredFv___1(void){ 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 } 1408 1760 __attribute__ ((unused)) signed int _X1ii_2; 1409 1761 switch ( 3 ) { … … 1414 1766 } 1415 1767 1768 /* null statement */ ; 1769 /* null statement */ ; 1416 1770 } 1417 1771 case 1: … … 1424 1778 } 1425 1779 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 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Feb 22 10:16:58 202313 // Update Count : 8 1112 // Last Modified On : Mon Mar 10 18:52:14 2025 13 // Update Count : 830 14 14 // 15 15 … … 63 63 #include <ftw.h> 64 64 #include <sys/types.h> 65 //#include <gawkapi.h> // CFA bug #240 nested anonymous enum fails66 65 #include <gconv.h> 67 66 #include <getopt.h> … … 72 71 #include <gshadow.h> 73 72 #include <iconv.h> 74 //#include <ifaddrs.h> // causes warning messages that break the build 73 #include <ifaddrs.h> 75 74 #include <inttypes.h> 76 75 #include <langinfo.h> … … 79 78 #include <libintl.h> 80 79 #include <limits.h> 81 //#include <link.h> // CFA bug #240 nested anonymous enum fails 80 #include <link.h> 82 81 #include <locale.h> 83 82 #if __has_include( "ltdl.h" ) … … 97 96 #include <ncurses_dll.h> // may not be installed, comes with ncurses 98 97 #endif 99 //#include <netdb.h>98 #include <netdb.h> 100 99 #include <nl_types.h> 101 100 #include <nss.h> … … 111 110 #include <pwd.h> 112 111 #include <regex.h> 113 //#include <resolv.h>112 #include <resolv.h> 114 113 #include <re_comp.h> 115 114 #include <sched.h> … … 125 124 #include <stdint.h> 126 125 #include <stdio.h> 126 #include <gawkapi.h> // requires stdio.h, so appears after it 127 127 #include <stdio_ext.h> 128 128 #include <stdlib.h> … … 140 140 #include <termio.h> 141 141 #include <termios.h> 142 // #include <term_entry.h> // conflicts with search.h on some machines 142 #include <term_entry.h> 143 143 #include <tgmath.h> 144 //#include <threads.h> // does not exist144 #include <threads.h> // does not exist 145 145 #include <thread_db.h> 146 146 #include <time.h> -
tests/meta/dumpable.cfa
r3bd9508 r3e91c6f9 10 10 // Created On : Wed Jan 05 13:53:22 2022 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 19 07:58:45 202413 // Update Count : 1 012 // Last Modified On : Sun Mar 2 20:56:32 2025 13 // Update Count : 18 14 14 // 15 15 … … 44 44 void check_permission() { 45 45 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)); 47 49 if ( n < 0 ) { 48 perror( "readlink( /proc/self/exe) error" );50 perror( "readlink( " exe " ) error" ); 49 51 return 1; 50 52 } // if … … 103 105 104 106 void check_core_pattern() { 107 #define core_pattern "/proc/sys/kernel/core_pattern" 105 108 int ret; 106 int cp = open( "/proc/sys/kernel/core_pattern", 0, O_RDONLY );109 int cp = open( core_pattern, 0, O_RDONLY ); 107 110 108 111 if ( cp < 0 ) { 109 perror( "open( /proc/sys/kernel/core_pattern, O_RDONLY ) error" );112 perror( "open( " core_pattern ", 0, O_RDONLY ) error" ); 110 113 return; 111 114 } // if … … 128 131 } finally { 129 132 ret = close( cp ); 130 if ( ret < 0 ) perror( "close( /proc/sys/kernel/core_pattern) error" );133 if ( ret < 0 ) perror( "close( " core_pattern " ) error" ); 131 134 } // try 132 135 }
Note:
See TracChangeset
for help on using the changeset viewer.