Coerced load/stores through memory do not take into account potential address space differences when it creates its bitcasts.
Details
Details
Diff Detail
Diff Detail
- Repository
- rC Clang
- Build Status
Buildable 24577 Build 24576: arc lint + arc unit
Event Timeline
lib/CodeGen/CGCall.cpp | ||
---|---|---|
1262 | The main reason why llvm.memcpy is an overloaded intrinsic is so that you can copy things in arbitrary address spaces. Please just cast to the appropriate i8 pointer type in the corresponding address spaces. |
Comment Actions
As per rjmccall's comments, changed the call to CreatePointerBitCastOrAddrSpaceCast back to a call to CreateBitCast, but now we're casting to the int8* with the address space of the target.
lib/CodeGen/CGCall.cpp | ||
---|---|---|
1257 | CGBuilder provides a convenient CreateElementBitCast function for this. |
CGBuilder provides a convenient CreateElementBitCast function for this.