Index: src/typing-asm.cc |
diff --git a/src/typing-asm.cc b/src/typing-asm.cc |
index c17e19b33a40ff957f9cd749f54570b7f2cedd33..47fb2b1fc3e74e7a50eb6b77e85a8acf3338ac07 100644 |
--- a/src/typing-asm.cc |
+++ b/src/typing-asm.cc |
@@ -1000,6 +1000,7 @@ void AsmTyper::VisitCall(Call* expr) { |
} |
} |
intish_ = kMaxUncombinedAdditiveSteps; |
+ expr->expression()->set_bounds(Bounds(Type::Function(zone()))); |
IntersectResult(expr, expected_type); |
} else { |
FAIL(expr, "invalid callee"); |
@@ -1135,7 +1136,7 @@ void AsmTyper::VisitBinaryOperation(BinaryOperation* expr) { |
VisitIntegerBitwiseOperator(expr, Type::Any(zone()), cache_.kAsmInt, |
cache_.kAsmSigned, true); |
if (expr->left()->IsCall() && expr->op() == Token::BIT_OR) { |
- IntersectResult(expr->left(), cache_.kAsmSigned); |
+ expr->left()->set_bounds(Bounds(cache_.kAsmSigned)); |
} |
return; |
} |
@@ -1224,7 +1225,7 @@ void AsmTyper::VisitBinaryOperation(BinaryOperation* expr) { |
right_type->Is(cache_.kAsmDouble)) { |
// For unary +, expressed as x * 1.0 |
if (expr->left()->IsCall() && expr->op() == Token::MUL) { |
- IntersectResult(expr->left(), cache_.kAsmDouble); |
+ expr->left()->set_bounds(Bounds(cache_.kAsmDouble)); |
} |
IntersectResult(expr, cache_.kAsmDouble); |
return; |