[PATCH] D135858: [clang][Interp] Support pointer arithmethic in binary operators
Shafik Yaghmour via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 13 14:46:58 PDT 2022
shafik added inline comments.
================
Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:241
+ // Pointer arithmethic special case. This is supported for one of
+ // LHS and RHS being a pointer type and the other being an integer type.
+ if (BO->getType()->isPointerType()) {
----------------
I am not sure if this is the right place to handle this but there are a bunch of other cases.
- `nullptr` can have `0` added or subtracted
- You can only do addition/subtraction from a pointer if the result in within bounds or one after the end
- You can subtract two pointers if they point to the same object.
godbolt: https://godbolt.org/z/5YTY93z8M
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D135858/new/
https://reviews.llvm.org/D135858
More information about the cfe-commits
mailing list