Changes in / [ae267366:f883ef1]
- Files:
-
- 7 deleted
- 22 edited
-
doc/theses/colby_parsons_MMAth/.gitignore (deleted)
-
doc/theses/colby_parsons_MMAth/Makefile (deleted)
-
doc/theses/colby_parsons_MMAth/local.bib (deleted)
-
doc/theses/colby_parsons_MMAth/style/cfa-format.tex (deleted)
-
doc/theses/colby_parsons_MMAth/style/style.tex (deleted)
-
doc/theses/colby_parsons_MMAth/text/actors.tex (deleted)
-
doc/theses/colby_parsons_MMAth/thesis.tex (deleted)
-
libcfa/src/concurrency/kernel/cluster.hfa (modified) (1 diff)
-
libcfa/src/interpose.cfa (modified) (2 diffs)
-
libcfa/src/limits.cfa (modified) (1 diff)
-
src/AST/Fwd.hpp (modified) (2 diffs)
-
src/AST/Print.cpp (modified) (9 diffs)
-
src/AST/Print.hpp (modified) (2 diffs)
-
src/Parser/DeclarationNode.cc (modified) (8 diffs)
-
src/Parser/ParseNode.h (modified) (3 diffs)
-
src/Parser/TypeData.cc (modified) (2 diffs)
-
src/Parser/TypeData.h (modified) (2 diffs)
-
src/Parser/parser.yy (modified) (10 diffs)
-
src/SynTree/Type.h (modified) (3 diffs)
-
tests/.expect/attributes.x64.txt (modified) (1 diff)
-
tests/.expect/declarationSpecifier.x64.txt (modified) (18 diffs)
-
tests/attributes.cfa (modified) (2 diffs)
-
tests/concurrent/signal/disjoint.cfa (modified) (1 diff)
-
tests/declarationSpecifier.cfa (modified) (3 diffs)
-
tests/forall.cfa (modified) (2 diffs)
-
tests/include/includes.cfa (modified) (5 diffs)
-
tests/io/comp_basic.cfa (modified) (1 diff)
-
tests/io/comp_fair.cfa (modified) (1 diff)
-
tests/quotedKeyword.cfa (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/kernel/cluster.hfa
rae267366 rf883ef1 146 146 } 147 147 148 conststatic struct {149 unsigned readyq;150 unsigned io;148 static struct { 149 const unsigned readyq; 150 const unsigned io; 151 151 } __shard_factor = { 2, 1 }; 152 152 -
libcfa/src/interpose.cfa
rae267366 rf883ef1 10 10 // Created On : Wed Mar 29 16:10:31 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Feb 24 15:31:03202313 // Update Count : 18 512 // Last Modified On : Sun Feb 19 20:44:32 2023 13 // Update Count : 184 14 14 // 15 15 … … 101 101 preload_libgcc(); 102 102 103 #pragma GCC diagnostic push104 #pragma GCC diagnostic ignored "-Wdiscarded-qualifiers"103 #pragma GCC diagnostic push 104 #pragma GCC diagnostic ignored "-Wdiscarded-qualifiers" 105 105 INTERPOSE_LIBC( abort, version ); 106 106 INTERPOSE_LIBC( exit , version ); 107 #pragma GCC diagnostic pop107 #pragma GCC diagnostic pop 108 108 109 109 if(__cfathreadabi_interpose_startup) __cfathreadabi_interpose_startup( do_interpose_symbol ); -
libcfa/src/limits.cfa
rae267366 rf883ef1 10 10 // Created On : Wed Apr 6 18:06:52 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Feb 17 12:25:39202313 // Update Count : 8 712 // Last Modified On : Sun Jan 8 18:53:17 2023 13 // Update Count : 86 14 14 // 15 15 16 // need _GNU_SOURCE to access long double M_*l in math.h 16 17 #include <limits.h> 17 18 #include <float.h> -
src/AST/Fwd.hpp
rae267366 rf883ef1 15 15 16 16 #pragma once 17 18 template<typename> struct bitfield;19 17 20 18 #include "AST/Node.hpp" … … 149 147 class TranslationGlobal; 150 148 151 // For the following types, only use the using type.152 namespace CV {153 struct qualifier_flags;154 using Qualifiers = bitfield<qualifier_flags>;155 149 } 156 namespace Function {157 struct spec_flags;158 using Specs = bitfield<spec_flags>;159 }160 namespace Storage {161 struct class_flags;162 using Classes = bitfield<class_flags>;163 }164 namespace Linkage {165 struct spec_flags;166 using Spec = bitfield<spec_flags>;167 }168 169 } -
src/AST/Print.cpp
rae267366 rf883ef1 29 29 namespace ast { 30 30 31 namespace { 32 33 template<typename C, typename... T> 34 constexpr array<C, sizeof...(T)> make_array( T&&... values ) { 35 return array<C, sizeof...(T)>{ std::forward<T>( values )... }; 36 } 37 38 namespace Names { 39 static constexpr auto FuncSpecifiers = make_array<const char*>( 40 "inline", "_Noreturn", "fortran" 41 ); 42 43 static constexpr auto StorageClasses = make_array<const char*>( 44 "extern", "static", "auto", "register", "__thread", "_Thread_local" 45 ); 46 47 static constexpr auto Qualifiers = make_array<const char*>( 48 "const", "restrict", "volatile", "mutex", "_Atomic" 49 ); 50 } 51 52 template<typename bits_t, size_t N> 53 void print( ostream & os, const bits_t & bits, 54 const array<const char *, N> & names ) { 55 if ( !bits.any() ) return; 56 for ( size_t i = 0 ; i < N ; i += 1 ) { 57 if ( bits[i] ) { 58 os << names[i] << ' '; 59 } 60 } 31 template <typename C, typename... T> 32 constexpr array<C,sizeof...(T)> make_array(T&&... values) 33 { 34 return array<C,sizeof...(T)>{ 35 std::forward<T>(values)... 36 }; 61 37 } 62 38 … … 104 80 static const char* Names[]; 105 81 82 struct Names { 83 static constexpr auto FuncSpecifiers = make_array<const char*>( 84 "inline", "_Noreturn", "fortran" 85 ); 86 87 static constexpr auto StorageClasses = make_array<const char*>( 88 "extern", "static", "auto", "register", "__thread", "_Thread_local" 89 ); 90 91 static constexpr auto Qualifiers = make_array<const char*>( 92 "const", "restrict", "volatile", "mutex", "_Atomic" 93 ); 94 }; 95 96 template<typename storage_t, size_t N> 97 void print(const storage_t & storage, const array<const char *, N> & Names ) { 98 if ( storage.any() ) { 99 for ( size_t i = 0; i < Names.size(); i += 1 ) { 100 if ( storage[i] ) { 101 os << Names[i] << ' '; 102 } 103 } 104 } 105 } 106 107 void print( const ast::Function::Specs & specs ) { 108 print(specs, Names::FuncSpecifiers); 109 } 110 111 void print( const ast::Storage::Classes & storage ) { 112 print(storage, Names::StorageClasses); 113 } 114 115 void print( const ast::CV::Qualifiers & qualifiers ) { 116 print(qualifiers, Names::Qualifiers); 117 } 118 106 119 void print( const std::vector<ast::Label> & labels ) { 107 120 if ( labels.empty() ) return; … … 217 230 } 218 231 219 ast::print( os,node->storage );232 print( node->storage ); 220 233 os << node->typeString(); 221 234 … … 259 272 260 273 void preprint( const ast::Type * node ) { 261 ast::print( os,node->qualifiers );274 print( node->qualifiers ); 262 275 } 263 276 … … 265 278 print( node->forall ); 266 279 print( node->assertions ); 267 ast::print( os,node->qualifiers );280 print( node->qualifiers ); 268 281 } 269 282 270 283 void preprint( const ast::BaseInstType * node ) { 271 284 print( node->attributes ); 272 ast::print( os,node->qualifiers );285 print( node->qualifiers ); 273 286 } 274 287 … … 281 294 } 282 295 283 ast::print( os,node->storage );296 print( node->storage ); 284 297 285 298 if ( node->type ) { … … 325 338 if ( ! short_mode ) printAll( node->attributes ); 326 339 327 ast::print( os, node->storage ); 328 ast::print( os, node->funcSpec ); 340 print( node->storage ); 341 print( node->funcSpec ); 342 343 329 344 330 345 if ( node->type && node->isTypeFixed ) { … … 1612 1627 }; 1613 1628 1614 } // namespace1615 1616 1629 void print( ostream & os, const ast::Node * node, Indenter indent ) { 1617 1630 Printer printer { os, indent, false }; … … 1624 1637 } 1625 1638 1626 void print( ostream & os, Function::Specs specs ) { 1627 print( os, specs, Names::FuncSpecifiers ); 1639 // Annoyingly these needed to be defined out of line to avoid undefined references. 1640 // The size here needs to be explicit but at least the compiler will produce an error 1641 // if the wrong size is specified 1642 constexpr array<const char*, 3> Printer::Names::FuncSpecifiers; 1643 constexpr array<const char*, 6> Printer::Names::StorageClasses; 1644 constexpr array<const char*, 5> Printer::Names::Qualifiers; 1628 1645 } 1629 1630 void print( ostream & os, Storage::Classes storage ) {1631 print( os, storage, Names::StorageClasses );1632 }1633 1634 void print( ostream & os, CV::Qualifiers qualifiers ) {1635 print( os, qualifiers, Names::Qualifiers );1636 }1637 1638 } // namespace ast -
src/AST/Print.hpp
rae267366 rf883ef1 16 16 #pragma once 17 17 18 #include <iosfwd> 18 #include <iostream> 19 #include <utility> // for forward 19 20 20 #include "AST/ Fwd.hpp"21 #include "AST/Node.hpp" 21 22 #include "Common/Indenter.h" 22 23 23 24 namespace ast { 25 26 class Decl; 24 27 25 28 /// Print a node with the given indenter … … 41 44 } 42 45 43 /// Print each cv-qualifier used in the set, followed by a space.44 void print( std::ostream & os, CV::Qualifiers );45 /// Print each function specifier used in the set, followed by a space.46 void print( std::ostream & os, Function::Specs );47 /// Print each storage class used in the set, followed by a space.48 void print( std::ostream & os, Storage::Classes );49 50 46 } -
src/Parser/DeclarationNode.cc
rae267366 rf883ef1 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Feb 24 11:10:03 202313 // Update Count : 1 40012 // Last Modified On : Thu Feb 16 14:12:03 2023 13 // Update Count : 1388 14 14 // 15 15 … … 61 61 variable.initializer = nullptr; 62 62 63 // attr.name = nullptr; 64 attr.expr = nullptr; 65 attr.type = nullptr; 66 63 67 assert.condition = nullptr; 64 68 assert.message = nullptr; … … 66 70 67 71 DeclarationNode::~DeclarationNode() { 72 // delete attr.name; 73 delete attr.expr; 74 delete attr.type; 75 68 76 // delete variable.name; 69 77 delete variable.assertions; … … 107 115 newnode->variable.initializer = maybeClone( variable.initializer ); 108 116 117 // newnode->attr.name = attr.name ? new string( *attr.name ) : nullptr; 118 newnode->attr.expr = maybeClone( attr.expr ); 119 newnode->attr.type = maybeClone( attr.type ); 120 109 121 newnode->assert.condition = maybeClone( assert.condition ); 110 122 newnode->assert.message = maybeClone( assert.message ); … … 254 266 newnode->type->enumeration.typed = typed; 255 267 newnode->type->enumeration.hiding = hiding; 256 if ( base && base->type ) {268 if ( base && base->type) { 257 269 newnode->type->base = base->type; 258 270 } // if … … 567 579 568 580 checkQualifiers( type, q->type ); 569 if ( (builtin == Zero || builtin == One) && q->type->qualifiers. any()&& error.length() == 0 ) {581 if ( (builtin == Zero || builtin == One) && q->type->qualifiers.val != 0 && error.length() == 0 ) { 570 582 SemanticWarning( yylloc, Warning::BadQualifiersZeroOne, Type::QualifiersNames[ilog2( q->type->qualifiers.val )], builtinTypeNames[builtin] ); 571 583 } // if … … 984 996 985 997 if ( DeclarationNode * extr = cur->extractAggregate() ) { 986 // Handle the case where a SUE declaration is contained within an object or type declaration. 987 988 assert( cur->type ); 989 // Replace anonymous SUE name with typedef name to prevent anonymous naming problems across translation units. 990 if ( cur->type->kind == TypeData::Symbolic && cur->type->symbolic.isTypedef ) { 991 assert( extr->type ); 992 // Handle anonymous aggregates: typedef struct { int i; } foo 993 extr->type->qualifiers.reset(); // clear any CVs associated with the aggregate 994 if ( extr->type->kind == TypeData::Aggregate && extr->type->aggregate.anon ) { 995 delete extr->type->aggregate.name; 996 extr->type->aggregate.name = new string( "__anonymous_" + *cur->name ); 997 extr->type->aggregate.anon = false; 998 assert( cur->type->base ); 999 if ( cur->type->base ) { 1000 delete cur->type->base->aggInst.aggregate->aggregate.name; 1001 cur->type->base->aggInst.aggregate->aggregate.name = new string( "__anonymous_" + *cur->name ); 1002 cur->type->base->aggInst.aggregate->aggregate.anon = false; 1003 cur->type->base->aggInst.aggregate->qualifiers.reset(); 1004 } // if 1005 } // if 1006 // Handle anonymous enumeration: typedef enum { A, B, C } foo 1007 if ( extr->type->kind == TypeData::Enum && extr->type->enumeration.anon ) { 1008 delete extr->type->enumeration.name; 1009 extr->type->enumeration.name = new string( "__anonymous_" + *cur->name ); 1010 extr->type->enumeration.anon = false; 1011 assert( cur->type->base ); 1012 if ( cur->type->base ) { 1013 delete cur->type->base->aggInst.aggregate->enumeration.name; 1014 cur->type->base->aggInst.aggregate->enumeration.name = new string( "__anonymous_" + *cur->name ); 1015 cur->type->base->aggInst.aggregate->enumeration.anon = false; 1016 } // if 1017 } // if 1018 } // if 998 // handle the case where a structure declaration is contained within an object or type declaration 1019 999 1020 1000 Declaration * decl = extr->build(); … … 1233 1213 assert( type ); 1234 1214 1215 if ( attr.expr ) { 1216 return new AttrType( buildQualifiers( type ), *name, attr.expr->build(), attributes ); 1217 } else if ( attr.type ) { 1218 return new AttrType( buildQualifiers( type ), *name, attr.type->buildType(), attributes ); 1219 } // if 1220 1235 1221 switch ( type->kind ) { 1236 1222 case TypeData::Enum: -
src/Parser/ParseNode.h
rae267366 rf883ef1 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Feb 19 09:02:37 202313 // Update Count : 9 4012 // Last Modified On : Wed Nov 2 21:27:07 2022 13 // Update Count : 939 14 14 // 15 15 … … 325 325 Variable_t variable; 326 326 327 struct Attr_t { 328 // const std::string * name; 329 ExpressionNode * expr; 330 DeclarationNode * type; 331 }; 332 Attr_t attr; 333 327 334 struct StaticAssert_t { 328 335 ExpressionNode * condition; … … 336 343 337 344 bool inLine = false; 338 bool enumInLine = false; 345 bool enumInLine = false; 339 346 Type::FuncSpecifiers funcSpecs; 340 347 Type::StorageClasses storageClasses; -
src/Parser/TypeData.cc
rae267366 rf883ef1 10 10 // Created On : Sat May 16 15:12:51 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Feb 19 11:00:46 202313 // Update Count : 67 912 // Last Modified On : Tue May 10 22:36:52 2022 13 // Update Count : 677 14 14 // 15 15 … … 375 375 break; 376 376 case Enum: 377 os << "enumeration " << *enumeration.name << endl;;377 os << "enumeration "; 378 378 if ( enumeration.constants ) { 379 379 os << "with constants" << endl; -
src/Parser/TypeData.h
rae267366 rf883ef1 10 10 // Created On : Sat May 16 15:18:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Feb 24 14:25:02 202313 // Update Count : 20 512 // Last Modified On : Tue May 10 22:18:49 2022 13 // Update Count : 203 14 14 // 15 15 … … 37 37 bool body; 38 38 bool anon; 39 39 40 bool tagged; 40 41 const std::string * parent = nullptr; 41 42 }; 42 43 43 struct AggInst_t { // handles SUE44 struct AggInst_t { 44 45 TypeData * aggregate = nullptr; 45 46 ExpressionNode * params = nullptr; -
src/Parser/parser.yy
rae267366 rf883ef1 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Feb 24 14:46:55202313 // Update Count : 5 98312 // Last Modified On : Tue Feb 14 21:11:39 2023 13 // Update Count : 5893 14 14 // 15 15 … … 1941 1941 // if type_specifier is an anon aggregate => name 1942 1942 typedefTable.addToEnclosingScope( *$3->name, TYPEDEFname, "4" ); 1943 $$ = $3->addType( $2 )->addTypedef(); // watchout frees $2 and $31943 $$ = $3->addType( $2 )->addTypedef(); 1944 1944 } 1945 1945 | typedef_declaration pop ',' push declarator … … 1983 1983 | typedef_expression // deprecated GCC, naming expression type 1984 1984 | sue_declaration_specifier 1985 {1986 assert( $1->type );1987 if ( $1->type->qualifiers.any() ) { // CV qualifiers ?1988 SemanticError( yylloc, "Useless type qualifier(s) in empty declaration." ); $$ = nullptr;1989 }1990 // enums are never empty declarations because there must have at least one enumeration.1991 if ( $1->type->kind == TypeData::AggregateInst && $1->storageClasses.any() ) { // storage class ?1992 SemanticError( yylloc, "Useless storage qualifier(s) in empty aggregate declaration." ); $$ = nullptr;1993 }1994 }1995 1985 ; 1996 1986 … … 2010 2000 | sue_declaration_specifier invalid_types 2011 2001 { 2012 SemanticError( yylloc, ::toString( "Missing ';' after end of ", 2013 $1->type->enumeration.name ? "enum" : AggregateDecl::aggrString( $1->type->aggregate.kind ), 2014 " declaration" ) ); 2002 SemanticError( yylloc, 2003 ::toString( "Missing ';' after end of ", 2004 $1->type->enumeration.name ? "enum" : AggregateDecl::aggrString( $1->type->aggregate.kind ), 2005 " declaration" ) ); 2015 2006 $$ = nullptr; 2016 2007 } … … 2591 2582 | ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt '{' enumerator_list comma_opt '}' 2592 2583 { 2593 if ( $3->storageClasses.val != 0 || $3->type->qualifiers. any())2584 if ( $3->storageClasses.val != 0 || $3->type->qualifiers.val != 0 ) 2594 2585 { SemanticError( yylloc, "storage-class and CV qualifiers are not meaningful for enumeration constants, which are const." ); } 2595 2586 … … 2602 2593 | ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt identifier attribute_list_opt 2603 2594 { 2604 if ( $3->storageClasses. any()|| $3->type->qualifiers.val != 0 ) { SemanticError( yylloc, "storage-class and CV qualifiers are not meaningful for enumeration constants, which are const." ); }2595 if ( $3->storageClasses.val != 0 || $3->type->qualifiers.val != 0 ) { SemanticError( yylloc, "storage-class and CV qualifiers are not meaningful for enumeration constants, which are const." ); } 2605 2596 typedefTable.makeTypedef( *$6 ); 2606 2597 } … … 3061 3052 { $$ = DeclarationNode::newDirectiveStmt( new StatementNode( build_directive( $1 ) ) ); } 3062 3053 | declaration 3063 {3064 // Variable declarations of anonymous types requires creating a unique type-name across multiple translation3065 // unit, which is a dubious task, especially because C uses name rather than structural typing; hence it is3066 // disallowed at the moment.3067 if ( $1->linkage == LinkageSpec::Cforall && ! $1->storageClasses.is_static && $1->type && $1->type->kind == TypeData::AggregateInst ) {3068 if ( $1->type->aggInst.aggregate->kind == TypeData::Enum && $1->type->aggInst.aggregate->enumeration.anon ) {3069 SemanticError( yylloc, "extern anonymous enumeration is currently unimplemented." ); $$ = nullptr;3070 } else if ( $1->type->aggInst.aggregate->aggregate.anon ) { // handles struct or union3071 SemanticError( yylloc, "extern anonymous struct/union is currently unimplemented." ); $$ = nullptr;3072 }3073 }3074 }3075 3054 | IDENTIFIER IDENTIFIER 3076 3055 { IdentifierBeforeIdentifier( *$1.str, *$2.str, " declaration" ); $$ = nullptr; } … … 3118 3097 | type_qualifier_list 3119 3098 { 3120 if ( $1->type->qualifiers. any()) { SemanticError( yylloc, "CV qualifiers cannot be distributed; only storage-class and forall qualifiers." ); }3099 if ( $1->type->qualifiers.val ) { SemanticError( yylloc, "CV qualifiers cannot be distributed; only storage-class and forall qualifiers." ); } 3121 3100 if ( $1->type->forall ) forall = true; // remember generic type 3122 3101 } … … 3129 3108 | declaration_qualifier_list 3130 3109 { 3131 if ( $1->type && $1->type->qualifiers. any()) { SemanticError( yylloc, "CV qualifiers cannot be distributed; only storage-class and forall qualifiers." ); }3110 if ( $1->type && $1->type->qualifiers.val ) { SemanticError( yylloc, "CV qualifiers cannot be distributed; only storage-class and forall qualifiers." ); } 3132 3111 if ( $1->type && $1->type->forall ) forall = true; // remember generic type 3133 3112 } … … 3140 3119 | declaration_qualifier_list type_qualifier_list 3141 3120 { 3142 if ( ($1->type && $1->type->qualifiers. any()) || ($2->type && $2->type->qualifiers.any()) ) { SemanticError( yylloc, "CV qualifiers cannot be distributed; only storage-class and forall qualifiers." ); }3121 if ( ($1->type && $1->type->qualifiers.val) || ($2->type && $2->type->qualifiers.val) ) { SemanticError( yylloc, "CV qualifiers cannot be distributed; only storage-class and forall qualifiers." ); } 3143 3122 if ( ($1->type && $1->type->forall) || ($2->type && $2->type->forall) ) forall = true; // remember generic type 3144 3123 } -
src/SynTree/Type.h
rae267366 rf883ef1 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Feb 19 22:37:10202313 // Update Count : 17 612 // Last Modified On : Mon Feb 13 17:13:52 2023 13 // Update Count : 173 14 14 // 15 15 … … 125 125 bool operator!=( Qualifiers other ) const { return (val & Mask) != (other.val & Mask); } 126 126 bool operator<=( Qualifiers other ) const { 127 return is_const <= other.is_const // Any non-const converts to const without cost128 && is_volatile <= other.is_volatile //Any non-volatile converts to volatile without cost129 && is_mutex >= other.is_mutex //Any mutex converts to non-mutex without cost130 && is_atomic == other.is_atomic; //No conversion from atomic to non atomic is free127 return is_const <= other.is_const //Any non-const converts to const without cost 128 && is_volatile <= other.is_volatile //Any non-volatile converts to volatile without cost 129 && is_mutex >= other.is_mutex //Any mutex converts to non-mutex without cost 130 && is_atomic == other.is_atomic; //No conversion from atomic to non atomic is free 131 131 } 132 132 bool operator<( Qualifiers other ) const { return *this != other && *this <= other; } … … 632 632 class TypeofType : public Type { 633 633 public: 634 Expression * expr; ///< expression to take the type of635 bool is_basetypeof; ///< true iff is basetypeof type634 Expression * expr; ///< expression to take the type of 635 bool is_basetypeof; ///< true iff is basetypeof type 636 636 637 637 TypeofType( const Type::Qualifiers & tq, Expression * expr, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); -
tests/.expect/attributes.x64.txt
rae267366 rf883ef1 26 26 return _X4_retS12__anonymous0_1; 27 27 } 28 __attribute__ ((unused)) st atic struct __anonymous0 _X5DummyS12__anonymous0_1;28 __attribute__ ((unused)) struct __anonymous0 _X5DummyS12__anonymous0_1; 29 29 struct __attribute__ ((unused)) Agn1; 30 30 struct __attribute__ ((unused)) Agn2 { -
tests/.expect/declarationSpecifier.x64.txt
rae267366 rf883ef1 51 51 52 52 } 53 staticvolatile const struct __anonymous0 _X3x10KVS12__anonymous0_1;53 volatile const struct __anonymous0 _X3x10KVS12__anonymous0_1; 54 54 struct __anonymous1 { 55 55 signed int _X1ii_1; … … 96 96 97 97 } 98 staticvolatile const struct __anonymous1 _X3x11KVS12__anonymous1_1;98 volatile const struct __anonymous1 _X3x11KVS12__anonymous1_1; 99 99 struct __anonymous2 { 100 100 signed int _X1ii_1; … … 141 141 142 142 } 143 staticvolatile const struct __anonymous2 _X3x12KVS12__anonymous2_1;143 volatile const struct __anonymous2 _X3x12KVS12__anonymous2_1; 144 144 struct __anonymous3 { 145 145 signed int _X1ii_1; … … 322 322 } 323 323 static volatile const struct __anonymous6 _X3x16KVS12__anonymous6_1; 324 struct __anonymous7 { 325 signed int _X1ii_1; 326 }; 327 static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1); 328 static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1); 329 static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1); 330 static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1); 331 static inline void _X12_constructorFv_S12__anonymous7i_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed int _X1ii_1); 332 static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){ 333 { 334 ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1) /* ?{} */); 335 } 336 337 } 338 static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){ 339 { 340 ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X4_srcS12__anonymous7_1._X1ii_1) /* ?{} */); 341 } 342 343 } 344 static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){ 345 { 346 ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1) /* ^?{} */); 347 } 348 349 } 350 static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){ 351 struct __anonymous7 _X4_retS12__anonymous7_1; 352 { 353 ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X4_srcS12__anonymous7_1._X1ii_1)); 354 } 355 356 { 357 ((void)_X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1((&_X4_retS12__anonymous7_1), (*_X4_dstS12__anonymous7_1))); 358 } 359 360 return _X4_retS12__anonymous7_1; 361 } 362 static inline void _X12_constructorFv_S12__anonymous7i_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed int _X1ii_1){ 363 { 364 ((void)((*_X4_dstS12__anonymous7_1)._X1ii_1=_X1ii_1) /* ?{} */); 365 } 366 367 } 368 static volatile const struct __anonymous7 _X3x17KVS12__anonymous7_1; 324 369 volatile const signed short int _X3x20KVs_1; 325 370 static volatile const signed short int _X3x21KVs_1; … … 330 375 static volatile const signed short int _X3x26KVs_1; 331 376 static volatile const signed short int _X3x27KVs_1; 332 struct __anonymous7 {333 signed short int _X1is_1;334 };335 static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);336 static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);337 static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1);338 static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1);339 static inline void _X12_constructorFv_S12__anonymous7s_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed short int _X1is_1);340 static inline void _X12_constructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){341 {342 ((void)((*_X4_dstS12__anonymous7_1)._X1is_1) /* ?{} */);343 }344 345 }346 static inline void _X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){347 {348 ((void)((*_X4_dstS12__anonymous7_1)._X1is_1=_X4_srcS12__anonymous7_1._X1is_1) /* ?{} */);349 }350 351 }352 static inline void _X11_destructorFv_S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1){353 {354 ((void)((*_X4_dstS12__anonymous7_1)._X1is_1) /* ^?{} */);355 }356 357 }358 static inline struct __anonymous7 _X16_operator_assignFS12__anonymous7_S12__anonymous7S12__anonymous7_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, struct __anonymous7 _X4_srcS12__anonymous7_1){359 struct __anonymous7 _X4_retS12__anonymous7_1;360 {361 ((void)((*_X4_dstS12__anonymous7_1)._X1is_1=_X4_srcS12__anonymous7_1._X1is_1));362 }363 364 {365 ((void)_X12_constructorFv_S12__anonymous7S12__anonymous7_autogen___1((&_X4_retS12__anonymous7_1), (*_X4_dstS12__anonymous7_1)));366 }367 368 return _X4_retS12__anonymous7_1;369 }370 static inline void _X12_constructorFv_S12__anonymous7s_autogen___1(struct __anonymous7 *_X4_dstS12__anonymous7_1, signed short int _X1is_1){371 {372 ((void)((*_X4_dstS12__anonymous7_1)._X1is_1=_X1is_1) /* ?{} */);373 }374 375 }376 static volatile const struct __anonymous7 _X3x29KVS12__anonymous7_1;377 377 struct __anonymous8 { 378 378 signed short int _X1is_1; … … 419 419 420 420 } 421 static volatile const struct __anonymous8 _X3x30KVS12__anonymous8_1;421 volatile const struct __anonymous8 _X3x29KVS12__anonymous8_1; 422 422 struct __anonymous9 { 423 423 signed short int _X1is_1; … … 464 464 465 465 } 466 static volatile const struct __anonymous9 _X3x31KVS12__anonymous9_1;466 volatile const struct __anonymous9 _X3x30KVS12__anonymous9_1; 467 467 struct __anonymous10 { 468 468 signed short int _X1is_1; … … 509 509 510 510 } 511 static volatile const struct __anonymous10 _X3x32KVS13__anonymous10_1;511 volatile const struct __anonymous10 _X3x31KVS13__anonymous10_1; 512 512 struct __anonymous11 { 513 513 signed short int _X1is_1; … … 554 554 555 555 } 556 static volatile const struct __anonymous11 _X3x3 3KVS13__anonymous11_1;556 static volatile const struct __anonymous11 _X3x32KVS13__anonymous11_1; 557 557 struct __anonymous12 { 558 558 signed short int _X1is_1; … … 599 599 600 600 } 601 static volatile const struct __anonymous12 _X3x3 4KVS13__anonymous12_1;601 static volatile const struct __anonymous12 _X3x33KVS13__anonymous12_1; 602 602 struct __anonymous13 { 603 603 signed short int _X1is_1; … … 644 644 645 645 } 646 static volatile const struct __anonymous13 _X3x35KVS13__anonymous13_1; 646 static volatile const struct __anonymous13 _X3x34KVS13__anonymous13_1; 647 struct __anonymous14 { 648 signed short int _X1is_1; 649 }; 650 static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1); 651 static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1); 652 static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1); 653 static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1); 654 static inline void _X12_constructorFv_S13__anonymous14s_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed short int _X1is_1); 655 static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){ 656 { 657 ((void)((*_X4_dstS13__anonymous14_1)._X1is_1) /* ?{} */); 658 } 659 660 } 661 static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){ 662 { 663 ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X4_srcS13__anonymous14_1._X1is_1) /* ?{} */); 664 } 665 666 } 667 static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){ 668 { 669 ((void)((*_X4_dstS13__anonymous14_1)._X1is_1) /* ^?{} */); 670 } 671 672 } 673 static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){ 674 struct __anonymous14 _X4_retS13__anonymous14_1; 675 { 676 ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X4_srcS13__anonymous14_1._X1is_1)); 677 } 678 679 { 680 ((void)_X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1((&_X4_retS13__anonymous14_1), (*_X4_dstS13__anonymous14_1))); 681 } 682 683 return _X4_retS13__anonymous14_1; 684 } 685 static inline void _X12_constructorFv_S13__anonymous14s_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed short int _X1is_1){ 686 { 687 ((void)((*_X4_dstS13__anonymous14_1)._X1is_1=_X1is_1) /* ?{} */); 688 } 689 690 } 691 static volatile const struct __anonymous14 _X3x35KVS13__anonymous14_1; 692 struct __anonymous15 { 693 signed short int _X1is_1; 694 }; 695 static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1); 696 static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1); 697 static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1); 698 static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1); 699 static inline void _X12_constructorFv_S13__anonymous15s_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed short int _X1is_1); 700 static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){ 701 { 702 ((void)((*_X4_dstS13__anonymous15_1)._X1is_1) /* ?{} */); 703 } 704 705 } 706 static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){ 707 { 708 ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X4_srcS13__anonymous15_1._X1is_1) /* ?{} */); 709 } 710 711 } 712 static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){ 713 { 714 ((void)((*_X4_dstS13__anonymous15_1)._X1is_1) /* ^?{} */); 715 } 716 717 } 718 static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){ 719 struct __anonymous15 _X4_retS13__anonymous15_1; 720 { 721 ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X4_srcS13__anonymous15_1._X1is_1)); 722 } 723 724 { 725 ((void)_X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1((&_X4_retS13__anonymous15_1), (*_X4_dstS13__anonymous15_1))); 726 } 727 728 return _X4_retS13__anonymous15_1; 729 } 730 static inline void _X12_constructorFv_S13__anonymous15s_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed short int _X1is_1){ 731 { 732 ((void)((*_X4_dstS13__anonymous15_1)._X1is_1=_X1is_1) /* ?{} */); 733 } 734 735 } 736 static volatile const struct __anonymous15 _X3x36KVS13__anonymous15_1; 647 737 _Thread_local signed int _X3x37i_1; 648 738 __thread signed int _X3x38i_1; … … 663 753 static inline volatile const signed short int _X3f27Fs___1(); 664 754 static inline volatile const signed short int _X3f28Fs___1(); 665 struct __anonymous14 {666 signed int _X1ii_1;667 };668 static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);669 static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);670 static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1);671 static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1);672 static inline void _X12_constructorFv_S13__anonymous14i_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed int _X1ii_1);673 static inline void _X12_constructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){674 {675 ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1) /* ?{} */);676 }677 678 }679 static inline void _X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){680 {681 ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1=_X4_srcS13__anonymous14_1._X1ii_1) /* ?{} */);682 }683 684 }685 static inline void _X11_destructorFv_S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1){686 {687 ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1) /* ^?{} */);688 }689 690 }691 static inline struct __anonymous14 _X16_operator_assignFS13__anonymous14_S13__anonymous14S13__anonymous14_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, struct __anonymous14 _X4_srcS13__anonymous14_1){692 struct __anonymous14 _X4_retS13__anonymous14_1;693 {694 ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1=_X4_srcS13__anonymous14_1._X1ii_1));695 }696 697 {698 ((void)_X12_constructorFv_S13__anonymous14S13__anonymous14_autogen___1((&_X4_retS13__anonymous14_1), (*_X4_dstS13__anonymous14_1)));699 }700 701 return _X4_retS13__anonymous14_1;702 }703 static inline void _X12_constructorFv_S13__anonymous14i_autogen___1(struct __anonymous14 *_X4_dstS13__anonymous14_1, signed int _X1ii_1){704 {705 ((void)((*_X4_dstS13__anonymous14_1)._X1ii_1=_X1ii_1) /* ?{} */);706 }707 708 }709 static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1();710 struct __anonymous15 {711 signed int _X1ii_1;712 };713 static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);714 static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);715 static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1);716 static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1);717 static inline void _X12_constructorFv_S13__anonymous15i_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed int _X1ii_1);718 static inline void _X12_constructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){719 {720 ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1) /* ?{} */);721 }722 723 }724 static inline void _X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){725 {726 ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1=_X4_srcS13__anonymous15_1._X1ii_1) /* ?{} */);727 }728 729 }730 static inline void _X11_destructorFv_S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1){731 {732 ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1) /* ^?{} */);733 }734 735 }736 static inline struct __anonymous15 _X16_operator_assignFS13__anonymous15_S13__anonymous15S13__anonymous15_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, struct __anonymous15 _X4_srcS13__anonymous15_1){737 struct __anonymous15 _X4_retS13__anonymous15_1;738 {739 ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1=_X4_srcS13__anonymous15_1._X1ii_1));740 }741 742 {743 ((void)_X12_constructorFv_S13__anonymous15S13__anonymous15_autogen___1((&_X4_retS13__anonymous15_1), (*_X4_dstS13__anonymous15_1)));744 }745 746 return _X4_retS13__anonymous15_1;747 }748 static inline void _X12_constructorFv_S13__anonymous15i_autogen___1(struct __anonymous15 *_X4_dstS13__anonymous15_1, signed int _X1ii_1){749 {750 ((void)((*_X4_dstS13__anonymous15_1)._X1ii_1=_X1ii_1) /* ?{} */);751 }752 753 }754 static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1();755 755 struct __anonymous16 { 756 756 signed int _X1ii_1; … … 797 797 798 798 } 799 static inline volatile const struct __anonymous16 _X3f3 3FS13__anonymous16___1();799 static inline volatile const struct __anonymous16 _X3f31FS13__anonymous16___1(); 800 800 struct __anonymous17 { 801 801 signed int _X1ii_1; … … 842 842 843 843 } 844 static inline volatile const struct __anonymous17 _X3f3 4FS13__anonymous17___1();844 static inline volatile const struct __anonymous17 _X3f32FS13__anonymous17___1(); 845 845 struct __anonymous18 { 846 846 signed int _X1ii_1; … … 887 887 888 888 } 889 static inline volatile const struct __anonymous18 _X3f3 5FS13__anonymous18___1();889 static inline volatile const struct __anonymous18 _X3f33FS13__anonymous18___1(); 890 890 struct __anonymous19 { 891 891 signed int _X1ii_1; … … 932 932 933 933 } 934 static inline volatile const struct __anonymous19 _X3f3 6FS13__anonymous19___1();934 static inline volatile const struct __anonymous19 _X3f34FS13__anonymous19___1(); 935 935 struct __anonymous20 { 936 936 signed int _X1ii_1; … … 977 977 978 978 } 979 static inline volatile const struct __anonymous20 _X3f3 7FS13__anonymous20___1();979 static inline volatile const struct __anonymous20 _X3f35FS13__anonymous20___1(); 980 980 struct __anonymous21 { 981 981 signed int _X1ii_1; … … 1022 1022 1023 1023 } 1024 static inline volatile const struct __anonymous21 _X3f38FS13__anonymous21___1(); 1024 static inline volatile const struct __anonymous21 _X3f36FS13__anonymous21___1(); 1025 struct __anonymous22 { 1026 signed int _X1ii_1; 1027 }; 1028 static inline void _X12_constructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1); 1029 static inline void _X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1); 1030 static inline void _X11_destructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1); 1031 static inline struct __anonymous22 _X16_operator_assignFS13__anonymous22_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1); 1032 static inline void _X12_constructorFv_S13__anonymous22i_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, signed int _X1ii_1); 1033 static inline void _X12_constructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1){ 1034 { 1035 ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1) /* ?{} */); 1036 } 1037 1038 } 1039 static inline void _X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1){ 1040 { 1041 ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X4_srcS13__anonymous22_1._X1ii_1) /* ?{} */); 1042 } 1043 1044 } 1045 static inline void _X11_destructorFv_S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1){ 1046 { 1047 ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1) /* ^?{} */); 1048 } 1049 1050 } 1051 static inline struct __anonymous22 _X16_operator_assignFS13__anonymous22_S13__anonymous22S13__anonymous22_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, struct __anonymous22 _X4_srcS13__anonymous22_1){ 1052 struct __anonymous22 _X4_retS13__anonymous22_1; 1053 { 1054 ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X4_srcS13__anonymous22_1._X1ii_1)); 1055 } 1056 1057 { 1058 ((void)_X12_constructorFv_S13__anonymous22S13__anonymous22_autogen___1((&_X4_retS13__anonymous22_1), (*_X4_dstS13__anonymous22_1))); 1059 } 1060 1061 return _X4_retS13__anonymous22_1; 1062 } 1063 static inline void _X12_constructorFv_S13__anonymous22i_autogen___1(struct __anonymous22 *_X4_dstS13__anonymous22_1, signed int _X1ii_1){ 1064 { 1065 ((void)((*_X4_dstS13__anonymous22_1)._X1ii_1=_X1ii_1) /* ?{} */); 1066 } 1067 1068 } 1069 static inline volatile const struct __anonymous22 _X3f37FS13__anonymous22___1(); 1070 struct __anonymous23 { 1071 signed int _X1ii_1; 1072 }; 1073 static inline void _X12_constructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1); 1074 static inline void _X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1); 1075 static inline void _X11_destructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1); 1076 static inline struct __anonymous23 _X16_operator_assignFS13__anonymous23_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1); 1077 static inline void _X12_constructorFv_S13__anonymous23i_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, signed int _X1ii_1); 1078 static inline void _X12_constructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1){ 1079 { 1080 ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1) /* ?{} */); 1081 } 1082 1083 } 1084 static inline void _X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1){ 1085 { 1086 ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X4_srcS13__anonymous23_1._X1ii_1) /* ?{} */); 1087 } 1088 1089 } 1090 static inline void _X11_destructorFv_S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1){ 1091 { 1092 ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1) /* ^?{} */); 1093 } 1094 1095 } 1096 static inline struct __anonymous23 _X16_operator_assignFS13__anonymous23_S13__anonymous23S13__anonymous23_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, struct __anonymous23 _X4_srcS13__anonymous23_1){ 1097 struct __anonymous23 _X4_retS13__anonymous23_1; 1098 { 1099 ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X4_srcS13__anonymous23_1._X1ii_1)); 1100 } 1101 1102 { 1103 ((void)_X12_constructorFv_S13__anonymous23S13__anonymous23_autogen___1((&_X4_retS13__anonymous23_1), (*_X4_dstS13__anonymous23_1))); 1104 } 1105 1106 return _X4_retS13__anonymous23_1; 1107 } 1108 static inline void _X12_constructorFv_S13__anonymous23i_autogen___1(struct __anonymous23 *_X4_dstS13__anonymous23_1, signed int _X1ii_1){ 1109 { 1110 ((void)((*_X4_dstS13__anonymous23_1)._X1ii_1=_X1ii_1) /* ?{} */); 1111 } 1112 1113 } 1114 static inline volatile const struct __anonymous23 _X3f38FS13__anonymous23___1(); 1025 1115 static inline volatile const signed short int _X3f41Fs___1(); 1026 1116 static inline volatile const signed short int _X3f42Fs___1(); -
tests/attributes.cfa
rae267366 rf883ef1 10 10 // Created On : Mon Feb 6 16:07:02 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Feb 23 20:33:07 202313 // Update Count : 3 912 // Last Modified On : Mon Mar 15 13:53:31 2021 13 // Update Count : 38 14 14 // 15 15 … … 22 22 23 23 // aggregate_name 24 st atic struct __attribute__(( unused )) {} Dummy;24 struct __attribute__(( unused )) {} Dummy; 25 25 struct __attribute__(( unused )) Agn1; 26 26 struct __attribute__(( unused )) Agn2 {}; -
tests/concurrent/signal/disjoint.cfa
rae267366 rf883ef1 38 38 39 39 // Use a global struct because the order needs to match with Signaller thread 40 st atic struct {40 struct { 41 41 global_t mut; 42 42 global_data_t data; -
tests/declarationSpecifier.cfa
rae267366 rf883ef1 10 10 // Created On : Wed Aug 17 08:21:04 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T hu Feb 23 20:53:31 202313 // Update Count : 812 // Last Modified On : Tue Apr 30 18:20:36 2019 13 // Update Count : 4 14 14 // 15 15 … … 25 25 short int volatile static const x8; 26 26 27 static const volatile struct { int i; } x10; 28 static const struct { int i; } volatile x11; 29 static struct { int i; } const volatile x12; 30 const static struct { int i; } volatile x13; 31 struct { int i; } static const volatile x14; 32 struct { int i; } const static volatile x15; 33 struct { int i; } const volatile static x16; 27 const volatile struct { int i; } x10; 28 const struct { int i; } volatile x11; 29 struct { int i; } const volatile x12; 30 static const volatile struct { int i; } x13; 31 const static struct { int i; } volatile x14; 32 struct { int i; } static const volatile x15; 33 struct { int i; } const static volatile x16; 34 struct { int i; } const volatile static x17; 34 35 35 36 const Int volatile x20; … … 42 43 Int volatile static const x27; 43 44 44 static const volatile struct { Int i; } x29; 45 static const struct { Int i; } volatile x30; 46 static struct { Int i; } const volatile x31; 47 const static struct { Int i; } volatile x32; 48 struct { Int i; } static const volatile x33; 49 struct { Int i; } const static volatile x34; 50 struct { Int i; } const volatile static x35; 45 const volatile struct { Int i; } x29; 46 const struct { Int i; } volatile x30; 47 struct { Int i; } const volatile x31; 48 static const volatile struct { Int i; } x32; 49 const static struct { Int i; } volatile x33; 50 struct { Int i; } static const volatile x34; 51 struct { Int i; } const static volatile x35; 52 struct { Int i; } const volatile static x36; 51 53 52 54 _Thread_local int x37; -
tests/forall.cfa
rae267366 rf883ef1 10 10 // Created On : Wed May 9 08:48:15 2018 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Feb 23 20:29:59202313 // Update Count : 9 112 // Last Modified On : Sun Feb 5 07:54:43 2023 13 // Update Count : 90 14 14 // 15 15 … … 195 195 196 196 forall( T ) struct S { T t; } (int) x, y, z; 197 staticforall( T ) struct { T t; } (int) a, b, c;197 forall( T ) struct { T t; } (int) a, b, c; 198 198 199 199 forall( T ) static forall( S ) { -
tests/include/includes.cfa
rae267366 rf883ef1 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 : 81112 // Last Modified On : Sun May 22 08:27:20 2022 13 // Update Count : 779 14 14 // 15 15 … … 72 72 #include <gshadow.h> 73 73 #include <iconv.h> 74 //#include <ifaddrs.h> // causes warning messages that break the build 74 #include <ifaddrs.h> 75 75 #include <inttypes.h> 76 76 #include <langinfo.h> … … 97 97 #include <ncurses_dll.h> // may not be installed, comes with ncurses 98 98 #endif 99 //#include <netdb.h>99 #include <netdb.h> 100 100 #include <nl_types.h> 101 101 #include <nss.h> … … 111 111 #include <pwd.h> 112 112 #include <regex.h> 113 //#include <resolv.h>113 #include <resolv.h> 114 114 #include <re_comp.h> 115 115 #include <sched.h> … … 170 170 #endif // __CFA__ 171 171 172 int main( ) {172 int main( int argc, char const * argv[] ) { 173 173 #pragma GCC warning "Compiled" // force non-empty .expect file, NO TABS!!! 174 174 } -
tests/io/comp_basic.cfa
rae267366 rf883ef1 26 26 #include <unistd.h> 27 27 28 st atic struct {28 struct { 29 29 barrier & bar; 30 30 int pipe[2]; 31 31 32 } globals; 32 33 -
tests/io/comp_fair.cfa
rae267366 rf883ef1 26 26 #include <unistd.h> 27 27 28 st atic struct {28 struct { 29 29 barrier & bar; 30 30 int pipe[2]; -
tests/quotedKeyword.cfa
rae267366 rf883ef1 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Feb 23 20:31:05 202313 // Update Count : 2 612 // Last Modified On : Fri Feb 7 19:07:07 2020 13 // Update Count : 25 14 14 // 15 15 16 16 #include <fstream.hfa> 17 17 18 st atic struct {18 struct { 19 19 int ``otype; 20 20 int ``struct;
Note:
See TracChangeset
for help on using the changeset viewer.