diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-07-13 02:49:24 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-07-13 02:49:24 +0200 |
| commit | 97741a01323021ccec8b0b60c6f8318c88ac373a (patch) | |
| tree | 51cd1722073498a749f158b9a6dc998fb4846055 /boot/semantic.cc | |
| parent | b2f8be605d2b79d1d4b1995646e7058bec299a22 (diff) | |
| download | elna-97741a01323021ccec8b0b60c6f8318c88ac373a.tar.gz | |
Fix ICE substracting pointers
Diffstat (limited to 'boot/semantic.cc')
| -rw-r--r-- | boot/semantic.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/boot/semantic.cc b/boot/semantic.cc index d8a3c41..3486830 100644 --- a/boot/semantic.cc +++ b/boot/semantic.cc @@ -749,6 +749,17 @@ namespace elna::boot case binary_operator::greater_equal: expression->type_decoration = lookup_primitive_type("Bool"); break; + case binary_operator::subtraction: + if (expression->lhs().type_decoration.get<pointer_type>() + && expression->rhs().type_decoration.get<pointer_type>()) + { + expression->type_decoration = lookup_primitive_type("Int"); + } + else + { + expression->type_decoration = expression->lhs().type_decoration; + } + break; default: expression->type_decoration = expression->lhs().type_decoration; break; |
