From 1128813bf0c59c42144bc1aeb9f4561b4596c403 Mon Sep 17 00:00:00 2001 From: Alexander Batalov Date: Tue, 16 Aug 2022 11:35:21 +0300 Subject: [PATCH] Fix testing pointers for nulls in Sonora --- src/interpreter.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/interpreter.cc b/src/interpreter.cc index 805f375..7e96d74 100644 --- a/src/interpreter.cc +++ b/src/interpreter.cc @@ -1339,6 +1339,16 @@ static void opConditionalOperatorGreaterThan(Program* program) assert(false && "Should be unreachable"); } break; + // Sonora folks tend to use "object > 0" to test objects for nulls. + case VALUE_TYPE_PTR: + switch (value[0].opcode) { + case VALUE_TYPE_INT: + result = (intptr_t)value[1].pointerValue > (intptr_t)value[0].integerValue; + break; + default: + assert(false && "Should be unreachable"); + } + break; default: assert(false && "Should be unreachable"); }