[all-commits] [llvm/llvm-project] 4e12d4: [Clang][Sema] Promote pointers to common address s...
Addmisol via All-commits
all-commits at lists.llvm.org
Tue Sep 8 15:08:36 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 4e12d4bc6b5fc33f0e556f8f282cf97d2843c39b
https://github.com/llvm/llvm-project/commit/4e12d4bc6b5fc33f0e556f8f282cf97d2843c39b
Author: Addmisol <addmisol9 at gmail.com>
Date: 2026-09-08 (Tue, 08 Sep 2026)
Changed paths:
M clang/lib/Sema/SemaExpr.cpp
M clang/test/CodeGenOpenCL/address-spaces-conversions.cl
M clang/test/CodeGenOpenCL/size_t.cl
Log Message:
-----------
[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 at gmail.com>
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list