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