-
Notifications
You must be signed in to change notification settings - Fork 13.4k
emit !align attributes on stores of operand pairs #40385
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
@bors r+ |
📌 Commit 14e9313 has been approved by |
🔒 Merge conflict |
@bors: retry |
emit !align attributes on stores of operand pairs This avoids another case of missing-align UB. cc rust-lang#40373 r? @eddyb
emit !align attributes on stores of operand pairs This avoids another case of missing-align UB. cc rust-lang#40373 r? @eddyb
emit !align attributes on stores of operand pairs This avoids another case of missing-align UB. cc rust-lang#40373 r? @eddyb
src/test/codegen/packed.rs
Outdated
pub fn call_pkd(f: fn() -> Array) -> BigPacked { | ||
// CHECK: [[ALLOCA:%[_a-z0-9]+]] = alloca %Array | ||
// CHECK: call void %{{.*}}(%Array* noalias nocapture sret dereferenceable(32) [[ALLOCA]]) | ||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* %{{.*}}, i8* %{{.*}}, i64 32, i32 1, i1 false) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This failed for me on emscripten / llvm 4.0, however I believe it may / will fail on other 32bit platforms as well:
/checkout/src/test/codegen/packed.rs:43:11: error: expected string not found in input
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* %{{.*}}, i8* %{{.*}}, i64 32, i32 1, i1 false)
^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/packed.ll:34:2: note: scanning from here
br label %bb1
^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen/packed.ll:42:2: note: possible intended match here
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %5, i32 32, i32 1, i1 false)
^
4b75ee7
to
038ec50
Compare
@bors r=eddyb |
📌 Commit 038ec50 has been approved by |
emit !align attributes on stores of operand pairs This avoids another case of missing-align UB. cc rust-lang#40373 r? @eddyb
emit !align attributes on stores of operand pairs This avoids another case of missing-align UB. cc rust-lang#40373 r? @eddyb
emit !align attributes on stores of operand pairs This avoids another case of missing-align UB. cc rust-lang#40373 r? @eddyb
Rollup of 38 pull requests - Successful merges: #39202, #39820, #39918, #39921, #40092, #40146, #40199, #40225, #40239, #40257, #40259, #40261, #40277, #40278, #40287, #40297, #40311, #40315, #40319, #40324, #40336, #40340, #40344, #40345, #40367, #40369, #40372, #40373, #40379, #40385, #40386, #40389, #40400, #40404, #40410, #40422, #40423, #40424 - Failed merges: #40220, #40329, #40426
Rollup of 38 pull requests - Successful merges: #39202, #39820, #39918, #39921, #40092, #40146, #40199, #40225, #40239, #40257, #40259, #40261, #40277, #40278, #40287, #40297, #40311, #40315, #40319, #40324, #40336, #40340, #40344, #40345, #40367, #40369, #40372, #40373, #40379, #40385, #40386, #40389, #40400, #40404, #40410, #40422, #40423, #40424 - Failed merges: #40220, #40329, #40426
emit !align attributes on stores of operand pairs This avoids another case of missing-align UB. cc rust-lang#40373 r? @eddyb
🔒 Merge conflict |
@bors retry |
@bors r- |
@bors r=eddyb |
📌 Commit 32c9893 has been approved by |
☀️ Test successful - status-appveyor, status-travis |
This avoids another case of missing-align UB. cc #40373
r? @eddyb