llvm-project
4e12d4bc - [Clang][Sema] Promote pointers to common address space in pointer subtraction (#217341)

Commit
8 days ago
[Clang][Sema] Promote pointers to common address space in pointer subtraction (#217341) fixes #216804 ## Summary This PR fixes pointer subtraction between pointers with different but overlapping address spaces (e.g., `private` and `generic` in OpenCL). Previously, when subtracting a private pointer from a generic pointer on AMDGPU: - The private pointer (AS5, 32-bit) was converted directly to i32 via `ptrtoaddr` - The generic pointer (AS0, 64-bit) was converted to i64 via `ptrtoaddr` - This resulted in incorrect comparison of 32-bit vs 64-bit values Now, pointers are first promoted to the composite (superset) address space using `addrspacecast` before the subtraction. This mirrors how the conditional operator (`?:`) already handles mixed address space pointers. ## Test plan - `clang/test/CodeGenOpenCL/size_t.cl` updated and passes - Verified generated IR shows correct `addrspacecast` before `ptrtoaddr` for AMDGCN and SPIR targets --------- Signed-off-by: addmisol <addmisol9@gmail.com>
Author
Parents
Loading