Change theme
Help
Press space for more information.
Show links for this issue (Shortcut: i, l)
Copy issue ID
Previous Issue (Shortcut: k)
Next Issue (Shortcut: j)
Sign in to use full features.
Vote: I am impacted
Notification menu
Refresh (Shortcut: Shift+r)
Go home (Shortcut: u)
Pending code changes (auto-populated)
Maintained by go/gitwatcher - Please do not modify manually [ID: 530458]
Maintained by go/gitwatcher - Please do not modify manually [ID: 530406]
View issue level access limits(Press Alt + Right arrow for more information)
Request for new functionality
View staffing
Description
Subtracting an unsigned 32-bit integer from a 64-bit pointer in Reactor requires to first zero-extend it. Currently LLVM implicitly sign-extends the index in a GEP operation.
This could be implemented elegantly by defining an IntPtr (and UIntPtr) type, which corresponds to Int or Long (UInt or ULong) on 32-bit or 64-bit platforms respectively. This matches (u)intptr_t in C++.
Likewise constant unsigned 32-bit array indexes and pointer offsets are not handled entirely correctly at the moment.