Changeset 5809461 for src/InitTweak
- Timestamp:
- Sep 1, 2017, 6:59:48 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:
- b0dfbc4
- Parents:
- bc3127d
- Location:
- src/InitTweak
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/InitTweak/FixInit.cc
rbc3127d r5809461 127 127 128 128 // don't go into other functions 129 virtual void visit( __attribute__((unused)) FunctionDecl *decl) override {}129 virtual void visit( FunctionDecl * ) override {} 130 130 131 131 protected: … … 913 913 // of the error. See C++ Reference 6.6 Jump Statements for details. 914 914 void InsertDtors::handleGoto( BranchStmt * stmt ) { 915 assert( stmt->get_target() != "" && "BranchStmt missing a label" ); 915 // can't do anything for computed goto 916 if ( stmt->computedTarget ) return; 917 918 assertf( stmt->get_target() != "", "BranchStmt missing a label: %s", toString( stmt ).c_str() ); 916 919 // S_L = lvars = set of objects in scope at label definition 917 920 // S_G = curVars = set of objects in scope at goto statement -
src/InitTweak/InitTweak.cc
rbc3127d r5809461 497 497 using Visitor::visit; 498 498 499 virtual void visit( __attribute((unused)) ApplicationExpr *applicationExpr ) { isConstExpr = false; } 500 virtual void visit( __attribute((unused)) UntypedExpr *untypedExpr ) { isConstExpr = false; } 501 virtual void visit( NameExpr *nameExpr ) { 502 // xxx - temporary hack, because 0 and 1 really should be constexprs, even though they technically aren't in Cforall today 503 if ( nameExpr->get_name() != "0" && nameExpr->get_name() != "1" ) isConstExpr = false; 504 } 499 virtual void visit( ApplicationExpr * ) { isConstExpr = false; } 500 virtual void visit( UntypedExpr * ) { isConstExpr = false; } 501 virtual void visit( NameExpr * ) { isConstExpr = false; } 505 502 // virtual void visit( CastExpr *castExpr ) { isConstExpr = false; } 506 503 virtual void visit( AddressExpr *addressExpr ) { … … 509 506 if ( ! dynamic_cast< NameExpr * >( arg) && ! dynamic_cast< VariableExpr * >( arg ) && ! dynamic_cast< MemberExpr * >( arg ) && ! dynamic_cast< UntypedMemberExpr * >( arg ) ) isConstExpr = false; 510 507 } 511 virtual void visit( __attribute((unused)) LabelAddressExpr *labAddressExpr ) { isConstExpr = false; } 512 virtual void visit( __attribute((unused)) UntypedMemberExpr *memberExpr ) { isConstExpr = false; } 513 virtual void visit( __attribute((unused)) MemberExpr *memberExpr ) { isConstExpr = false; } 514 virtual void visit( __attribute((unused)) VariableExpr *variableExpr ) { isConstExpr = false; } 508 virtual void visit( UntypedMemberExpr * ) { isConstExpr = false; } 509 virtual void visit( MemberExpr * ) { isConstExpr = false; } 510 virtual void visit( VariableExpr * ) { isConstExpr = false; } 515 511 // these might be okay? 516 512 // virtual void visit( SizeofExpr *sizeofExpr ); … … 523 519 // virtual void visit( LogicalExpr *logicalExpr ); 524 520 // virtual void visit( ConditionalExpr *conditionalExpr ); 525 virtual void visit( __attribute((unused)) TypeExpr *typeExpr) { isConstExpr = false; }526 virtual void visit( __attribute((unused)) AsmExpr *asmExpr) { isConstExpr = false; }527 virtual void visit( __attribute((unused)) UntypedValofExpr *valofExpr) { isConstExpr = false; }528 virtual void visit( __attribute((unused)) CompoundLiteralExpr *compLitExpr) { isConstExpr = false; }529 virtual void visit( __attribute((unused)) UntypedTupleExpr *tupleExpr) { isConstExpr = false; }530 virtual void visit( __attribute((unused)) TupleExpr *tupleExpr) { isConstExpr = false; }531 virtual void visit( __attribute((unused)) TupleAssignExpr *tupleExpr) { isConstExpr = false; }521 virtual void visit( TypeExpr * ) { isConstExpr = false; } 522 virtual void visit( AsmExpr * ) { isConstExpr = false; } 523 virtual void visit( UntypedValofExpr * ) { isConstExpr = false; } 524 virtual void visit( CompoundLiteralExpr * ) { isConstExpr = false; } 525 virtual void visit( UntypedTupleExpr * ) { isConstExpr = false; } 526 virtual void visit( TupleExpr * ) { isConstExpr = false; } 527 virtual void visit( TupleAssignExpr * ) { isConstExpr = false; } 532 528 533 529 bool isConstExpr;
Note: See TracChangeset
for help on using the changeset viewer.