Changeset b3c7963
- Timestamp:
- Sep 12, 2017, 5:55:31 PM (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, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 4639b0d
- Parents:
- a506df4 (diff), a46478a (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:
-
- 6 added
- 1 deleted
- 32 edited
Legend:
- Unmodified
- Added
- Removed
-
src/CodeGen/CodeGenerator.cc
ra506df4 rb3c7963 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Fri Aug 18 15:34:00201713 // Update Count : 4 8811 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Sep 3 20:42:52 2017 13 // Update Count : 490 14 14 // 15 15 #include "CodeGenerator.h" … … 59 59 60 60 void CodeGenerator::asmName( DeclarationWithType * decl ) { 61 if ( ConstantExpr * asmName = d ecl->get_asmName() ) {61 if ( ConstantExpr * asmName = dynamic_cast<ConstantExpr *>(decl->get_asmName()) ) { 62 62 output << " asm ( " << asmName->get_constant()->get_value() << " )"; 63 63 } // if -
src/CodeGen/Generate.cc
ra506df4 rb3c7963 33 33 /// Removes misc. nodes that should not exist in CodeGen 34 34 struct TreeCleaner { 35 void visit( CompoundStmt * stmt );35 void previsit( CompoundStmt * stmt ); 36 36 37 37 static bool shouldClean( Declaration * ); … … 72 72 73 73 namespace { 74 void TreeCleaner:: visit( CompoundStmt * cstmt ) {74 void TreeCleaner::previsit( CompoundStmt * cstmt ) { 75 75 filter( cstmt->kids, [](Statement * stmt) { 76 76 if ( DeclStmt * declStmt = dynamic_cast< DeclStmt * >( stmt ) ) { -
src/Parser/ExpressionNode.cc
ra506df4 rb3c7963 7 7 // ExpressionNode.cc -- 8 8 // 9 // Author : Rodolfo G. Esteves9 // Author : Peter A. Buhr 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Sep 1 15:07:09 201713 // Update Count : 6 1812 // Last Modified On : Tue Sep 12 10:00:29 2017 13 // Update Count : 672 14 14 // 15 15 … … 49 49 // type. 50 50 51 extern const Type::Qualifiers noQualifiers; // no qualifiers on constants 52 51 extern const Type::Qualifiers noQualifiers; // no qualifiers on constants 52 53 static inline bool checkH( char c ) { return c == 'h' || c == 'H'; } 54 static inline bool checkL( char c ) { return c == 'l' || c == 'L'; } 55 static inline bool checkZ( char c ) { return c == 'z' || c == 'Z'; } 53 56 static inline bool checkU( char c ) { return c == 'u' || c == 'U'; } 54 static inline bool checkL( char c ) { return c == 'l' || c == 'L'; }55 57 static inline bool checkF( char c ) { return c == 'f' || c == 'F'; } 56 58 static inline bool checkD( char c ) { return c == 'd' || c == 'D'; } … … 66 68 } // sepNumeric 67 69 68 Expression * build_constantInteger( std::string & str ) { 69 static const BasicType::Kind kind[2][3] = { 70 { BasicType::SignedInt, BasicType::LongSignedInt, BasicType::LongLongSignedInt }, 71 { BasicType::UnsignedInt, BasicType::LongUnsignedInt, BasicType::LongLongUnsignedInt }, 70 Expression * build_constantInteger( string & str ) { 71 static const BasicType::Kind kind[2][5] = { 72 // short (h) must be before char (hh) 73 { BasicType::ShortSignedInt, BasicType::SignedChar, BasicType::SignedInt, BasicType::LongSignedInt, BasicType::LongLongSignedInt }, 74 { BasicType::ShortUnsignedInt, BasicType::UnsignedChar, BasicType::UnsignedInt, BasicType::LongUnsignedInt, BasicType::LongLongUnsignedInt }, 72 75 }; 73 76 … … 76 79 77 80 bool dec = true, Unsigned = false; // decimal, unsigned constant 78 int size; // 0 => int, 1 => long, 2 => long long81 int size; // 0 => short, 1 => char, 2 => int, 3 => long int, 4 => long long int, 5 => size_t 79 82 unsigned long long int v; // converted integral value 80 83 size_t last = str.length() - 1; // last character of constant 81 84 Expression * ret; 82 85 83 // ROB: what do we do with units on 0 and 1?84 86 // special constants 85 87 if ( str == "0" ) { … … 107 109 108 110 if ( v <= INT_MAX ) { // signed int 109 size = 0;111 size = 2; 110 112 } else if ( v <= UINT_MAX && ! dec ) { // unsigned int 111 size = 0;113 size = 2; 112 114 Unsigned = true; // unsigned 113 115 } else if ( v <= LONG_MAX ) { // signed long int 114 size = 1;116 size = 3; 115 117 } else if ( v <= ULONG_MAX && ( ! dec || LONG_MAX == LLONG_MAX ) ) { // signed long int 116 size = 1;118 size = 3; 117 119 Unsigned = true; // unsigned long int 118 120 } else if ( v <= LLONG_MAX ) { // signed long long int 119 size = 2;121 size = 4; 120 122 } else { // unsigned long long int 121 size = 2;123 size = 4; 122 124 Unsigned = true; // unsigned long long int 123 125 } // if 126 127 // At least one digit in integer constant, so safe to backup while looking for suffix. 124 128 125 129 if ( checkU( str[last] ) ) { // suffix 'u' ? 126 130 Unsigned = true; 127 if ( last > 0 && checkL( str[last - 1] ) ) {// suffix 'l' ?128 size = 1;129 if ( last > 1 && checkL( str[last - 2] ) ) { // suffix 'll'?130 size = 2;131 if ( checkL( str[last - 1] ) ) { // suffix 'l' ? 132 size = 3; 133 if ( checkL( str[last - 2] ) ) { // suffix "ll" ? 134 size = 4; 131 135 } // if 136 } else if ( checkH( str[last - 1] ) ) { // suffix 'h' ? 137 size = 0; 138 if ( checkH( str[last - 2] ) ) { // suffix "hh" ? 139 size = 1; 140 } // if 141 str.erase( last - size - 1, size + 1 ); // remove 'h'/"hh" 132 142 } // if 133 143 } else if ( checkL( str[ last ] ) ) { // suffix 'l' ? 134 size = 1;135 if ( last > 0 && checkL( str[last - 1] ) ) {// suffix 'll' ?136 size = 2;137 if ( last > 1 && checkU( str[last - 2] ) ) {// suffix 'u' ?144 size = 3; 145 if ( checkL( str[last - 1] ) ) { // suffix 'll' ? 146 size = 4; 147 if ( checkU( str[last - 2] ) ) { // suffix 'u' ? 138 148 Unsigned = true; 139 149 } // if 140 } else { 141 if ( last > 0 && checkU( str[last - 1] ) ) { // suffix 'u' ? 150 } else if ( checkU( str[last - 1] ) ) { // suffix 'u' ? 151 Unsigned = true; 152 } // if 153 } else if ( checkH( str[ last ] ) ) { // suffix 'h' ? 154 size = 0; 155 if ( checkH( str[last - 1] ) ) { // suffix "hh" ? 156 size = 1; 157 if ( checkU( str[last - 2] ) ) { // suffix 'u' ? 142 158 Unsigned = true; 143 159 } // if 144 } // if 160 } else if ( checkU( str[last - 1] ) ) { // suffix 'u' ? 161 Unsigned = true; 162 } // if 163 str.erase( last - size, size + 1 ); // remove 'h'/"hh" 164 } else if ( checkZ( str[last] ) ) { // suffix 'z' ? 165 size = 5; 166 str.erase( last, 1 ); // remove 'z' 145 167 } // if 146 168 147 169 ret = new ConstantExpr( Constant( new BasicType( noQualifiers, kind[Unsigned][size] ), str, v ) ); 170 if ( Unsigned && size < 2 ) { // less than int ? 171 // int i = -1uh => 65535 not -1, so cast is necessary for unsigned, which eliminates warnings for large values. 172 ret = new CastExpr( ret, new BasicType( Type::Qualifiers(), kind[Unsigned][size] ) ); 173 } else if ( size == 5 ) { // explicit cast to size_t 174 ret = new CastExpr( ret, new TypeInstType( Type::Qualifiers(), "size_t", false ) ); 175 } // if 148 176 CLEANUP: 149 177 if ( units.length() != 0 ) { 150 ret = new UntypedExpr( new NameExpr( units , ret ));178 ret = new UntypedExpr( new NameExpr( units ), { ret } ); 151 179 } // if 152 180 … … 155 183 } // build_constantInteger 156 184 157 Expression * build_constantFloat( st d::string & str ) {185 Expression * build_constantFloat( string & str ) { 158 186 static const BasicType::Kind kind[2][3] = { 159 187 { BasicType::Float, BasicType::Double, BasicType::LongDouble }, … … 190 218 Expression * ret = new ConstantExpr( Constant( new BasicType( noQualifiers, kind[complx][size] ), str, v ) ); 191 219 if ( units.length() != 0 ) { 192 ret = new UntypedExpr( new NameExpr( units , ret ));220 ret = new UntypedExpr( new NameExpr( units ), { ret } ); 193 221 } // if 194 222 … … 205 233 } // sepString 206 234 207 Expression * build_constantChar( st d::string & str ) {235 Expression * build_constantChar( string & str ) { 208 236 string units; // units 209 237 sepString( str, units, '\'' ); // separate constant from units … … 211 239 Expression * ret = new ConstantExpr( Constant( new BasicType( noQualifiers, BasicType::Char ), str, (unsigned long long int)(unsigned char)str[1] ) ); 212 240 if ( units.length() != 0 ) { 213 ret = new UntypedExpr( new NameExpr( units , ret ));241 ret = new UntypedExpr( new NameExpr( units ), { ret } ); 214 242 } // if 215 243 … … 218 246 } // build_constantChar 219 247 220 ConstantExpr * build_constantStr( std::string & str ) {248 Expression * build_constantStr( string & str ) { 221 249 string units; // units 222 250 sepString( str, units, '"' ); // separate constant from units 223 251 224 ArrayType * at = new ArrayType( noQualifiers, new BasicType( Type::Qualifiers( Type::Const ), BasicType::Char ), 252 BasicType::Kind strtype = BasicType::Char; // default string type 253 switch ( str[0] ) { // str has >= 2 characters, i.e, null string "" 254 case 'u': 255 if ( str[1] == '8' ) break; // utf-8 characters 256 strtype = BasicType::ShortUnsignedInt; 257 break; 258 case 'U': 259 strtype = BasicType::UnsignedInt; 260 break; 261 case 'L': 262 strtype = BasicType::SignedInt; 263 break; 264 } // switch 265 ArrayType * at = new ArrayType( noQualifiers, new BasicType( Type::Qualifiers( Type::Const ), strtype ), 225 266 new ConstantExpr( Constant::from_ulong( str.size() + 1 - 2 ) ), // +1 for '\0' and -2 for '"' 226 267 false, false ); 227 ConstantExpr * ret = new ConstantExpr( Constant( at, str, (unsigned long long int)0 ) ); // constant 0 is ignored for pure string value 228 // ROB: type mismatch 229 // if ( units.length() != 0 ) { 230 // ret = new UntypedExpr( new NameExpr( units, ret ) ); 231 // } // if 268 Expression * ret = new ConstantExpr( Constant( at, str, (unsigned long long int)0 ) ); // constant 0 is ignored for pure string value 269 if ( units.length() != 0 ) { 270 ret = new UntypedExpr( new NameExpr( units ), { ret } ); 271 } // if 232 272 233 273 delete &str; // created by lex … … 235 275 } // build_constantStr 236 276 237 Expression * build_field_name_FLOATINGconstant( const std::string & str ) { 277 Expression * build_field_name_FLOATING_FRACTIONconstant( const string & str ) { 278 if ( str.find_first_not_of( "0123456789", 1 ) != string::npos ) throw SemanticError( "invalid tuple index " + str ); 279 Expression * ret = build_constantInteger( *new string( str.substr(1) ) ); 280 delete &str; 281 return ret; 282 } // build_field_name_FLOATING_FRACTIONconstant 283 284 Expression * build_field_name_FLOATING_DECIMALconstant( const string & str ) { 285 if ( str[str.size()-1] != '.' ) throw SemanticError( "invalid tuple index " + str ); 286 Expression * ret = build_constantInteger( *new string( str.substr( 0, str.size()-1 ) ) ); 287 delete &str; 288 return ret; 289 } // build_field_name_FLOATING_DECIMALconstant 290 291 Expression * build_field_name_FLOATINGconstant( const string & str ) { 238 292 // str is of the form A.B -> separate at the . and return member expression 239 293 int a, b; 240 294 char dot; 241 st d::stringstream ss( str );295 stringstream ss( str ); 242 296 ss >> a >> dot >> b; 243 297 UntypedMemberExpr * ret = new UntypedMemberExpr( new ConstantExpr( Constant::from_int( b ) ), new ConstantExpr( Constant::from_int( a ) ) ); … … 253 307 } else { 254 308 return new UntypedMemberExpr( fracts, fieldName ); 255 } 256 } 309 } // if 310 } // if 257 311 return fieldName; 258 312 } // make_field_name_fraction_constants … … 261 315 return make_field_name_fraction_constants( fieldName, maybeMoveBuild< Expression >( fracts ) ); 262 316 } // build_field_name_fraction_constants 263 264 Expression * build_field_name_REALFRACTIONconstant( const std::string & str ) {265 if ( str.find_first_not_of( "0123456789", 1 ) != string::npos ) throw SemanticError( "invalid tuple index " + str );266 Expression * ret = build_constantInteger( *new std::string( str.substr(1) ) );267 delete &str;268 return ret;269 } // build_field_name_REALFRACTIONconstant270 271 Expression * build_field_name_REALDECIMALconstant( const std::string & str ) {272 if ( str[str.size()-1] != '.' ) throw SemanticError( "invalid tuple index " + str );273 Expression * ret = build_constantInteger( *new std::string( str.substr( 0, str.size()-1 ) ) );274 delete &str;275 return ret;276 } // build_field_name_REALDECIMALconstant277 317 278 318 NameExpr * build_varref( const string * name ) { … … 353 393 354 394 Expression * build_unary_val( OperKinds op, ExpressionNode * expr_node ) { 355 std::list< Expression * > args;395 list< Expression * > args; 356 396 args.push_back( maybeMoveBuild< Expression >(expr_node) ); 357 397 return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args ); … … 359 399 360 400 Expression * build_unary_ptr( OperKinds op, ExpressionNode * expr_node ) { 361 std::list< Expression * > args;401 list< Expression * > args; 362 402 args.push_back( maybeMoveBuild< Expression >(expr_node) ); // xxx -- this is exactly the same as the val case now, refactor this code. 363 403 return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args ); … … 365 405 366 406 Expression * build_binary_val( OperKinds op, ExpressionNode * expr_node1, ExpressionNode * expr_node2 ) { 367 std::list< Expression * > args;407 list< Expression * > args; 368 408 args.push_back( maybeMoveBuild< Expression >(expr_node1) ); 369 409 args.push_back( maybeMoveBuild< Expression >(expr_node2) ); … … 372 412 373 413 Expression * build_binary_ptr( OperKinds op, ExpressionNode * expr_node1, ExpressionNode * expr_node2 ) { 374 std::list< Expression * > args;414 list< Expression * > args; 375 415 args.push_back( maybeMoveBuild< Expression >(expr_node1) ); 376 416 args.push_back( maybeMoveBuild< Expression >(expr_node2) ); … … 395 435 396 436 Expression * build_tuple( ExpressionNode * expr_node ) { 397 std::list< Expression * > exprs;437 list< Expression * > exprs; 398 438 buildMoveList( expr_node, exprs ); 399 439 return new UntypedTupleExpr( exprs );; … … 401 441 402 442 Expression * build_func( ExpressionNode * function, ExpressionNode * expr_node ) { 403 std::list< Expression * > args;443 list< Expression * > args; 404 444 buildMoveList( expr_node, args ); 405 445 return new UntypedExpr( maybeMoveBuild< Expression >(function), args, nullptr ); … … 410 450 } // build_range 411 451 412 Expression * build_asmexpr( ExpressionNode * inout, ConstantExpr* constraint, ExpressionNode * operand ) {452 Expression * build_asmexpr( ExpressionNode * inout, Expression * constraint, ExpressionNode * operand ) { 413 453 return new AsmExpr( maybeMoveBuild< Expression >( inout ), constraint, maybeMoveBuild< Expression >(operand) ); 414 454 } // build_asmexpr -
src/Parser/ParseNode.h
ra506df4 rb3c7963 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 31 17:42:49201713 // Update Count : 79712 // Last Modified On : Sun Sep 10 09:56:32 2017 13 // Update Count : 801 14 14 // 15 15 … … 165 165 Expression * build_constantFloat( std::string &str ); 166 166 Expression * build_constantChar( std::string &str ); 167 ConstantExpr * build_constantStr( std::string &str ); 167 Expression * build_constantStr( std::string &str ); 168 Expression * build_field_name_FLOATING_FRACTIONconstant( const std::string & str ); 169 Expression * build_field_name_FLOATING_DECIMALconstant( const std::string & str ); 168 170 Expression * build_field_name_FLOATINGconstant( const std::string & str ); 169 171 Expression * build_field_name_fraction_constants( Expression * fieldName, ExpressionNode * fracts ); 170 Expression * build_field_name_REALFRACTIONconstant( const std::string & str );171 Expression * build_field_name_REALDECIMALconstant( const std::string & str );172 172 173 173 NameExpr * build_varref( const std::string * name ); … … 197 197 Expression * build_func( ExpressionNode * function, ExpressionNode * expr_node ); 198 198 Expression * build_range( ExpressionNode * low, ExpressionNode * high ); 199 Expression * build_asmexpr( ExpressionNode * inout, ConstantExpr* constraint, ExpressionNode * operand );199 Expression * build_asmexpr( ExpressionNode * inout, Expression * constraint, ExpressionNode * operand ); 200 200 Expression * build_valexpr( StatementNode * s ); 201 201 Expression * build_compoundLiteral( DeclarationNode * decl_node, InitializerNode * kids ); … … 330 330 bool hasEllipsis; 331 331 LinkageSpec::Spec linkage; 332 ConstantExpr*asmName;332 Expression *asmName; 333 333 std::list< Attribute * > attributes; 334 334 InitializerNode * initializer; … … 413 413 Statement * build_finally( StatementNode * stmt ); 414 414 Statement * build_compound( StatementNode * first ); 415 Statement * build_asmstmt( bool voltile, ConstantExpr* instruction, ExpressionNode * output = nullptr, ExpressionNode * input = nullptr, ExpressionNode * clobber = nullptr, LabelNode * gotolabels = nullptr );415 Statement * build_asmstmt( bool voltile, Expression * instruction, ExpressionNode * output = nullptr, ExpressionNode * input = nullptr, ExpressionNode * clobber = nullptr, LabelNode * gotolabels = nullptr ); 416 416 WaitForStmt * build_waitfor( ExpressionNode * target, StatementNode * stmt, ExpressionNode * when ); 417 417 WaitForStmt * build_waitfor( ExpressionNode * target, StatementNode * stmt, ExpressionNode * when, WaitForStmt * existing ); -
src/Parser/StatementNode.cc
ra506df4 rb3c7963 10 10 // Created On : Sat May 16 14:59:41 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 17 16:01:31201713 // Update Count : 34 512 // Last Modified On : Fri Sep 1 23:25:23 2017 13 // Update Count : 346 14 14 // 15 15 … … 300 300 } 301 301 302 Statement *build_asmstmt( bool voltile, ConstantExpr*instruction, ExpressionNode *output, ExpressionNode *input, ExpressionNode *clobber, LabelNode *gotolabels ) {302 Statement *build_asmstmt( bool voltile, Expression *instruction, ExpressionNode *output, ExpressionNode *input, ExpressionNode *clobber, LabelNode *gotolabels ) { 303 303 std::list< Expression * > out, in; 304 304 std::list< ConstantExpr * > clob; -
src/Parser/TypeData.cc
ra506df4 rb3c7963 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 15:12:51 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Mon Aug 14 10:41:00201713 // Update Count : 56 811 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Sep 1 23:13:38 2017 13 // Update Count : 569 14 14 // 15 15 … … 814 814 } // buildTypeof 815 815 816 Declaration * buildDecl( const TypeData * td, const string &name, Type::StorageClasses scs, Expression * bitfieldWidth, Type::FuncSpecifiers funcSpec, LinkageSpec::Spec linkage, ConstantExpr*asmName, Initializer * init, std::list< Attribute * > attributes ) {816 Declaration * buildDecl( const TypeData * td, const string &name, Type::StorageClasses scs, Expression * bitfieldWidth, Type::FuncSpecifiers funcSpec, LinkageSpec::Spec linkage, Expression *asmName, Initializer * init, std::list< Attribute * > attributes ) { 817 817 if ( td->kind == TypeData::Function ) { 818 818 if ( td->function.idList ) { // KR function ? -
src/Parser/TypeData.h
ra506df4 rb3c7963 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 15:18:36 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Mon Aug 14 10:38:00201713 // Update Count : 1 8911 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Sep 1 23:33:45 2017 13 // Update Count : 190 14 14 // 15 15 … … 118 118 TupleType * buildTuple( const TypeData * ); 119 119 TypeofType * buildTypeof( const TypeData * ); 120 Declaration * buildDecl( const TypeData *, const std::string &, Type::StorageClasses, Expression *, Type::FuncSpecifiers funcSpec, LinkageSpec::Spec, ConstantExpr *asmName, Initializer * init = nullptr, std::list< class Attribute * > attributes = std::list< class Attribute * >() );120 Declaration * buildDecl( const TypeData *, const std::string &, Type::StorageClasses, Expression *, Type::FuncSpecifiers funcSpec, LinkageSpec::Spec, Expression * asmName, Initializer * init = nullptr, std::list< class Attribute * > attributes = std::list< class Attribute * >() ); 121 121 FunctionType * buildFunction( const TypeData * ); 122 122 void buildKRFunction( const TypeData::Function_t & function ); -
src/Parser/lex.ll
ra506df4 rb3c7963 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Thu Aug 31 21:30:10201713 * Update Count : 59812 * Last Modified On : Sun Sep 10 22:29:15 2017 13 * Update Count : 620 14 14 */ 15 15 … … 93 93 // numeric constants, CFA: '_' in constant 94 94 hex_quad {hex}("_"?{hex}){3} 95 integer_suffix_opt ("_"?(([uU](("ll"|"LL"|[lL])[iI]|[iI]?("ll"|"LL"|[lL])?))|([iI](("ll"|"LL"|[lL])[uU]|[uU]?("ll"|"LL"|[lL])?))|(("ll"|"LL"|[lL])([iI][uU]|[uU]?[iI]?))))? 95 length ("ll"|"LL"|[lL])|("hh"|"HH"|[hH]) 96 integer_suffix_opt ("_"?(([uU]({length}?[iI]?)|([iI]{length}))|([iI]({length}?[uU]?)|([uU]{length}))|({length}([iI]?[uU]?)|([uU][iI]))|[zZ]))?{user_suffix_opt} 96 97 97 98 octal_digits ({octal})|({octal}({octal}|"_")*{octal}) 98 99 octal_prefix "0""_"? 99 octal_constant (("0")|({octal_prefix}{octal_digits})){integer_suffix_opt} {user_suffix_opt}100 octal_constant (("0")|({octal_prefix}{octal_digits})){integer_suffix_opt} 100 101 101 102 nonzero_digits ({nonzero})|({nonzero}({decimal}|"_")*{decimal}) 102 decimal_constant {nonzero_digits}{integer_suffix_opt} {user_suffix_opt}103 decimal_constant {nonzero_digits}{integer_suffix_opt} 103 104 104 105 hex_digits ({hex})|({hex}({hex}|"_")*{hex}) 105 106 hex_prefix "0"[xX]"_"? 106 hex_constant {hex_prefix}{hex_digits}{integer_suffix_opt} {user_suffix_opt}107 hex_constant {hex_prefix}{hex_digits}{integer_suffix_opt} 107 108 108 109 // GCC: D (double) and iI (imaginary) suffixes, and DL (long double) 109 floating_suffix_opt ("_"?([fFdDlL][iI]?|[iI][lLfFdD]?|"DL"))? 110 exponent "_"?[eE]"_"?[+-]?{decimal_digits} 111 floating_suffix ([fFdDlL]?[iI]?)|([iI][lLfFdD]) 112 floating_suffix_opt ("_"?({floating_suffix}|"DL"))?{user_suffix_opt} 110 113 decimal_digits ({decimal})|({decimal}({decimal}|"_")*{decimal}) 111 real_decimal {decimal_digits}"."{exponent}?{floating_suffix_opt}{user_suffix_opt} 112 real_fraction "."{decimal_digits}{exponent}?{floating_suffix_opt}{user_suffix_opt} 113 real_constant {decimal_digits}{real_fraction} 114 exponent "_"?[eE]"_"?[+-]?{decimal_digits} 115 floating_constant (({real_constant}{exponent}?)|({decimal_digits}{exponent})){floating_suffix_opt}{user_suffix_opt} 114 floating_decimal {decimal_digits}"."{exponent}?{floating_suffix_opt} 115 floating_fraction "."{decimal_digits}{exponent}?{floating_suffix_opt} 116 floating_constant ({decimal_digits}{exponent}{floating_suffix_opt})|({decimal_digits}{floating_fraction}) 116 117 117 118 binary_exponent "_"?[pP]"_"?[+-]?{decimal_digits} 118 hex_fractional_constant ({hex_digits}?"."{hex_digits})|({hex_digits}".") 119 hex_floating_constant {hex_prefix}(({hex_fractional_constant}{binary_exponent})|({hex_digits}{binary_exponent})){floating_suffix_opt} 119 hex_floating_suffix_opt ("_"?({floating_suffix}))?{user_suffix_opt} 120 hex_floating_fraction ({hex_digits}?"."{hex_digits})|({hex_digits}".") 121 hex_floating_constant {hex_prefix}(({hex_floating_fraction}{binary_exponent})|({hex_digits}{binary_exponent})){hex_floating_suffix_opt} 120 122 121 123 // character escape sequence, GCC: \e => esc character 122 124 simple_escape "\\"[abefnrtv'"?\\] 123 // ' stop highlighting125 // ' stop editor highlighting 124 126 octal_escape "\\"{octal}("_"?{octal}){0,2} 125 127 hex_escape "\\""x""_"?{hex_digits} … … 154 156 /* line directives */ 155 157 ^{h_white}*"#"{h_white}*[0-9]+{h_white}*["][^"\n]+["].*"\n" { 156 /* " stop highlighting */158 /* " stop editor highlighting */ 157 159 static char filename[FILENAME_MAX]; // temporarily store current source-file name 158 160 char *end_num; … … 310 312 {octal_constant} { NUMERIC_RETURN(INTEGERconstant); } 311 313 {hex_constant} { NUMERIC_RETURN(INTEGERconstant); } 312 { real_decimal} { NUMERIC_RETURN(REALDECIMALconstant); } // must appear before floating_constant313 { real_fraction} { NUMERIC_RETURN(REALFRACTIONconstant); } // must appear before floating_constant314 {floating_decimal} { NUMERIC_RETURN(FLOATING_DECIMALconstant); } // must appear before floating_constant 315 {floating_fraction} { NUMERIC_RETURN(FLOATING_FRACTIONconstant); } // must appear before floating_constant 314 316 {floating_constant} { NUMERIC_RETURN(FLOATINGconstant); } 315 317 {hex_floating_constant} { NUMERIC_RETURN(FLOATINGconstant); } … … 319 321 <QUOTE>[^'\\\n]* { strtext->append( yytext, yyleng ); } 320 322 <QUOTE>['\n]{user_suffix_opt} { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); } 321 /* ' stop highlighting */323 /* ' stop editor highlighting */ 322 324 323 325 /* string constant */ … … 325 327 <STRING>[^"\\\n]* { strtext->append( yytext, yyleng ); } 326 328 <STRING>["\n]{user_suffix_opt} { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); } 327 /* " stop highlighting */329 /* " stop editor highlighting */ 328 330 329 331 /* common character/string constant */ -
src/Parser/parser.yy
ra506df4 rb3c7963 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Aug 30 07:04:19201713 // Update Count : 27 4012 // Last Modified On : Mon Sep 11 18:12:00 2017 13 // Update Count : 2787 14 14 // 15 15 … … 43 43 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time 44 44 #define YYDEBUG 1 // get the pretty debugging code to compile 45 #define YYERROR_VERBOSE 45 46 46 47 #undef __GNUC_MINOR__ … … 62 63 stack< LinkageSpec::Spec > linkageStack; 63 64 64 void appendStr( string *to, string *from ) { 65 // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string. 66 to->insert( to->length() - 1, from->substr( 1, from->length() - 2 ) ); 65 bool appendStr( string & to, string & from ) { 66 // 1. Multiple strings are concatenated into a single string but not combined internally. The reason is that 67 // "\x12" "3" is treated as 2 characters versus 1 because "escape sequences are converted into single members of 68 // the execution character set just prior to adjacent string literal concatenation" (C11, Section 6.4.5-8). It is 69 // easier to let the C compiler handle this case. 70 // 71 // 2. String encodings are transformed into canonical form (one encoding at start) so the encoding can be found 72 // without searching the string, e.g.: "abc" L"def" L"ghi" => L"abc" "def" "ghi". Multiple encodings must match, 73 // i.e., u"a" U"b" L"c" is disallowed. 74 75 if ( from[0] != '"' ) { // encoding ? 76 if ( to[0] != '"' ) { // encoding ? 77 if ( to[0] != from[0] || to[1] != from[1] ) { // different encodings ? 78 yyerror( "non-matching string encodings for string-literal concatenation" ); 79 return false; // parse error, must call YYERROR in action 80 } else if ( from[1] == '8' ) { 81 from.erase( 0, 1 ); // remove 2nd encoding 82 } // if 83 } else { 84 if ( from[1] == '8' ) { // move encoding to start 85 to = "u8" + to; 86 from.erase( 0, 1 ); // remove 2nd encoding 87 } else { 88 to = from[0] + to; 89 } // if 90 } // if 91 from.erase( 0, 1 ); // remove 2nd encoding 92 } // if 93 to += " " + from; // concatenated into single string 94 return true; 67 95 } // appendStr 68 96 … … 89 117 %} 90 118 119 %define parse.error verbose 120 91 121 // Types declaration 92 122 %union … … 100 130 StatementNode * sn; 101 131 WaitForStmt * wfs; 102 ConstantExpr* constant;132 Expression * constant; 103 133 IfCtl * ifctl; 104 134 ForCtl * fctl; … … 146 176 // overloading constants 0/1, e.g., x.1 is lexed as (x)(.1), where (.1) is a factional constant, but is semantically 147 177 // converted into the tuple index (.)(1). e.g., 3.x 148 %token<tok> REALDECIMALconstant REALFRACTIONconstant FLOATINGconstant178 %token<tok> FLOATING_DECIMALconstant FLOATING_FRACTIONconstant FLOATINGconstant 149 179 150 180 // multi-character operators … … 315 345 %precedence ELSE // token precedence for start of else clause in IF/WAITFOR statement 316 346 347 317 348 %start translation_unit // parse-tree root 318 349 … … 321 352 322 353 // The grammar in the ANSI C standard is not strictly context-free, since it relies upon the distinct terminal symbols 323 // "identifier" and "TYPEDEFname" that are lexically identical. While it is possible to write a purely context-free324 // grammar, such a grammar would obscure the relationship between syntactic and semantic constructs. Hence, this325 // grammar uses the ANSI style.354 // "identifier", "TYPEDEFname", and "TYPEGENname" that are lexically identical. While it is possible to write a purely 355 // context-free grammar, such a grammar would obscure the relationship between syntactic and semantic constructs. 356 // Hence, this grammar uses the ANSI style. 326 357 // 327 358 // Cforall compounds this problem by introducing type names local to the scope of a declaration (for instance, those … … 360 391 // ENUMERATIONconstant is not included here; it is treated as a variable with type "enumeration constant". 361 392 INTEGERconstant { $$ = new ExpressionNode( build_constantInteger( *$1 ) ); } 362 | REALDECIMALconstant{ $$ = new ExpressionNode( build_constantFloat( *$1 ) ); }363 | REALFRACTIONconstant{ $$ = new ExpressionNode( build_constantFloat( *$1 ) ); }393 | FLOATING_DECIMALconstant { $$ = new ExpressionNode( build_constantFloat( *$1 ) ); } 394 | FLOATING_FRACTIONconstant { $$ = new ExpressionNode( build_constantFloat( *$1 ) ); } 364 395 | FLOATINGconstant { $$ = new ExpressionNode( build_constantFloat( *$1 ) ); } 365 396 | CHARACTERconstant { $$ = new ExpressionNode( build_constantChar( *$1 ) ); } … … 390 421 | string_literal_list STRINGliteral 391 422 { 392 appendStr( $1, $2 );// append 2nd juxtaposed string to 1st423 if ( ! appendStr( *$1, *$2 ) ) YYERROR; // append 2nd juxtaposed string to 1st 393 424 delete $2; // allocated by lexer 394 425 $$ = $1; // conversion from tok to str … … 434 465 | postfix_expression '.' '[' push field_list pop ']' // CFA, tuple field selector 435 466 { $$ = new ExpressionNode( build_fieldSel( $1, build_tuple( $5 ) ) ); } 436 | postfix_expression REALFRACTIONconstant// CFA, tuple index437 { $$ = new ExpressionNode( build_fieldSel( $1, build_field_name_ REALFRACTIONconstant( *$2 ) ) ); }467 | postfix_expression FLOATING_FRACTIONconstant // CFA, tuple index 468 { $$ = new ExpressionNode( build_fieldSel( $1, build_field_name_FLOATING_FRACTIONconstant( *$2 ) ) ); } 438 469 | postfix_expression ARROW no_attr_identifier 439 470 { … … 479 510 field: // CFA, tuple field selector 480 511 field_name 481 | REALDECIMALconstant field482 { $$ = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_ REALDECIMALconstant( *$1 ) ), maybeMoveBuild<Expression>( $2 ) ) ); }483 | REALDECIMALconstant '[' push field_list pop ']'484 { $$ = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_ REALDECIMALconstant( *$1 ) ), build_tuple( $4 ) ) ); }512 | FLOATING_DECIMALconstant field 513 { $$ = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_FLOATING_DECIMALconstant( *$1 ) ), maybeMoveBuild<Expression>( $2 ) ) ); } 514 | FLOATING_DECIMALconstant '[' push field_list pop ']' 515 { $$ = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_FLOATING_DECIMALconstant( *$1 ) ), build_tuple( $4 ) ) ); } 485 516 | field_name '.' field 486 517 { $$ = new ExpressionNode( build_fieldSel( $1, maybeMoveBuild<Expression>( $3 ) ) ); } … … 507 538 // empty 508 539 { $$ = nullptr; } 509 | fraction_constants REALFRACTIONconstant510 { 511 Expression * constant = build_field_name_ REALFRACTIONconstant( *$2 );540 | fraction_constants FLOATING_FRACTIONconstant 541 { 542 Expression * constant = build_field_name_FLOATING_FRACTIONconstant( *$2 ); 512 543 $$ = $1 != nullptr ? new ExpressionNode( build_fieldSel( $1, constant ) ) : new ExpressionNode( constant ); 513 544 } -
src/SynTree/BasicType.cc
ra506df4 rb3c7963 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Feb 1 17:12:15 201713 // Update Count : 812 // Last Modified On : Mon Sep 11 12:52:05 2017 13 // Update Count : 9 14 14 // 15 15 … … 25 25 26 26 void BasicType::print( std::ostream &os, int indent ) const { 27 static const char *kindNames[] = {28 "_Bool", "char", "signed char", "unsigned char", "short signed int", "short unsigned int",29 "signed int", "unsigned int", "long signed int", "long unsigned int", "long long signed int",30 "long long unsigned int", "float", "double", "long double", "float _Complex", "double _Complex",31 "long double _Complex", "float _Imaginary", "double _Imaginary", "long double _Imaginary"32 };33 34 27 Type::print( os, indent ); 35 os << kindNames[ kind ];28 os << BasicType::typeNames[ kind ]; 36 29 } 37 30 -
src/SynTree/Declaration.h
ra506df4 rb3c7963 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Mon Aug 14 10:15:00201713 // Update Count : 1 2811 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Sep 3 19:24:06 2017 13 // Update Count : 131 14 14 // 15 15 … … 82 82 int scopeLevel = 0; 83 83 84 ConstantExpr*asmName;84 Expression *asmName; 85 85 std::list< Attribute * > attributes; 86 86 … … 97 97 DeclarationWithType * set_scopeLevel( int newValue ) { scopeLevel = newValue; return this; } 98 98 99 ConstantExpr*get_asmName() const { return asmName; }100 DeclarationWithType * set_asmName( ConstantExpr*newValue ) { asmName = newValue; return this; }99 Expression *get_asmName() const { return asmName; } 100 DeclarationWithType * set_asmName( Expression *newValue ) { asmName = newValue; return this; } 101 101 102 102 std::list< Attribute * >& get_attributes() { return attributes; } -
src/SynTree/Expression.h
ra506df4 rb3c7963 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Fri Aug 8 11:54:00201713 // Update Count : 4 411 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Sep 3 19:23:46 2017 13 // Update Count : 48 14 14 // 15 15 16 #pragma once 16 17 … … 539 540 public: 540 541 Expression * inout; 541 ConstantExpr* constraint;542 Expression * constraint; 542 543 Expression * operand; 543 544 544 AsmExpr( Expression * inout, ConstantExpr* constraint, Expression * operand ) : inout( inout ), constraint( constraint ), operand( operand ) {}545 AsmExpr( Expression * inout, Expression * constraint, Expression * operand ) : inout( inout ), constraint( constraint ), operand( operand ) {} 545 546 AsmExpr( const AsmExpr & other ); 546 547 virtual ~AsmExpr() { delete inout; delete constraint; delete operand; }; … … 549 550 void set_inout( Expression * newValue ) { inout = newValue; } 550 551 551 ConstantExpr* get_constraint() const { return constraint; }552 void set_constraint( ConstantExpr* newValue ) { constraint = newValue; }552 Expression * get_constraint() const { return constraint; } 553 void set_constraint( Expression * newValue ) { constraint = newValue; } 553 554 554 555 Expression * get_operand() const { return operand; } -
src/SynTree/Statement.cc
ra506df4 rb3c7963 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 17 16:17:20201713 // Update Count : 6 712 // Last Modified On : Sun Sep 3 20:46:44 2017 13 // Update Count : 68 14 14 // 15 15 … … 52 52 53 53 54 AsmStmt::AsmStmt( std::list<Label> labels, bool voltile, ConstantExpr*instruction, std::list<Expression *> output, std::list<Expression *> input, std::list<ConstantExpr *> clobber, std::list<Label> gotolabels ) : Statement( labels ), voltile( voltile ), instruction( instruction ), output( output ), input( input ), clobber( clobber ), gotolabels( gotolabels ) {}54 AsmStmt::AsmStmt( std::list<Label> labels, bool voltile, Expression *instruction, std::list<Expression *> output, std::list<Expression *> input, std::list<ConstantExpr *> clobber, std::list<Label> gotolabels ) : Statement( labels ), voltile( voltile ), instruction( instruction ), output( output ), input( input ), clobber( clobber ), gotolabels( gotolabels ) {} 55 55 56 56 AsmStmt::AsmStmt( const AsmStmt & other ) : Statement( other ), voltile( other.voltile ), instruction( maybeClone( other.instruction ) ), gotolabels( other.gotolabels ) { -
src/SynTree/Statement.h
ra506df4 rb3c7963 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 17 15:37:53201713 // Update Count : 7 212 // Last Modified On : Sun Sep 3 20:46:46 2017 13 // Update Count : 77 14 14 // 15 15 … … 98 98 public: 99 99 bool voltile; 100 ConstantExpr*instruction;100 Expression *instruction; 101 101 std::list<Expression *> output, input; 102 102 std::list<ConstantExpr *> clobber; 103 103 std::list<Label> gotolabels; 104 104 105 AsmStmt( std::list<Label> labels, bool voltile, ConstantExpr *instruction, std::list<Expression *> input, std::list<Expression *> output, std::list<ConstantExpr *> clobber, std::list<Label> gotolabels );105 AsmStmt( std::list<Label> labels, bool voltile, Expression *instruction, std::list<Expression *> output, std::list<Expression *> input, std::list<ConstantExpr *> clobber, std::list<Label> gotolabels ); 106 106 AsmStmt( const AsmStmt &other ); 107 107 virtual ~AsmStmt(); … … 109 109 bool get_voltile() { return voltile; } 110 110 void set_voltile( bool newValue ) { voltile = newValue; } 111 ConstantExpr *get_instruction() { return instruction; }112 void set_instruction( ConstantExpr *newValue ) { instruction = newValue; }113 std::list<Expression *> & get_output() { return output; }114 void set_output( const std::list<Expression *> & newValue ) { output = newValue; }115 std::list<Expression *> & get_input() { return input; }111 Expression * get_instruction() { return instruction; } 112 void set_instruction( Expression * newValue ) { instruction = newValue; } 113 std::list<Expression *> & get_output() { return output; } 114 void set_output( const std::list<Expression *> & newValue ) { output = newValue; } 115 std::list<Expression *> & get_input() { return input; } 116 116 void set_input( const std::list<Expression *> &newValue ) { input = newValue; } 117 std::list<ConstantExpr *> & get_clobber() { return clobber; }117 std::list<ConstantExpr *> & get_clobber() { return clobber; } 118 118 void set_clobber( const std::list<ConstantExpr *> &newValue ) { clobber = newValue; } 119 std::list<Label> & get_gotolabels() { return gotolabels; }119 std::list<Label> & get_gotolabels() { return gotolabels; } 120 120 void set_gotolabels( const std::list<Label> &newValue ) { gotolabels = newValue; } 121 121 122 virtual AsmStmt * clone() const { return new AsmStmt( *this ); }123 virtual void accept( Visitor & v ) { v.visit( this ); }124 virtual Statement * acceptMutator( Mutator &m ) { return m.mutate( this ); }125 virtual void print( std::ostream & os, int indent = 0 ) const;122 virtual AsmStmt * clone() const { return new AsmStmt( *this ); } 123 virtual void accept( Visitor & v ) { v.visit( this ); } 124 virtual Statement * acceptMutator( Mutator & m ) { return m.mutate( this ); } 125 virtual void print( std::ostream & os, int indent = 0 ) const; 126 126 }; 127 127 -
src/SynTree/Type.cc
ra506df4 rb3c7963 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Wed Aug 2 11:11:00201713 // Update Count : 2911 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Sep 11 13:21:25 2017 13 // Update Count : 37 14 14 // 15 15 #include "Type.h" … … 26 26 "_Bool", 27 27 "char", 28 " char",28 "signed char", 29 29 "unsigned char", 30 "s hort",31 " short unsigned",32 " int",30 "signed short int", 31 "unsigned short int", 32 "signed int", 33 33 "unsigned int", 34 " long int",35 " long unsignedint",36 " long long int",37 " long long unsignedint",34 "signed long int", 35 "unsigned long int", 36 "signed long long int", 37 "unsigned long long int", 38 38 "float", 39 39 "double", … … 65 65 66 66 Type * Type::stripDeclarator() { 67 Type * type = this; 68 while ( Type * at = InitTweak::getPointerBase( type ) ) { 69 type = at; 70 } 67 Type * type, * at; 68 for ( type = this; (at = InitTweak::getPointerBase( type )); type = at ); 71 69 return type; 72 70 } 73 71 74 72 Type * Type::stripReferences() { 75 Type * type = this; 76 while ( ReferenceType * ref = dynamic_cast<ReferenceType *>( type ) ) { 77 type = ref->get_base(); 78 } 73 Type * type; 74 ReferenceType * ref; 75 for ( type = this; (ref = dynamic_cast<ReferenceType *>( type )); type = ref->get_base() ); 79 76 return type; 80 77 } -
src/benchmark/Makefile.am
ra506df4 rb3c7963 31 31 32 32 ctxswitch-coroutine$(EXEEXT): 33 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 CorCtxSwitch.c 34 @for number in 1 2 3 4 5 6 7 8 9 10; do \ 35 ./a.out ; \ 33 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=50000000 CorCtxSwitch.c 34 @rm -f .result.log 35 @for number in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do \ 36 ./a.out | tee -a .result.log ; \ 36 37 done 37 @rm -f ./a.out 38 @./stat.py .result.log 39 @rm -f a.out .result.log 38 40 39 41 ctxswitch-thread$(EXEEXT): 40 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 ThrdCtxSwitch.c 41 @for number in 1 2 3 4 5 6 7 8 9 10; do \ 42 ./a.out ; \ 42 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=50000000 ThrdCtxSwitch.c 43 @rm -f .result.log 44 @for number in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do \ 45 ./a.out | tee -a .result.log ; \ 43 46 done 44 @rm -f ./a.out 47 @./stat.py .result.log 48 @rm -f a.out .result.log 45 49 46 50 sched-int$(EXEEXT): 47 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 SchedInt.c 48 @for number in 1 2 3 4 5 6 7 8 9 10; do \ 49 ./a.out ; \ 51 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=50000000 SchedInt.c 52 @rm -f .result.log 53 @for number in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do \ 54 ./a.out | tee -a .result.log ; \ 50 55 done 51 @rm -f ./a.out 56 @./stat.py .result.log 57 @rm -f a.out .result.log 52 58 53 59 monitor$(EXEEXT): 54 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 Monitor.c 55 @for number in 1 2 3 4 5 6 7 8 9 10; do \ 56 ./a.out ; \ 60 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=50000000 Monitor.c 61 @rm -f .result.log 62 @for number in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do \ 63 ./a.out | tee -a .result.log ; \ 57 64 done 58 @rm -f ./a.out 65 @./stat.py .result.log 66 @rm -f a.out .result.log 59 67 60 68 csv-data$(EXEEXT): 61 @${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -quiet -DN= 10000000 csv-data.c69 @${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -quiet -DN=50000000 csv-data.c 62 70 @./a.out 63 71 @rm -f ./a.out -
src/benchmark/Makefile.in
ra506df4 rb3c7963 581 581 582 582 ctxswitch-coroutine$(EXEEXT): 583 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 CorCtxSwitch.c 584 @for number in 1 2 3 4 5 6 7 8 9 10; do \ 585 ./a.out ; \ 583 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=50000000 CorCtxSwitch.c 584 @rm -f .result.log 585 @for number in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do \ 586 ./a.out | tee -a .result.log ; \ 586 587 done 587 @rm -f ./a.out 588 @./stat.py .result.log 589 @rm -f a.out .result.log 588 590 589 591 ctxswitch-thread$(EXEEXT): 590 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 ThrdCtxSwitch.c 591 @for number in 1 2 3 4 5 6 7 8 9 10; do \ 592 ./a.out ; \ 592 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=50000000 ThrdCtxSwitch.c 593 @rm -f .result.log 594 @for number in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do \ 595 ./a.out | tee -a .result.log ; \ 593 596 done 594 @rm -f ./a.out 597 @./stat.py .result.log 598 @rm -f a.out .result.log 595 599 596 600 sched-int$(EXEEXT): 597 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 SchedInt.c 598 @for number in 1 2 3 4 5 6 7 8 9 10; do \ 599 ./a.out ; \ 601 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=50000000 SchedInt.c 602 @rm -f .result.log 603 @for number in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do \ 604 ./a.out | tee -a .result.log ; \ 600 605 done 601 @rm -f ./a.out 606 @./stat.py .result.log 607 @rm -f a.out .result.log 602 608 603 609 monitor$(EXEEXT): 604 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 Monitor.c 605 @for number in 1 2 3 4 5 6 7 8 9 10; do \ 606 ./a.out ; \ 610 ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=50000000 Monitor.c 611 @rm -f .result.log 612 @for number in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do \ 613 ./a.out | tee -a .result.log ; \ 607 614 done 608 @rm -f ./a.out 615 @./stat.py .result.log 616 @rm -f a.out .result.log 609 617 610 618 csv-data$(EXEEXT): 611 @${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -quiet -DN= 10000000 csv-data.c619 @${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -quiet -DN=50000000 csv-data.c 612 620 @./a.out 613 621 @rm -f ./a.out -
src/libcfa/gmp
ra506df4 rb3c7963 10 10 // Created On : Tue Apr 19 08:43:43 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 24 09:24:51201713 // Update Count : 1612 // Last Modified On : Mon Sep 4 09:54:33 2017 13 // Update Count : 20 14 14 // 15 15 … … 32 32 static inline void ?{}( Int & this, const char * val ) { if ( mpz_init_set_str( this.mpz, val, 0 ) ) abort(); } 33 33 static inline void ^?{}( Int & this ) { mpz_clear( this.mpz ); } 34 35 // literal 36 static inline Int ?`mp( signed long int init ) { return (Int){ init }; } 37 static inline Int ?`mp( unsigned long int init ) { return (Int){ init }; } 38 static inline Int ?`mp( const char * init ) { return (Int){ init }; } 34 39 35 40 // assignment -
src/libcfa/iostream
ra506df4 rb3c7963 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 24 08:14:29201713 // Update Count : 13 312 // Last Modified On : Mon Sep 11 09:17:07 2017 13 // Update Count : 137 14 14 // 15 15 16 16 #pragma once 17 17 18 #include <uchar.h> 19 #include <wchar.h> 18 20 #include "iterator" 19 21 … … 78 80 79 81 forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, const char * ); 82 forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, const char16_t * ); 83 forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, const char32_t * ); 84 forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, const wchar_t * ); 80 85 forall( dtype ostype | ostream( ostype ) ) ostype * ?|?( ostype *, const void * ); 81 86 … … 118 123 119 124 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, char & ); 125 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, signed char & ); 126 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, unsigned char & ); 120 127 121 128 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, short int & ); -
src/libcfa/iostream.c
ra506df4 rb3c7963 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 24 08:41:53201713 // Update Count : 4 0512 // Last Modified On : Mon Sep 11 09:21:24 2017 13 // Update Count : 420 14 14 // 15 15 … … 145 145 146 146 forall( dtype ostype | ostream( ostype ) ) 147 ostype * ?|?( ostype * os, const char * cp) {147 ostype * ?|?( ostype * os, const char * str ) { 148 148 enum { Open = 1, Close, OpenClose }; 149 149 static const unsigned char mask[256] @= { … … 161 161 }; // mask 162 162 163 if ( cp[0] == '\0' ) { sepOff( os ); return os; } // null string => no separator163 if ( str[0] == '\0' ) { sepOff( os ); return os; } // null string => no separator 164 164 165 165 // first character IS NOT spacing or closing punctuation => add left separator 166 unsigned char ch = cp[0]; // must make unsigned166 unsigned char ch = str[0]; // must make unsigned 167 167 if ( sepPrt( os ) && mask[ ch ] != Close && mask[ ch ] != OpenClose ) { 168 168 fmt( os, "%s", sepGetCur( os ) ); … … 173 173 174 174 // last character IS spacing or opening punctuation => turn off separator for next item 175 size_t len = strlen( cp);176 ch = cp[len - 1]; // must make unsigned175 size_t len = strlen( str ); 176 ch = str[len - 1]; // must make unsigned 177 177 if ( sepPrt( os ) && mask[ ch ] != Open && mask[ ch ] != OpenClose ) { 178 178 sepOn( os ); … … 181 181 } // if 182 182 if ( ch == '\n' ) setNL( os, true ); // check *AFTER* sepPrt call above as it resets NL flag 183 return write( os, cp, len ); 183 return write( os, str, len ); 184 } // ?|? 185 186 forall( dtype ostype | ostream( ostype ) ) 187 ostype * ?|?( ostype * os, const char16_t * str ) { 188 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 189 fmt( os, "%ls", str ); 190 return os; 191 } // ?|? 192 193 forall( dtype ostype | ostream( ostype ) ) 194 ostype * ?|?( ostype * os, const char32_t * str ) { 195 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 196 fmt( os, "%ls", str ); 197 return os; 198 } // ?|? 199 200 forall( dtype ostype | ostream( ostype ) ) 201 ostype * ?|?( ostype * os, const wchar_t * str ) { 202 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 203 fmt( os, "%ls", str ); 204 return os; 184 205 } // ?|? 185 206 … … 277 298 278 299 forall( dtype istype | istream( istype ) ) 300 istype * ?|?( istype * is, signed char & sc ) { 301 fmt( is, "%hhd", &sc ); 302 return is; 303 } // ?|? 304 305 forall( dtype istype | istream( istype ) ) 306 istype * ?|?( istype * is, unsigned char & usc ) { 307 fmt( is, "%hhu", &usc ); 308 return is; 309 } // ?|? 310 311 forall( dtype istype | istream( istype ) ) 279 312 istype * ?|?( istype * is, short int & si ) { 280 313 fmt( is, "%hd", &si ); -
src/tests/.expect/64/KRfunctions.txt
ra506df4 rb3c7963 1 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc( long unsignedint __size);1 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size); 2 2 __attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr); 3 3 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void); 4 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern int atexit(void (*__func)(void));5 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit( int __status);6 extern int printf(const char *__restrict __format, ...);7 int __f0__Fi_iPCii__1(int __a__i_1, const int *__b__PCi_1,int __c__i_1){8 __attribute__ ((unused)) int ___retval_f0__i_1;4 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void)); 5 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status); 6 extern signed int printf(const char *__restrict __format, ...); 7 signed int __f0__Fi_iPCii__1(signed int __a__i_1, const signed int *__b__PCi_1, signed int __c__i_1){ 8 __attribute__ ((unused)) signed int ___retval_f0__i_1; 9 9 } 10 int __f1__Fi_PiiPi__1(int *__a__Pi_1, __attribute__ ((unused)) int __b__i_1,int *__c__Pi_1){11 __attribute__ ((unused)) int ___retval_f1__i_1;10 signed int __f1__Fi_PiiPi__1(signed int *__a__Pi_1, __attribute__ ((unused)) signed int __b__i_1, signed int *__c__Pi_1){ 11 __attribute__ ((unused)) signed int ___retval_f1__i_1; 12 12 } 13 int __f2__Fi_iPiPi__1(int __a__i_1, int *__b__Pi_1,int *__c__Pi_1){14 __attribute__ ((unused)) int ___retval_f2__i_1;13 signed int __f2__Fi_iPiPi__1(signed int __a__i_1, signed int *__b__Pi_1, signed int *__c__Pi_1){ 14 __attribute__ ((unused)) signed int ___retval_f2__i_1; 15 15 } 16 16 struct S { 17 int __i__i_1;17 signed int __i__i_1; 18 18 }; 19 19 static inline void ___constructor__F_R2sS_autogen___1(struct S *___dst__R2sS_1); … … 36 36 return ((struct S )___ret__2sS_1); 37 37 } 38 static inline void ___constructor__F_R2sSi_autogen___1(struct S *___dst__R2sS_1, int __i__i_1){38 static inline void ___constructor__F_R2sSi_autogen___1(struct S *___dst__R2sS_1, signed int __i__i_1){ 39 39 ((void)((*___dst__R2sS_1).__i__i_1=__i__i_1) /* ?{} */); 40 40 } 41 int __f3__Fi_2sS2sSPi__1(struct S __a__2sS_1, struct S __b__2sS_1,int *__c__Pi_1){42 __attribute__ ((unused)) int ___retval_f3__i_1;41 signed int __f3__Fi_2sS2sSPi__1(struct S __a__2sS_1, struct S __b__2sS_1, signed int *__c__Pi_1){ 42 __attribute__ ((unused)) signed int ___retval_f3__i_1; 43 43 struct S __s__2sS_2; 44 44 } 45 int __f4__Fi_iPiPi__1(int __a__i_1, int *__b__Pi_1,int *__c__Pi_1){46 __attribute__ ((unused)) int ___retval_f4__i_1;45 signed int __f4__Fi_iPiPi__1(signed int __a__i_1, signed int *__b__Pi_1, signed int *__c__Pi_1){ 46 __attribute__ ((unused)) signed int ___retval_f4__i_1; 47 47 } 48 int __f5__Fi_iPiPi__1(int __a__i_1, int *__b__Pi_1,int *__c__Pi_1){49 __attribute__ ((unused)) int ___retval_f5__i_1;48 signed int __f5__Fi_iPiPi__1(signed int __a__i_1, signed int *__b__Pi_1, signed int *__c__Pi_1){ 49 __attribute__ ((unused)) signed int ___retval_f5__i_1; 50 50 } 51 int (*__f6__FPFi_i__iPiPi__1(int __a__i_1, int *__b__Pi_1, int *__c__Pi_1))(int __anonymous_object0){52 __attribute__ ((unused)) int (*___retval_f6__PFi_i__1)(int __anonymous_object1);51 signed int (*__f6__FPFi_i__iPiPi__1(signed int __a__i_1, signed int *__b__Pi_1, signed int *__c__Pi_1))(signed int __anonymous_object0){ 52 __attribute__ ((unused)) signed int (*___retval_f6__PFi_i__1)(signed int __anonymous_object1); 53 53 } 54 int (*__f7__FPFi_ii__iPiPi__1(int __a__i_1, int *__b__Pi_1, int *__c__Pi_1))(int __a__i_1,int __b__i_1){55 __attribute__ ((unused)) int (*___retval_f7__PFi_ii__1)(int __a__i_1,int __b__i_1);54 signed int (*__f7__FPFi_ii__iPiPi__1(signed int __a__i_1, signed int *__b__Pi_1, signed int *__c__Pi_1))(signed int __a__i_1, signed int __b__i_1){ 55 __attribute__ ((unused)) signed int (*___retval_f7__PFi_ii__1)(signed int __a__i_1, signed int __b__i_1); 56 56 } 57 int *__f8__FPi_iPiPi__1(int __a__i_1, int *__b__Pi_1,int *__c__Pi_1){58 __attribute__ ((unused)) int *___retval_f8__Pi_1;57 signed int *__f8__FPi_iPiPi__1(signed int __a__i_1, signed int *__b__Pi_1, signed int *__c__Pi_1){ 58 __attribute__ ((unused)) signed int *___retval_f8__Pi_1; 59 59 } 60 int *const __f9__FCPi_PiiPi__1(int *__a__Pi_1, int __b__i_1,int *__c__Pi_1){61 __attribute__ ((unused)) int *const ___retval_f9__CPi_1;60 signed int *const __f9__FCPi_PiiPi__1(signed int *__a__Pi_1, signed int __b__i_1, signed int *__c__Pi_1){ 61 __attribute__ ((unused)) signed int *const ___retval_f9__CPi_1; 62 62 } 63 int *(*__f10__FPFPi_ii__iPiPid__1(int __a__i_1, int *__b__Pi_1, int *__c__Pi_1, double __y__d_1))(int __x__i_1,int __y__i_1){64 __attribute__ ((unused)) int *(*___retval_f10__PFPi_ii__1)(int __x__i_1,int __y__i_1);65 int *__x__FPi_ii__2(int __anonymous_object2,int __anonymous_object3);63 signed int *(*__f10__FPFPi_ii__iPiPid__1(signed int __a__i_1, signed int *__b__Pi_1, signed int *__c__Pi_1, double __y__d_1))(signed int __x__i_1, signed int __y__i_1){ 64 __attribute__ ((unused)) signed int *(*___retval_f10__PFPi_ii__1)(signed int __x__i_1, signed int __y__i_1); 65 signed int *__x__FPi_ii__2(signed int __anonymous_object2, signed int __anonymous_object3); 66 66 ((void)(___retval_f10__PFPi_ii__1=__x__FPi_ii__2) /* ?{} */); 67 return (( int *(*)(int __x__i_1,int __y__i_1))___retval_f10__PFPi_ii__1);67 return ((signed int *(*)(signed int __x__i_1, signed int __y__i_1))___retval_f10__PFPi_ii__1); 68 68 } 69 int (*__f11__FPA0i_iPiPi__1(int __a__i_1, int *__b__Pi_1,int *__c__Pi_1))[]{70 __attribute__ ((unused)) int (*___retval_f11__PA0i_1)[];69 signed int (*__f11__FPA0i_iPiPi__1(signed int __a__i_1, signed int *__b__Pi_1, signed int *__c__Pi_1))[]{ 70 __attribute__ ((unused)) signed int (*___retval_f11__PA0i_1)[]; 71 71 } 72 int (*__f12__FPA0A0i_iPiPi__1(int __a__i_1, int *__b__Pi_1, int *__c__Pi_1))[][((long unsignedint )10)]{73 __attribute__ ((unused)) int (*___retval_f12__PA0A0i_1)[][((long unsignedint )10)];72 signed int (*__f12__FPA0A0i_iPiPi__1(signed int __a__i_1, signed int *__b__Pi_1, signed int *__c__Pi_1))[][((unsigned long int )10)]{ 73 __attribute__ ((unused)) signed int (*___retval_f12__PA0A0i_1)[][((unsigned long int )10)]; 74 74 } 75 int (*__f13__FPA0A0i_iPiPi__1(int __a__i_1, int *__b__Pi_1, int *__c__Pi_1))[][((long unsignedint )10)]{76 __attribute__ ((unused)) int (*___retval_f13__PA0A0i_1)[][((long unsignedint )10)];75 signed int (*__f13__FPA0A0i_iPiPi__1(signed int __a__i_1, signed int *__b__Pi_1, signed int *__c__Pi_1))[][((unsigned long int )10)]{ 76 __attribute__ ((unused)) signed int (*___retval_f13__PA0A0i_1)[][((unsigned long int )10)]; 77 77 } 78 int (*__f14__FPA0A0i_iPiPi__1(int __a__i_1, int *__b__Pi_1, int *__c__Pi_1))[][((long unsignedint )10)]{79 __attribute__ ((unused)) int (*___retval_f14__PA0A0i_1)[][((long unsignedint )10)];78 signed int (*__f14__FPA0A0i_iPiPi__1(signed int __a__i_1, signed int *__b__Pi_1, signed int *__c__Pi_1))[][((unsigned long int )10)]{ 79 __attribute__ ((unused)) signed int (*___retval_f14__PA0A0i_1)[][((unsigned long int )10)]; 80 80 } 81 int __f15__Fi_iii__1(int __a__i_1, int __b__i_1,int __c__i_1){82 __attribute__ ((unused)) int ___retval_f15__i_1;81 signed int __f15__Fi_iii__1(signed int __a__i_1, signed int __b__i_1, signed int __c__i_1){ 82 __attribute__ ((unused)) signed int ___retval_f15__i_1; 83 83 } 84 const int __fred__FCi___1(){85 __attribute__ ((unused)) const int ___retval_fred__Ci_1;86 int *(*__x__PFPi_ii__2)(int __anonymous_object4,int __anonymous_object5);87 int __a__i_2;88 int __b__i_2;89 int *(*_tmp_cp_ret0)(int __x__i_1,int __y__i_1);84 const signed int __fred__FCi___1(){ 85 __attribute__ ((unused)) const signed int ___retval_fred__Ci_1; 86 signed int *(*__x__PFPi_ii__2)(signed int __anonymous_object4, signed int __anonymous_object5); 87 signed int __a__i_2; 88 signed int __b__i_2; 89 signed int *(*_tmp_cp_ret0)(signed int __x__i_1, signed int __y__i_1); 90 90 ((void)(__x__PFPi_ii__2=(((void)(_tmp_cp_ret0=__f10__FPFPi_ii__iPiPid__1(3, (&__a__i_2), (&__b__i_2), 3.5))) , _tmp_cp_ret0))); 91 91 ((void)(_tmp_cp_ret0) /* ^?{} */); 92 const int __f1__FCi_iPiPi__2(int __a__i_2, int *__b__Pi_2,int *__c__Pi_2){93 __attribute__ ((unused)) const int ___retval_f1__Ci_2;92 const signed int __f1__FCi_iPiPi__2(signed int __a__i_2, signed int *__b__Pi_2, signed int *__c__Pi_2){ 93 __attribute__ ((unused)) const signed int ___retval_f1__Ci_2; 94 94 } 95 const int __f2__FCi_iii__2(int __a__i_2, int __b__i_2,int __c__i_2){96 __attribute__ ((unused)) const int ___retval_f2__Ci_2;95 const signed int __f2__FCi_iii__2(signed int __a__i_2, signed int __b__i_2, signed int __c__i_2){ 96 __attribute__ ((unused)) const signed int ___retval_f2__Ci_2; 97 97 } 98 98 } -
src/tests/.expect/64/attributes.txt
ra506df4 rb3c7963 1 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc( long unsignedint __size);1 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size); 2 2 __attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr); 3 3 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void); 4 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern int atexit(void (*__func)(void));5 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit( int __status);6 extern int printf(const char *__restrict __format, ...);7 int __la__Fi___1(){8 __attribute__ ((unused)) int ___retval_la__i_1;4 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void)); 5 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status); 6 extern signed int printf(const char *__restrict __format, ...); 7 signed int __la__Fi___1(){ 8 __attribute__ ((unused)) signed int ___retval_la__i_1; 9 9 L: __attribute__ ((unused)) ((void)1); 10 10 } … … 54 54 __attribute__ ((unused)) struct __anonymous3; 55 55 struct Fdl { 56 __attribute__ ((unused)) int __f1__i_1;57 __attribute__ ((unused)) int __f2__i_1;58 __attribute__ ((unused,unused)) int __f3__i_1;59 __attribute__ ((unused)) int __f4__i_1;60 __attribute__ ((unused,unused)) int __f5__i_1;61 __attribute__ ((used,packed)) int __f6__i_1;62 __attribute__ ((used,unused,unused)) int __f7__i_1;63 __attribute__ ((used,used,unused)) int __f8__i_1;64 __attribute__ ((unused)) int __anonymous_object0;65 __attribute__ ((unused,unused)) int *__f9__Pi_1;56 __attribute__ ((unused)) signed int __f1__i_1; 57 __attribute__ ((unused)) signed int __f2__i_1; 58 __attribute__ ((unused,unused)) signed int __f3__i_1; 59 __attribute__ ((unused)) signed int __f4__i_1; 60 __attribute__ ((unused,unused)) signed int __f5__i_1; 61 __attribute__ ((used,packed)) signed int __f6__i_1; 62 __attribute__ ((used,unused,unused)) signed int __f7__i_1; 63 __attribute__ ((used,used,unused)) signed int __f8__i_1; 64 __attribute__ ((unused)) signed int __anonymous_object0; 65 __attribute__ ((unused,unused)) signed int *__f9__Pi_1; 66 66 }; 67 67 static inline void ___constructor__F_R4sFdl_autogen___1(struct Fdl *___dst__R4sFdl_1); … … 116 116 return ((struct Fdl )___ret__4sFdl_1); 117 117 } 118 static inline void ___constructor__F_R4sFdli_autogen___1(struct Fdl *___dst__R4sFdl_1, int __f1__i_1){118 static inline void ___constructor__F_R4sFdli_autogen___1(struct Fdl *___dst__R4sFdl_1, signed int __f1__i_1){ 119 119 ((void)((*___dst__R4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 120 120 ((void)((*___dst__R4sFdl_1).__f2__i_1) /* ?{} */); … … 127 127 ((void)((*___dst__R4sFdl_1).__f9__Pi_1) /* ?{} */); 128 128 } 129 static inline void ___constructor__F_R4sFdlii_autogen___1(struct Fdl *___dst__R4sFdl_1, int __f1__i_1,int __f2__i_1){129 static inline void ___constructor__F_R4sFdlii_autogen___1(struct Fdl *___dst__R4sFdl_1, signed int __f1__i_1, signed int __f2__i_1){ 130 130 ((void)((*___dst__R4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 131 131 ((void)((*___dst__R4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); … … 138 138 ((void)((*___dst__R4sFdl_1).__f9__Pi_1) /* ?{} */); 139 139 } 140 static inline void ___constructor__F_R4sFdliii_autogen___1(struct Fdl *___dst__R4sFdl_1, int __f1__i_1, int __f2__i_1,int __f3__i_1){140 static inline void ___constructor__F_R4sFdliii_autogen___1(struct Fdl *___dst__R4sFdl_1, signed int __f1__i_1, signed int __f2__i_1, signed int __f3__i_1){ 141 141 ((void)((*___dst__R4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 142 142 ((void)((*___dst__R4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); … … 149 149 ((void)((*___dst__R4sFdl_1).__f9__Pi_1) /* ?{} */); 150 150 } 151 static inline void ___constructor__F_R4sFdliiii_autogen___1(struct Fdl *___dst__R4sFdl_1, int __f1__i_1, int __f2__i_1, int __f3__i_1,int __f4__i_1){152 ((void)((*___dst__R4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 153 ((void)((*___dst__R4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); 154 ((void)((*___dst__R4sFdl_1).__f3__i_1=__f3__i_1) /* ?{} */); 155 ((void)((*___dst__R4sFdl_1).__f4__i_1=__f4__i_1) /* ?{} */); 156 ((void)((*___dst__R4sFdl_1).__f5__i_1) /* ?{} */); 157 ((void)((*___dst__R4sFdl_1).__f6__i_1) /* ?{} */); 158 ((void)((*___dst__R4sFdl_1).__f7__i_1) /* ?{} */); 159 ((void)((*___dst__R4sFdl_1).__f8__i_1) /* ?{} */); 160 ((void)((*___dst__R4sFdl_1).__f9__Pi_1) /* ?{} */); 161 } 162 static inline void ___constructor__F_R4sFdliiiii_autogen___1(struct Fdl *___dst__R4sFdl_1, int __f1__i_1, int __f2__i_1, int __f3__i_1, int __f4__i_1,int __f5__i_1){163 ((void)((*___dst__R4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 164 ((void)((*___dst__R4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); 165 ((void)((*___dst__R4sFdl_1).__f3__i_1=__f3__i_1) /* ?{} */); 166 ((void)((*___dst__R4sFdl_1).__f4__i_1=__f4__i_1) /* ?{} */); 167 ((void)((*___dst__R4sFdl_1).__f5__i_1=__f5__i_1) /* ?{} */); 168 ((void)((*___dst__R4sFdl_1).__f6__i_1) /* ?{} */); 169 ((void)((*___dst__R4sFdl_1).__f7__i_1) /* ?{} */); 170 ((void)((*___dst__R4sFdl_1).__f8__i_1) /* ?{} */); 171 ((void)((*___dst__R4sFdl_1).__f9__Pi_1) /* ?{} */); 172 } 173 static inline void ___constructor__F_R4sFdliiiiii_autogen___1(struct Fdl *___dst__R4sFdl_1, int __f1__i_1, int __f2__i_1, int __f3__i_1, int __f4__i_1, int __f5__i_1,int __f6__i_1){151 static inline void ___constructor__F_R4sFdliiii_autogen___1(struct Fdl *___dst__R4sFdl_1, signed int __f1__i_1, signed int __f2__i_1, signed int __f3__i_1, signed int __f4__i_1){ 152 ((void)((*___dst__R4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 153 ((void)((*___dst__R4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); 154 ((void)((*___dst__R4sFdl_1).__f3__i_1=__f3__i_1) /* ?{} */); 155 ((void)((*___dst__R4sFdl_1).__f4__i_1=__f4__i_1) /* ?{} */); 156 ((void)((*___dst__R4sFdl_1).__f5__i_1) /* ?{} */); 157 ((void)((*___dst__R4sFdl_1).__f6__i_1) /* ?{} */); 158 ((void)((*___dst__R4sFdl_1).__f7__i_1) /* ?{} */); 159 ((void)((*___dst__R4sFdl_1).__f8__i_1) /* ?{} */); 160 ((void)((*___dst__R4sFdl_1).__f9__Pi_1) /* ?{} */); 161 } 162 static inline void ___constructor__F_R4sFdliiiii_autogen___1(struct Fdl *___dst__R4sFdl_1, signed int __f1__i_1, signed int __f2__i_1, signed int __f3__i_1, signed int __f4__i_1, signed int __f5__i_1){ 163 ((void)((*___dst__R4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 164 ((void)((*___dst__R4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); 165 ((void)((*___dst__R4sFdl_1).__f3__i_1=__f3__i_1) /* ?{} */); 166 ((void)((*___dst__R4sFdl_1).__f4__i_1=__f4__i_1) /* ?{} */); 167 ((void)((*___dst__R4sFdl_1).__f5__i_1=__f5__i_1) /* ?{} */); 168 ((void)((*___dst__R4sFdl_1).__f6__i_1) /* ?{} */); 169 ((void)((*___dst__R4sFdl_1).__f7__i_1) /* ?{} */); 170 ((void)((*___dst__R4sFdl_1).__f8__i_1) /* ?{} */); 171 ((void)((*___dst__R4sFdl_1).__f9__Pi_1) /* ?{} */); 172 } 173 static inline void ___constructor__F_R4sFdliiiiii_autogen___1(struct Fdl *___dst__R4sFdl_1, signed int __f1__i_1, signed int __f2__i_1, signed int __f3__i_1, signed int __f4__i_1, signed int __f5__i_1, signed int __f6__i_1){ 174 174 ((void)((*___dst__R4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 175 175 ((void)((*___dst__R4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); … … 182 182 ((void)((*___dst__R4sFdl_1).__f9__Pi_1) /* ?{} */); 183 183 } 184 static inline void ___constructor__F_R4sFdliiiiiii_autogen___1(struct Fdl *___dst__R4sFdl_1, int __f1__i_1, int __f2__i_1, int __f3__i_1, int __f4__i_1, int __f5__i_1, int __f6__i_1,int __f7__i_1){184 static inline void ___constructor__F_R4sFdliiiiiii_autogen___1(struct Fdl *___dst__R4sFdl_1, signed int __f1__i_1, signed int __f2__i_1, signed int __f3__i_1, signed int __f4__i_1, signed int __f5__i_1, signed int __f6__i_1, signed int __f7__i_1){ 185 185 ((void)((*___dst__R4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 186 186 ((void)((*___dst__R4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); … … 193 193 ((void)((*___dst__R4sFdl_1).__f9__Pi_1) /* ?{} */); 194 194 } 195 static inline void ___constructor__F_R4sFdliiiiiiii_autogen___1(struct Fdl *___dst__R4sFdl_1, int __f1__i_1, int __f2__i_1, int __f3__i_1, int __f4__i_1, int __f5__i_1, int __f6__i_1, int __f7__i_1,int __f8__i_1){195 static inline void ___constructor__F_R4sFdliiiiiiii_autogen___1(struct Fdl *___dst__R4sFdl_1, signed int __f1__i_1, signed int __f2__i_1, signed int __f3__i_1, signed int __f4__i_1, signed int __f5__i_1, signed int __f6__i_1, signed int __f7__i_1, signed int __f8__i_1){ 196 196 ((void)((*___dst__R4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 197 197 ((void)((*___dst__R4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); … … 204 204 ((void)((*___dst__R4sFdl_1).__f9__Pi_1) /* ?{} */); 205 205 } 206 static inline void ___constructor__F_R4sFdliiiiiiiiPi_autogen___1(struct Fdl *___dst__R4sFdl_1, int __f1__i_1, int __f2__i_1, int __f3__i_1, int __f4__i_1, int __f5__i_1, int __f6__i_1, int __f7__i_1, int __f8__i_1,int *__f9__Pi_1){206 static inline void ___constructor__F_R4sFdliiiiiiiiPi_autogen___1(struct Fdl *___dst__R4sFdl_1, signed int __f1__i_1, signed int __f2__i_1, signed int __f3__i_1, signed int __f4__i_1, signed int __f5__i_1, signed int __f6__i_1, signed int __f7__i_1, signed int __f8__i_1, signed int *__f9__Pi_1){ 207 207 ((void)((*___dst__R4sFdl_1).__f1__i_1=__f1__i_1) /* ?{} */); 208 208 ((void)((*___dst__R4sFdl_1).__f2__i_1=__f2__i_1) /* ?{} */); … … 215 215 ((void)((*___dst__R4sFdl_1).__f9__Pi_1=__f9__Pi_1) /* ?{} */); 216 216 } 217 __attribute__ ((unused)) int __f__Fi___1() asm ( "xyz" );218 __attribute__ ((used,used)) const int __vd1__Ci_1;219 __attribute__ ((used,unused)) const int __vd2__Ci_1;220 __attribute__ ((used,used,used,used)) const int *__vd3__PCi_1;221 __attribute__ ((used,used,unused,used,unused)) const int *__vd4__PCi_1;222 __attribute__ ((used,used,used)) const int __vd5__A0Ci_1[((long unsignedint )5)];223 __attribute__ ((used,used,unused,used)) const int __vd6__A0Ci_1[((long unsignedint )5)];224 __attribute__ ((used,used,used,used)) const int (*__vd7__PFCi___1)();225 __attribute__ ((used,used,unused,used,used)) const int (*__vd8__PFCi___1)();226 __attribute__ ((unused,used)) int __f1__Fi___1();227 __attribute__ ((unused)) int __f1__Fi___1(){228 __attribute__ ((unused)) int ___retval_f1__i_1;229 } 230 __attribute__ ((unused,unused,unused,used)) int **const __f2__FCPPi___1();231 __attribute__ ((unused,unused,unused)) int **const __f2__FCPPi___1(){232 __attribute__ ((unused)) int **const ___retval_f2__CPPi_1;233 } 234 __attribute__ ((unused,used,unused)) int (*__f3__FPA0i_i__1(int __anonymous_object1))[];235 __attribute__ ((unused,unused)) int (*__f3__FPA0i_i__1(int __p__i_1))[]{236 __attribute__ ((unused)) int (*___retval_f3__PA0i_1)[];237 } 238 __attribute__ ((unused,used,unused)) int (*__f4__FPFi_i____1())(int __anonymous_object2);239 __attribute__ ((unused,unused)) int (*__f4__FPFi_i____1())(int __anonymous_object3){240 __attribute__ ((unused)) int (*___retval_f4__PFi_i__1)(int __anonymous_object4);241 } 242 int __vtr__Fi___1(){243 __attribute__ ((unused)) int ___retval_vtr__i_1;244 __attribute__ ((unused,unused,used)) int __t1__i_2;245 __attribute__ ((unused,unused,unused,unused,unused)) int **__t2__PPi_2;246 __attribute__ ((unused,unused,unused)) int __t3__A0i_2[((long unsignedint )5)];247 __attribute__ ((unused,unused,unused,unused,unused)) int **__t4__A0PPi_2[((long unsignedint )5)];248 __attribute__ ((unused,unused,unused)) int __t5__Fi___2();249 __attribute__ ((unused,unused,unused,unused)) int *__t6__FPi___2();250 } 251 int __ipd1__Fi_ii__1(__attribute__ ((unused,unused,unused)) int __p__i_1, __attribute__ ((unused,unused,unused))int __q__i_1);252 int __ipd1__Fi_ii__1(__attribute__ ((unused,unused,unused)) int __p__i_1, __attribute__ ((unused,unused,unused))int __q__i_1){253 __attribute__ ((unused)) int ___retval_ipd1__i_1;254 } 255 int __ipd2__Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) int *__p__Pi_1, __attribute__ ((unused,unused,unused))int *__q__Pi_1);256 int __ipd2__Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) int *__p__Pi_1, __attribute__ ((unused,unused,unused))int *__q__Pi_1){257 __attribute__ ((unused)) int ___retval_ipd2__i_1;258 } 259 int __ipd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) int *__p__Pi_1, __attribute__ ((unused,unused,unused))int *__q__Pi_1);260 int __ipd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) int *__p__Pi_1, __attribute__ ((unused,unused,unused))int *__q__Pi_1){261 __attribute__ ((unused)) int ___retval_ipd3__i_1;262 } 263 int __ipd4__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) int (*__p__PFi___1)(), __attribute__ ((unused,unused,unused))int (*__q__PFi___1)());264 int __ipd4__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) int (*__p__PFi___1)(), __attribute__ ((unused,unused,unused))int (*__q__PFi___1)()){265 __attribute__ ((unused)) int ___retval_ipd4__i_1;266 } 267 int __tpr1__Fi_i__1(__attribute__ ((unused,unused,unused))int __Foo__i_1);268 int __tpr2__Fi_PPi__1(__attribute__ ((unused,unused,unused,unused,unused,unused))int **__Foo__PPi_1);269 int __tpr3__Fi_Pi__1(__attribute__ ((unused,unused,unused))int *__Foo__Pi_1);270 int __tpr4__Fi_PFi_Pi___1(__attribute__ ((unused,unused)) int (*__anonymous_object5)(__attribute__ ((unused,unused)) int __anonymous_object6[((long unsignedint )5)]));271 int __tpr5__Fi_PFi____1(__attribute__ ((unused,unused,unused))int (*__Foo__PFi___1)());272 int __tpr6__Fi_PFi____1(__attribute__ ((unused,unused,unused))int (*__Foo__PFi___1)());273 int __tpr7__Fi_PFi_PFi_i____1(__attribute__ ((unused,unused)) int (*__anonymous_object7)(__attribute__ ((unused)) int (*__anonymous_object8)(__attribute__ ((unused,unused))int __anonymous_object9)));274 int __ad__Fi___1(){275 __attribute__ ((unused)) int ___retval_ad__i_1;276 __attribute__ ((used,unused)) int __ad1__i_2;277 __attribute__ ((unused,unused,unused)) int *__ad2__Pi_2;278 __attribute__ ((unused,unused,unused)) int __ad3__A0i_2[((long unsignedint )5)];279 __attribute__ ((unused,unused,unused,unused,unused)) int (*__ad4__PA0i_2)[((long unsignedint )10)];280 __attribute__ ((unused,unused,unused,unused,used)) int __ad5__i_2;281 __attribute__ ((unused,unused,unused,unused,unused)) int __ad6__Fi___2();282 ((void)sizeof(__attribute__ ((unused,unused)) int ));283 ((void)sizeof(__attribute__ ((unused,unused,unused,unused)) int **));284 ((void)sizeof(__attribute__ ((unused,unused,unused)) int [5]));285 ((void)sizeof(__attribute__ ((unused,unused,unused)) int (*)[10]));286 ((void)sizeof(__attribute__ ((unused,unused,unused)) int ()));217 __attribute__ ((unused)) signed int __f__Fi___1() asm ( "xyz" ); 218 __attribute__ ((used,used)) const signed int __vd1__Ci_1; 219 __attribute__ ((used,unused)) const signed int __vd2__Ci_1; 220 __attribute__ ((used,used,used,used)) const signed int *__vd3__PCi_1; 221 __attribute__ ((used,used,unused,used,unused)) const signed int *__vd4__PCi_1; 222 __attribute__ ((used,used,used)) const signed int __vd5__A0Ci_1[((unsigned long int )5)]; 223 __attribute__ ((used,used,unused,used)) const signed int __vd6__A0Ci_1[((unsigned long int )5)]; 224 __attribute__ ((used,used,used,used)) const signed int (*__vd7__PFCi___1)(); 225 __attribute__ ((used,used,unused,used,used)) const signed int (*__vd8__PFCi___1)(); 226 __attribute__ ((unused,used)) signed int __f1__Fi___1(); 227 __attribute__ ((unused)) signed int __f1__Fi___1(){ 228 __attribute__ ((unused)) signed int ___retval_f1__i_1; 229 } 230 __attribute__ ((unused,unused,unused,used)) signed int **const __f2__FCPPi___1(); 231 __attribute__ ((unused,unused,unused)) signed int **const __f2__FCPPi___1(){ 232 __attribute__ ((unused)) signed int **const ___retval_f2__CPPi_1; 233 } 234 __attribute__ ((unused,used,unused)) signed int (*__f3__FPA0i_i__1(signed int __anonymous_object1))[]; 235 __attribute__ ((unused,unused)) signed int (*__f3__FPA0i_i__1(signed int __p__i_1))[]{ 236 __attribute__ ((unused)) signed int (*___retval_f3__PA0i_1)[]; 237 } 238 __attribute__ ((unused,used,unused)) signed int (*__f4__FPFi_i____1())(signed int __anonymous_object2); 239 __attribute__ ((unused,unused)) signed int (*__f4__FPFi_i____1())(signed int __anonymous_object3){ 240 __attribute__ ((unused)) signed int (*___retval_f4__PFi_i__1)(signed int __anonymous_object4); 241 } 242 signed int __vtr__Fi___1(){ 243 __attribute__ ((unused)) signed int ___retval_vtr__i_1; 244 __attribute__ ((unused,unused,used)) signed int __t1__i_2; 245 __attribute__ ((unused,unused,unused,unused,unused)) signed int **__t2__PPi_2; 246 __attribute__ ((unused,unused,unused)) signed int __t3__A0i_2[((unsigned long int )5)]; 247 __attribute__ ((unused,unused,unused,unused,unused)) signed int **__t4__A0PPi_2[((unsigned long int )5)]; 248 __attribute__ ((unused,unused,unused)) signed int __t5__Fi___2(); 249 __attribute__ ((unused,unused,unused,unused)) signed int *__t6__FPi___2(); 250 } 251 signed int __ipd1__Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int __p__i_1, __attribute__ ((unused,unused,unused)) signed int __q__i_1); 252 signed int __ipd1__Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int __p__i_1, __attribute__ ((unused,unused,unused)) signed int __q__i_1){ 253 __attribute__ ((unused)) signed int ___retval_ipd1__i_1; 254 } 255 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); 256 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){ 257 __attribute__ ((unused)) signed int ___retval_ipd2__i_1; 258 } 259 signed int __ipd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__p__Pi_1, __attribute__ ((unused,unused,unused)) signed int *__q__Pi_1); 260 signed int __ipd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__p__Pi_1, __attribute__ ((unused,unused,unused)) signed int *__q__Pi_1){ 261 __attribute__ ((unused)) signed int ___retval_ipd3__i_1; 262 } 263 signed int __ipd4__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) signed int (*__p__PFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*__q__PFi___1)()); 264 signed int __ipd4__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) signed int (*__p__PFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*__q__PFi___1)()){ 265 __attribute__ ((unused)) signed int ___retval_ipd4__i_1; 266 } 267 signed int __tpr1__Fi_i__1(__attribute__ ((unused,unused,unused)) signed int __Foo__i_1); 268 signed int __tpr2__Fi_PPi__1(__attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **__Foo__PPi_1); 269 signed int __tpr3__Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *__Foo__Pi_1); 270 signed int __tpr4__Fi_PFi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object5)(__attribute__ ((unused,unused)) signed int __anonymous_object6[((unsigned long int )5)])); 271 signed int __tpr5__Fi_PFi____1(__attribute__ ((unused,unused,unused)) signed int (*__Foo__PFi___1)()); 272 signed int __tpr6__Fi_PFi____1(__attribute__ ((unused,unused,unused)) signed int (*__Foo__PFi___1)()); 273 signed int __tpr7__Fi_PFi_PFi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object7)(__attribute__ ((unused)) signed int (*__anonymous_object8)(__attribute__ ((unused,unused)) signed int __anonymous_object9))); 274 signed int __ad__Fi___1(){ 275 __attribute__ ((unused)) signed int ___retval_ad__i_1; 276 __attribute__ ((used,unused)) signed int __ad1__i_2; 277 __attribute__ ((unused,unused,unused)) signed int *__ad2__Pi_2; 278 __attribute__ ((unused,unused,unused)) signed int __ad3__A0i_2[((unsigned long int )5)]; 279 __attribute__ ((unused,unused,unused,unused,unused)) signed int (*__ad4__PA0i_2)[((unsigned long int )10)]; 280 __attribute__ ((unused,unused,unused,unused,used)) signed int __ad5__i_2; 281 __attribute__ ((unused,unused,unused,unused,unused)) signed int __ad6__Fi___2(); 282 ((void)sizeof(__attribute__ ((unused,unused)) signed int )); 283 ((void)sizeof(__attribute__ ((unused,unused,unused,unused)) signed int **)); 284 ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int [5])); 285 ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (*)[10])); 286 ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ())); 287 287 __attribute__ ((unused)) struct __anonymous4 { 288 int __i__i_2;288 signed int __i__i_2; 289 289 }; 290 290 inline void ___constructor__F_R13s__anonymous4_autogen___2(struct __anonymous4 *___dst__R13s__anonymous4_2){ … … 303 303 return ((struct __anonymous4 )___ret__13s__anonymous4_2); 304 304 } 305 inline void ___constructor__F_R13s__anonymous4i_autogen___2(struct __anonymous4 *___dst__R13s__anonymous4_2, int __i__i_2){305 inline void ___constructor__F_R13s__anonymous4i_autogen___2(struct __anonymous4 *___dst__R13s__anonymous4_2, signed int __i__i_2){ 306 306 ((void)((*___dst__R13s__anonymous4_2).__i__i_2=__i__i_2) /* ?{} */); 307 307 } … … 324 324 ((void)sizeof(enum __anonymous5 )); 325 325 } 326 int __apd1__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) int *__anonymous_object10, __attribute__ ((unused,unused,unused))int *__anonymous_object11);327 int __apd2__Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) int **__anonymous_object12, __attribute__ ((unused,unused,unused,unused))int **__anonymous_object13);328 int __apd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) int *__anonymous_object14, __attribute__ ((unused,unused,unused))int *__anonymous_object15);329 int __apd4__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object16)(), __attribute__ ((unused,unused,unused))int (*__anonymous_object17)());330 int __apd5__Fi_PFi_i_PFi_i___1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object18)(__attribute__ ((unused)) int __anonymous_object19), __attribute__ ((unused,unused,unused)) int (*__anonymous_object20)(__attribute__ ((unused))int __anonymous_object21));331 int __apd6__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object22)(), __attribute__ ((unused,unused,unused))int (*__anonymous_object23)());332 int __apd7__Fi_PFi_i_PFi_i___1(__attribute__ ((unused,unused,unused)) int (*__anonymous_object24)(__attribute__ ((unused)) int __anonymous_object25), __attribute__ ((unused,unused,unused)) int (*__anonymous_object26)(__attribute__ ((unused))int __anonymous_object27));326 signed int __apd1__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object10, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object11); 327 signed int __apd2__Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object12, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object13); 328 signed int __apd3__Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object14, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object15); 329 signed int __apd4__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)()); 330 signed int __apd5__Fi_PFi_i_PFi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object18)(__attribute__ ((unused)) signed int __anonymous_object19), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object20)(__attribute__ ((unused)) signed int __anonymous_object21)); 331 signed int __apd6__Fi_PFi__PFi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object22)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object23)()); 332 signed int __apd7__Fi_PFi_i_PFi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object24)(__attribute__ ((unused)) signed int __anonymous_object25), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object26)(__attribute__ ((unused)) signed int __anonymous_object27)); 333 333 struct Vad { 334 __attribute__ ((unused)) int __anonymous_object28;335 __attribute__ ((unused,unused)) int *__anonymous_object29;336 __attribute__ ((unused,unused)) int __anonymous_object30[((long unsignedint )10)];337 __attribute__ ((unused,unused)) int (*__anonymous_object31)();334 __attribute__ ((unused)) signed int __anonymous_object28; 335 __attribute__ ((unused,unused)) signed int *__anonymous_object29; 336 __attribute__ ((unused,unused)) signed int __anonymous_object30[((unsigned long int )10)]; 337 __attribute__ ((unused,unused)) signed int (*__anonymous_object31)(); 338 338 }; 339 339 static inline void ___constructor__F_R4sVad_autogen___1(struct Vad *___dst__R4sVad_1); -
src/tests/.expect/64/declarationSpecifier.txt
ra506df4 rb3c7963 1 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc( long unsignedint __size);1 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size); 2 2 __attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr); 3 3 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void); 4 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern int atexit(void (*__func)(void));5 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit( int __status);6 extern int printf(const char *__restrict __format, ...);7 volatile const s hort __x1__CVs_1;8 static volatile const s hort __x2__CVs_1;9 static volatile const s hort __x3__CVs_1;10 static volatile const s hort __x4__CVs_1;11 static volatile const s hort __x5__CVs_1;12 static volatile const s hort __x6__CVs_1;13 static volatile const s hort __x7__CVs_1;14 static volatile const s hort __x8__CVs_1;4 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void)); 5 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status); 6 extern signed int printf(const char *__restrict __format, ...); 7 volatile const signed short int __x1__CVs_1; 8 static volatile const signed short int __x2__CVs_1; 9 static volatile const signed short int __x3__CVs_1; 10 static volatile const signed short int __x4__CVs_1; 11 static volatile const signed short int __x5__CVs_1; 12 static volatile const signed short int __x6__CVs_1; 13 static volatile const signed short int __x7__CVs_1; 14 static volatile const signed short int __x8__CVs_1; 15 15 struct __anonymous0 { 16 int __i__i_1;16 signed int __i__i_1; 17 17 }; 18 18 static inline void ___constructor__F_R13s__anonymous0_autogen___1(struct __anonymous0 *___dst__R13s__anonymous0_1); … … 35 35 return ((struct __anonymous0 )___ret__13s__anonymous0_1); 36 36 } 37 static inline void ___constructor__F_R13s__anonymous0i_autogen___1(struct __anonymous0 *___dst__R13s__anonymous0_1, int __i__i_1){37 static inline void ___constructor__F_R13s__anonymous0i_autogen___1(struct __anonymous0 *___dst__R13s__anonymous0_1, signed int __i__i_1){ 38 38 ((void)((*___dst__R13s__anonymous0_1).__i__i_1=__i__i_1) /* ?{} */); 39 39 } 40 40 volatile const struct __anonymous0 __x10__CV13s__anonymous0_1; 41 41 struct __anonymous1 { 42 int __i__i_1;42 signed int __i__i_1; 43 43 }; 44 44 static inline void ___constructor__F_R13s__anonymous1_autogen___1(struct __anonymous1 *___dst__R13s__anonymous1_1); … … 61 61 return ((struct __anonymous1 )___ret__13s__anonymous1_1); 62 62 } 63 static inline void ___constructor__F_R13s__anonymous1i_autogen___1(struct __anonymous1 *___dst__R13s__anonymous1_1, int __i__i_1){63 static inline void ___constructor__F_R13s__anonymous1i_autogen___1(struct __anonymous1 *___dst__R13s__anonymous1_1, signed int __i__i_1){ 64 64 ((void)((*___dst__R13s__anonymous1_1).__i__i_1=__i__i_1) /* ?{} */); 65 65 } 66 66 volatile const struct __anonymous1 __x11__CV13s__anonymous1_1; 67 67 struct __anonymous2 { 68 int __i__i_1;68 signed int __i__i_1; 69 69 }; 70 70 static inline void ___constructor__F_R13s__anonymous2_autogen___1(struct __anonymous2 *___dst__R13s__anonymous2_1); … … 87 87 return ((struct __anonymous2 )___ret__13s__anonymous2_1); 88 88 } 89 static inline void ___constructor__F_R13s__anonymous2i_autogen___1(struct __anonymous2 *___dst__R13s__anonymous2_1, int __i__i_1){89 static inline void ___constructor__F_R13s__anonymous2i_autogen___1(struct __anonymous2 *___dst__R13s__anonymous2_1, signed int __i__i_1){ 90 90 ((void)((*___dst__R13s__anonymous2_1).__i__i_1=__i__i_1) /* ?{} */); 91 91 } 92 92 volatile const struct __anonymous2 __x12__CV13s__anonymous2_1; 93 93 struct __anonymous3 { 94 int __i__i_1;94 signed int __i__i_1; 95 95 }; 96 96 static inline void ___constructor__F_R13s__anonymous3_autogen___1(struct __anonymous3 *___dst__R13s__anonymous3_1); … … 113 113 return ((struct __anonymous3 )___ret__13s__anonymous3_1); 114 114 } 115 static inline void ___constructor__F_R13s__anonymous3i_autogen___1(struct __anonymous3 *___dst__R13s__anonymous3_1, int __i__i_1){115 static inline void ___constructor__F_R13s__anonymous3i_autogen___1(struct __anonymous3 *___dst__R13s__anonymous3_1, signed int __i__i_1){ 116 116 ((void)((*___dst__R13s__anonymous3_1).__i__i_1=__i__i_1) /* ?{} */); 117 117 } 118 118 static volatile const struct __anonymous3 __x13__CV13s__anonymous3_1; 119 119 struct __anonymous4 { 120 int __i__i_1;120 signed int __i__i_1; 121 121 }; 122 122 static inline void ___constructor__F_R13s__anonymous4_autogen___1(struct __anonymous4 *___dst__R13s__anonymous4_1); … … 139 139 return ((struct __anonymous4 )___ret__13s__anonymous4_1); 140 140 } 141 static inline void ___constructor__F_R13s__anonymous4i_autogen___1(struct __anonymous4 *___dst__R13s__anonymous4_1, int __i__i_1){141 static inline void ___constructor__F_R13s__anonymous4i_autogen___1(struct __anonymous4 *___dst__R13s__anonymous4_1, signed int __i__i_1){ 142 142 ((void)((*___dst__R13s__anonymous4_1).__i__i_1=__i__i_1) /* ?{} */); 143 143 } 144 144 static volatile const struct __anonymous4 __x14__CV13s__anonymous4_1; 145 145 struct __anonymous5 { 146 int __i__i_1;146 signed int __i__i_1; 147 147 }; 148 148 static inline void ___constructor__F_R13s__anonymous5_autogen___1(struct __anonymous5 *___dst__R13s__anonymous5_1); … … 165 165 return ((struct __anonymous5 )___ret__13s__anonymous5_1); 166 166 } 167 static inline void ___constructor__F_R13s__anonymous5i_autogen___1(struct __anonymous5 *___dst__R13s__anonymous5_1, int __i__i_1){167 static inline void ___constructor__F_R13s__anonymous5i_autogen___1(struct __anonymous5 *___dst__R13s__anonymous5_1, signed int __i__i_1){ 168 168 ((void)((*___dst__R13s__anonymous5_1).__i__i_1=__i__i_1) /* ?{} */); 169 169 } 170 170 static volatile const struct __anonymous5 __x15__CV13s__anonymous5_1; 171 171 struct __anonymous6 { 172 int __i__i_1;172 signed int __i__i_1; 173 173 }; 174 174 static inline void ___constructor__F_R13s__anonymous6_autogen___1(struct __anonymous6 *___dst__R13s__anonymous6_1); … … 191 191 return ((struct __anonymous6 )___ret__13s__anonymous6_1); 192 192 } 193 static inline void ___constructor__F_R13s__anonymous6i_autogen___1(struct __anonymous6 *___dst__R13s__anonymous6_1, int __i__i_1){193 static inline void ___constructor__F_R13s__anonymous6i_autogen___1(struct __anonymous6 *___dst__R13s__anonymous6_1, signed int __i__i_1){ 194 194 ((void)((*___dst__R13s__anonymous6_1).__i__i_1=__i__i_1) /* ?{} */); 195 195 } 196 196 static volatile const struct __anonymous6 __x16__CV13s__anonymous6_1; 197 197 struct __anonymous7 { 198 int __i__i_1;198 signed int __i__i_1; 199 199 }; 200 200 static inline void ___constructor__F_R13s__anonymous7_autogen___1(struct __anonymous7 *___dst__R13s__anonymous7_1); … … 217 217 return ((struct __anonymous7 )___ret__13s__anonymous7_1); 218 218 } 219 static inline void ___constructor__F_R13s__anonymous7i_autogen___1(struct __anonymous7 *___dst__R13s__anonymous7_1, int __i__i_1){219 static inline void ___constructor__F_R13s__anonymous7i_autogen___1(struct __anonymous7 *___dst__R13s__anonymous7_1, signed int __i__i_1){ 220 220 ((void)((*___dst__R13s__anonymous7_1).__i__i_1=__i__i_1) /* ?{} */); 221 221 } 222 222 static volatile const struct __anonymous7 __x17__CV13s__anonymous7_1; 223 volatile const s hort __x20__CVs_1;224 static volatile const s hort __x21__CVs_1;225 static volatile const s hort __x22__CVs_1;226 static volatile const s hort __x23__CVs_1;227 static volatile const s hort __x24__CVs_1;228 static volatile const s hort __x25__CVs_1;229 static volatile const s hort __x26__CVs_1;230 static volatile const s hort __x27__CVs_1;223 volatile const signed short int __x20__CVs_1; 224 static volatile const signed short int __x21__CVs_1; 225 static volatile const signed short int __x22__CVs_1; 226 static volatile const signed short int __x23__CVs_1; 227 static volatile const signed short int __x24__CVs_1; 228 static volatile const signed short int __x25__CVs_1; 229 static volatile const signed short int __x26__CVs_1; 230 static volatile const signed short int __x27__CVs_1; 231 231 struct __anonymous8 { 232 s hort __i__s_1;232 signed short int __i__s_1; 233 233 }; 234 234 static inline void ___constructor__F_R13s__anonymous8_autogen___1(struct __anonymous8 *___dst__R13s__anonymous8_1); … … 251 251 return ((struct __anonymous8 )___ret__13s__anonymous8_1); 252 252 } 253 static inline void ___constructor__F_R13s__anonymous8s_autogen___1(struct __anonymous8 *___dst__R13s__anonymous8_1, s hort __i__s_1){253 static inline void ___constructor__F_R13s__anonymous8s_autogen___1(struct __anonymous8 *___dst__R13s__anonymous8_1, signed short int __i__s_1){ 254 254 ((void)((*___dst__R13s__anonymous8_1).__i__s_1=__i__s_1) /* ?{} */); 255 255 } 256 256 volatile const struct __anonymous8 __x29__CV13s__anonymous8_1; 257 257 struct __anonymous9 { 258 s hort __i__s_1;258 signed short int __i__s_1; 259 259 }; 260 260 static inline void ___constructor__F_R13s__anonymous9_autogen___1(struct __anonymous9 *___dst__R13s__anonymous9_1); … … 277 277 return ((struct __anonymous9 )___ret__13s__anonymous9_1); 278 278 } 279 static inline void ___constructor__F_R13s__anonymous9s_autogen___1(struct __anonymous9 *___dst__R13s__anonymous9_1, s hort __i__s_1){279 static inline void ___constructor__F_R13s__anonymous9s_autogen___1(struct __anonymous9 *___dst__R13s__anonymous9_1, signed short int __i__s_1){ 280 280 ((void)((*___dst__R13s__anonymous9_1).__i__s_1=__i__s_1) /* ?{} */); 281 281 } 282 282 volatile const struct __anonymous9 __x30__CV13s__anonymous9_1; 283 283 struct __anonymous10 { 284 s hort __i__s_1;284 signed short int __i__s_1; 285 285 }; 286 286 static inline void ___constructor__F_R14s__anonymous10_autogen___1(struct __anonymous10 *___dst__R14s__anonymous10_1); … … 303 303 return ((struct __anonymous10 )___ret__14s__anonymous10_1); 304 304 } 305 static inline void ___constructor__F_R14s__anonymous10s_autogen___1(struct __anonymous10 *___dst__R14s__anonymous10_1, s hort __i__s_1){305 static inline void ___constructor__F_R14s__anonymous10s_autogen___1(struct __anonymous10 *___dst__R14s__anonymous10_1, signed short int __i__s_1){ 306 306 ((void)((*___dst__R14s__anonymous10_1).__i__s_1=__i__s_1) /* ?{} */); 307 307 } 308 308 volatile const struct __anonymous10 __x31__CV14s__anonymous10_1; 309 309 struct __anonymous11 { 310 s hort __i__s_1;310 signed short int __i__s_1; 311 311 }; 312 312 static inline void ___constructor__F_R14s__anonymous11_autogen___1(struct __anonymous11 *___dst__R14s__anonymous11_1); … … 329 329 return ((struct __anonymous11 )___ret__14s__anonymous11_1); 330 330 } 331 static inline void ___constructor__F_R14s__anonymous11s_autogen___1(struct __anonymous11 *___dst__R14s__anonymous11_1, s hort __i__s_1){331 static inline void ___constructor__F_R14s__anonymous11s_autogen___1(struct __anonymous11 *___dst__R14s__anonymous11_1, signed short int __i__s_1){ 332 332 ((void)((*___dst__R14s__anonymous11_1).__i__s_1=__i__s_1) /* ?{} */); 333 333 } 334 334 static volatile const struct __anonymous11 __x32__CV14s__anonymous11_1; 335 335 struct __anonymous12 { 336 s hort __i__s_1;336 signed short int __i__s_1; 337 337 }; 338 338 static inline void ___constructor__F_R14s__anonymous12_autogen___1(struct __anonymous12 *___dst__R14s__anonymous12_1); … … 355 355 return ((struct __anonymous12 )___ret__14s__anonymous12_1); 356 356 } 357 static inline void ___constructor__F_R14s__anonymous12s_autogen___1(struct __anonymous12 *___dst__R14s__anonymous12_1, s hort __i__s_1){357 static inline void ___constructor__F_R14s__anonymous12s_autogen___1(struct __anonymous12 *___dst__R14s__anonymous12_1, signed short int __i__s_1){ 358 358 ((void)((*___dst__R14s__anonymous12_1).__i__s_1=__i__s_1) /* ?{} */); 359 359 } 360 360 static volatile const struct __anonymous12 __x33__CV14s__anonymous12_1; 361 361 struct __anonymous13 { 362 s hort __i__s_1;362 signed short int __i__s_1; 363 363 }; 364 364 static inline void ___constructor__F_R14s__anonymous13_autogen___1(struct __anonymous13 *___dst__R14s__anonymous13_1); … … 381 381 return ((struct __anonymous13 )___ret__14s__anonymous13_1); 382 382 } 383 static inline void ___constructor__F_R14s__anonymous13s_autogen___1(struct __anonymous13 *___dst__R14s__anonymous13_1, s hort __i__s_1){383 static inline void ___constructor__F_R14s__anonymous13s_autogen___1(struct __anonymous13 *___dst__R14s__anonymous13_1, signed short int __i__s_1){ 384 384 ((void)((*___dst__R14s__anonymous13_1).__i__s_1=__i__s_1) /* ?{} */); 385 385 } 386 386 static volatile const struct __anonymous13 __x34__CV14s__anonymous13_1; 387 387 struct __anonymous14 { 388 s hort __i__s_1;388 signed short int __i__s_1; 389 389 }; 390 390 static inline void ___constructor__F_R14s__anonymous14_autogen___1(struct __anonymous14 *___dst__R14s__anonymous14_1); … … 407 407 return ((struct __anonymous14 )___ret__14s__anonymous14_1); 408 408 } 409 static inline void ___constructor__F_R14s__anonymous14s_autogen___1(struct __anonymous14 *___dst__R14s__anonymous14_1, s hort __i__s_1){409 static inline void ___constructor__F_R14s__anonymous14s_autogen___1(struct __anonymous14 *___dst__R14s__anonymous14_1, signed short int __i__s_1){ 410 410 ((void)((*___dst__R14s__anonymous14_1).__i__s_1=__i__s_1) /* ?{} */); 411 411 } 412 412 static volatile const struct __anonymous14 __x35__CV14s__anonymous14_1; 413 413 struct __anonymous15 { 414 s hort __i__s_1;414 signed short int __i__s_1; 415 415 }; 416 416 static inline void ___constructor__F_R14s__anonymous15_autogen___1(struct __anonymous15 *___dst__R14s__anonymous15_1); … … 433 433 return ((struct __anonymous15 )___ret__14s__anonymous15_1); 434 434 } 435 static inline void ___constructor__F_R14s__anonymous15s_autogen___1(struct __anonymous15 *___dst__R14s__anonymous15_1, s hort __i__s_1){435 static inline void ___constructor__F_R14s__anonymous15s_autogen___1(struct __anonymous15 *___dst__R14s__anonymous15_1, signed short int __i__s_1){ 436 436 ((void)((*___dst__R14s__anonymous15_1).__i__s_1=__i__s_1) /* ?{} */); 437 437 } 438 438 static volatile const struct __anonymous15 __x36__CV14s__anonymous15_1; 439 static inline volatile const int __f11__FCVi___1();440 static inline volatile const int __f12__FCVi___1();441 static inline volatile const int __f13__FCVi___1();442 static inline volatile const int __f14__FCVi___1();443 static inline volatile const int __f15__FCVi___1();444 static inline volatile const int __f16__FCVi___1();445 static inline volatile const int __f17__FCVi___1();446 static inline volatile const int __f18__FCVi___1();447 static inline volatile const s hort __f21__FCVs___1();448 static inline volatile const s hort __f22__FCVs___1();449 static inline volatile const s hort __f23__FCVs___1();450 static inline volatile const s hort __f24__FCVs___1();451 static inline volatile const s hort __f25__FCVs___1();452 static inline volatile const s hort __f26__FCVs___1();453 static inline volatile const s hort __f27__FCVs___1();454 static inline volatile const s hort __f28__FCVs___1();439 static inline volatile const signed int __f11__FCVi___1(); 440 static inline volatile const signed int __f12__FCVi___1(); 441 static inline volatile const signed int __f13__FCVi___1(); 442 static inline volatile const signed int __f14__FCVi___1(); 443 static inline volatile const signed int __f15__FCVi___1(); 444 static inline volatile const signed int __f16__FCVi___1(); 445 static inline volatile const signed int __f17__FCVi___1(); 446 static inline volatile const signed int __f18__FCVi___1(); 447 static inline volatile const signed short int __f21__FCVs___1(); 448 static inline volatile const signed short int __f22__FCVs___1(); 449 static inline volatile const signed short int __f23__FCVs___1(); 450 static inline volatile const signed short int __f24__FCVs___1(); 451 static inline volatile const signed short int __f25__FCVs___1(); 452 static inline volatile const signed short int __f26__FCVs___1(); 453 static inline volatile const signed short int __f27__FCVs___1(); 454 static inline volatile const signed short int __f28__FCVs___1(); 455 455 struct __anonymous16 { 456 int __i__i_1;456 signed int __i__i_1; 457 457 }; 458 458 static inline void ___constructor__F_R14s__anonymous16_autogen___1(struct __anonymous16 *___dst__R14s__anonymous16_1); … … 475 475 return ((struct __anonymous16 )___ret__14s__anonymous16_1); 476 476 } 477 static inline void ___constructor__F_R14s__anonymous16i_autogen___1(struct __anonymous16 *___dst__R14s__anonymous16_1, int __i__i_1){477 static inline void ___constructor__F_R14s__anonymous16i_autogen___1(struct __anonymous16 *___dst__R14s__anonymous16_1, signed int __i__i_1){ 478 478 ((void)((*___dst__R14s__anonymous16_1).__i__i_1=__i__i_1) /* ?{} */); 479 479 } 480 480 static inline volatile const struct __anonymous16 __f31__FCV14s__anonymous16___1(); 481 481 struct __anonymous17 { 482 int __i__i_1;482 signed int __i__i_1; 483 483 }; 484 484 static inline void ___constructor__F_R14s__anonymous17_autogen___1(struct __anonymous17 *___dst__R14s__anonymous17_1); … … 501 501 return ((struct __anonymous17 )___ret__14s__anonymous17_1); 502 502 } 503 static inline void ___constructor__F_R14s__anonymous17i_autogen___1(struct __anonymous17 *___dst__R14s__anonymous17_1, int __i__i_1){503 static inline void ___constructor__F_R14s__anonymous17i_autogen___1(struct __anonymous17 *___dst__R14s__anonymous17_1, signed int __i__i_1){ 504 504 ((void)((*___dst__R14s__anonymous17_1).__i__i_1=__i__i_1) /* ?{} */); 505 505 } 506 506 static inline volatile const struct __anonymous17 __f32__FCV14s__anonymous17___1(); 507 507 struct __anonymous18 { 508 int __i__i_1;508 signed int __i__i_1; 509 509 }; 510 510 static inline void ___constructor__F_R14s__anonymous18_autogen___1(struct __anonymous18 *___dst__R14s__anonymous18_1); … … 527 527 return ((struct __anonymous18 )___ret__14s__anonymous18_1); 528 528 } 529 static inline void ___constructor__F_R14s__anonymous18i_autogen___1(struct __anonymous18 *___dst__R14s__anonymous18_1, int __i__i_1){529 static inline void ___constructor__F_R14s__anonymous18i_autogen___1(struct __anonymous18 *___dst__R14s__anonymous18_1, signed int __i__i_1){ 530 530 ((void)((*___dst__R14s__anonymous18_1).__i__i_1=__i__i_1) /* ?{} */); 531 531 } 532 532 static inline volatile const struct __anonymous18 __f33__FCV14s__anonymous18___1(); 533 533 struct __anonymous19 { 534 int __i__i_1;534 signed int __i__i_1; 535 535 }; 536 536 static inline void ___constructor__F_R14s__anonymous19_autogen___1(struct __anonymous19 *___dst__R14s__anonymous19_1); … … 553 553 return ((struct __anonymous19 )___ret__14s__anonymous19_1); 554 554 } 555 static inline void ___constructor__F_R14s__anonymous19i_autogen___1(struct __anonymous19 *___dst__R14s__anonymous19_1, int __i__i_1){555 static inline void ___constructor__F_R14s__anonymous19i_autogen___1(struct __anonymous19 *___dst__R14s__anonymous19_1, signed int __i__i_1){ 556 556 ((void)((*___dst__R14s__anonymous19_1).__i__i_1=__i__i_1) /* ?{} */); 557 557 } 558 558 static inline volatile const struct __anonymous19 __f34__FCV14s__anonymous19___1(); 559 559 struct __anonymous20 { 560 int __i__i_1;560 signed int __i__i_1; 561 561 }; 562 562 static inline void ___constructor__F_R14s__anonymous20_autogen___1(struct __anonymous20 *___dst__R14s__anonymous20_1); … … 579 579 return ((struct __anonymous20 )___ret__14s__anonymous20_1); 580 580 } 581 static inline void ___constructor__F_R14s__anonymous20i_autogen___1(struct __anonymous20 *___dst__R14s__anonymous20_1, int __i__i_1){581 static inline void ___constructor__F_R14s__anonymous20i_autogen___1(struct __anonymous20 *___dst__R14s__anonymous20_1, signed int __i__i_1){ 582 582 ((void)((*___dst__R14s__anonymous20_1).__i__i_1=__i__i_1) /* ?{} */); 583 583 } 584 584 static inline volatile const struct __anonymous20 __f35__FCV14s__anonymous20___1(); 585 585 struct __anonymous21 { 586 int __i__i_1;586 signed int __i__i_1; 587 587 }; 588 588 static inline void ___constructor__F_R14s__anonymous21_autogen___1(struct __anonymous21 *___dst__R14s__anonymous21_1); … … 605 605 return ((struct __anonymous21 )___ret__14s__anonymous21_1); 606 606 } 607 static inline void ___constructor__F_R14s__anonymous21i_autogen___1(struct __anonymous21 *___dst__R14s__anonymous21_1, int __i__i_1){607 static inline void ___constructor__F_R14s__anonymous21i_autogen___1(struct __anonymous21 *___dst__R14s__anonymous21_1, signed int __i__i_1){ 608 608 ((void)((*___dst__R14s__anonymous21_1).__i__i_1=__i__i_1) /* ?{} */); 609 609 } 610 610 static inline volatile const struct __anonymous21 __f36__FCV14s__anonymous21___1(); 611 611 struct __anonymous22 { 612 int __i__i_1;612 signed int __i__i_1; 613 613 }; 614 614 static inline void ___constructor__F_R14s__anonymous22_autogen___1(struct __anonymous22 *___dst__R14s__anonymous22_1); … … 631 631 return ((struct __anonymous22 )___ret__14s__anonymous22_1); 632 632 } 633 static inline void ___constructor__F_R14s__anonymous22i_autogen___1(struct __anonymous22 *___dst__R14s__anonymous22_1, int __i__i_1){633 static inline void ___constructor__F_R14s__anonymous22i_autogen___1(struct __anonymous22 *___dst__R14s__anonymous22_1, signed int __i__i_1){ 634 634 ((void)((*___dst__R14s__anonymous22_1).__i__i_1=__i__i_1) /* ?{} */); 635 635 } 636 636 static inline volatile const struct __anonymous22 __f37__FCV14s__anonymous22___1(); 637 637 struct __anonymous23 { 638 int __i__i_1;638 signed int __i__i_1; 639 639 }; 640 640 static inline void ___constructor__F_R14s__anonymous23_autogen___1(struct __anonymous23 *___dst__R14s__anonymous23_1); … … 657 657 return ((struct __anonymous23 )___ret__14s__anonymous23_1); 658 658 } 659 static inline void ___constructor__F_R14s__anonymous23i_autogen___1(struct __anonymous23 *___dst__R14s__anonymous23_1, int __i__i_1){659 static inline void ___constructor__F_R14s__anonymous23i_autogen___1(struct __anonymous23 *___dst__R14s__anonymous23_1, signed int __i__i_1){ 660 660 ((void)((*___dst__R14s__anonymous23_1).__i__i_1=__i__i_1) /* ?{} */); 661 661 } 662 662 static inline volatile const struct __anonymous23 __f38__FCV14s__anonymous23___1(); 663 static inline volatile const s hort __f41__FCVs___1();664 static inline volatile const s hort __f42__FCVs___1();665 static inline volatile const s hort __f43__FCVs___1();666 static inline volatile const s hort __f44__FCVs___1();667 static inline volatile const s hort __f45__FCVs___1();668 static inline volatile const s hort __f46__FCVs___1();669 static inline volatile const s hort __f47__FCVs___1();670 static inline volatile const s hort __f48__FCVs___1();671 int __main__Fi_iPPCc__1(int __argc__i_1, const char **__argv__PPCc_1){672 __attribute__ ((unused)) int ___retval_main__i_1;673 ((void)(___retval_main__i_1=(( int )0)) /* ?{} */);674 return (( int )___retval_main__i_1);663 static inline volatile const signed short int __f41__FCVs___1(); 664 static inline volatile const signed short int __f42__FCVs___1(); 665 static inline volatile const signed short int __f43__FCVs___1(); 666 static inline volatile const signed short int __f44__FCVs___1(); 667 static inline volatile const signed short int __f45__FCVs___1(); 668 static inline volatile const signed short int __f46__FCVs___1(); 669 static inline volatile const signed short int __f47__FCVs___1(); 670 static inline volatile const signed short int __f48__FCVs___1(); 671 signed int __main__Fi_iPPCc__1(signed int __argc__i_1, const char **__argv__PPCc_1){ 672 __attribute__ ((unused)) signed int ___retval_main__i_1; 673 ((void)(___retval_main__i_1=((signed int )0)) /* ?{} */); 674 return ((signed int )___retval_main__i_1); 675 675 ((void)(___retval_main__i_1=0) /* ?{} */); 676 return (( int )___retval_main__i_1);676 return ((signed int )___retval_main__i_1); 677 677 } 678 678 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi_iPPCc__1(argc, argv); } 679 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc( long unsignedint __size);679 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size); 680 680 __attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr); 681 681 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void); 682 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern int atexit(void (*__func)(void));683 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit( int __status);684 extern int printf(const char *__restrict __format, ...);685 static inline int invoke_main(int argc, char **argv, char **envp);686 int main(int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){687 __attribute__ ((unused)) int ___retval_main__i_1;688 int _tmp_cp_ret0;682 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void)); 683 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status); 684 extern signed int printf(const char *__restrict __format, ...); 685 static inline signed int invoke_main(signed int argc, char **argv, char **envp); 686 signed int main(signed int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){ 687 __attribute__ ((unused)) signed int ___retval_main__i_1; 688 signed int _tmp_cp_ret0; 689 689 ((void)(___retval_main__i_1=(((void)(_tmp_cp_ret0=invoke_main(__argc__i_1, __argv__PPc_1, __envp__PPc_1))) , _tmp_cp_ret0)) /* ?{} */); 690 690 ((void)(_tmp_cp_ret0) /* ^?{} */); 691 return (( int )___retval_main__i_1);692 } 691 return ((signed int )___retval_main__i_1); 692 } -
src/tests/.expect/64/extension.txt
ra506df4 rb3c7963 1 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc( long unsignedint __size);1 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size); 2 2 __attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr); 3 3 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void); 4 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern int atexit(void (*__func)(void));5 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit( int __status);6 extern int printf(const char *__restrict __format, ...);7 __extension__ int __a__i_1;8 __extension__ int __b__i_1;9 __extension__ int __c__i_1;4 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void)); 5 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status); 6 extern signed int printf(const char *__restrict __format, ...); 7 __extension__ signed int __a__i_1; 8 __extension__ signed int __b__i_1; 9 __extension__ signed int __c__i_1; 10 10 __extension__ struct S { 11 __extension__ int __a__i_1;12 __extension__ int __b__i_1;13 __extension__ int __c__i_1;11 __extension__ signed int __a__i_1; 12 __extension__ signed int __b__i_1; 13 __extension__ signed int __c__i_1; 14 14 }; 15 15 static inline void ___constructor__F_R2sS_autogen___1(struct S *___dst__R2sS_1); … … 40 40 return ((struct S )___ret__2sS_1); 41 41 } 42 static inline void ___constructor__F_R2sSi_autogen___1(struct S *___dst__R2sS_1, int __a__i_1){42 static inline void ___constructor__F_R2sSi_autogen___1(struct S *___dst__R2sS_1, signed int __a__i_1){ 43 43 ((void)((*___dst__R2sS_1).__a__i_1=__a__i_1) /* ?{} */); 44 44 ((void)((*___dst__R2sS_1).__b__i_1) /* ?{} */); 45 45 ((void)((*___dst__R2sS_1).__c__i_1) /* ?{} */); 46 46 } 47 static inline void ___constructor__F_R2sSii_autogen___1(struct S *___dst__R2sS_1, int __a__i_1,int __b__i_1){47 static inline void ___constructor__F_R2sSii_autogen___1(struct S *___dst__R2sS_1, signed int __a__i_1, signed int __b__i_1){ 48 48 ((void)((*___dst__R2sS_1).__a__i_1=__a__i_1) /* ?{} */); 49 49 ((void)((*___dst__R2sS_1).__b__i_1=__b__i_1) /* ?{} */); 50 50 ((void)((*___dst__R2sS_1).__c__i_1) /* ?{} */); 51 51 } 52 static inline void ___constructor__F_R2sSiii_autogen___1(struct S *___dst__R2sS_1, int __a__i_1, int __b__i_1,int __c__i_1){52 static inline void ___constructor__F_R2sSiii_autogen___1(struct S *___dst__R2sS_1, signed int __a__i_1, signed int __b__i_1, signed int __c__i_1){ 53 53 ((void)((*___dst__R2sS_1).__a__i_1=__a__i_1) /* ?{} */); 54 54 ((void)((*___dst__R2sS_1).__b__i_1=__b__i_1) /* ?{} */); … … 56 56 } 57 57 __extension__ union U { 58 __extension__ int __a__i_1;59 __extension__ int __b__i_1;60 __extension__ int __c__i_1;58 __extension__ signed int __a__i_1; 59 __extension__ signed int __b__i_1; 60 __extension__ signed int __c__i_1; 61 61 }; 62 62 static inline void ___constructor__F_R2uU_autogen___1(__attribute__ ((unused)) union U *___dst__R2uU_1){ … … 73 73 return ((union U )___ret__2uU_1); 74 74 } 75 static inline void ___constructor__F_R2uUi_autogen___1(__attribute__ ((unused)) union U *___dst__R2uU_1, int __src__i_1){76 ((void)__builtin_memcpy(((void *)___dst__R2uU_1), ((const void *)(&__src__i_1)), sizeof( int )));75 static inline void ___constructor__F_R2uUi_autogen___1(__attribute__ ((unused)) union U *___dst__R2uU_1, signed int __src__i_1){ 76 ((void)__builtin_memcpy(((void *)___dst__R2uU_1), ((const void *)(&__src__i_1)), sizeof(signed int ))); 77 77 } 78 78 __extension__ enum E { … … 81 81 __B__C2eE_1, 82 82 }; 83 __extension__ int __f__Fi___1();84 __extension__ int i;85 __extension__ int j;86 __extension__ int __fred__Fi_i__1(int __p__i_1){87 __attribute__ ((unused)) int ___retval_fred__i_1;83 __extension__ signed int __f__Fi___1(); 84 __extension__ signed int i; 85 __extension__ signed int j; 86 __extension__ signed int __fred__Fi_i__1(signed int __p__i_1){ 87 __attribute__ ((unused)) signed int ___retval_fred__i_1; 88 88 __extension__ struct S { 89 __extension__ int __a__i_2;90 __extension__ int __b__i_2;91 __extension__ int __c__i_2;92 __extension__ int *__x__Pi_2;93 __extension__ int *__y__Pi_2;94 __extension__ int *__z__Pi_2;89 __extension__ signed int __a__i_2; 90 __extension__ signed int __b__i_2; 91 __extension__ signed int __c__i_2; 92 __extension__ signed int *__x__Pi_2; 93 __extension__ signed int *__y__Pi_2; 94 __extension__ signed int *__z__Pi_2; 95 95 }; 96 int __i__i_2 = ((int )(__extension__ __a__i_1+__extension__ 3));96 signed int __i__i_2 = ((signed int )(__extension__ __a__i_1+__extension__ 3)); 97 97 ((void)__extension__ 3); 98 98 ((void)__extension__ __a__i_1); 99 __extension__ int __a__i_2;100 __extension__ int __b__i_2;101 __extension__ int __c__i_2;99 __extension__ signed int __a__i_2; 100 __extension__ signed int __b__i_2; 101 __extension__ signed int __c__i_2; 102 102 ((void)(__extension__ __a__i_2=(__extension__ __b__i_2+__extension__ __c__i_2))); 103 int _tmp_cp_ret0;103 signed int _tmp_cp_ret0; 104 104 ((void)(((void)(_tmp_cp_ret0=__extension__ __fred__Fi_i__1(3))) , _tmp_cp_ret0)); 105 105 ((void)(_tmp_cp_ret0) /* ^?{} */); 106 __extension__ int __mary__Fi_i__2(int __p__i_2){107 __attribute__ ((unused)) int ___retval_mary__i_2;106 __extension__ signed int __mary__Fi_i__2(signed int __p__i_2){ 107 __attribute__ ((unused)) signed int ___retval_mary__i_2; 108 108 } 109 109 ((void)__extension__ sizeof(3)); 110 ((void)__extension__ ((( int )(3!=((int )0))) || ((int )(4!=((int )0)))));110 ((void)__extension__ (((signed int )(3!=((signed int )0))) || ((signed int )(4!=((signed int )0))))); 111 111 ((void)__extension__ __alignof__(__extension__ __a__i_2)); 112 ((void)((( int )(__extension__ __a__i_2!=((int )0))) || ((int )((((int )(__extension__ __b__i_2!=((int )0))) && ((int )(__extension__ __c__i_2!=((int )0))))!=((int )0)))));113 ((void)((( int )((__extension__ __a__i_2>__extension__ __b__i_2)!=((int )0))) ? __extension__ __c__i_2 : __extension__ __c__i_2));112 ((void)(((signed int )(__extension__ __a__i_2!=((signed int )0))) || ((signed int )((((signed int )(__extension__ __b__i_2!=((signed int )0))) && ((signed int )(__extension__ __c__i_2!=((signed int )0))))!=((signed int )0))))); 113 ((void)(((signed int )((__extension__ __a__i_2>__extension__ __b__i_2)!=((signed int )0))) ? __extension__ __c__i_2 : __extension__ __c__i_2)); 114 114 ((void)(__extension__ __a__i_2=__extension__ (__extension__ __b__i_2+__extension__ __c__i_2))); 115 115 ((void)(((void)(((void)__extension__ __a__i_2) , __extension__ __b__i_2)) , __extension__ __c__i_2)); -
src/tests/.expect/64/gccExtensions.txt
ra506df4 rb3c7963 1 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc( long unsignedint __size);1 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size); 2 2 __attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr); 3 3 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void); 4 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern int atexit(void (*__func)(void));5 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit( int __status);6 extern int printf(const char *__restrict __format, ...);7 extern int __x__i_1 asm ( "xx" );8 int __main__Fi_iPPCc__1(int __argc__i_1, const char **__argv__PPCc_1){9 __attribute__ ((unused)) int ___retval_main__i_1;4 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void)); 5 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status); 6 extern signed int printf(const char *__restrict __format, ...); 7 extern signed int __x__i_1 asm ( "xx" ); 8 signed int __main__Fi_iPPCc__1(signed int __argc__i_1, const char **__argv__PPCc_1){ 9 __attribute__ ((unused)) signed int ___retval_main__i_1; 10 10 asm ( "nop" : : : ); 11 11 asm ( "nop" : : : ); 12 12 asm ( "nop" : : : ); 13 static int __y__i_2 asm ( "yy" );14 static int *__z__Pi_2 asm ( "zz" );15 int __src__i_2;16 int __dst__i_2;17 asm volatile ( "mov %1, %0\n\t add $1, %0" : : : );18 asm volatile ( "mov %1, %0\n\t add $1, %0" : "=r" ( __dst__i_2 ) : : );19 asm volatile ( "mov %1, %0\n\t add $1, %0" : "=r" ( __dst__i_2 ) : "r" ( __src__i_2 ) : );20 asm ( "mov %1, %0\n\t add $1, %0" : "=r" ( __dst__i_2 ), "=r" ( __src__i_2 ) : [ __src__i_2 ] "r" ( __dst__i_2 ) : "r0" );13 static signed int __y__i_2 asm ( "yy" ); 14 static signed int *__z__Pi_2 asm ( "zz" ); 15 signed int __src__i_2; 16 signed int __dst__i_2; 17 asm volatile ( "mov %1, %0\n\t" "add $1, %0" : : : ); 18 asm volatile ( "mov %1, %0\n\t" "add $1, %0" : "=" "r" ( __dst__i_2 ) : : ); 19 asm volatile ( "mov %1, %0\n\t" "add $1, %0" : "=r" ( __dst__i_2 ) : "r" ( __src__i_2 ) : ); 20 asm ( "mov %1, %0\n\t" "add $1, %0" : "=r" ( __dst__i_2 ), "=r" ( __src__i_2 ) : [ __src__i_2 ] "r" ( __dst__i_2 ) : "r0" ); 21 21 L2: L1: asm goto ( "frob %%r5, %1; jc %l[L1]; mov (%2), %%r5" : : "r" ( __src__i_2 ), "r" ( (&__dst__i_2) ) : "r5", "memory" : L1, L2 ); 22 22 double _Complex __c1__Xd_2; 23 23 double _Complex __c2__Xd_2; 24 const int __i1__Ci_2;25 const int __i2__Ci_2;26 const int __i3__Ci_2;27 inline int __f1__Fi___2(){28 __attribute__ ((unused)) int ___retval_f1__i_2;24 const signed int __i1__Ci_2; 25 const signed int __i2__Ci_2; 26 const signed int __i3__Ci_2; 27 inline signed int __f1__Fi___2(){ 28 __attribute__ ((unused)) signed int ___retval_f1__i_2; 29 29 } 30 inline int __f2__Fi___2(){31 __attribute__ ((unused)) int ___retval_f2__i_2;30 inline signed int __f2__Fi___2(){ 31 __attribute__ ((unused)) signed int ___retval_f2__i_2; 32 32 } 33 int __s1__i_2;34 int __s2__i_2;35 volatile int __v1__Vi_2;36 volatile int __v2__Vi_2;37 int __t1___2;38 int __t2___2;39 __extension__ const int __ex__Ci_2;33 signed int __s1__i_2; 34 signed int __s2__i_2; 35 volatile signed int __v1__Vi_2; 36 volatile signed int __v2__Vi_2; 37 signed int __t1___2; 38 signed int __t2___2; 39 __extension__ const signed int __ex__Ci_2; 40 40 struct S { 41 __extension__ int __a__i_2;42 __extension__ int __b__i_2;43 __extension__ int __c__i_2;41 __extension__ signed int __a__i_2; 42 __extension__ signed int __b__i_2; 43 __extension__ signed int __c__i_2; 44 44 }; 45 45 inline void ___constructor__F_R2sS_autogen___2(struct S *___dst__R2sS_2){ … … 66 66 return ((struct S )___ret__2sS_2); 67 67 } 68 inline void ___constructor__F_R2sSi_autogen___2(struct S *___dst__R2sS_2, int __a__i_2){68 inline void ___constructor__F_R2sSi_autogen___2(struct S *___dst__R2sS_2, signed int __a__i_2){ 69 69 ((void)((*___dst__R2sS_2).__a__i_2=__a__i_2) /* ?{} */); 70 70 ((void)((*___dst__R2sS_2).__b__i_2) /* ?{} */); 71 71 ((void)((*___dst__R2sS_2).__c__i_2) /* ?{} */); 72 72 } 73 inline void ___constructor__F_R2sSii_autogen___2(struct S *___dst__R2sS_2, int __a__i_2,int __b__i_2){73 inline void ___constructor__F_R2sSii_autogen___2(struct S *___dst__R2sS_2, signed int __a__i_2, signed int __b__i_2){ 74 74 ((void)((*___dst__R2sS_2).__a__i_2=__a__i_2) /* ?{} */); 75 75 ((void)((*___dst__R2sS_2).__b__i_2=__b__i_2) /* ?{} */); 76 76 ((void)((*___dst__R2sS_2).__c__i_2) /* ?{} */); 77 77 } 78 inline void ___constructor__F_R2sSiii_autogen___2(struct S *___dst__R2sS_2, int __a__i_2, int __b__i_2,int __c__i_2){78 inline void ___constructor__F_R2sSiii_autogen___2(struct S *___dst__R2sS_2, signed int __a__i_2, signed int __b__i_2, signed int __c__i_2){ 79 79 ((void)((*___dst__R2sS_2).__a__i_2=__a__i_2) /* ?{} */); 80 80 ((void)((*___dst__R2sS_2).__b__i_2=__b__i_2) /* ?{} */); 81 81 ((void)((*___dst__R2sS_2).__c__i_2=__c__i_2) /* ?{} */); 82 82 } 83 int __i__i_2 = ((int )__extension__ 3);84 __extension__ int __a__i_2;85 __extension__ int __b__i_2;86 __extension__ int __c__i_2;83 signed int __i__i_2 = ((signed int )__extension__ 3); 84 __extension__ signed int __a__i_2; 85 __extension__ signed int __b__i_2; 86 __extension__ signed int __c__i_2; 87 87 ((void)(((void)(((void)__extension__ __a__i_2) , __extension__ __b__i_2)) , __extension__ __c__i_2)); 88 88 ((void)(__extension__ __a__i_2=(__extension__ __b__i_2+__extension__ __c__i_2))); 89 89 ((void)(__extension__ __a__i_2=__extension__ (__extension__ __b__i_2+__extension__ __c__i_2))); 90 int __a1__i_2;91 const int __a2__Ci_2;92 static const int __a3__Ci_2;93 static const int __a4__Ci_2;94 static const int __a5__Ci_2;95 static const int __a6__Ci_2;96 static const int __a7__Ci_2;97 int *__p1__Pi_2;98 int *__p2__Pi_2;90 signed int __a1__i_2; 91 const signed int __a2__Ci_2; 92 static const signed int __a3__Ci_2; 93 static const signed int __a4__Ci_2; 94 static const signed int __a5__Ci_2; 95 static const signed int __a6__Ci_2; 96 static const signed int __a7__Ci_2; 97 signed int *__p1__Pi_2; 98 signed int *__p2__Pi_2; 99 99 struct s1; 100 100 struct s2 { 101 int __i__i_2;101 signed int __i__i_2; 102 102 }; 103 103 inline void ___constructor__F_R3ss2_autogen___2(struct s2 *___dst__R3ss2_2){ … … 116 116 return ((struct s2 )___ret__3ss2_2); 117 117 } 118 inline void ___constructor__F_R3ss2i_autogen___2(struct s2 *___dst__R3ss2_2, int __i__i_2){118 inline void ___constructor__F_R3ss2i_autogen___2(struct s2 *___dst__R3ss2_2, signed int __i__i_2){ 119 119 ((void)((*___dst__R3ss2_2).__i__i_2=__i__i_2) /* ?{} */); 120 120 } 121 121 struct s3 { 122 int __i__i_2;122 signed int __i__i_2; 123 123 }; 124 124 inline void ___constructor__F_R3ss3_autogen___2(struct s3 *___dst__R3ss3_2){ … … 137 137 return ((struct s3 )___ret__3ss3_2); 138 138 } 139 inline void ___constructor__F_R3ss3i_autogen___2(struct s3 *___dst__R3ss3_2, int __i__i_2){139 inline void ___constructor__F_R3ss3i_autogen___2(struct s3 *___dst__R3ss3_2, signed int __i__i_2){ 140 140 ((void)((*___dst__R3ss3_2).__i__i_2=__i__i_2) /* ?{} */); 141 141 } … … 143 143 struct s3 __y1__3ss3_2; 144 144 struct s4 { 145 int __i__i_2;145 signed int __i__i_2; 146 146 }; 147 147 inline void ___constructor__F_R3ss4_autogen___2(struct s4 *___dst__R3ss4_2){ … … 160 160 return ((struct s4 )___ret__3ss4_2); 161 161 } 162 inline void ___constructor__F_R3ss4i_autogen___2(struct s4 *___dst__R3ss4_2, int __i__i_2){162 inline void ___constructor__F_R3ss4i_autogen___2(struct s4 *___dst__R3ss4_2, signed int __i__i_2){ 163 163 ((void)((*___dst__R3ss4_2).__i__i_2=__i__i_2) /* ?{} */); 164 164 } 165 165 struct s4 __x2__3ss4_2; 166 166 struct s4 __y2__3ss4_2; 167 int __m1__A0i_2[((long unsignedint )10)];168 int __m2__A0A0i_2[((long unsigned int )10)][((long unsignedint )10)];169 int __m3__A0A0i_2[((long unsigned int )10)][((long unsignedint )10)];170 ((void)(___retval_main__i_1=(( int )0)) /* ?{} */);171 return (( int )___retval_main__i_1);167 signed int __m1__A0i_2[((unsigned long int )10)]; 168 signed int __m2__A0A0i_2[((unsigned long int )10)][((unsigned long int )10)]; 169 signed int __m3__A0A0i_2[((unsigned long int )10)][((unsigned long int )10)]; 170 ((void)(___retval_main__i_1=((signed int )0)) /* ?{} */); 171 return ((signed int )___retval_main__i_1); 172 172 ((void)(___retval_main__i_1=0) /* ?{} */); 173 return (( int )___retval_main__i_1);173 return ((signed int )___retval_main__i_1); 174 174 } 175 175 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi_iPPCc__1(argc, argv); } 176 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc( long unsignedint __size);176 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size); 177 177 __attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr); 178 178 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void); 179 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern int atexit(void (*__func)(void));180 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit( int __status);181 extern int printf(const char *__restrict __format, ...);182 static inline int invoke_main(int argc, char **argv, char **envp);183 int main(int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){184 __attribute__ ((unused)) int ___retval_main__i_1;185 int _tmp_cp_ret0;179 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void)); 180 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status); 181 extern signed int printf(const char *__restrict __format, ...); 182 static inline signed int invoke_main(signed int argc, char **argv, char **envp); 183 signed int main(signed int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){ 184 __attribute__ ((unused)) signed int ___retval_main__i_1; 185 signed int _tmp_cp_ret0; 186 186 ((void)(___retval_main__i_1=(((void)(_tmp_cp_ret0=invoke_main(__argc__i_1, __argv__PPc_1, __envp__PPc_1))) , _tmp_cp_ret0)) /* ?{} */); 187 187 ((void)(_tmp_cp_ret0) /* ^?{} */); 188 return (( int )___retval_main__i_1);188 return ((signed int )___retval_main__i_1); 189 189 } -
src/tests/.expect/64/gmp.txt
ra506df4 rb3c7963 5 5 y:97 6 6 y:12345678901234567890123456789 7 y:200 8 y:-400 9 y:24691357802469135780246913578 7 10 y:3 8 11 y:-3 -
src/tests/.expect/io.txt
ra506df4 rb3c7963 27 27 28 28 output basic types 29 A 29 A 23 93 30 30 1 2 3 4 5 6 7 8 31 31 1.1 1.2 1.3 -
src/tests/Makefile.am
ra506df4 rb3c7963 11 11 ## Created On : Sun May 31 09:08:15 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Thu Jun 8 07:41:43201714 ## Update Count : 4 413 ## Last Modified On : Mon Sep 11 16:17:16 2017 14 ## Update Count : 45 15 15 ############################################################################### 16 16 … … 101 101 ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p -XCFA -L ${<} -o ${@} 102 102 103 literals : literals.c @CFA_BINDIR@/@CFA_NAME@ 104 ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p -XCFA -L ${<} -o ${@} 105 103 106 gmp : gmp.c @CFA_BINDIR@/@CFA_NAME@ 104 107 ${CC} ${AM_CFLAGS} ${CFLAGS} -lgmp ${<} -o ${@} -
src/tests/Makefile.in
ra506df4 rb3c7963 853 853 ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p -XCFA -L ${<} -o ${@} 854 854 855 literals : literals.c @CFA_BINDIR@/@CFA_NAME@ 856 ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p -XCFA -L ${<} -o ${@} 857 855 858 gmp : gmp.c @CFA_BINDIR@/@CFA_NAME@ 856 859 ${CC} ${AM_CFLAGS} ${CFLAGS} -lgmp ${<} -o ${@} -
src/tests/gmp.c
ra506df4 rb3c7963 10 10 // Created On : Tue Apr 19 08:55:51 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Aug 25 12:50:01201713 // Update Count : 5 4412 // Last Modified On : Mon Sep 4 09:51:18 2017 13 // Update Count : 550 14 14 // 15 15 … … 29 29 sout | "y:" | y | endl; 30 30 y = "12345678901234567890123456789"; 31 sout | "y:" | y | endl; 32 y = 100`mp + 100`mp; 33 sout | "y:" | y | endl; 34 y = -200u`mp + -200u`mp; 35 sout | "y:" | y | endl; 36 y = "12345678901234567890123456789"`mp + "12345678901234567890123456789"`mp; 31 37 sout | "y:" | y | endl; 32 38 y = si; -
src/tests/io.c
ra506df4 rb3c7963 10 10 // Created On : Wed Mar 2 16:56:02 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Aug 23 21:27:50201713 // Update Count : 7912 // Last Modified On : Mon Sep 11 08:53:41 2017 13 // Update Count : 81 14 14 // 15 15 … … 18 18 int main() { 19 19 char c; // basic types 20 signed char sc; 21 unsigned char usc; 20 22 short int si; 21 23 unsigned short int usi; … … 89 91 90 92 sout | "input bacis types" | endl; 91 &in | c 93 &in | c | sc | usc // character 92 94 | si | usi | i | ui | li | uli | lli | ulli // integral 93 95 | f | d | ld // floating point … … 97 99 98 100 sout | "output basic types" | endl; 99 sout | c | ' ' | endl// character101 sout | c | ' ' | sc | ' ' | usc | endl // character 100 102 | si | usi | i | ui | li | uli | lli | ulli | endl // integral 101 103 | f | d | ld | endl // floating point -
src/tests/io.data
ra506df4 rb3c7963 1 A 1 2 3 4 5 6 7 8 1.1 1.2 1.3 1.1+2.3 1.1-2.3 1.1-2.3 abc xyz1 A 23 93 1 2 3 4 5 6 7 8 1.1 1.2 1.3 1.1+2.3 1.1-2.3 1.1-2.3 abc xyz
Note: See TracChangeset
for help on using the changeset viewer.