bors [Tue, 27 Oct 2020 16:27:05 +0000 (16:27 +0000)]
Auto merge of #1602 - RalfJung:box, r=RalfJung
test Box::into_raw aliasing
Directly test aliasing problems caused by `Box::into_raw` issues (like we have them again right now due to https://github.com/rust-lang/rust/pull/77187, but the pinned rustc is older than that so this should still be able to land).
bors [Sat, 24 Oct 2020 10:42:24 +0000 (10:42 +0000)]
Auto merge of #1594 - camelid:dont-force-install-xargo, r=RalfJung
Don't force-install xargo
Previously miri used `cargo install xargo -f` which shouldn't be
necessary anymore since `cargo install` will now upgrade without `-f`.
The only reason I can see to use `-f` is from the cargo docs:
> This is also useful if something has changed on the system that you
> want to rebuild with, such as a newer version of `rustc`.
See the [discussion on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/why.20does.20miri.20require.20xargo/near/214351239).
Camelid [Fri, 23 Oct 2020 18:48:34 +0000 (11:48 -0700)]
Don't force-install xargo
Previously miri used `cargo install xargo -f` which shouldn't be
necessary anymore since `cargo install` will now upgrade without `-f`.
The only reason I can see to use `-f` is from the cargo docs:
> This is also useful if something has changed on the system that you
> want to rebuild with, such as a newer version of `rustc`.
See the [discussion on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/why.20does.20miri.20require.20xargo/near/214351239).
bors [Sun, 11 Oct 2020 22:34:57 +0000 (22:34 +0000)]
Auto merge of #1580 - Aaron1011:feature/backtrace-fn-ptr, r=RalfJung
Add an `fn_ptr` field to `MiriFrame`
The `backtrace-rs` crate can use this to implement
`Frame::symbol_address`, which is used to skip frames
above the call to `Backtrace::capture` on the stack.
The function pointer will not be useable for comparison purposes if the
function is generic, as CTFE creates a new function pointer for each
cast of a (monomorphized) generic function. However, this already
affects code running under Miri, and isn't a problem for `backtrace-rs`
(which only casts a non-generic function).
I've added logic to allow `MiriFrame` to have either 4 or 5 fields - if
a 5th field is present, we write the function pointer to it.
Aaron Hill [Sat, 10 Oct 2020 17:07:57 +0000 (13:07 -0400)]
Add an `fn_ptr` field to `MiriFrame`
The `backtrace-rs` crate can use this to implement
`Frame::symbol_address`, which is used to skip frames
above the call to `Backtrace::capture` on the stack.
The function pointer will not be useable for comparison purposes if the
function is generic, as CTFE creates a new function pointer for each
cast of a (monomorphized) generic function. However, this already
affects code running under Miri, and isn't a problem for `backtrace-rs`
(which only casts a non-generic function).
I've added logic to allow `MiriFrame` to have either 4 or 5 fields - if
a 5th field is present, we write the function pointer to it.
bors [Tue, 6 Oct 2020 11:36:22 +0000 (11:36 +0000)]
Auto merge of #1576 - RalfJung:gha, r=RalfJung
add bors notification jobs
There are probably ways to simplify this... I just copied this from the Rust repo and expanded the anchors and adjusted the `needs` thing. Hopefully this unblocks Miri PR landing.
bors [Sun, 4 Oct 2020 13:14:43 +0000 (13:14 +0000)]
Auto merge of #1563 - lzutao:dummy-actions, r=RalfJung
Add a dummy actions template to enable it on CI
I already had a complete template to transition from Travis and Appveyor.
Since actions will not run on repo haven't enabled it before.
I have this dummy template first to enable it on default branch.
We should address a few todo here, merge it and I will send another patch
to complete the migration.
bors [Sat, 3 Oct 2020 15:49:15 +0000 (15:49 +0000)]
Auto merge of #1570 - RalfJung:syscalls, r=RalfJung
check that all syscall arguments are scalars
`@m-ou-se` do you think this check makes sense?
The `abi` of a layout contains everything needed for the calling convention (as far as I know), so this should ensure that all the ignored arguments are passed like integers and do not otherwise mess up argument passing.
The one thing I am not sure about is what happens when more arguments are passed than fit in registers. The `syscall` man page says that all calling conventions support at least 6 arguments, except for "mips/o32" where it says that
```
[1] The mips/o32 system call convention passes arguments 5 through 8 on the user stack.
```
If we assume that passing these extra arguments to futex is legal even with that calling convention, that would mean that those user stack arguments are just silently ignored as well, which seems plausible to me -- but I know very little about calling conventions.