- Timestamp:
- Aug 31, 2017, 3:33:11 PM (8 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:
- 058f549
- Parents:
- 326338ae (diff), 2ad507b8 (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:
-
- 3 added
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Common/CodeLocation.h
r326338ae rfbcb354 9 9 // Author : Andrew Beach 10 10 // Created On : Thr Aug 17 11:23:00 2017 11 // Last Modified By : Andrew Beach12 // Last Modified On : Thr Aug 17 14:07:00201713 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 28 12:46:01 2017 13 // Update Count : 2 14 14 // 15 15 … … 66 66 67 67 inline std::string to_string( const CodeLocation& location ) { 68 return location.isSet() ? location.filename + ":" + std::to_string(location.linenumber) + " " : ""; 68 // Column number ":1" allows IDEs to parse the error message and position the cursor in the source text. 69 return location.isSet() ? location.filename + ":" + std::to_string(location.linenumber) + ":1 " : ""; 69 70 } 70 71 -
src/Common/PassVisitor.h
r326338ae rfbcb354 75 75 virtual void visit( CatchStmt *catchStmt ) override final; 76 76 virtual void visit( FinallyStmt *finallyStmt ) override final; 77 virtual void visit( WaitForStmt *waitforStmt ) override final; 77 78 virtual void visit( NullStmt *nullStmt ) override final; 78 79 virtual void visit( DeclStmt *declStmt ) override final; … … 159 160 virtual Statement* mutate( ReturnStmt *returnStmt ) override final; 160 161 virtual Statement* mutate( ThrowStmt *throwStmt ) override final; 161 virtual Statement* mutate( TryStmt * returnStmt ) override final;162 virtual Statement* mutate( TryStmt *tryStmt ) override final; 162 163 virtual Statement* mutate( CatchStmt *catchStmt ) override final; 163 virtual Statement* mutate( FinallyStmt *catchStmt ) override final; 164 virtual Statement* mutate( FinallyStmt *finallyStmt ) override final; 165 virtual Statement* mutate( WaitForStmt *waitforStmt ) override final; 164 166 virtual NullStmt* mutate( NullStmt *nullStmt ) override final; 165 167 virtual Statement* mutate( DeclStmt *declStmt ) override final; -
src/Common/PassVisitor.impl.h
r326338ae rfbcb354 541 541 } 542 542 543 //-------------------------------------------------------------------------- 544 // FinallyStmt 543 545 template< typename pass_type > 544 546 void PassVisitor< pass_type >::visit( FinallyStmt * node ) { … … 547 549 548 550 template< typename pass_type > 551 Statement * PassVisitor< pass_type >::mutate( FinallyStmt * node ) { 552 MUTATE_BODY( Statement, node ); 553 } 554 555 //-------------------------------------------------------------------------- 556 // WaitForStmt 557 template< typename pass_type > 558 void PassVisitor< pass_type >::visit( WaitForStmt * node ) { 559 VISIT_BODY( node ); 560 } 561 562 template< typename pass_type > 563 Statement * PassVisitor< pass_type >::mutate( WaitForStmt * node ) { 564 MUTATE_BODY( Statement, node ); 565 } 566 567 //-------------------------------------------------------------------------- 568 // NullStmt 569 template< typename pass_type > 549 570 void PassVisitor< pass_type >::visit( NullStmt * node ) { 550 571 VISIT_BODY( node ); … … 552 573 553 574 template< typename pass_type > 575 NullStmt * PassVisitor< pass_type >::mutate( NullStmt * node ) { 576 MUTATE_BODY( NullStmt, node ); 577 } 578 579 //-------------------------------------------------------------------------- 580 // DeclStmt 581 template< typename pass_type > 554 582 void PassVisitor< pass_type >::visit( DeclStmt * node ) { 555 583 VISIT_BODY( node ); … … 557 585 558 586 template< typename pass_type > 587 Statement * PassVisitor< pass_type >::mutate( DeclStmt * node ) { 588 MUTATE_BODY( Statement, node ); 589 } 590 591 //-------------------------------------------------------------------------- 592 // ImplicitCtorDtorStmt 593 template< typename pass_type > 559 594 void PassVisitor< pass_type >::visit( ImplicitCtorDtorStmt * node ) { 560 595 VISIT_BODY( node ); … … 562 597 563 598 template< typename pass_type > 599 Statement * PassVisitor< pass_type >::mutate( ImplicitCtorDtorStmt * node ) { 600 MUTATE_BODY( Statement, node ); 601 } 602 603 //-------------------------------------------------------------------------- 604 // ApplicationExpr 605 template< typename pass_type > 564 606 void PassVisitor< pass_type >::visit( ApplicationExpr * node ) { 565 607 VISIT_BODY( node ); 608 } 609 610 template< typename pass_type > 611 Expression * PassVisitor< pass_type >::mutate( ApplicationExpr * node ) { 612 MUTATE_BODY( Expression, node ); 566 613 } 567 614 … … 944 991 945 992 template< typename pass_type > 946 Statement * PassVisitor< pass_type >::mutate( FinallyStmt * node ) {947 MUTATE_BODY( Statement, node );948 }949 950 template< typename pass_type >951 NullStmt * PassVisitor< pass_type >::mutate( NullStmt * node ) {952 MUTATE_BODY( NullStmt, node );953 }954 955 template< typename pass_type >956 Statement * PassVisitor< pass_type >::mutate( DeclStmt * node ) {957 MUTATE_BODY( Statement, node );958 }959 960 template< typename pass_type >961 Statement * PassVisitor< pass_type >::mutate( ImplicitCtorDtorStmt * node ) {962 MUTATE_BODY( Statement, node );963 }964 965 template< typename pass_type >966 Expression * PassVisitor< pass_type >::mutate( ApplicationExpr * node ) {967 MUTATE_BODY( Expression, node );968 }969 970 template< typename pass_type >971 993 Expression * PassVisitor< pass_type >::mutate( NameExpr * node ) { 972 994 MUTATE_BODY( Expression, node ); -
src/Common/SemanticError.cc
r326338ae rfbcb354 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue May 19 07:21:25 201513 // Update Count : 112 // Last Modified On : Tue Aug 29 18:17:35 2017 13 // Update Count : 3 14 14 // 15 15 16 #include <cstdio> 17 #include <unistd.h> 18 #include <iostream> 19 #include <list> 20 #include <string> 16 #include <cstdio> // for fileno, stderr 17 #include <unistd.h> // for isatty 18 #include <iostream> // for basic_ostream, operator<<, ostream 19 #include <list> // for list, _List_iterator 20 #include <string> // for string, operator<<, operator+, to_string 21 21 22 #include "Common/utility.h" 22 #include "Common/utility.h" // for to_string, CodeLocation (ptr only) 23 23 #include "SemanticError.h" 24 25 inline const std::string& error_str() {26 static std::string str = isatty( fileno(stderr) ) ? "\e[31merror:\e[39m " : "error: ";27 return str;28 }29 24 30 25 SemanticError::SemanticError() { … … 49 44 void SemanticError::print( std::ostream &os ) { 50 45 using std::to_string; 51 for( auto err : errors) {52 os << to_string( err.location ) << err.description << '\n';46 for( auto err : errors ) { 47 os << to_string( err.location ) << err.description << std::endl; 53 48 } 54 49 } -
src/Common/SemanticError.h
r326338ae rfbcb354 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 : T hr Aug 17 14:01:00201713 // Update Count : 711 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Aug 29 22:03:36 2017 13 // Update Count : 17 14 14 // 15 15 16 16 #pragma once 17 17 18 #include <exception> // for exception 19 #include <iostream> // for ostream 20 #include <list> // for list 21 #include <string> // for string 18 #include <exception> // for exception 19 #include <iostream> // for ostream 20 #include <list> // for list 21 #include <string> // for string 22 #include <unistd.h> // for isatty 22 23 23 #include "CodeLocation.h" 24 #include "CodeLocation.h" // for CodeLocation, toString 24 25 25 26 struct error { … … 28 29 29 30 error() = default; 30 error( const std::string & str ) : description( str ) {}31 error( const std::string & str ) : description( str ) {} 31 32 32 void maybeSet( const CodeLocation & location ) {33 void maybeSet( const CodeLocation & location ) { 33 34 if( this->location.linenumber < 0 ) { 34 35 this->location = location; … … 41 42 SemanticError(); 42 43 SemanticError( std::string error ); 43 template< typename T > SemanticError( const std::string & error, const T *obj );44 template< typename T > SemanticError( const std::string & error, const T * obj ); 44 45 ~SemanticError() throw() {} 45 46 46 void append( SemanticError &other ); 47 static inline const std::string & error_str() { 48 static std::string str = isatty( STDERR_FILENO ) ? "\e[31merror:\e[39m " : "error: "; 49 return str; 50 } 51 52 void append( SemanticError & other ); 47 53 void append( const std::string & ); 48 54 bool isEmpty() const; 49 void print( std::ostream & os );55 void print( std::ostream & os ); 50 56 51 void set_location( const CodeLocation & location );52 // constructs an exception using the given message and the printed 53 // representation of the obj (T must have a printmethod)57 void set_location( const CodeLocation & location ); 58 // constructs an exception using the given message and the printed representation of the obj (T must have a print 59 // method) 54 60 private: 55 61 std::list< error > errors; … … 57 63 58 64 template< typename T > 59 SemanticError::SemanticError( const std::string & error, const T *obj ) {65 SemanticError::SemanticError( const std::string & error, const T * obj ) { 60 66 append( toString( error, obj ) ); 61 67 } -
src/Concurrency/Keywords.cc
r326338ae rfbcb354 19 19 #include <string> // for string, operator== 20 20 21 #include "Common/PassVisitor.h" // for PassVisitor 21 22 #include "Common/SemanticError.h" // for SemanticError 22 23 #include "Common/utility.h" // for deleteAll, map_range … … 46 47 47 48 //============================================================================================= 48 // Visitors declaration49 // Pass declarations 49 50 //============================================================================================= 50 51 … … 58 59 // static inline NewField_t * getter_name( MyType * this ) { return &this->newField; } 59 60 // 60 class ConcurrentSueKeyword : public Visitor { 61 protected: 62 template< typename Visitor > 63 friend void SymTab::acceptAndAdd( std::list< Declaration * > &translationUnit, Visitor &visitor ); 61 class ConcurrentSueKeyword : public WithDeclsToAdd { 64 62 public: 65 63 … … 69 67 virtual ~ConcurrentSueKeyword() {} 70 68 71 using Visitor::visit; 72 virtual void visit( StructDecl * decl ) override final; 69 void postvisit( StructDecl * decl ); 73 70 74 71 void handle( StructDecl * ); … … 86 83 bool needs_main; 87 84 88 std::list< Declaration * > declsToAdd, declsToAddAfter;89 85 StructDecl* type_decl = nullptr; 90 86 }; … … 117 113 118 114 static void implement( std::list< Declaration * > & translationUnit ) { 119 ThreadKeywordimpl;120 SymTab::acceptAndAdd( translationUnit, impl );115 PassVisitor< ThreadKeyword > impl; 116 acceptAll( translationUnit, impl ); 121 117 } 122 118 }; … … 148 144 149 145 static void implement( std::list< Declaration * > & translationUnit ) { 150 CoroutineKeywordimpl;151 SymTab::acceptAndAdd( translationUnit, impl );146 PassVisitor< CoroutineKeyword > impl; 147 acceptAll( translationUnit, impl ); 152 148 } 153 149 }; … … 179 175 180 176 static void implement( std::list< Declaration * > & translationUnit ) { 181 MonitorKeywordimpl;182 SymTab::acceptAndAdd( translationUnit, impl );177 PassVisitor< MonitorKeyword > impl; 178 acceptAll( translationUnit, impl ); 183 179 } 184 180 }; … … 192 188 // } } 193 189 // 194 class MutexKeyword final : public Visitor{190 class MutexKeyword final { 195 191 public: 196 192 197 using Visitor::visit; 198 virtual void visit( FunctionDecl * decl ) override final; 199 virtual void visit( StructDecl * decl ) override final; 193 void postvisit( FunctionDecl * decl ); 194 void postvisit( StructDecl * decl ); 200 195 201 196 std::list<DeclarationWithType*> findMutexArgs( FunctionDecl* ); … … 204 199 205 200 static void implement( std::list< Declaration * > & translationUnit ) { 206 MutexKeywordimpl;201 PassVisitor< MutexKeyword > impl; 207 202 acceptAll( translationUnit, impl ); 208 203 } … … 230 225 // } } 231 226 // 232 class ThreadStarter final : public Visitor{227 class ThreadStarter final { 233 228 public: 234 229 235 using Visitor::visit; 236 virtual void visit( FunctionDecl * decl ) override final; 230 void postvisit( FunctionDecl * decl ); 237 231 238 232 void addStartStatement( FunctionDecl * decl, DeclarationWithType * param ); 239 233 240 234 static void implement( std::list< Declaration * > & translationUnit ) { 241 ThreadStarterimpl;235 PassVisitor< ThreadStarter > impl; 242 236 acceptAll( translationUnit, impl ); 243 237 } … … 264 258 // Generic keyword implementation 265 259 //============================================================================================= 266 void ConcurrentSueKeyword::visit(StructDecl * decl) { 267 Visitor::visit(decl); 260 void ConcurrentSueKeyword::postvisit(StructDecl * decl) { 268 261 if( decl->get_name() == type_name && decl->has_body() ) { 269 262 assert( !type_decl ); … … 353 346 } 354 347 355 declsToAdd .push_back( forward );356 if( needs_main ) declsToAdd .push_back( main_decl );357 declsToAdd .push_back( get_decl );348 declsToAddBefore.push_back( forward ); 349 if( needs_main ) declsToAddBefore.push_back( main_decl ); 350 declsToAddBefore.push_back( get_decl ); 358 351 359 352 return get_decl; … … 405 398 //============================================================================================= 406 399 407 void MutexKeyword::visit(FunctionDecl* decl) { 408 Visitor::visit(decl); 400 void MutexKeyword::postvisit(FunctionDecl* decl) { 409 401 410 402 std::list<DeclarationWithType*> mutexArgs = findMutexArgs( decl ); … … 424 416 } 425 417 426 void MutexKeyword::visit(StructDecl* decl) { 427 Visitor::visit(decl); 418 void MutexKeyword::postvisit(StructDecl* decl) { 428 419 429 420 if( decl->get_name() == "monitor_desc" ) { … … 532 523 // General entry routine 533 524 //============================================================================================= 534 void ThreadStarter::visit(FunctionDecl * decl) { 535 Visitor::visit(decl); 536 525 void ThreadStarter::postvisit(FunctionDecl * decl) { 537 526 if( ! CodeGen::isConstructor(decl->get_name()) ) return; 538 527 -
src/InitTweak/InitTweak.cc
r326338ae rfbcb354 325 325 std::string name = getFunctionName( expr ); 326 326 assertf( name == "*?", "Unexpected untyped expression: %s", name.c_str() ); 327 assertf( ! expr->get_args().empty(), "Can 't get called function from dereference with no arguments" );327 assertf( ! expr->get_args().empty(), "Cannot get called function from dereference with no arguments" ); 328 328 return getCalledFunction( expr->get_args().front() ); 329 329 } … … 433 433 std::string name = getFunctionName( expr ); 434 434 assertf( name == "*?", "Unexpected untyped expression: %s", name.c_str() ); 435 assertf( ! expr->get_args().empty(), "Can 't get function name from dereference with no arguments" );435 assertf( ! expr->get_args().empty(), "Cannot get function name from dereference with no arguments" ); 436 436 return funcName( expr->get_args().front() ); 437 437 } -
src/Parser/StatementNode.cc
r326338ae rfbcb354 212 212 WaitForStmt::Target target; 213 213 target.function = maybeBuild<Expression>( targetExpr ); 214 buildMoveList< Expression >( targetExpr, target.arguments ); 214 215 ExpressionNode * next = dynamic_cast<ExpressionNode *>( targetExpr->get_next() ); 216 targetExpr->set_next( nullptr ); 217 buildMoveList< Expression >( next, target.arguments ); 218 215 219 delete targetExpr; 216 220 … … 226 230 WaitForStmt * build_waitfor( ExpressionNode * targetExpr, StatementNode * stmt, ExpressionNode * when, WaitForStmt * node ) { 227 231 WaitForStmt::Target target; 228 229 232 target.function = maybeBuild<Expression>( targetExpr ); 230 buildMoveList< Expression >( targetExpr, target.arguments ); 233 234 ExpressionNode * next = dynamic_cast<ExpressionNode *>( targetExpr->get_next() ); 235 targetExpr->set_next( nullptr ); 236 buildMoveList< Expression >( next, target.arguments ); 237 231 238 delete targetExpr; 232 239 -
src/Parser/lex.ll
r326338ae rfbcb354 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Tue Aug 22 22:43:39201713 * Update Count : 5 5812 * Last Modified On : Wed Aug 30 17:35:21 2017 13 * Update Count : 584 14 14 */ 15 15 … … 19 19 20 20 %{ 21 // Th islexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive have been21 // The lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive have been 22 22 // performed and removed from the source. The only exceptions are preprocessor directives passed to the compiler (e.g., 23 23 // line-number directives) and C/C++ style comments, which are ignored. … … 25 25 //**************************** Includes and Defines **************************** 26 26 27 unsigned int column = 0; // position of the end of the last token parsed 28 #define YY_USER_ACTION column += yyleng; // trigger before each matching rule's action 29 27 30 #include <string> 28 31 #include <cstdio> // FILENAME_MAX 32 using namespace std; 29 33 30 34 #include "ParseNode.h" … … 32 36 33 37 char *yyfilename; 34 st d::string *strtext;// accumulate parts of character and string constant value38 string *strtext; // accumulate parts of character and string constant value 35 39 36 40 #define RETURN_LOCN(x) yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return( x ) 37 #define RETURN_VAL(x) yylval.tok.str = new st d::string( yytext ); RETURN_LOCN( x )41 #define RETURN_VAL(x) yylval.tok.str = new string( yytext ); RETURN_LOCN( x ) 38 42 #define RETURN_CHAR(x) yylval.tok.str = nullptr; RETURN_LOCN( x ) 39 43 #define RETURN_STR(x) yylval.tok.str = strtext; RETURN_LOCN( x ) 40 44 41 45 #define WHITE_RETURN(x) // do nothing 42 #define NEWLINE_RETURN() WHITE_RETURN( '\n' )46 #define NEWLINE_RETURN() column = 0; WHITE_RETURN( '\n' ) 43 47 #define ASCIIOP_RETURN() RETURN_CHAR( (int)yytext[0] ) // single character operator 44 48 #define NAMEDOP_RETURN(x) RETURN_CHAR( x ) // multichar operator, with a name … … 154 158 memcpy( &filename, begin_string + 1, length ); // copy file name from yytext 155 159 filename[ length ] = '\0'; // terminate string with sentinel 156 // std::cout << "file " << filename << " line " << lineno << std::endl;160 //cout << "file " << filename << " line " << lineno << endl; 157 161 yylineno = lineno; 158 162 yyfilename = filename; … … 302 306 303 307 /* character constant, allows empty value */ 304 ({cwide_prefix}[_]?)?['] { BEGIN QUOTE; rm_underscore(); strtext = new st d::string( yytext, yyleng ); }308 ({cwide_prefix}[_]?)?['] { BEGIN QUOTE; rm_underscore(); strtext = new string( yytext, yyleng ); } 305 309 <QUOTE>[^'\\\n]* { strtext->append( yytext, yyleng ); } 306 310 <QUOTE>['\n] { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); } … … 308 312 309 313 /* string constant */ 310 ({swide_prefix}[_]?)?["] { BEGIN STRING; rm_underscore(); strtext = new st d::string( yytext, yyleng ); }314 ({swide_prefix}[_]?)?["] { BEGIN STRING; rm_underscore(); strtext = new string( yytext, yyleng ); } 311 315 <STRING>[^"\\\n]* { strtext->append( yytext, yyleng ); } 312 316 <STRING>["\n] { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); } … … 422 426 } 423 427 424 /* unknown character s*/425 . { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }428 /* unknown character */ 429 . { yyerror( "unknown character" ); } 426 430 427 431 %% 432 // ----end of lexer---- 433 434 void yyerror( const char * errmsg ) { 435 cout << (yyfilename ? yyfilename : "*unknown file*") << ':' << yylineno << ':' << column - yyleng + 1 436 << ": " << SemanticError::error_str() << errmsg << " at token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << '"' << endl; 437 } 428 438 429 439 // Local Variables: // -
src/Parser/parser.yy
r326338ae rfbcb354 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Aug 26 17:50:19 201713 // Update Count : 27 1212 // Last Modified On : Wed Aug 30 07:04:19 2017 13 // Update Count : 2740 14 14 // 15 15 … … 48 48 #include <cstdio> 49 49 #include <stack> 50 using namespace std; 51 50 52 #include "ParseNode.h" 51 53 #include "TypedefTable.h" 52 54 #include "TypeData.h" 53 55 #include "LinkageSpec.h" 54 using namespace std; 56 #include "Common/SemanticError.h" // error_str 55 57 56 58 extern DeclarationNode * parseTree; … … 3133 3135 // ----end of grammar---- 3134 3136 3135 extern char *yytext;3136 3137 void yyerror( const char * ) {3138 cout << "Error ";3139 if ( yyfilename ) {3140 cout << "in file " << yyfilename << " ";3141 } // if3142 cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << endl;3143 }3144 3145 3137 // Local Variables: // 3146 3138 // mode: c++ // -
src/ResolvExpr/AlternativeFinder.cc
r326338ae rfbcb354 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sat May 16 23:52:08 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Wed Jul 26 11:33:00201713 // Update Count : 3 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 28 13:47:24 2017 13 // Update Count : 32 14 14 // 15 15 … … 195 195 AltList winners; 196 196 findMinCost( alternatives.begin(), alternatives.end(), back_inserter( winners ) ); 197 stream << "Can 't choose between " << winners.size() << " alternatives for expression ";197 stream << "Cannot choose between " << winners.size() << " alternatives for expression "; 198 198 expr->print( stream ); 199 199 stream << "Alternatives are:"; -
src/SymTab/Validate.cc
r326338ae rfbcb354 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 21:50:04 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Tus Aug 8 13:27:00201713 // Update Count : 35 811 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 28 13:47:23 2017 13 // Update Count : 359 14 14 // 15 15 … … 709 709 } else { 710 710 TypeDeclMap::const_iterator base = typedeclNames.find( typeInst->get_name() ); 711 assertf( base != typedeclNames.end(), "Can 't find typedecl name %s", typeInst->get_name().c_str() );711 assertf( base != typedeclNames.end(), "Cannot find typedecl name %s", typeInst->get_name().c_str() ); 712 712 typeInst->set_baseType( base->second ); 713 713 } // if -
src/libcfa/concurrency/coroutine
r326338ae rfbcb354 1 // - *- Mode: CFA - *-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 11 10 // Created On : Mon Nov 28 12:27:26 2016 12 11 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Sat Jul 22 09:57:17201714 // Update Count : 212 // Last Modified On : Wed Aug 30 07:58:29 2017 13 // Update Count : 3 15 14 // 16 15 -
src/prelude/prelude.cf
r326338ae rfbcb354 1 // -*- Mode: C -*-2 1 // 3 2 // Copyright (C) Glen Ditchfield 1994, 1999 … … 8 7 // Created On : Sat Nov 29 07:23:41 2014 9 8 // Last Modified By : Peter A. Buhr 10 // Last Modified On : Tue Jul 5 18:04:40 201611 // Update Count : 9 29 // Last Modified On : Wed Aug 30 07:56:07 2017 10 // Update Count : 93 12 11 // 13 12 -
src/tests/.expect/castError.txt
r326338ae rfbcb354 1 castError.c:7 error: Can't choose between 3 alternatives for expression Cast of:1 castError.c:7:1 error: Cannot choose between 3 alternatives for expression Cast of: 2 2 Name: f 3 3 -
src/tests/.expect/completeTypeError.txt
r326338ae rfbcb354 1 completeTypeError.c:34 error: No reasonable alternatives for expression Applying untyped:1 completeTypeError.c:34:1 error: No reasonable alternatives for expression Applying untyped: 2 2 Name: *? 3 3 ...to: … … 5 5 6 6 7 completeTypeError.c:36 error: No reasonable alternatives for expression Applying untyped:7 completeTypeError.c:36:1 error: No reasonable alternatives for expression Applying untyped: 8 8 Name: baz 9 9 ...to: … … 11 11 12 12 13 completeTypeError.c:37 error: No reasonable alternatives for expression Applying untyped:13 completeTypeError.c:37:1 error: No reasonable alternatives for expression Applying untyped: 14 14 Name: quux 15 15 ...to: … … 17 17 18 18 19 completeTypeError.c:58 error: No reasonable alternatives for expression Applying untyped:19 completeTypeError.c:58:1 error: No reasonable alternatives for expression Applying untyped: 20 20 Name: baz 21 21 ...to: … … 23 23 24 24 25 completeTypeError.c:59 error: No reasonable alternatives for expression Applying untyped:25 completeTypeError.c:59:1 error: No reasonable alternatives for expression Applying untyped: 26 26 Name: quux 27 27 ...to: … … 29 29 30 30 31 completeTypeError.c:60 error: No reasonable alternatives for expression Applying untyped:31 completeTypeError.c:60:1 error: No reasonable alternatives for expression Applying untyped: 32 32 Name: *? 33 33 ...to: … … 35 35 36 36 37 completeTypeError.c:72 error: No reasonable alternatives for expression Applying untyped:37 completeTypeError.c:72:1 error: No reasonable alternatives for expression Applying untyped: 38 38 Name: baz 39 39 ...to: -
src/tests/.expect/declarationErrors.txt
r326338ae rfbcb354 1 declarationErrors.c:16 error: duplicate static in declaration of x1: static const volatile short int1 declarationErrors.c:16:1 error: duplicate static in declaration of x1: static const volatile short int 2 2 3 declarationErrors.c:17 error: conflicting extern & static in declaration of x2: extern const volatile short int3 declarationErrors.c:17:1 error: conflicting extern & static in declaration of x2: extern const volatile short int 4 4 5 declarationErrors.c:18 error: conflicting extern & auto, conflicting extern & static, conflicting extern & static, duplicate extern in declaration of x3: extern const volatile short int5 declarationErrors.c:18:1 error: conflicting extern & auto, conflicting extern & static, conflicting extern & static, duplicate extern in declaration of x3: extern const volatile short int 6 6 7 declarationErrors.c:19 error: duplicate static in declaration of x4: static const volatile instance of const volatile struct __anonymous07 declarationErrors.c:19:1 error: duplicate static in declaration of x4: static const volatile instance of const volatile struct __anonymous0 8 8 with members 9 9 with body 10 10 11 11 12 declarationErrors.c:20 error: duplicate const, duplicate static, duplicate volatile in declaration of x5: static const volatile instance of const volatile struct __anonymous112 declarationErrors.c:20:1 error: duplicate const, duplicate static, duplicate volatile in declaration of x5: static const volatile instance of const volatile struct __anonymous1 13 13 with members 14 14 with body 15 15 16 16 17 declarationErrors.c:22 error: duplicate static in declaration of x6: static const volatile instance of type Int17 declarationErrors.c:22:1 error: duplicate static in declaration of x6: static const volatile instance of type Int 18 18 19 declarationErrors.c:24 error: duplicate const in declaration of f01: static inline function19 declarationErrors.c:24:1 error: duplicate const in declaration of f01: static inline function 20 20 with no parameters 21 21 returning const volatile int 22 22 23 23 24 declarationErrors.c:25 error: duplicate volatile in declaration of f02: static inline function24 declarationErrors.c:25:1 error: duplicate volatile in declaration of f02: static inline function 25 25 with no parameters 26 26 returning const volatile int 27 27 28 28 29 declarationErrors.c:26 error: duplicate const in declaration of f03: static inline function29 declarationErrors.c:26:1 error: duplicate const in declaration of f03: static inline function 30 30 with no parameters 31 31 returning const volatile int 32 32 33 33 34 declarationErrors.c:27 error: duplicate volatile in declaration of f04: static inline function34 declarationErrors.c:27:1 error: duplicate volatile in declaration of f04: static inline function 35 35 with no parameters 36 36 returning const volatile int 37 37 38 38 39 declarationErrors.c:28 error: duplicate const in declaration of f05: static inline function39 declarationErrors.c:28:1 error: duplicate const in declaration of f05: static inline function 40 40 with no parameters 41 41 returning const volatile int 42 42 43 43 44 declarationErrors.c:29 error: duplicate volatile in declaration of f06: static inline function44 declarationErrors.c:29:1 error: duplicate volatile in declaration of f06: static inline function 45 45 with no parameters 46 46 returning const volatile int 47 47 48 48 49 declarationErrors.c:30 error: duplicate const in declaration of f07: static inline function49 declarationErrors.c:30:1 error: duplicate const in declaration of f07: static inline function 50 50 with no parameters 51 51 returning const volatile int 52 52 53 53 54 declarationErrors.c:31 error: duplicate const, duplicate volatile in declaration of f08: static inline function54 declarationErrors.c:31:1 error: duplicate const, duplicate volatile in declaration of f08: static inline function 55 55 with no parameters 56 56 returning const volatile int 57 57 58 58 59 declarationErrors.c:33 error: duplicate const, duplicate volatile in declaration of f09: static inline function59 declarationErrors.c:33:1 error: duplicate const, duplicate volatile in declaration of f09: static inline function 60 60 with no parameters 61 61 returning const volatile int 62 62 63 63 64 declarationErrors.c:34 error: duplicate const, duplicate _Atomic, duplicate _Atomic, duplicate const, duplicate restrict, duplicate volatile in declaration of f09: static inline function64 declarationErrors.c:34:1 error: duplicate const, duplicate _Atomic, duplicate _Atomic, duplicate const, duplicate restrict, duplicate volatile in declaration of f09: static inline function 65 65 with no parameters 66 66 returning const restrict volatile _Atomic int -
src/tests/.expect/dtor-early-exit-ERR1.txt
r326338ae rfbcb354 1 dtor-early-exit.c:142 error: jump to label 'L1' crosses initialization of y Branch (Goto) 1 dtor-early-exit.c:142:1 error: jump to label 'L1' crosses initialization of y Branch (Goto) 2 -
src/tests/.expect/dtor-early-exit-ERR2.txt
r326338ae rfbcb354 1 dtor-early-exit.c:142 error: jump to label 'L2' crosses initialization of y Branch (Goto) 1 dtor-early-exit.c:142:1 error: jump to label 'L2' crosses initialization of y Branch (Goto) 2 -
src/tests/.expect/memberCtors-ERR1.txt
r326338ae rfbcb354 1 memberCtors.c:71 error: in void ?{}(B &b), field a2 used before being constructed1 memberCtors.c:71:1 error: in void ?{}(B &b), field a2 used before being constructed -
src/tests/.expect/scopeErrors.txt
r326338ae rfbcb354 1 scopeErrors.c:2 error: duplicate object definition for thisIsAnError: signed int2 scopeErrors.c:20 error: duplicate function definition for butThisIsAnError: function1 scopeErrors.c:2:1 error: duplicate object definition for thisIsAnError: signed int 2 scopeErrors.c:20:1 error: duplicate function definition for butThisIsAnError: function 3 3 with parameters 4 4 double 5 returning 5 returning 6 6 _retval_butThisIsAnError: Attribute with name: unused 7 7 double 8 with body 8 with body 9 9 CompoundStmt 10 -
src/tests/div.c
r326338ae rfbcb354 1 // -*- Mode: C -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 11 10 // Created On : Tue Aug 8 16:28:43 2017 12 11 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Wed Aug 9 17:09:40201714 // Update Count : 1 612 // Last Modified On : Wed Aug 30 07:56:28 2017 13 // Update Count : 17 15 14 // 16 15 -
src/tests/ifcond.c
r326338ae rfbcb354 1 // -*- Mode: C -*-2 1 // 3 // Cforall Version 1.0.0 Copyright (C) 201 6University of Waterloo2 // Cforall Version 1.0.0 Copyright (C) 2017 University of Waterloo 4 3 // 5 4 // The contents of this file are covered under the licence agreement in the … … 11 10 // Created On : Sat Aug 26 10:13:11 2017 12 11 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Sat Aug 26 11:13:00201714 // Update Count : 1 112 // Last Modified On : Wed Aug 30 07:55:24 2017 13 // Update Count : 13 15 14 // 16 15
Note:
See TracChangeset
for help on using the changeset viewer.