- Timestamp:
- Jul 10, 2018, 8:20:50 AM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, no_list, persistent-indexer, pthread-emulation, qualifiedEnum
- Children:
- 3d7e53b
- Parents:
- 036dd5f (diff), 97be800 (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. - Location:
- src
- Files:
-
- 10 edited
-
Common/ScopedMap.h (modified) (18 diffs)
-
Parser/TypedefTable.cc (modified) (1 diff)
-
Parser/TypedefTable.h (modified) (1 diff)
-
Parser/lex.ll (modified) (1 diff)
-
prelude/Makefile.am (modified) (2 diffs)
-
prelude/Makefile.in (modified) (2 diffs)
-
prelude/prelude-gen.cc (modified) (12 diffs)
-
tests/.expect/attributes.x86.txt (modified) (1 diff)
-
tests/Makefile.am (modified) (1 diff)
-
tests/attributes.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Common/ScopedMap.h
r036dd5f raeec6b7 22 22 #include <vector> 23 23 24 /// Default (empty) ScopedMap note type 25 struct EmptyNote {}; 26 24 27 /// A map where the items are placed into nested scopes; 25 /// inserted items are placed into the innermost scope, lookup looks from the innermost scope outward 26 template<typename Key, typename Value> 28 /// inserted items are placed into the innermost scope, lookup looks from the innermost scope outward. 29 /// Scopes may be annotated with a value; the annotation defaults to empty 30 template<typename Key, typename Value, typename Note = EmptyNote> 27 31 class ScopedMap { 28 typedef std::map< Key, Value > Scope; 32 typedef std::map< Key, Value > MapType; 33 struct Scope { 34 MapType map; 35 Note note; 36 37 template<typename N> 38 Scope(N&& n) : map(), note(std::forward<N>(n)) {} 39 40 Scope() = default; 41 Scope(const Scope&) = default; 42 Scope(Scope&&) = default; 43 Scope& operator= (const Scope&) = default; 44 Scope& operator= (Scope&&) = default; 45 }; 29 46 typedef std::vector< Scope > ScopeList; 30 47 31 48 ScopeList scopes; ///< scoped list of maps 32 49 public: 33 typedef typename Scope::key_type key_type;34 typedef typename Scope::mapped_type mapped_type;35 typedef typename Scope::value_type value_type;50 typedef typename MapType::key_type key_type; 51 typedef typename MapType::mapped_type mapped_type; 52 typedef typename MapType::value_type value_type; 36 53 typedef typename ScopeList::size_type size_type; 37 54 typedef typename ScopeList::difference_type difference_type; 38 typedef typename Scope::reference reference;39 typedef typename Scope::const_reference const_reference;40 typedef typename Scope::pointer pointer;41 typedef typename Scope::const_pointer const_pointer;55 typedef typename MapType::reference reference; 56 typedef typename MapType::const_reference const_reference; 57 typedef typename MapType::pointer pointer; 58 typedef typename MapType::const_pointer const_pointer; 42 59 43 60 class iterator : public std::iterator< std::bidirectional_iterator_tag, … … 45 62 friend class ScopedMap; 46 63 friend class const_iterator; 47 typedef typename std::map< Key, Value >::iterator wrapped_iterator;48 typedef typename std::vector< std::map< Key, Value > >scope_list;64 typedef typename ScopedMap::MapType::iterator wrapped_iterator; 65 typedef typename ScopedMap::ScopeList scope_list; 49 66 typedef typename scope_list::size_type size_type; 50 67 51 68 /// Checks if this iterator points to a valid item 52 69 bool is_valid() const { 53 return it != (*scopes)[level]. end();70 return it != (*scopes)[level].map.end(); 54 71 } 55 72 … … 79 96 80 97 iterator& operator++ () { 81 if ( it == (*scopes)[level]. end() ) {98 if ( it == (*scopes)[level].map.end() ) { 82 99 if ( level == 0 ) return *this; 83 100 --level; 84 it = (*scopes)[level]. begin();101 it = (*scopes)[level].map.begin(); 85 102 } else { 86 103 ++it; … … 92 109 iterator& operator-- () { 93 110 // may fail if this is the begin iterator; allowed by STL spec 94 if ( it == (*scopes)[level]. begin() ) {111 if ( it == (*scopes)[level].map.begin() ) { 95 112 ++level; 96 it = (*scopes)[level]. end();113 it = (*scopes)[level].map.end(); 97 114 } 98 115 --it; … … 107 124 108 125 size_type get_level() const { return level; } 126 127 Note& get_note() { return (*scopes)[level].note; } 128 const Note& get_note() const { return (*scopes)[level].note; } 109 129 110 130 private: … … 117 137 value_type > { 118 138 friend class ScopedMap; 119 typedef typename std::map< Key, Value >::iterator wrapped_iterator;120 typedef typename std::map< Key, Value >::const_iterator wrapped_const_iterator;121 typedef typename std::vector< std::map< Key, Value > >scope_list;139 typedef typename ScopedMap::MapType::iterator wrapped_iterator; 140 typedef typename ScopedMap::MapType::const_iterator wrapped_const_iterator; 141 typedef typename ScopedMap::ScopeList scope_list; 122 142 typedef typename scope_list::size_type size_type; 123 143 124 144 /// Checks if this iterator points to a valid item 125 145 bool is_valid() const { 126 return it != (*scopes)[level]. end();146 return it != (*scopes)[level].map.end(); 127 147 } 128 148 … … 157 177 158 178 const_iterator& operator++ () { 159 if ( it == (*scopes)[level]. end() ) {179 if ( it == (*scopes)[level].map.end() ) { 160 180 if ( level == 0 ) return *this; 161 181 --level; 162 it = (*scopes)[level]. begin();182 it = (*scopes)[level].map.begin(); 163 183 } else { 164 184 ++it; … … 170 190 const_iterator& operator-- () { 171 191 // may fail if this is the begin iterator; allowed by STL spec 172 if ( it == (*scopes)[level]. begin() ) {192 if ( it == (*scopes)[level].map.begin() ) { 173 193 ++level; 174 it = (*scopes)[level]. end();194 it = (*scopes)[level].map.end(); 175 195 } 176 196 --it; … … 185 205 186 206 size_type get_level() const { return level; } 207 208 const Note& get_note() const { return (*scopes)[level].note; } 187 209 188 210 private: … … 197 219 } 198 220 221 // Starts a new scope with the given note 222 template<typename N> 223 void beginScope( N&& n ) { 224 scopes.emplace_back( std::forward<N>(n) ); 225 } 226 199 227 /// Ends a scope; invalidates any iterators pointing to elements of that scope 200 228 void endScope() { … … 204 232 205 233 /// Default constructor initializes with one scope 206 ScopedMap() { beginScope(); } 207 208 iterator begin() { return iterator(scopes, scopes.back().begin(), currentScope()).next_valid(); } 209 const_iterator begin() const { return const_iterator(scopes, scopes.back().begin(), currentScope()).next_valid(); } 210 const_iterator cbegin() const { return const_iterator(scopes, scopes.back().begin(), currentScope()).next_valid(); } 211 iterator end() { return iterator(scopes, scopes[0].end(), 0); } 212 const_iterator end() const { return const_iterator(scopes, scopes[0].end(), 0); } 213 const_iterator cend() const { return const_iterator(scopes, scopes[0].end(), 0); } 234 ScopedMap() : scopes() { beginScope(); } 235 236 /// Constructs with a given note on the outermost scope 237 template<typename N> 238 ScopedMap( N&& n ) : scopes() { beginScope(std::forward<N>(n)); } 239 240 iterator begin() { return iterator(scopes, scopes.back().map.begin(), currentScope()).next_valid(); } 241 const_iterator begin() const { return const_iterator(scopes, scopes.back().map.begin(), currentScope()).next_valid(); } 242 const_iterator cbegin() const { return const_iterator(scopes, scopes.back().map.begin(), currentScope()).next_valid(); } 243 iterator end() { return iterator(scopes, scopes[0].map.end(), 0); } 244 const_iterator end() const { return const_iterator(scopes, scopes[0].map.end(), 0); } 245 const_iterator cend() const { return const_iterator(scopes, scopes[0].map.end(), 0); } 214 246 215 247 /// Gets the index of the current scope (counted from 1) 216 248 size_type currentScope() const { return scopes.size() - 1; } 249 250 /// Gets the note at the given scope 251 Note& getNote( size_type i ) { return scopes[i].note; } 252 const Note& getNote( size_type i ) const { return scopes[i].note; } 217 253 218 254 /// Finds the given key in the outermost scope it occurs; returns end() for none such 219 255 iterator find( const Key &key ) { 220 256 for ( size_type i = scopes.size() - 1; ; --i ) { 221 typename Scope::iterator val = scopes[i].find( key );222 if ( val != scopes[i]. end() ) return iterator( scopes, val, i );257 typename MapType::iterator val = scopes[i].map.find( key ); 258 if ( val != scopes[i].map.end() ) return iterator( scopes, val, i ); 223 259 if ( i == 0 ) break; 224 260 } … … 226 262 } 227 263 const_iterator find( const Key &key ) const { 228 return const_iterator( const_cast< ScopedMap< Key, Value >* >(this)->find( key ) );264 return const_iterator( const_cast< ScopedMap< Key, Value, Note >* >(this)->find( key ) ); 229 265 } 230 266 231 267 /// Finds the given key in the provided scope; returns end() for none such 232 268 iterator findAt( size_type scope, const Key& key ) { 233 typename Scope::iterator val = scopes[scope].find( key );234 if ( val != scopes[scope]. end() ) return iterator( scopes, val, scope );269 typename MapType::iterator val = scopes[scope].map.find( key ); 270 if ( val != scopes[scope].map.end() ) return iterator( scopes, val, scope ); 235 271 return end(); 236 272 } 237 273 const_iterator findAt( size_type scope, const Key& key ) const { 238 return const_iterator( const_cast< ScopedMap< Key, Value >* >(this)->findAt( scope, key ) );274 return const_iterator( const_cast< ScopedMap< Key, Value, Note >* >(this)->findAt( scope, key ) ); 239 275 } 240 276 … … 243 279 if ( it.level == 0 ) return end(); 244 280 for ( size_type i = it.level - 1; ; --i ) { 245 typename Scope::iterator val = scopes[i].find( key );246 if ( val != scopes[i]. end() ) return iterator( scopes, val, i );281 typename MapType::iterator val = scopes[i].map.find( key ); 282 if ( val != scopes[i].map.end() ) return iterator( scopes, val, i ); 247 283 if ( i == 0 ) break; 248 284 } … … 250 286 } 251 287 const_iterator findNext( const_iterator &it, const Key &key ) const { 252 return const_iterator( const_cast< ScopedMap< Key, Value >* >(this)->findNext( it, key ) );288 return const_iterator( const_cast< ScopedMap< Key, Value, Note >* >(this)->findNext( it, key ) ); 253 289 } 254 290 … … 256 292 template< typename value_type_t > 257 293 std::pair< iterator, bool > insert( value_type_t&& value ) { 258 std::pair< typename Scope::iterator, bool > res = scopes.back().insert( std::forward<value_type_t>( value ) );294 std::pair< typename MapType::iterator, bool > res = scopes.back().map.insert( std::forward<value_type_t>( value ) ); 259 295 return std::make_pair( iterator(scopes, std::move( res.first ), scopes.size()-1), std::move( res.second ) ); 260 296 } … … 262 298 template< typename value_type_t > 263 299 std::pair< iterator, bool > insert( iterator at, value_type_t&& value ) { 264 Scope& scope = (*at.scopes) [ at.level ];265 std::pair< typename Scope::iterator, bool > res = scope.insert( std::forward<value_type_t>( value ) );300 MapType& scope = (*at.scopes)[ at.level ].map; 301 std::pair< typename MapType::iterator, bool > res = scope.insert( std::forward<value_type_t>( value ) ); 266 302 return std::make_pair( iterator(scopes, std::move( res.first ), at.level), std::move( res.second ) ); 267 303 } … … 272 308 template< typename value_type_t > 273 309 std::pair< iterator, bool > insertAt( size_type scope, value_type_t&& value ) { 274 std::pair< typename Scope::iterator, bool > res = scopes.at(scope).insert( std::forward<value_type_t>( value ) );310 std::pair< typename MapType::iterator, bool > res = scopes.at(scope).map.insert( std::forward<value_type_t>( value ) ); 275 311 return std::make_pair( iterator(scopes, std::move( res.first ), scope), std::move( res.second ) ); 276 312 } … … 288 324 289 325 iterator erase( iterator pos ) { 290 Scope& scope = (*pos.scopes) [ pos.level ];326 MapType& scope = (*pos.scopes)[ pos.level ].map; 291 327 const typename iterator::wrapped_iterator& new_it = scope.erase( pos.it ); 292 328 iterator it( *pos.scopes, new_it, pos.level ); -
src/Parser/TypedefTable.cc
r036dd5f raeec6b7 91 91 92 92 void TypedefTable::enterScope() { 93 kindTable.beginScope( );93 kindTable.beginScope(0); 94 94 debugPrint( cerr << "Entering scope " << kindTable.currentScope() << endl; print() ); 95 95 } // TypedefTable::enterScope -
src/Parser/TypedefTable.h
r036dd5f raeec6b7 23 23 24 24 class TypedefTable { 25 typedef ScopedMap< std::string, int > KindTable;25 typedef ScopedMap< std::string, int, int > KindTable; 26 26 KindTable kindTable; 27 unsigned int level = 0;27 unsigned int level; 28 28 public: 29 TypedefTable() : kindTable{0}, level{0} {} 29 30 ~TypedefTable(); 30 31 -
src/Parser/lex.ll
r036dd5f raeec6b7 464 464 void yyerror( const char * errmsg ) { 465 465 SemanticErrorThrow = true; 466 c out<< (yyfilename ? yyfilename : "*unknown file*") << ':' << yylineno << ':' << column - yyleng + 1466 cerr << (yyfilename ? yyfilename : "*unknown file*") << ':' << yylineno << ':' << column - yyleng + 1 467 467 << ": " << ErrorHelpers::error_str() << errmsg << " at token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << '"' << endl; 468 468 } -
src/prelude/Makefile.am
r036dd5f raeec6b7 43 43 44 44 prelude.cf : prelude-gen.cc 45 ${AM_V_GEN}${CXX} ${AM_CXXFLAGS} ${CXXFLAGS} ${<} -o prelude-gen 45 ${AM_V_GEN}${CXX} ${AM_CXXFLAGS} ${CXXFLAGS} ${<} -o prelude-gen -Wall -Wextra -O2 -g -std=c++14 46 46 @./prelude-gen > $@ 47 47 @rm ./prelude-gen … … 67 67 rm -rf $(DEPDIR) 68 68 69 MAINTAINERCLEANFILES = gcc-builtins.c gcc-builtins.cf builtins.cf extras.cf bootloader.c ${addprefix ${libdir}/,${cfalib_DATA}} ${addprefix ${libdir}/,${lib_LIBRARIES}}69 MAINTAINERCLEANFILES = gcc-builtins.c gcc-builtins.cf builtins.cf extras.cf bootloader.c prelude.cf ${addprefix ${libdir}/,${cfalib_DATA}} ${addprefix ${libdir}/,${lib_LIBRARIES}} -
src/prelude/Makefile.in
r036dd5f raeec6b7 281 281 cfalib_DATA = gcc-builtins.cf builtins.cf extras.cf prelude.cf bootloader.c 282 282 noinst_DATA = ../libcfa/libcfa-prelude.c 283 MAINTAINERCLEANFILES = gcc-builtins.c gcc-builtins.cf builtins.cf extras.cf bootloader.c ${addprefix ${libdir}/,${cfalib_DATA}} ${addprefix ${libdir}/,${lib_LIBRARIES}}283 MAINTAINERCLEANFILES = gcc-builtins.c gcc-builtins.cf builtins.cf extras.cf bootloader.c prelude.cf ${addprefix ${libdir}/,${cfalib_DATA}} ${addprefix ${libdir}/,${lib_LIBRARIES}} 284 284 all: all-am 285 285 … … 512 512 513 513 prelude.cf : prelude-gen.cc 514 ${AM_V_GEN}${CXX} ${AM_CXXFLAGS} ${CXXFLAGS} ${<} -o prelude-gen 514 ${AM_V_GEN}${CXX} ${AM_CXXFLAGS} ${CXXFLAGS} ${<} -o prelude-gen -Wall -Wextra -O2 -g -std=c++14 515 515 @./prelude-gen > $@ 516 516 @rm ./prelude-gen -
src/prelude/prelude-gen.cc
r036dd5f raeec6b7 121 121 if(mask & (1 << i)) { 122 122 result += name; 123 } else { 124 result.append(name.size(), ' '); 123 125 } 124 126 i++; … … 148 150 cout << endl; 149 151 150 cout << "void ?{}( zero_t & );" << endl;151 cout << "void ?{}( one_t & );" << endl;152 cout << "void ?{}( zero_t &, zero_t );" << endl;153 cout << "void ?{}( one_t &, one_t );" << endl;154 cout << "void ^?{}( zero_t & );" << endl;155 cout << "void ^?{}( one_t & );" << endl;156 cout << "zero_t ?=?( zero_t &, zero_t );" << endl;157 cout << "one_t ?=?( one_t &, one_t );" << endl;158 152 cout << "signed int ?==?( zero_t, zero_t ), ?!=?( zero_t, zero_t );" << endl; 159 153 cout << "signed int ?==?( one_t, one_t ), ?!=?( one_t, one_t );" << endl; 160 161 154 cout << "signed int ?==?( _Bool, _Bool ), ?!=?( _Bool, _Bool );" << endl; 162 cout << "void ?{}( _Bool & );" << endl;163 cout << "void ?{}( _Bool &, _Bool );" << endl;164 cout << "void ^?{}( _Bool & );" << endl;165 cout << "_Bool ?=?( _Bool &, _Bool ), ?=?( volatile _Bool &, _Bool );" << endl;166 155 cout << "signed int !?( _Bool );" << endl; 167 168 cout << "void ^?{}( char & );" << endl;169 cout << "void ^?{}( char unsigned & );" << endl;170 cout << "void ^?{}( char signed & );" << endl;171 cout << "void ?{}( char &, char );" << endl;172 cout << "void ?{}( unsigned char &, unsigned char );" << endl;173 cout << "void ?{}( char signed &, char signed );" << endl;174 cout << "void ?{}( char & );" << endl;175 cout << "void ?{}( unsigned char & );" << endl;176 cout << "void ?{}( char signed & );" << endl;177 cout << "char ?=?( char &, char ), ?=?( volatile char &, char );" << endl;178 cout << "char signed ?=?( char signed &, char signed ), ?=?( volatile char signed &, char signed );" << endl;179 cout << "char unsigned ?=?( char unsigned &, char unsigned ), ?=?( volatile char unsigned &, char unsigned );" << endl;180 181 156 182 157 for (auto op : arithmeticOperators) { … … 213 188 cout << "// Arithmetic Constructors //" << endl; 214 189 cout << "/////////////////////////////" << endl; 190 auto otype = [](const std::string & type, bool do_volatile = false) { 191 cout << "void \t?{} ( " << type << " & );" << endl; 192 cout << "void \t?{} ( " << type << " &, " << type << " );" << endl; 193 cout << type << " \t?=? ( " << type << " &, " << type << " )"; 194 if( do_volatile ) { 195 cout << ", \t?=?( volatile " << type << " &, " << type << " )"; 196 } 197 cout << ";" << endl; 198 cout << "void \t^?{}( " << type << " & );" << endl; 199 }; 200 201 otype("zero_t"); 202 otype("one_t"); 203 otype("_Bool", true); 204 otype("char", true); 205 otype("signed char", true); 206 otype("unsigned char", true); 207 215 208 for (auto type : basicTypes) { 216 209 cout << "void ?{}(" << type.name << " &);" << endl; … … 227 220 cout << "forall(ftype FT) void ?{}( FT * volatile &, FT * );" << endl; 228 221 229 // generate qualifiers for first and second parameters of copy constructors 222 // generate qualifiers 223 vector<string> qualifiersSingle; 230 224 vector<pair<const string, const string>> qualifiersPair; 231 225 const unsigned int NQ = 2; 232 226 for(unsigned int lhs = 0; lhs < (1<<NQ); lhs++) { 227 // for parameter of default constructor and destructor 228 qualifiersSingle.push_back(mask2string(lhs, make_array("const "s, "volatile "s))); 229 230 // for first and second parameters of copy constructors 233 231 for(unsigned int rhs = 0; rhs < (1<<NQ); rhs++) { 234 232 if((lhs & rhs) == rhs) { … … 241 239 } 242 240 243 for (auto type : { " DT", "void" }) {244 for (auto q : qualifiersPair) {245 cout << "forall(dtype DT) void ?{}(" << q.first << type << " *&, " << q.second << "DT *);" << endl;246 }247 }248 249 250 // generate qualifiers for parameter of default constructor and destructor251 vector<string> qualifiersSingle;252 for (unsigned int lhs = 0; lhs < (1<<NQ); lhs++) {253 qualifiersSingle.push_back(mask2string(lhs, make_array("const "s, "volatile "s)));254 }255 256 for (auto type : { "DT", "void" }) {257 for (auto q : qualifiersSingle) {258 cout << "forall(dtype DT) void ?{}(" << q << type << " *&);" << endl; 259 cout << "forall(dtype DT) void ^?{}(" << q << type << " *&);" << endl;260 }261 }262 cout << endl;263 264 cout << "forall(dtype DT) void ?{}( DT * &, zero_t );" << endl;265 cout << "forall(dtype DT) void ?{}( DT * volatile &, zero_t );" << endl;266 cout << "forall(dtype DT) void ?{}( const DT * &, zero_t );" << endl;267 cout << "forall(dtype DT) void ?{}( volatile DT * &, zero_t );" << endl; 268 cout << "forall(dtype DT) void ?{}( volatile DT * volatile &, zero_t );" <<endl;269 cout << "forall(dtype DT) void ?{}( const volatile DT * &, zero_t );" << endl; 241 for (auto type : { " DT", "void" }) { 242 for (auto cvq : qualifiersPair) { 243 for (auto is_vol : { " ", "volatile" }) { 244 cout << "forall(dtype DT) void ?{}(" << cvq.first << type << " * " << is_vol << " &, " << cvq.second << "DT *);" << endl; 245 } 246 } 247 for (auto cvq : qualifiersSingle) { 248 for (auto is_vol : { " ", "volatile" }) { 249 cout << "forall(dtype DT) void ?{}(" << cvq << type << " * " << is_vol << " &);" << endl; 250 } 251 for (auto is_vol : { " ", "volatile" }) { 252 cout << "forall(dtype DT) void ^?{}(" << cvq << type << " * " << is_vol << " &);" << endl; 253 } 254 } 255 } 256 257 { 258 auto type = " DT"; 259 for (auto is_vol : { " ", "volatile" }) { 260 for (auto cvq : qualifiersSingle) { 261 cout << "forall(dtype DT) void ?{}( " << cvq << type << " * " << is_vol << " &, zero_t);" << endl; 262 } 263 } 264 } 265 266 cout << endl; 267 270 268 cout << "forall(ftype FT) void ?{}( FT * &, zero_t ); " << endl; 269 cout << "forall(ftype FT) FT * ?=?( FT * &, zero_t );" << endl; 270 cout << "forall(ftype FT) FT * ?=?( FT * volatile &, zero_t );" << endl; 271 271 cout << "forall( ftype FT ) void ?{}( FT * & );" << endl; 272 272 cout << "forall( ftype FT ) void ^?{}( FT * & );" << endl; … … 285 285 286 286 287 cout << "forall( dtype DT ) void * ?=?( void * &, DT * );" << endl;288 cout << "forall( dtype DT ) void * ?=?( void * volatile &, DT * );" << endl;289 cout << "forall( dtype DT ) const void * ?=?( const void * &, DT * );" << endl;290 cout << "forall( dtype DT ) const void * ?=?( const void * volatile &, DT * );" << endl;291 cout << "forall( dtype DT ) const void * ?=?( const void * &, const DT * );" << endl;292 cout << "forall( dtype DT ) const void * ?=?( const void * volatile &, const DT * );" << endl;293 cout << "forall( dtype DT ) volatile void * ?=?( volatile void * &, DT * );" << endl;294 cout << "forall( dtype DT ) volatile void * ?=?( volatile void * volatile &, DT * );" << endl;295 cout << "forall( dtype DT ) volatile void * ?=?( volatile void * &, volatile DT * );" << endl;296 cout << "forall( dtype DT ) volatile void * ?=?( volatile void * volatile &, volatile DT * );" << endl;297 cout << "forall( dtype DT ) const volatile void * ?=?( const volatile void * &, DT * );" << endl;298 cout << "forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &, DT * );" << endl;299 cout << "forall( dtype DT ) const volatile void * ?=?( const volatile void * &, const DT * );" << endl;300 cout << "forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &, const DT * );" << endl;301 cout << "forall( dtype DT ) const volatile void * ?=?( const volatile void * &, volatile DT * );" << endl;302 cout << "forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &, volatile DT * );" << endl;303 cout << "forall( dtype DT ) const volatile void * ?=?( const volatile void * &, const volatile DT * );" << endl;304 cout << "forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile &, const volatile DT * );" << endl;305 306 287 for (auto op : pointerOperators) { 288 auto forall = [&op]() { 289 cout << "forall(dtype DT" << op.sized << ") "; 290 }; 307 291 for (auto type : { "DT"/*, "void"*/ } ) { 308 292 auto operands = count(op.name.begin(), op.name.end(), '?'); … … 313 297 if (operands == 1) { 314 298 for (auto q : qualifiersSingle){ 315 for (auto q2 : { " ", " volatile" }) {316 cout << "forall(dtype DT" << op.sized << ") ";299 for (auto q2 : { " ", "volatile" }) { 300 forall(); 317 301 cout << q << type << " * " << op.name << "("; 318 cout << q << type << " * " << q2 << "&";302 cout << q << type << " * " << q2 << " &"; 319 303 cout << ");" << endl; 320 304 } … … 322 306 } else { 323 307 for (auto q : qualifiersPair){ 324 for (auto q2 : { " ", " volatile" }) {325 cout << "forall(dtype DT" << op.sized << ") ";308 for (auto q2 : { " ", "volatile" }) { 309 forall(); 326 310 cout << q.first << type << " * " << op.name << "("; 327 cout << q.first << type << " * " << q2 << "&";311 cout << q.first << type << " * " << q2 << " &"; 328 312 329 313 for (int i = 1; i < operands; ++i) { … … 337 321 case PtrDiff: 338 322 for (auto q : qualifiersSingle){ 339 for (auto q2 : { " ", " volatile" }) {340 cout << "forall(dtype DT" << op.sized << ") ";323 for (auto q2 : { " ", "volatile" }) { 324 forall(); 341 325 cout << q << type << " * " << op.name << "("; 342 cout << q << type << " * " << q2 << "&";326 cout << q << type << " * " << q2 << " &"; 343 327 344 328 for (int i = 1; i < operands; ++i) { … … 353 337 } 354 338 } else { 339 auto name_and_arg1 = [&op, &type](const std::string & q) { 340 if (op.diffReturn == "&") cout << q << type << " &"; // -- qualifiers 341 else if (op.diffReturn != "") cout << op.diffReturn; 342 else cout << q << type << " *"; 343 cout << " " << op.name << "("; 344 }; 355 345 switch(op.diffArg2) { 356 346 case Normal: 357 347 for (auto q : qualifiersSingle) { 358 cout << "forall(dtype DT" << op.sized << ") "; 359 if (op.diffReturn == "&") cout << q << type << " &"; // -- qualifiers 360 else if (op.diffReturn != "") cout << op.diffReturn; 361 else cout << q << type << " *"; 362 cout << " " << op.name << "("; 348 forall(); 349 name_and_arg1( q ); 363 350 for (int i = 0; i < operands; ++i) { 364 351 cout << q << type << " *"; … … 370 357 case CommPtrDiff: 371 358 for (auto q : qualifiersSingle) { 372 cout << "forall(dtype DT" << op.sized << ") "; 373 if (op.diffReturn == "&") cout << q << type << " &"; // -- qualifiers 374 else if (op.diffReturn != "") cout << op.diffReturn; 375 else cout << q << type << " *"; 376 cout << " " << op.name << "(ptrdiff_t, " << q << type << " *);" << endl; 359 forall(); 360 name_and_arg1( q ); 361 cout << "ptrdiff_t, " << q << type << " *);" << endl; 377 362 } 378 363 // fallthrough 379 364 case PtrDiff: 380 365 for (auto q : qualifiersSingle) { 381 cout << "forall(dtype DT" << op.sized << ") "; 382 if (op.diffReturn == "&") cout << q << type << " &"; // -- qualifiers 383 else if (op.diffReturn != "") cout << op.diffReturn; 384 else cout << q << type << " *"; 385 cout << " " << op.name << "(" << q << type << " *, ptrdiff_t);" << endl; 366 forall(); 367 name_and_arg1( q ); 368 cout << q << type << " *, ptrdiff_t);" << endl; 386 369 } 387 370 break; … … 393 376 cout << endl; 394 377 395 cout << "forall(dtype DT) DT * ?=?( DT * &, zero_t );" << endl; 396 cout << "forall(dtype DT) DT * ?=?( DT * volatile &, zero_t );" << endl; 397 cout << "forall(dtype DT) const DT * ?=?( const DT * &, zero_t );" << endl; 398 cout << "forall(dtype DT) const DT * ?=?( const DT * volatile &, zero_t );" << endl; 399 cout << "forall(dtype DT) volatile DT * ?=?( volatile DT * &, zero_t );" << endl; 400 cout << "forall(dtype DT) volatile DT * ?=?( volatile DT * volatile &, zero_t );" << endl; 401 cout << "forall(dtype DT) const volatile DT * ?=?( const volatile DT * &, zero_t );" << endl; 402 cout << "forall(dtype DT) const volatile DT * ?=?( const volatile DT * volatile &, zero_t );" << endl; 403 cout << "forall(ftype FT) FT * ?=?( FT * &, zero_t );" << endl; 404 cout << "forall(ftype FT) FT * ?=?( FT * volatile &, zero_t );" << endl; 378 for (auto is_vol : { " ", "volatile" }) { 379 for (auto cvq : qualifiersPair) { 380 cout << "forall(dtype DT) " << cvq.first << "void * ?=?( " << cvq.first << "void * " << is_vol << " &, " << cvq.second << "DT *);" << endl; 381 } 382 for (auto cvq : qualifiersSingle) { 383 cout << "forall(dtype DT) " << cvq << " DT * ?=?( " << cvq << " DT * " << is_vol << " &, zero_t);" << endl; 384 } 385 } 386 cout << endl; 405 387 } 406 388 -
src/tests/.expect/attributes.x86.txt
r036dd5f raeec6b7 1 signed int __la__Fi___1(){ 2 __attribute__ ((unused)) signed int ___retval_la__i_1; 3 L: __attribute__ ((unused)) ((void)1); 4 } 5 struct __attribute__ ((unused)) __anonymous0 { 6 }; 7 static inline void ___constructor__F_13s__anonymous0_autogen___1(struct __anonymous0 *___dst__13s__anonymous0_1); 8 static inline void ___constructor__F_13s__anonymous013s__anonymous0_autogen___1(struct __anonymous0 *___dst__13s__anonymous0_1, struct __anonymous0 ___src__13s__anonymous0_1); 9 static inline void ___destructor__F_13s__anonymous0_autogen___1(struct __anonymous0 *___dst__13s__anonymous0_1); 10 static inline struct __anonymous0 ___operator_assign__F13s__anonymous0_13s__anonymous013s__anonymous0_autogen___1(struct __anonymous0 *___dst__13s__anonymous0_1, struct __anonymous0 ___src__13s__anonymous0_1); 11 static inline void ___constructor__F_13s__anonymous0_autogen___1(struct __anonymous0 *___dst__13s__anonymous0_1){ 12 } 13 static inline void ___constructor__F_13s__anonymous013s__anonymous0_autogen___1(struct __anonymous0 *___dst__13s__anonymous0_1, struct __anonymous0 ___src__13s__anonymous0_1){ 14 } 15 static inline void ___destructor__F_13s__anonymous0_autogen___1(struct __anonymous0 *___dst__13s__anonymous0_1){ 16 } 17 static inline struct __anonymous0 ___operator_assign__F13s__anonymous0_13s__anonymous013s__anonymous0_autogen___1(struct __anonymous0 *___dst__13s__anonymous0_1, struct __anonymous0 ___src__13s__anonymous0_1){ 18 struct __anonymous0 ___ret__13s__anonymous0_1; 19 ((void)___constructor__F_13s__anonymous013s__anonymous0_autogen___1((&___ret__13s__anonymous0_1), (*___dst__13s__anonymous0_1))); 20 return ___ret__13s__anonymous0_1; 21 } 22 struct __attribute__ ((unused)) Agn1; 23 struct __attribute__ ((unused)) Agn2 { 24 }; 25 static inline void ___constructor__F_5sAgn2_autogen___1(struct Agn2 *___dst__5sAgn2_1); 26 static inline void ___constructor__F_5sAgn25sAgn2_autogen___1(struct Agn2 *___dst__5sAgn2_1, struct Agn2 ___src__5sAgn2_1); 27 static inline void ___destructor__F_5sAgn2_autogen___1(struct Agn2 *___dst__5sAgn2_1); 28 static inline struct Agn2 ___operator_assign__F5sAgn2_5sAgn25sAgn2_autogen___1(struct Agn2 *___dst__5sAgn2_1, struct Agn2 ___src__5sAgn2_1); 29 static inline void ___constructor__F_5sAgn2_autogen___1(struct Agn2 *___dst__5sAgn2_1){ 30 } 31 static inline void ___constructor__F_5sAgn25sAgn2_autogen___1(struct Agn2 *___dst__5sAgn2_1, struct Agn2 ___src__5sAgn2_1){ 32 } 33 static inline void ___destructor__F_5sAgn2_autogen___1(struct Agn2 *___dst__5sAgn2_1){ 34 } 35 static inline struct Agn2 ___operator_assign__F5sAgn2_5sAgn25sAgn2_autogen___1(struct Agn2 *___dst__5sAgn2_1, struct Agn2 ___src__5sAgn2_1){ 36 struct Agn2 ___ret__5sAgn2_1; 37 ((void)___constructor__F_5sAgn25sAgn2_autogen___1((&___ret__5sAgn2_1), (*___dst__5sAgn2_1))); 38 return ___ret__5sAgn2_1; 39 } 40 enum __attribute__ ((unused)) __anonymous1 { 41 __E1__C13e__anonymous1_1, 42 }; 43 enum __attribute__ ((unused)) Agn3; 44 enum __attribute__ ((packed)) Agn3 { 45 __E2__C5eAgn3_1, 46 }; 47 struct __attribute__ ((unused)) __anonymous2 { 48 }; 49 static inline void ___constructor__F_13s__anonymous2_autogen___1(struct __anonymous2 *___dst__13s__anonymous2_1); 50 static inline void ___constructor__F_13s__anonymous213s__anonymous2_autogen___1(struct __anonymous2 *___dst__13s__anonymous2_1, struct __anonymous2 ___src__13s__anonymous2_1); 51 static inline void ___destructor__F_13s__anonymous2_autogen___1(struct __anonymous2 *___dst__13s__anonymous2_1); 52 static inline struct __anonymous2 ___operator_assign__F13s__anonymous2_13s__anonymous213s__anonymous2_autogen___1(struct __anonymous2 *___dst__13s__anonymous2_1, struct __anonymous2 ___src__13s__anonymous2_1); 53 static inline void ___constructor__F_13s__anonymous2_autogen___1(struct __anonymous2 *___dst__13s__anonymous2_1){ 54 } 55 static inline void ___constructor__F_13s__anonymous213s__anonymous2_autogen___1(struct __anonymous2 *___dst__13s__anonymous2_1, struct __anonymous2 ___src__13s__anonymous2_1){ 56 } 57 static inline void ___destructor__F_13s__anonymous2_autogen___1(struct __anonymous2 *___dst__13s__anonymous2_1){ 58 } 59 static inline struct __anonymous2 ___operator_assign__F13s__anonymous2_13s__anonymous213s__anonymous2_autogen___1(struct __anonymous2 *___dst__13s__anonymous2_1, struct __anonymous2 ___src__13s__anonymous2_1){ 60 struct __anonymous2 ___ret__13s__anonymous2_1; 61 ((void)___constructor__F_13s__anonymous213s__anonymous2_autogen___1((&___ret__13s__anonymous2_1), (*___dst__13s__anonymous2_1))); 62 return ___ret__13s__anonymous2_1; 63 } 64 struct __attribute__ ((unused)) Agn4 { 65 }; 66 static inline void ___constructor__F_5sAgn4_autogen___1(struct Agn4 *___dst__5sAgn4_1); 67 static inline void ___constructor__F_5sAgn45sAgn4_autogen___1(struct Agn4 *___dst__5sAgn4_1, struct Agn4 ___src__5sAgn4_1); 68 static inline void ___destructor__F_5sAgn4_autogen___1(struct Agn4 *___dst__5sAgn4_1); 69 static inline struct Agn4 ___operator_assign__F5sAgn4_5sAgn45sAgn4_autogen___1(struct Agn4 *___dst__5sAgn4_1, struct Agn4 ___src__5sAgn4_1); 70 static inline void ___constructor__F_5sAgn4_autogen___1(struct Agn4 *___dst__5sAgn4_1){ 71 } 72 static inline void ___constructor__F_5sAgn45sAgn4_autogen___1(struct Agn4 *___dst__5sAgn4_1, struct Agn4 ___src__5sAgn4_1){ 73 } 74 static inline void ___destructor__F_5sAgn4_autogen___1(struct Agn4 *___dst__5sAgn4_1){ 75 } 76 static inline struct Agn4 ___operator_assign__F5sAgn4_5sAgn45sAgn4_autogen___1(struct Agn4 *___dst__5sAgn4_1, struct Agn4 ___src__5sAgn4_1){ 77 struct Agn4 ___ret__5sAgn4_1; 78 ((void)___constructor__F_5sAgn45sAgn4_autogen___1((&___ret__5sAgn4_1), (*___dst__5sAgn4_1))); 79 return ___ret__5sAgn4_1; 80 } 81 struct Fdl { 82 __attribute__ ((unused)) signed int __f1__i_1; 83 __attribute__ ((unused)) signed int __f2__i_1; 84 __attribute__ ((unused,unused)) signed int __f3__i_1; 85 __attribute__ ((unused)) signed int __f4__i_1; 86 __attribute__ ((unused,unused)) signed int __f5__i_1; 87 __attribute__ ((used,packed)) signed int __f6__i_1; 88 __attribute__ ((used,unused,unused)) signed int __f7__i_1; 89 __attribute__ ((used,used,unused)) signed int __f8__i_1; 90 __attribute__ ((unused)) signed int __anonymous_object0; 91 __attribute__ ((unused,unused)) signed int *__f9__Pi_1; 92 }; 93 static inline void ___constructor__F_4sFdl_autogen___1(struct Fdl *___dst__4sFdl_1); 94 static inline void ___constructor__F_4sFdl4sFdl_autogen___1(struct Fdl *___dst__4sFdl_1, struct Fdl ___src__4sFdl_1); 95 static inline void ___destructor__F_4sFdl_autogen___1(struct Fdl *___dst__4sFdl_1); 96 static inline struct Fdl ___operator_assign__F4sFdl_4sFdl4sFdl_autogen___1(struct Fdl *___dst__4sFdl_1, struct Fdl ___src__4sFdl_1); 97 static inline void ___constructor__F_4sFdli_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1); 98 static inline void ___constructor__F_4sFdlii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1); 99 static inline void ___constructor__F_4sFdliii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1); 100 static inline void ___constructor__F_4sFdliiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1); 101 static inline void ___constructor__F_4sFdliiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1); 102 static inline void ___constructor__F_4sFdliiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1); 103 static inline void ___constructor__F_4sFdliiiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1); 104 static inline void ___constructor__F_4sFdliiiiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1); 105 static inline void ___constructor__F_4sFdliiiiiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused)) signed int __anonymous_object1); 106 static inline void ___constructor__F_4sFdliiiiiiiiiPi_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused)) signed int __anonymous_object2, __attribute__ ((unused,unused)) signed int *__f9__Pi_1); 107 static inline void ___constructor__F_4sFdl_autogen___1(struct Fdl *___dst__4sFdl_1){ 108 ((void)((*___dst__4sFdl_1).__f1__i_1) /* ?{} */); 109 ((void)((*___dst__4sFdl_1).__f2__i_1) /* ?{} */); 110 ((void)((*___dst__4sFdl_1).__f3__i_1) /* ?{} */); 111 ((void)((*___dst__4sFdl_1).__f4__i_1) /* ?{} */); 112 ((void)((*___dst__4sFdl_1).__f5__i_1) /* ?{} */); 113 ((void)((*___dst__4sFdl_1).__f6__i_1) /* ?{} */); 114 ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */); 115 ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */); 116 ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */); 117 ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */); 118 } 119 static inline void ___constructor__F_4sFdl4sFdl_autogen___1(struct Fdl *___dst__4sFdl_1, struct Fdl ___src__4sFdl_1){ 120 ((void)((*___dst__4sFdl_1).__f1__i_1=___src__4sFdl_1.__f1__i_1) /* ?{} */); 121 ((void)((*___dst__4sFdl_1).__f2__i_1=___src__4sFdl_1.__f2__i_1) /* ?{} */); 122 ((void)((*___dst__4sFdl_1).__f3__i_1=___src__4sFdl_1.__f3__i_1) /* ?{} */); 123 ((void)((*___dst__4sFdl_1).__f4__i_1=___src__4sFdl_1.__f4__i_1) /* ?{} */); 124 ((void)((*___dst__4sFdl_1).__f5__i_1=___src__4sFdl_1.__f5__i_1) /* ?{} */); 125 ((void)((*___dst__4sFdl_1).__f6__i_1=___src__4sFdl_1.__f6__i_1) /* ?{} */); 126 ((void)((*___dst__4sFdl_1).__f7__i_1=___src__4sFdl_1.__f7__i_1) /* ?{} */); 127 ((void)((*___dst__4sFdl_1).__f8__i_1=___src__4sFdl_1.__f8__i_1) /* ?{} */); 128 ((void)((*___dst__4sFdl_1).__anonymous_object0=___src__4sFdl_1.__anonymous_object0) /* ?{} */); 129 ((void)((*___dst__4sFdl_1).__f9__Pi_1=___src__4sFdl_1.__f9__Pi_1) /* ?{} */); 130 } 131 static inline void ___destructor__F_4sFdl_autogen___1(struct Fdl *___dst__4sFdl_1){ 132 ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ^?{} */); 133 ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ^?{} */); 134 ((void)((*___dst__4sFdl_1).__f8__i_1) /* ^?{} */); 135 ((void)((*___dst__4sFdl_1).__f7__i_1) /* ^?{} */); 136 ((void)((*___dst__4sFdl_1).__f6__i_1) /* ^?{} */); 137 ((void)((*___dst__4sFdl_1).__f5__i_1) /* ^?{} */); 138 ((void)((*___dst__4sFdl_1).__f4__i_1) /* ^?{} */); 139 ((void)((*___dst__4sFdl_1).__f3__i_1) /* ^?{} */); 140 ((void)((*___dst__4sFdl_1).__f2__i_1) /* ^?{} */); 141 ((void)((*___dst__4sFdl_1).__f1__i_1) /* ^?{} */); 142 } 143 static inline struct Fdl ___operator_assign__F4sFdl_4sFdl4sFdl_autogen___1(struct Fdl *___dst__4sFdl_1, struct Fdl ___src__4sFdl_1){ 144 struct Fdl ___ret__4sFdl_1; 145 ((void)((*___dst__4sFdl_1).__f1__i_1=___src__4sFdl_1.__f1__i_1)); 146 ((void)((*___dst__4sFdl_1).__f2__i_1=___src__4sFdl_1.__f2__i_1)); 147 ((void)((*___dst__4sFdl_1).__f3__i_1=___src__4sFdl_1.__f3__i_1)); 148 ((void)((*___dst__4sFdl_1).__f4__i_1=___src__4sFdl_1.__f4__i_1)); 149 ((void)((*___dst__4sFdl_1).__f5__i_1=___src__4sFdl_1.__f5__i_1)); 150 ((void)((*___dst__4sFdl_1).__f6__i_1=___src__4sFdl_1.__f6__i_1)); 151 ((void)((*___dst__4sFdl_1).__f7__i_1=___src__4sFdl_1.__f7__i_1)); 152 ((void)((*___dst__4sFdl_1).__f8__i_1=___src__4sFdl_1.__f8__i_1)); 153 ((void)((*___dst__4sFdl_1).__anonymous_object0=___src__4sFdl_1.__anonymous_object0)); 154 ((void)((*___dst__4sFdl_1).__f9__Pi_1=___src__4sFdl_1.__f9__Pi_1)); 155 ((void)___constructor__F_4sFdl4sFdl_autogen___1((&___ret__4sFdl_1), (*___dst__4sFdl_1))); 156 return ___ret__4sFdl_1; 157 } 158 static inline void ___constructor__F_4sFdli_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1){ 159 ((void)((*___dst__4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 160 ((void)((*___dst__4sFdl_1).__f2__i_1) /* ?{} */); 161 ((void)((*___dst__4sFdl_1).__f3__i_1) /* ?{} */); 162 ((void)((*___dst__4sFdl_1).__f4__i_1) /* ?{} */); 163 ((void)((*___dst__4sFdl_1).__f5__i_1) /* ?{} */); 164 ((void)((*___dst__4sFdl_1).__f6__i_1) /* ?{} */); 165 ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */); 166 ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */); 167 ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */); 168 ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */); 169 } 170 static inline void ___constructor__F_4sFdlii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1){ 171 ((void)((*___dst__4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 172 ((void)((*___dst__4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); 173 ((void)((*___dst__4sFdl_1).__f3__i_1) /* ?{} */); 174 ((void)((*___dst__4sFdl_1).__f4__i_1) /* ?{} */); 175 ((void)((*___dst__4sFdl_1).__f5__i_1) /* ?{} */); 176 ((void)((*___dst__4sFdl_1).__f6__i_1) /* ?{} */); 177 ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */); 178 ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */); 179 ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */); 180 ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */); 181 } 182 static inline void ___constructor__F_4sFdliii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1){ 183 ((void)((*___dst__4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 184 ((void)((*___dst__4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); 185 ((void)((*___dst__4sFdl_1).__f3__i_1=__f3__i_1) /* ?{} */); 186 ((void)((*___dst__4sFdl_1).__f4__i_1) /* ?{} */); 187 ((void)((*___dst__4sFdl_1).__f5__i_1) /* ?{} */); 188 ((void)((*___dst__4sFdl_1).__f6__i_1) /* ?{} */); 189 ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */); 190 ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */); 191 ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */); 192 ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */); 193 } 194 static inline void ___constructor__F_4sFdliiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1){ 195 ((void)((*___dst__4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 196 ((void)((*___dst__4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); 197 ((void)((*___dst__4sFdl_1).__f3__i_1=__f3__i_1) /* ?{} */); 198 ((void)((*___dst__4sFdl_1).__f4__i_1=__f4__i_1) /* ?{} */); 199 ((void)((*___dst__4sFdl_1).__f5__i_1) /* ?{} */); 200 ((void)((*___dst__4sFdl_1).__f6__i_1) /* ?{} */); 201 ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */); 202 ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */); 203 ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */); 204 ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */); 205 } 206 static inline void ___constructor__F_4sFdliiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1){ 207 ((void)((*___dst__4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 208 ((void)((*___dst__4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); 209 ((void)((*___dst__4sFdl_1).__f3__i_1=__f3__i_1) /* ?{} */); 210 ((void)((*___dst__4sFdl_1).__f4__i_1=__f4__i_1) /* ?{} */); 211 ((void)((*___dst__4sFdl_1).__f5__i_1=__f5__i_1) /* ?{} */); 212 ((void)((*___dst__4sFdl_1).__f6__i_1) /* ?{} */); 213 ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */); 214 ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */); 215 ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */); 216 ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */); 217 } 218 static inline void ___constructor__F_4sFdliiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1){ 219 ((void)((*___dst__4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 220 ((void)((*___dst__4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); 221 ((void)((*___dst__4sFdl_1).__f3__i_1=__f3__i_1) /* ?{} */); 222 ((void)((*___dst__4sFdl_1).__f4__i_1=__f4__i_1) /* ?{} */); 223 ((void)((*___dst__4sFdl_1).__f5__i_1=__f5__i_1) /* ?{} */); 224 ((void)((*___dst__4sFdl_1).__f6__i_1=__f6__i_1) /* ?{} */); 225 ((void)((*___dst__4sFdl_1).__f7__i_1) /* ?{} */); 226 ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */); 227 ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */); 228 ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */); 229 } 230 static inline void ___constructor__F_4sFdliiiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1){ 231 ((void)((*___dst__4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 232 ((void)((*___dst__4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); 233 ((void)((*___dst__4sFdl_1).__f3__i_1=__f3__i_1) /* ?{} */); 234 ((void)((*___dst__4sFdl_1).__f4__i_1=__f4__i_1) /* ?{} */); 235 ((void)((*___dst__4sFdl_1).__f5__i_1=__f5__i_1) /* ?{} */); 236 ((void)((*___dst__4sFdl_1).__f6__i_1=__f6__i_1) /* ?{} */); 237 ((void)((*___dst__4sFdl_1).__f7__i_1=__f7__i_1) /* ?{} */); 238 ((void)((*___dst__4sFdl_1).__f8__i_1) /* ?{} */); 239 ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */); 240 ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */); 241 } 242 static inline void ___constructor__F_4sFdliiiiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1){ 243 ((void)((*___dst__4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 244 ((void)((*___dst__4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); 245 ((void)((*___dst__4sFdl_1).__f3__i_1=__f3__i_1) /* ?{} */); 246 ((void)((*___dst__4sFdl_1).__f4__i_1=__f4__i_1) /* ?{} */); 247 ((void)((*___dst__4sFdl_1).__f5__i_1=__f5__i_1) /* ?{} */); 248 ((void)((*___dst__4sFdl_1).__f6__i_1=__f6__i_1) /* ?{} */); 249 ((void)((*___dst__4sFdl_1).__f7__i_1=__f7__i_1) /* ?{} */); 250 ((void)((*___dst__4sFdl_1).__f8__i_1=__f8__i_1) /* ?{} */); 251 ((void)((*___dst__4sFdl_1).__anonymous_object0) /* ?{} */); 252 ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */); 253 } 254 static inline void ___constructor__F_4sFdliiiiiiiii_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused)) signed int __anonymous_object3){ 255 ((void)((*___dst__4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 256 ((void)((*___dst__4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); 257 ((void)((*___dst__4sFdl_1).__f3__i_1=__f3__i_1) /* ?{} */); 258 ((void)((*___dst__4sFdl_1).__f4__i_1=__f4__i_1) /* ?{} */); 259 ((void)((*___dst__4sFdl_1).__f5__i_1=__f5__i_1) /* ?{} */); 260 ((void)((*___dst__4sFdl_1).__f6__i_1=__f6__i_1) /* ?{} */); 261 ((void)((*___dst__4sFdl_1).__f7__i_1=__f7__i_1) /* ?{} */); 262 ((void)((*___dst__4sFdl_1).__f8__i_1=__f8__i_1) /* ?{} */); 263 ((void)((*___dst__4sFdl_1).__anonymous_object0=__anonymous_object3) /* ?{} */); 264 ((void)((*___dst__4sFdl_1).__f9__Pi_1) /* ?{} */); 265 } 266 static inline void ___constructor__F_4sFdliiiiiiiiiPi_autogen___1(struct Fdl *___dst__4sFdl_1, __attribute__ ((unused)) signed int __f1__i_1, __attribute__ ((unused)) signed int __f2__i_1, __attribute__ ((unused,unused)) signed int __f3__i_1, __attribute__ ((unused)) signed int __f4__i_1, __attribute__ ((unused,unused)) signed int __f5__i_1, signed int __f6__i_1, __attribute__ ((unused,unused)) signed int __f7__i_1, __attribute__ ((unused)) signed int __f8__i_1, __attribute__ ((unused)) signed int __anonymous_object4, __attribute__ ((unused,unused)) signed int *__f9__Pi_1){ 267 ((void)((*___dst__4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 268 ((void)((*___dst__4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); 269 ((void)((*___dst__4sFdl_1).__f3__i_1=__f3__i_1) /* ?{} */); 270 ((void)((*___dst__4sFdl_1).__f4__i_1=__f4__i_1) /* ?{} */); 271 ((void)((*___dst__4sFdl_1).__f5__i_1=__f5__i_1) /* ?{} */); 272 ((void)((*___dst__4sFdl_1).__f6__i_1=__f6__i_1) /* ?{} */); 273 ((void)((*___dst__4sFdl_1).__f7__i_1=__f7__i_1) /* ?{} */); 274 ((void)((*___dst__4sFdl_1).__f8__i_1=__f8__i_1) /* ?{} */); 275 ((void)((*___dst__4sFdl_1).__anonymous_object0=__anonymous_object4) /* ?{} */); 276 ((void)((*___dst__4sFdl_1).__f9__Pi_1=__f9__Pi_1) /* ?{} */); 277 } 278 __attribute__ ((unused)) signed int __f__Fi___1() asm ( "xyz" ); 279 __attribute__ ((used,used)) const signed int __vd1__Ci_1; 280 __attribute__ ((used,unused)) const signed int __vd2__Ci_1; 281 __attribute__ ((used,used,used,used)) const signed int *__vd3__PCi_1; 282 __attribute__ ((used,used,unused,used,unused)) const signed int *__vd4__PCi_1; 283 __attribute__ ((used,used,used)) const signed int __vd5__A0Ci_1[((unsigned int )5)]; 284 __attribute__ ((used,used,unused,used)) const signed int __vd6__A0Ci_1[((unsigned int )5)]; 285 __attribute__ ((used,used,used,used)) const signed int (*__vd7__Fi___1)(); 286 __attribute__ ((used,used,unused,used,used)) const signed int (*__vd8__Fi___1)(); 287 __attribute__ ((unused,used)) signed int __f1__Fi___1(); 288 __attribute__ ((unused)) signed int __f1__Fi___1(){ 289 __attribute__ ((unused)) signed int ___retval_f1__i_1; 290 } 291 __attribute__ ((unused,unused,unused,used)) signed int **const __f2__FPPi___1(); 292 __attribute__ ((unused,unused,unused)) signed int **const __f2__FPPi___1(){ 293 __attribute__ ((unused)) signed int **const ___retval_f2__CPPi_1; 294 } 295 __attribute__ ((unused,used,unused)) signed int (*__f3__FPA0i_i__1(signed int __anonymous_object5))[]; 296 __attribute__ ((unused,unused)) signed int (*__f3__FPA0i_i__1(signed int __p__i_1))[]{ 297 __attribute__ ((unused)) signed int (*___retval_f3__PA0i_1)[]; 298 } 299 __attribute__ ((unused,used,unused)) signed int (*__f4__FFi_i____1())(signed int __anonymous_object6); 300 __attribute__ ((unused,unused)) signed int (*__f4__FFi_i____1())(signed int __anonymous_object7){ 301 __attribute__ ((unused)) signed int (*___retval_f4__Fi_i__1)(signed int __anonymous_object8); 302 } 303 signed int __vtr__Fi___1(){ 304 __attribute__ ((unused)) signed int ___retval_vtr__i_1; 305 __attribute__ ((unused,unused,used)) signed int __t1__i_2; 306 __attribute__ ((unused,unused,unused,unused,unused)) signed int **__t2__PPi_2; 307 __attribute__ ((unused,unused,unused)) signed int __t3__A0i_2[((unsigned int )5)]; 308 __attribute__ ((unused,unused,unused,unused,unused)) signed int **__t4__A0PPi_2[((unsigned int )5)]; 309 __attribute__ ((unused,unused,unused)) signed int __t5__Fi___2(); 310 __attribute__ ((unused,unused,unused,unused)) signed int *__t6__FPi___2(); 311 } 312 signed int __ipd1__Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int __p__i_1, __attribute__ ((unused,unused,unused)) signed int __q__i_1); 313 signed int __ipd1__Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int __p__i_1, __attribute__ ((unused,unused,unused)) signed int __q__i_1){ 314 __attribute__ ((unused)) signed int ___retval_ipd1__i_1; 315 } 316 signed int __ipd2__Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *__p__Pi_1, __attribute__ ((unused,unused,unused)) signed int *__q__Pi_1); 317 signed int __ipd2__Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *__p__Pi_1, __attribute__ ((unused,unused,unused)) signed int *__q__Pi_1){ 318 __attribute__ ((unused)) signed int ___retval_ipd2__i_1; 319 } 320 signed int __ipd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__p__Pi_1, __attribute__ ((unused,unused,unused)) signed int *__q__Pi_1); 321 signed int __ipd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__p__Pi_1, __attribute__ ((unused,unused,unused)) signed int *__q__Pi_1){ 322 __attribute__ ((unused)) signed int ___retval_ipd3__i_1; 323 } 324 signed int __ipd4__Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__p__Fi___1)(), __attribute__ ((unused,unused,unused)) signed int (*__q__Fi___1)()); 325 signed int __ipd4__Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__p__Fi___1)(), __attribute__ ((unused,unused,unused)) signed int (*__q__Fi___1)()){ 326 __attribute__ ((unused)) signed int ___retval_ipd4__i_1; 327 } 328 signed int __tpr1__Fi_i__1(__attribute__ ((unused,unused,unused)) signed int __Foo__i_1); 329 signed int __tpr2__Fi_PPi__1(__attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **__Foo__PPi_1); 330 signed int __tpr3__Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *__Foo__Pi_1); 331 signed int __tpr4__Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object9)(__attribute__ ((unused,unused)) signed int __anonymous_object10[((unsigned int )5)])); 332 signed int __tpr5__Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__Foo__Fi___1)()); 333 signed int __tpr6__Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__Foo__Fi___1)()); 334 signed int __tpr7__Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object11)(__attribute__ ((unused)) signed int (*__anonymous_object12)(__attribute__ ((unused,unused)) signed int __anonymous_object13))); 335 signed int __ad__Fi___1(){ 336 __attribute__ ((unused)) signed int ___retval_ad__i_1; 337 __attribute__ ((used,unused)) signed int __ad1__i_2; 338 __attribute__ ((unused,unused,unused)) signed int *__ad2__Pi_2; 339 __attribute__ ((unused,unused,unused)) signed int __ad3__A0i_2[((unsigned int )5)]; 340 __attribute__ ((unused,unused,unused,unused,unused)) signed int (*__ad4__PA0i_2)[((unsigned int )10)]; 341 __attribute__ ((unused,unused,unused,unused,used)) signed int __ad5__i_2; 342 __attribute__ ((unused,unused,unused,unused,unused)) signed int __ad6__Fi___2(); 343 ((void)sizeof(__attribute__ ((unused,unused)) signed int )); 344 ((void)sizeof(__attribute__ ((unused,unused,unused,unused)) signed int **)); 345 ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int [5])); 346 ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (*)[10])); 347 ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ())); 348 struct __attribute__ ((unused)) __anonymous3 { 349 signed int __i__i_2; 350 }; 351 inline void ___constructor__F_13s__anonymous3_autogen___2(struct __anonymous3 *___dst__13s__anonymous3_2){ 352 ((void)((*___dst__13s__anonymous3_2).__i__i_2) /* ?{} */); 353 } 354 inline void ___constructor__F_13s__anonymous313s__anonymous3_autogen___2(struct __anonymous3 *___dst__13s__anonymous3_2, struct __anonymous3 ___src__13s__anonymous3_2){ 355 ((void)((*___dst__13s__anonymous3_2).__i__i_2=___src__13s__anonymous3_2.__i__i_2) /* ?{} */); 356 } 357 inline void ___destructor__F_13s__anonymous3_autogen___2(struct __anonymous3 *___dst__13s__anonymous3_2){ 358 ((void)((*___dst__13s__anonymous3_2).__i__i_2) /* ^?{} */); 359 } 360 inline struct __anonymous3 ___operator_assign__F13s__anonymous3_13s__anonymous313s__anonymous3_autogen___2(struct __anonymous3 *___dst__13s__anonymous3_2, struct __anonymous3 ___src__13s__anonymous3_2){ 361 struct __anonymous3 ___ret__13s__anonymous3_2; 362 ((void)((*___dst__13s__anonymous3_2).__i__i_2=___src__13s__anonymous3_2.__i__i_2)); 363 ((void)___constructor__F_13s__anonymous313s__anonymous3_autogen___2((&___ret__13s__anonymous3_2), (*___dst__13s__anonymous3_2))); 364 return ___ret__13s__anonymous3_2; 365 } 366 inline void ___constructor__F_13s__anonymous3i_autogen___2(struct __anonymous3 *___dst__13s__anonymous3_2, signed int __i__i_2){ 367 ((void)((*___dst__13s__anonymous3_2).__i__i_2=__i__i_2) /* ?{} */); 368 } 369 ((void)sizeof(struct __anonymous3 )); 370 enum __attribute__ ((unused)) __anonymous4 { 371 __R__C13e__anonymous4_2, 372 }; 373 inline void ___constructor__F_13e__anonymous4_intrinsic___2(__attribute__ ((unused)) enum __anonymous4 *___dst__13e__anonymous4_2){ 374 } 375 inline void ___constructor__F_13e__anonymous413e__anonymous4_intrinsic___2(enum __anonymous4 *___dst__13e__anonymous4_2, enum __anonymous4 ___src__13e__anonymous4_2){ 376 ((void)((*___dst__13e__anonymous4_2)=___src__13e__anonymous4_2) /* ?{} */); 377 } 378 inline void ___destructor__F_13e__anonymous4_intrinsic___2(__attribute__ ((unused)) enum __anonymous4 *___dst__13e__anonymous4_2){ 379 } 380 inline enum __anonymous4 ___operator_assign__F13e__anonymous4_13e__anonymous413e__anonymous4_intrinsic___2(enum __anonymous4 *___dst__13e__anonymous4_2, enum __anonymous4 ___src__13e__anonymous4_2){ 381 enum __anonymous4 ___ret__13e__anonymous4_2; 382 ((void)((*___dst__13e__anonymous4_2)=___src__13e__anonymous4_2)); 383 ((void)(___ret__13e__anonymous4_2=(*___dst__13e__anonymous4_2)) /* ?{} */); 384 return ___ret__13e__anonymous4_2; 385 } 386 ((void)sizeof(enum __anonymous4 )); 387 } 388 signed int __apd1__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object14, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object15); 389 signed int __apd2__Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object16, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object17); 390 signed int __apd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object18, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object19); 391 signed int __apd4__Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object20)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object21)()); 392 signed int __apd5__Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object22)(__attribute__ ((unused)) signed int __anonymous_object23), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object24)(__attribute__ ((unused)) signed int __anonymous_object25)); 393 signed int __apd6__Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object26)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object27)()); 394 signed int __apd7__Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object28)(__attribute__ ((unused)) signed int __anonymous_object29), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object30)(__attribute__ ((unused)) signed int __anonymous_object31)); 395 struct Vad { 396 __attribute__ ((unused)) signed int __anonymous_object32; 397 __attribute__ ((unused,unused)) signed int *__anonymous_object33; 398 __attribute__ ((unused,unused)) signed int __anonymous_object34[((unsigned int )10)]; 399 __attribute__ ((unused,unused)) signed int (*__anonymous_object35)(); 400 }; 401 static inline void ___constructor__F_4sVad_autogen___1(struct Vad *___dst__4sVad_1); 402 static inline void ___constructor__F_4sVad4sVad_autogen___1(struct Vad *___dst__4sVad_1, struct Vad ___src__4sVad_1); 403 static inline void ___destructor__F_4sVad_autogen___1(struct Vad *___dst__4sVad_1); 404 static inline struct Vad ___operator_assign__F4sVad_4sVad4sVad_autogen___1(struct Vad *___dst__4sVad_1, struct Vad ___src__4sVad_1); 405 static inline void ___constructor__F_4sVadi_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object36); 406 static inline void ___constructor__F_4sVadiPi_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object37, __attribute__ ((unused,unused)) signed int *__anonymous_object38); 407 static inline void ___constructor__F_4sVadiPiA0i_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object39, __attribute__ ((unused,unused)) signed int *__anonymous_object40, __attribute__ ((unused,unused)) signed int __anonymous_object41[((unsigned int )10)]); 408 static inline void ___constructor__F_4sVadiPiA0iFi___autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object42, __attribute__ ((unused,unused)) signed int *__anonymous_object43, __attribute__ ((unused,unused)) signed int __anonymous_object44[((unsigned int )10)], __attribute__ ((unused,unused)) signed int (*__anonymous_object45)()); 409 static inline void ___constructor__F_4sVad_autogen___1(struct Vad *___dst__4sVad_1){ 410 ((void)((*___dst__4sVad_1).__anonymous_object32) /* ?{} */); 411 ((void)((*___dst__4sVad_1).__anonymous_object33) /* ?{} */); 412 { 413 signed int _index0 = 0; 414 for (;(_index0<10);((void)(++_index0))) { 415 ((void)((*___dst__4sVad_1).__anonymous_object34[_index0]) /* ?{} */); 416 } 417 418 } 419 420 ((void)((*___dst__4sVad_1).__anonymous_object35) /* ?{} */); 421 } 422 static inline void ___constructor__F_4sVad4sVad_autogen___1(struct Vad *___dst__4sVad_1, struct Vad ___src__4sVad_1){ 423 ((void)((*___dst__4sVad_1).__anonymous_object32=___src__4sVad_1.__anonymous_object32) /* ?{} */); 424 ((void)((*___dst__4sVad_1).__anonymous_object33=___src__4sVad_1.__anonymous_object33) /* ?{} */); 425 { 426 signed int _index1 = 0; 427 for (;(_index1<10);((void)(++_index1))) { 428 ((void)((*___dst__4sVad_1).__anonymous_object34[_index1]=___src__4sVad_1.__anonymous_object34[_index1]) /* ?{} */); 429 } 430 431 } 432 433 ((void)((*___dst__4sVad_1).__anonymous_object35=___src__4sVad_1.__anonymous_object35) /* ?{} */); 434 } 435 static inline void ___destructor__F_4sVad_autogen___1(struct Vad *___dst__4sVad_1){ 436 ((void)((*___dst__4sVad_1).__anonymous_object35) /* ^?{} */); 437 { 438 signed int _index2 = (10-1); 439 for (;(_index2>=0);((void)(--_index2))) { 440 ((void)((*___dst__4sVad_1).__anonymous_object34[_index2]) /* ^?{} */); 441 } 442 443 } 444 445 ((void)((*___dst__4sVad_1).__anonymous_object33) /* ^?{} */); 446 ((void)((*___dst__4sVad_1).__anonymous_object32) /* ^?{} */); 447 } 448 static inline struct Vad ___operator_assign__F4sVad_4sVad4sVad_autogen___1(struct Vad *___dst__4sVad_1, struct Vad ___src__4sVad_1){ 449 struct Vad ___ret__4sVad_1; 450 ((void)((*___dst__4sVad_1).__anonymous_object32=___src__4sVad_1.__anonymous_object32)); 451 ((void)((*___dst__4sVad_1).__anonymous_object33=___src__4sVad_1.__anonymous_object33)); 452 { 453 signed int _index3 = 0; 454 for (;(_index3<10);((void)(++_index3))) { 455 ((void)((*___dst__4sVad_1).__anonymous_object34[_index3]=___src__4sVad_1.__anonymous_object34[_index3])); 456 } 457 458 } 459 460 ((void)((*___dst__4sVad_1).__anonymous_object35=___src__4sVad_1.__anonymous_object35)); 461 ((void)___constructor__F_4sVad4sVad_autogen___1((&___ret__4sVad_1), (*___dst__4sVad_1))); 462 return ___ret__4sVad_1; 463 } 464 static inline void ___constructor__F_4sVadi_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object46){ 465 ((void)((*___dst__4sVad_1).__anonymous_object32=__anonymous_object46) /* ?{} */); 466 ((void)((*___dst__4sVad_1).__anonymous_object33) /* ?{} */); 467 { 468 signed int _index4 = 0; 469 for (;(_index4<10);((void)(++_index4))) { 470 ((void)((*___dst__4sVad_1).__anonymous_object34[_index4]) /* ?{} */); 471 } 472 473 } 474 475 ((void)((*___dst__4sVad_1).__anonymous_object35) /* ?{} */); 476 } 477 static inline void ___constructor__F_4sVadiPi_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object47, __attribute__ ((unused,unused)) signed int *__anonymous_object48){ 478 ((void)((*___dst__4sVad_1).__anonymous_object32=__anonymous_object47) /* ?{} */); 479 ((void)((*___dst__4sVad_1).__anonymous_object33=__anonymous_object48) /* ?{} */); 480 { 481 signed int _index5 = 0; 482 for (;(_index5<10);((void)(++_index5))) { 483 ((void)((*___dst__4sVad_1).__anonymous_object34[_index5]) /* ?{} */); 484 } 485 486 } 487 488 ((void)((*___dst__4sVad_1).__anonymous_object35) /* ?{} */); 489 } 490 static inline void ___constructor__F_4sVadiPiA0i_autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object49, __attribute__ ((unused,unused)) signed int *__anonymous_object50, __attribute__ ((unused,unused)) signed int __anonymous_object51[((unsigned int )10)]){ 491 ((void)((*___dst__4sVad_1).__anonymous_object32=__anonymous_object49) /* ?{} */); 492 ((void)((*___dst__4sVad_1).__anonymous_object33=__anonymous_object50) /* ?{} */); 493 { 494 signed int _index6 = 0; 495 for (;(_index6<10);((void)(++_index6))) { 496 ((void)((*___dst__4sVad_1).__anonymous_object34[_index6]=__anonymous_object51[_index6]) /* ?{} */); 497 } 498 499 } 500 501 ((void)((*___dst__4sVad_1).__anonymous_object35) /* ?{} */); 502 } 503 static inline void ___constructor__F_4sVadiPiA0iFi___autogen___1(struct Vad *___dst__4sVad_1, __attribute__ ((unused)) signed int __anonymous_object52, __attribute__ ((unused,unused)) signed int *__anonymous_object53, __attribute__ ((unused,unused)) signed int __anonymous_object54[((unsigned int )10)], __attribute__ ((unused,unused)) signed int (*__anonymous_object55)()){ 504 ((void)((*___dst__4sVad_1).__anonymous_object32=__anonymous_object52) /* ?{} */); 505 ((void)((*___dst__4sVad_1).__anonymous_object33=__anonymous_object53) /* ?{} */); 506 { 507 signed int _index7 = 0; 508 for (;(_index7<10);((void)(++_index7))) { 509 ((void)((*___dst__4sVad_1).__anonymous_object34[_index7]=__anonymous_object54[_index7]) /* ?{} */); 510 } 511 512 } 513 514 ((void)((*___dst__4sVad_1).__anonymous_object35=__anonymous_object55) /* ?{} */); 515 } -
src/tests/Makefile.am
r036dd5f raeec6b7 17 17 debug=yes 18 18 19 quick_test=avl_test operators numericConstants expression enum array typeof cast dtor-early-exit init_onceattributes19 quick_test=avl_test operators numericConstants expression enum array typeof cast attributes 20 20 21 21 if BUILD_CONCURRENCY -
src/tests/attributes.c
r036dd5f raeec6b7 10 10 // Created On : Mon Feb 6 16:07:02 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 23:05:52 201713 // Update Count : 312 // Last Modified On : Sun Jul 8 21:12:07 2018 13 // Update Count : 8 14 14 // 15 15 … … 29 29 enum __attribute__(( packed )) Agn3 { E2 }; 30 30 #ifdef __CFA__ 31 struct __attribute__(( unused )) ( int ) {};32 struct __attribute__(( unused )) ( int ) {};31 struct __attribute__(( unused )) {} ( int ); 32 struct __attribute__(( unused )) Agn4 {} ( int ); 33 33 #endif // __CFA__ 34 34
Note:
See TracChangeset
for help on using the changeset viewer.