Changes in src/ResolvExpr/Resolver.cc [251ce80:8f557161]
- File:
-
- 1 edited
-
src/ResolvExpr/Resolver.cc (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/Resolver.cc
r251ce80 r8f557161 1106 1106 1107 1107 /// Removes cast to type of argument (unlike StripCasts, also handles non-generated casts) 1108 void removeExtraneousCast( ast::ptr<ast::Expr> & expr , const ast::SymbolTable & symtab) {1108 void removeExtraneousCast( ast::ptr<ast::Expr> & expr ) { 1109 1109 if ( const ast::CastExpr * castExpr = expr.as< ast::CastExpr >() ) { 1110 1110 if ( typesCompatible( castExpr->arg->result, castExpr->result ) ) { … … 1196 1196 ast::ptr< ast::Expr > castExpr = new ast::CastExpr{ untyped, type }; 1197 1197 ast::ptr< ast::Expr > newExpr = findSingleExpression( castExpr, context ); 1198 removeExtraneousCast( newExpr , context.symtab);1198 removeExtraneousCast( newExpr ); 1199 1199 return newExpr; 1200 1200 } … … 1261 1261 static size_t traceId; 1262 1262 Resolver_new( const ast::TranslationGlobal & global ) : 1263 ast::WithSymbolTable(ast::SymbolTable::ErrorDetection::ValidateOnAdd), 1263 1264 context{ symtab, global } {} 1264 1265 Resolver_new( const ResolveContext & context ) : … … 1340 1341 auto mutAttr = mutate(attr); 1341 1342 mutAttr->params.front() = resolved; 1342 if (! result. second) {1343 if (! result.hasKnownValue) { 1343 1344 SemanticWarning(loc, Warning::GccAttributes, 1344 1345 toCString( name, " priorities must be integers from 0 to 65535 inclusive: ", arg ) ); 1345 1346 } 1346 1347 else { 1347 auto priority = result. first;1348 auto priority = result.knownValue; 1348 1349 if (priority < 101) { 1349 1350 SemanticWarning(loc, Warning::GccAttributes, … … 2040 2041 const ast::Type * initContext = currentObject.getCurrentType(); 2041 2042 2042 removeExtraneousCast( newExpr , symtab);2043 removeExtraneousCast( newExpr ); 2043 2044 2044 2045 // check if actual object's type is char[]
Note:
See TracChangeset
for help on using the changeset viewer.