Changeset ab780e6 for src/ResolvExpr/CandidateFinder.cpp
- Timestamp:
- Apr 11, 2024, 3:43:48 PM (3 months ago)
- Branches:
- master
- Children:
- b78c54f
- Parents:
- c4024b46
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/CandidateFinder.cpp
rc4024b46 rab780e6 46 46 #include "AST/Type.hpp" 47 47 #include "Common/utility.h" // for move, copy 48 #include "Parser/parserutility.h" // for notZeroExpr49 48 #include "SymTab/Mangler.h" 50 49 #include "Tuples/Tuples.h" // for handleTupleAssignment … … 1587 1586 void Finder::postvisit( const ast::LogicalExpr * logicalExpr ) { 1588 1587 CandidateFinder finder1( context, tenv ); 1589 ast::ptr<ast::Expr> arg1 = notZeroExpr( logicalExpr->arg1 );1588 ast::ptr<ast::Expr> arg1 = createCondExpr( logicalExpr->arg1 ); 1590 1589 finder1.find( arg1, ResolveMode::withAdjustment() ); 1591 1590 if ( finder1.candidates.empty() ) return; 1592 1591 1593 1592 CandidateFinder finder2( context, tenv ); 1594 ast::ptr<ast::Expr> arg2 = notZeroExpr( logicalExpr->arg2 );1593 ast::ptr<ast::Expr> arg2 = createCondExpr( logicalExpr->arg2 ); 1595 1594 finder2.find( arg2, ResolveMode::withAdjustment() ); 1596 1595 if ( finder2.candidates.empty() ) return; … … 1618 1617 void Finder::postvisit( const ast::ConditionalExpr * conditionalExpr ) { 1619 1618 // candidates for condition 1620 ast::ptr<ast::Expr> arg1 = notZeroExpr( conditionalExpr->arg1 );1619 ast::ptr<ast::Expr> arg1 = createCondExpr( conditionalExpr->arg1 ); 1621 1620 CandidateFinder finder1( context, tenv ); 1622 1621 finder1.find( arg1, ResolveMode::withAdjustment() ); … … 2201 2200 } 2202 2201 2202 const ast::Expr * createCondExpr( const ast::Expr * expr ) { 2203 assert( expr ); 2204 return new ast::CastExpr( expr->location, 2205 ast::UntypedExpr::createCall( expr->location, 2206 "?!=?", 2207 { 2208 expr, 2209 new ast::ConstantExpr( expr->location, 2210 new ast::ZeroType(), "0", std::make_optional( 0ull ) 2211 ), 2212 } 2213 ), 2214 new ast::BasicType( ast::BasicType::SignedInt ) 2215 ); 2216 } 2217 2203 2218 } // namespace ResolvExpr 2204 2219
Note: See TracChangeset
for help on using the changeset viewer.