-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
emit !align attributes on stores of operand pairs #40385
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