]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agorustc_codegen_llvm: privatize as much of attributes::* as possible.
Eduard-Mihai Burtescu [Wed, 27 Nov 2019 10:55:33 +0000 (12:55 +0200)]
rustc_codegen_llvm: privatize as much of attributes::* as possible.

4 years agorustc_codegen_llvm: take an Instance in attributes::from_fn_attrs.
Eduard-Mihai Burtescu [Wed, 27 Nov 2019 10:53:19 +0000 (12:53 +0200)]
rustc_codegen_llvm: take an Instance in attributes::from_fn_attrs.

4 years agorustc_codegen_llvm: rewrite debuginfo::get_function_signature to use FnAbi.
Eduard-Mihai Burtescu [Tue, 29 Oct 2019 18:01:31 +0000 (20:01 +0200)]
rustc_codegen_llvm: rewrite debuginfo::get_function_signature to use FnAbi.

4 years agorustc: take a PolyFnSig instead of an FnSig in FnAbi::of_fn_ptr.
Eduard-Mihai Burtescu [Tue, 29 Oct 2019 20:08:50 +0000 (22:08 +0200)]
rustc: take a PolyFnSig instead of an FnSig in FnAbi::of_fn_ptr.

4 years agorustc: rename FnAbi::new to FnAbi::of_fn_ptr.
Eduard-Mihai Burtescu [Tue, 29 Oct 2019 19:57:45 +0000 (21:57 +0200)]
rustc: rename FnAbi::new to FnAbi::of_fn_ptr.

4 years agorustc: compute FnAbi's for virtual calls through FnAbi::of_instance.
Eduard-Mihai Burtescu [Tue, 29 Oct 2019 19:46:25 +0000 (21:46 +0200)]
rustc: compute FnAbi's for virtual calls through FnAbi::of_instance.

4 years agorustc: use ReifyShim for reifying Virtual call instances.
Eduard-Mihai Burtescu [Tue, 29 Oct 2019 18:56:21 +0000 (20:56 +0200)]
rustc: use ReifyShim for reifying Virtual call instances.

4 years agorustc_codegen_ssa: use FnAbi::of_instance wherever possible.
Eduard-Mihai Burtescu [Tue, 29 Oct 2019 18:01:31 +0000 (20:01 +0200)]
rustc_codegen_ssa: use FnAbi::of_instance wherever possible.

4 years agorustc_codegen_llvm: move NoReturn attribute to apply_attrs_llfn.
Eduard-Mihai Burtescu [Tue, 29 Oct 2019 17:46:18 +0000 (19:46 +0200)]
rustc_codegen_llvm: move NoReturn attribute to apply_attrs_llfn.

4 years agorustc_codegen_ssa: take a FnAbi instead of a FnSig in declare_fn.
Eduard-Mihai Burtescu [Tue, 29 Oct 2019 16:34:50 +0000 (18:34 +0200)]
rustc_codegen_ssa: take a FnAbi instead of a FnSig in declare_fn.

4 years agorustc_codegen_ssa: remove define_fn and define_internal_fn.
Eduard-Mihai Burtescu [Tue, 29 Oct 2019 16:39:54 +0000 (18:39 +0200)]
rustc_codegen_ssa: remove define_fn and define_internal_fn.

4 years agorustc_codegen_ssa: clean up lifetimes on TerminatorCodegenHelper's methods.
Eduard-Mihai Burtescu [Tue, 29 Oct 2019 16:11:11 +0000 (18:11 +0200)]
rustc_codegen_ssa: clean up lifetimes on TerminatorCodegenHelper's methods.

4 years agorustc_codegen_ssa: make codegen_instance a simple wrapper for codegen_mir.
Eduard-Mihai Burtescu [Tue, 29 Oct 2019 14:26:25 +0000 (16:26 +0200)]
rustc_codegen_ssa: make codegen_instance a simple wrapper for codegen_mir.

4 years agorustc_codegen_ssa: use &'tcx mir::Body<'tcx> instead of &'a ... for the MIR body.
Eduard-Mihai Burtescu [Tue, 29 Oct 2019 14:24:25 +0000 (16:24 +0200)]
rustc_codegen_ssa: use &'tcx mir::Body<'tcx> instead of &'a ... for the MIR body.

4 years agorustc: expose the mir::Body reference lifetime from mir::ReadOnlyBodyCache (#64736...
Eduard-Mihai Burtescu [Tue, 3 Dec 2019 10:55:58 +0000 (12:55 +0200)]
rustc: expose the mir::Body reference lifetime from mir::ReadOnlyBodyCache (#64736 fallout).

4 years agorustc_mir: don't hardcode InstanceDef::VtableShim behavior to Adjustment::DerefMove.
Eduard-Mihai Burtescu [Tue, 3 Dec 2019 10:54:47 +0000 (12:54 +0200)]
rustc_mir: don't hardcode InstanceDef::VtableShim behavior to Adjustment::DerefMove.

4 years agorustc: combine Instance::fn_sig_noadjust and Instance::fn_sig.
Eduard-Mihai Burtescu [Mon, 28 Oct 2019 19:16:41 +0000 (21:16 +0200)]
rustc: combine Instance::fn_sig_noadjust and Instance::fn_sig.

4 years agoAuto merge of #66256 - CAD97:patch-2, r=RalfJung
bors [Tue, 3 Dec 2019 01:50:33 +0000 (01:50 +0000)]
Auto merge of #66256 - CAD97:patch-2, r=RalfJung

Layout::pad_to_align is infallible

As per [this comment](https://github.com/rust-lang/rust/issues/55724#issuecomment-441421651) (cc @glandium).

> Per https://github.com/rust-lang/rust/blob/eb981a1/src/libcore/alloc.rs#L63-L65, `layout.size()` is always <= `usize::MAX - (layout.align() - 1)`.
>
> Which means:
>
> * The maximum value `layout.size()` can have is already aligned for `layout.align()` (`layout.align()` being a power of two, `usize::MAX - (layout.align() - 1)` is a multiple of `layout.align()`)
> * Incidentally, any value smaller than that maximum value will align at most to that maximum value.
>
> IOW, `pad_to_align` can not return `Err(LayoutErr)`, except for the layout not respecting its invariants, but we shouldn't care about that.

This PR makes `pad_to_align` return `Layout` directly, representing the fact that it cannot fail.

4 years agoAuto merge of #64736 - Nashenas88:mir_predecessors_cache_cleanup, r=oli-obk
bors [Mon, 2 Dec 2019 14:51:02 +0000 (14:51 +0000)]
Auto merge of #64736 - Nashenas88:mir_predecessors_cache_cleanup, r=oli-obk

Remove interior mutability in mir predecessors cache

4 years agoFix issues caused during rebasing
Paul Daniel Faria [Mon, 2 Dec 2019 14:40:03 +0000 (09:40 -0500)]
Fix issues caused during rebasing

4 years agoFix issues caused during rebasing
Paul Daniel Faria [Fri, 29 Nov 2019 23:36:16 +0000 (18:36 -0500)]
Fix issues caused during rebasing

4 years agoUse new HashStable proc macro
Paul Daniel Faria [Wed, 27 Nov 2019 15:54:49 +0000 (10:54 -0500)]
Use new HashStable proc macro

4 years agoFix tidy issues
Paul Daniel Faria [Mon, 25 Nov 2019 05:28:24 +0000 (00:28 -0500)]
Fix tidy issues

4 years agoFix rebasing errors, convert some BodyCache::body() calls to reborrows
Paul Daniel Faria [Mon, 25 Nov 2019 04:39:22 +0000 (23:39 -0500)]
Fix rebasing errors, convert some BodyCache::body() calls to reborrows

4 years agoFix type errors created during rebasing
Paul Daniel Faria [Thu, 21 Nov 2019 15:50:52 +0000 (10:50 -0500)]
Fix type errors created during rebasing

4 years agoRemove unchecked inline attribute, remove unused functions, make chache mod private...
Paul Daniel Faria [Wed, 20 Nov 2019 16:53:34 +0000 (11:53 -0500)]
Remove unchecked inline attribute, remove unused functions, make chache mod private again

4 years agoRemove inline attributes that hadn't been profiled, unexport Cache since it no longer...
Paul Daniel Faria [Wed, 20 Nov 2019 14:58:31 +0000 (09:58 -0500)]
Remove inline attributes that hadn't been profiled, unexport Cache since it no longer needs to be public

4 years agoFix type errors cause during rebasing
Paul Daniel Faria [Wed, 13 Nov 2019 05:35:45 +0000 (00:35 -0500)]
Fix type errors cause during rebasing

4 years agoCompute predecessors in mir_build query and use existing cache for generating ReadOnl...
Paul Daniel Faria [Wed, 13 Nov 2019 04:41:43 +0000 (23:41 -0500)]
Compute predecessors in mir_build query and use existing cache for generating ReadOnlyBodyCache, remove unneeded fns

4 years agoRemove files created during conflict resolution
Paul Daniel Faria [Wed, 6 Nov 2019 17:34:16 +0000 (12:34 -0500)]
Remove files created during conflict resolution

4 years agoFix typos caused during rebase
Paul Daniel Faria [Wed, 6 Nov 2019 17:29:09 +0000 (12:29 -0500)]
Fix typos caused during rebase

4 years agoRemove HasLocalDecls impl from BodyCache's, properly reborrow to Body, rename all...
Paul Daniel Faria [Wed, 6 Nov 2019 17:00:46 +0000 (12:00 -0500)]
Remove HasLocalDecls impl from BodyCache's, properly reborrow to Body, rename all body_cache back to body

4 years agoRemove BodyCache.body and rely on Deref as much as possible for ReadOnlyBodyCache
Paul Daniel Faria [Wed, 6 Nov 2019 05:04:53 +0000 (00:04 -0500)]
Remove BodyCache.body and rely on Deref as much as possible for ReadOnlyBodyCache

4 years agoUndo minor changes that weren't needed, fix one lifetime typo
Paul Daniel Faria [Tue, 5 Nov 2019 00:52:19 +0000 (19:52 -0500)]
Undo minor changes that weren't needed, fix one lifetime typo

4 years agoFix compilation errors created during rebase
Paul Daniel Faria [Mon, 4 Nov 2019 14:03:02 +0000 (09:03 -0500)]
Fix compilation errors created during rebase

4 years agoFix typo
Paul Daniel Faria [Mon, 28 Oct 2019 23:32:56 +0000 (19:32 -0400)]
Fix typo

4 years agoFix tidy errors
Paul Daniel Faria [Mon, 28 Oct 2019 22:16:25 +0000 (18:16 -0400)]
Fix tidy errors

4 years agoFix typos caused during rebase
Paul Daniel Faria [Mon, 28 Oct 2019 02:45:02 +0000 (22:45 -0400)]
Fix typos caused during rebase

4 years agoFix remaining compilation issues
Paul Daniel Faria [Mon, 28 Oct 2019 01:15:02 +0000 (21:15 -0400)]
Fix remaining compilation issues

4 years agoSimplify BodyCache impl and fix all remaining type errors in librustc_mir (lifetime...
Paul Daniel Faria [Sat, 26 Oct 2019 05:41:17 +0000 (01:41 -0400)]
Simplify BodyCache impl and fix all remaining type errors in librustc_mir (lifetime errors still exist)

4 years agoFix remaining Body -> (ReadOnly)BodyCache type errors in librustc_mir outside of...
Paul Daniel Faria [Fri, 25 Oct 2019 14:01:08 +0000 (10:01 -0400)]
Fix remaining Body -> (ReadOnly)BodyCache type errors in librustc_mir outside of librustc_mir/transform

4 years agoFix typo caused by rebasing
Paul Daniel Faria [Fri, 25 Oct 2019 13:53:59 +0000 (09:53 -0400)]
Fix typo caused by rebasing

4 years agoAdd predecessors fn to ReadOnlyBodyCache, fix more Body -> (ReadOnly)BodyCache type...
Paul Daniel Faria [Fri, 25 Oct 2019 13:36:59 +0000 (09:36 -0400)]
Add predecessors fn to ReadOnlyBodyCache, fix more Body -> (ReadOnly)BodyCache type errors

4 years agoAdd read_only fn to BodyCache<&mut...> impl, fix more Body -> (ReadOnly)BodyCache...
Paul Daniel Faria [Thu, 24 Oct 2019 13:18:04 +0000 (09:18 -0400)]
Add read_only fn to BodyCache<&mut...> impl, fix more Body -> (ReadOnly)BodyCache type errors

4 years agoFix a large number of Body -> (ReadOnly)BodyCache type errors, add predecessor_locati...
Paul Daniel Faria [Thu, 24 Oct 2019 04:38:01 +0000 (00:38 -0400)]
Fix a large number of Body -> (ReadOnly)BodyCache type errors, add predecessor_locations fn to ReadOnlyBodyCache

4 years agoAccount for new maybe_sideeffect helper that requires predecessors
Paul Daniel Faria [Wed, 23 Oct 2019 17:46:23 +0000 (13:46 -0400)]
Account for new maybe_sideeffect helper that requires predecessors

4 years agoConvert &mut to & since the reference didn't need to be mutable
Paul Daniel Faria [Mon, 14 Oct 2019 05:48:32 +0000 (01:48 -0400)]
Convert &mut to & since the reference didn't need to be mutable

4 years agoRevert back to using FunctionCx's Body
Paul Daniel Faria [Mon, 14 Oct 2019 05:38:38 +0000 (01:38 -0400)]
Revert back to using FunctionCx's Body

4 years agoAdd Body back as field of FunctionCx, but under a different lifetime
Paul Daniel Faria [Mon, 14 Oct 2019 05:12:48 +0000 (01:12 -0400)]
Add Body back as field of FunctionCx, but under a different lifetime

4 years agoImproved BodyCache body impl so it only returns a sharable ref, add new body_mut...
Paul Daniel Faria [Mon, 14 Oct 2019 04:46:56 +0000 (00:46 -0400)]
Improved BodyCache body impl so it only returns a sharable ref, add new body_mut method, fix visit macros, simplify usage in codegen_ssa analyzer

4 years agoRemove Body from FunctionCx, pass it along during librustc_codegen_ssa
Paul Daniel Faria [Sat, 12 Oct 2019 20:51:05 +0000 (16:51 -0400)]
Remove Body from FunctionCx, pass it along during librustc_codegen_ssa

4 years agoSimplify Cache wrapper to single type, impl Deref on it, fix all compilation errors...
Paul Daniel Faria [Fri, 11 Oct 2019 03:16:44 +0000 (23:16 -0400)]
Simplify Cache wrapper to single type, impl Deref on it, fix all compilation errors in librustc_codegen_ssa

4 years agoMove predecessor cache outside of Body, use wrapper types to manage Cache and Body...
Paul Daniel Faria [Thu, 10 Oct 2019 03:22:58 +0000 (23:22 -0400)]
Move predecessor cache outside of Body, use wrapper types to manage Cache and Body (WIP, amend this commit)

4 years agoMove predecessors cache back to its own type
Paul Daniel Faria [Mon, 7 Oct 2019 20:08:57 +0000 (16:08 -0400)]
Move predecessors cache back to its own type

This ensures that the cache can be properly ignored during encoding and decoding.
Fix panics that arose due to lack of encoding

4 years agoAdd back cache invalidation to basic_blocks_and_local_decls_mut
Paul Daniel Faria [Fri, 4 Oct 2019 15:46:01 +0000 (11:46 -0400)]
Add back cache invalidation to basic_blocks_and_local_decls_mut

4 years agoAddress nits and remove unneeded pass
Paul Daniel Faria [Fri, 4 Oct 2019 13:44:24 +0000 (09:44 -0400)]
Address nits and remove unneeded pass

4 years agoAddress excessive line length that was triggering warning during linting
Paul Daniel Faria [Fri, 4 Oct 2019 05:01:01 +0000 (01:01 -0400)]
Address excessive line length that was triggering warning during linting

4 years agoMove predecessors cache invalidation back to basic_blocks_mut, add a couple more...
Paul Daniel Faria [Fri, 4 Oct 2019 04:55:28 +0000 (00:55 -0400)]
Move predecessors cache invalidation back to basic_blocks_mut, add a couple more ensure_predecessors to prevent panics

4 years agoEnsure predecessors are recomputed at critical points, fixes panics
Paul Daniel Faria [Thu, 3 Oct 2019 03:49:04 +0000 (23:49 -0400)]
Ensure predecessors are recomputed at critical points, fixes panics

4 years agoAddress linting errors caught by CI
Paul Daniel Faria [Sat, 28 Sep 2019 18:23:42 +0000 (14:23 -0400)]
Address linting errors caught by CI

4 years agoFix Mir visitor macro to ensure it calls the proper method to invalidate the predeces...
Paul Daniel Faria [Sat, 28 Sep 2019 17:49:48 +0000 (13:49 -0400)]
Fix Mir visitor macro to ensure it calls the proper method to invalidate the predecessors cache

4 years agoAdd pass to ensure predecessors cache is generated after optimization
Paul Daniel Faria [Sat, 28 Sep 2019 14:47:41 +0000 (10:47 -0400)]
Add pass to ensure predecessors cache is generated after optimization

4 years agoStop invalidating predecessors cache when accessing unique basic block, invalidate...
Paul Daniel Faria [Fri, 27 Sep 2019 13:19:52 +0000 (09:19 -0400)]
Stop invalidating predecessors cache when accessing unique basic block, invalidate cache when accessing unique terminator

4 years agoGet rid of old comment
Paul Daniel Faria [Wed, 25 Sep 2019 01:29:52 +0000 (21:29 -0400)]
Get rid of old comment

4 years agoInline cache impl into Body, rename predecessor fns, change output of predecessors_fo...
Paul Daniel Faria [Wed, 25 Sep 2019 01:27:00 +0000 (21:27 -0400)]
Inline cache impl into Body, rename predecessor fns, change output of predecessors_for to slice

4 years agoRemove interior mutability in mir predecessors cache
Paul Daniel Faria [Tue, 24 Sep 2019 13:09:15 +0000 (09:09 -0400)]
Remove interior mutability in mir predecessors cache

4 years agoAuto merge of #66874 - RalfJung:miri-assert-panic, r=oli-obk
bors [Mon, 2 Dec 2019 11:43:50 +0000 (11:43 +0000)]
Auto merge of #66874 - RalfJung:miri-assert-panic, r=oli-obk

Miri engine: proper support for `Assert` MIR terminators

This puts down the basis for https://github.com/rust-lang/miri/issues/1070, and I also did some clean-up. The Miri side of this is at https://github.com/rust-lang/miri/pull/1084.

r? @oli-obk

4 years agoAuto merge of #66950 - RalfJung:rollup-12d0zx8, r=RalfJung
bors [Mon, 2 Dec 2019 08:35:24 +0000 (08:35 +0000)]
Auto merge of #66950 - RalfJung:rollup-12d0zx8, r=RalfJung

Rollup of 5 pull requests

Successful merges:

 - #66245 (Conditional compilation for sanitizers)
 - #66654 (Handle const-checks for `&mut` outside of `HasMutInterior`)
 - #66822 (libunwind_panic: adjust miri panic hack)
 - #66827 (handle diverging functions forwarding their return place)
 - #66834 (rustbuild fixes)

Failed merges:

r? @ghost

4 years agoRollup merge of #66834 - infinity0:master, r=Mark-Simulacrum
Ralf Jung [Mon, 2 Dec 2019 08:34:15 +0000 (09:34 +0100)]
Rollup merge of #66834 - infinity0:master, r=Mark-Simulacrum

rustbuild fixes

When upgrading Debian's rustc to 1.38 I needed these patches:

(1) In order to cross-compile rustc 1.38 and take it through the full rustbuild process including install, I needed the first patch.

(2) In order to build rustc 1.38 using rustc 1.38 itself I need to set --cap-lints warn, otherwise I get this error:

~~~~
error: unnecessary `unsafe` block
   --> src/bootstrap/builder.rs:148:19
    |
148 |             name: unsafe { ::std::intrinsics::type_name::<S>() },
    |                   ^^^^^^ unnecessary `unsafe` block
    |
note: lint level defined here
   --> src/bootstrap/lib.rs:107:9
    |
107 | #![deny(warnings, rust_2018_idioms, unused_lifetimes)]
    |         ^^^^^^^^
    = note: `#[deny(unused_unsafe)]` implied by `#[deny(warnings)]`

error: aborting due to previous error

error: could not compile `bootstrap`.

~~~~

In order to set --cap-lints warn however, I need bootstrap.py not to clobber RUSTFLAGS. (This worked previously, not sure if it was broken intentionally but we would like support for it.)

4 years agoRollup merge of #66827 - RalfJung:miri-missing-ret-place, r=oli-obk
Ralf Jung [Mon, 2 Dec 2019 08:34:14 +0000 (09:34 +0100)]
Rollup merge of #66827 - RalfJung:miri-missing-ret-place, r=oli-obk

handle diverging functions forwarding their return place

Fixes https://github.com/rust-lang/miri/issues/1075: the shim around diverging closures turned into function pointers actually "obtains" a return place inside a diverging function, but just uses it as the return place for a diverging callee. Handle this by using NULL places.

This is kind of a hack as it breaks our invariant that all places are dereferencable, but we'd eventually let raw pointers break that anyway I assume so that seems fine.

r? @oli-obk

4 years agoRollup merge of #66822 - RalfJung:miri-panic, r=oli-obk
Ralf Jung [Mon, 2 Dec 2019 08:34:12 +0000 (09:34 +0100)]
Rollup merge of #66822 - RalfJung:miri-panic, r=oli-obk

libunwind_panic: adjust miri panic hack

We adjust the Miri hack in libpanic_unwind such that even with `cfg(miri)`, we build a version of libpanic_unwind that actually works.

This is needed to resolve https://github.com/integer32llc/rust-playground/issues/548.

r? @oli-obk @alexcrichton

4 years agoRollup merge of #66654 - ecstatic-morse:check-consts-ref, r=eddyb,matthewjasper
Ralf Jung [Mon, 2 Dec 2019 08:34:10 +0000 (09:34 +0100)]
Rollup merge of #66654 - ecstatic-morse:check-consts-ref, r=eddyb,matthewjasper

Handle const-checks for `&mut` outside of `HasMutInterior`

Addresses [this comment](https://github.com/rust-lang/rust/pull/64470#discussion_r328200508).

Const-checking relied on `HasMutInterior` to forbid `&mut` in a const context. This was strange because all we needed to do was look for an `Rvalue::Ref` with a certain `BorrowKind`, whereas the `Qualif` traits are specifically meant to get the qualifs for a *value*. This PR removes that logic from `HasMutInterior` and moves it into `check_consts::Validator`.

As a result, we can now properly handle qualifications for `static`s, which had to be ignored previously since you can e.g. borrow a static `Cell` from another `static`. We also remove the `derived_from_illegal_borrow` logic, since it is no longer necessary; we give good errors for subsequent reborrows/borrows of illegal borrows.

4 years agoRollup merge of #66245 - tmiasko:cfg-sanitize, r=oli-obk
Ralf Jung [Mon, 2 Dec 2019 08:34:09 +0000 (09:34 +0100)]
Rollup merge of #66245 - tmiasko:cfg-sanitize, r=oli-obk

Conditional compilation for sanitizers

Configure sanitize option when compiling with a sanitizer to make
it possible to execute different code depending on whether given
sanitizer is enabled or not.

4 years agofix init_allocation_extra
Ralf Jung [Sun, 1 Dec 2019 09:02:41 +0000 (10:02 +0100)]
fix init_allocation_extra

4 years agoAssert terminator is never executed in ConstProp
Ralf Jung [Sat, 30 Nov 2019 13:21:41 +0000 (14:21 +0100)]
Assert terminator is never executed in ConstProp

4 years agofat -> wide
Ralf Jung [Sat, 30 Nov 2019 09:28:01 +0000 (10:28 +0100)]
fat -> wide

4 years agomake alloc_extra machine hook a bit nicer
Ralf Jung [Fri, 29 Nov 2019 18:42:37 +0000 (19:42 +0100)]
make alloc_extra machine hook a bit nicer

4 years agoadd and use helper method to get SourceInfo of current instruction in frame
Ralf Jung [Fri, 29 Nov 2019 10:48:37 +0000 (11:48 +0100)]
add and use helper method to get SourceInfo of current instruction in frame

4 years agoMiri: add helper fn to allocate string; simplify alloc_caller_location
Ralf Jung [Fri, 29 Nov 2019 10:29:30 +0000 (11:29 +0100)]
Miri: add helper fn to allocate string; simplify alloc_caller_location

4 years agoAdd From instances for Pointer -> ScalarMaybeUndef and Pointer -> Immediate
Ralf Jung [Fri, 29 Nov 2019 10:09:26 +0000 (11:09 +0100)]
Add From instances for Pointer -> ScalarMaybeUndef and Pointer -> Immediate

4 years agoexpose span to M::assert_panic, and provide helper to turn that into CallerLocation
Ralf Jung [Fri, 29 Nov 2019 09:13:40 +0000 (10:13 +0100)]
expose span to M::assert_panic, and provide helper to turn that into CallerLocation

4 years agoMiri: add machine hook for MIR-level assertion panics
Ralf Jung [Fri, 29 Nov 2019 08:59:52 +0000 (09:59 +0100)]
Miri: add machine hook for MIR-level assertion panics

4 years agoAuto merge of #66944 - Centril:rollup-ojsszx6, r=Centril
bors [Mon, 2 Dec 2019 03:09:36 +0000 (03:09 +0000)]
Auto merge of #66944 - Centril:rollup-ojsszx6, r=Centril

Rollup of 7 pull requests

Successful merges:

 - #66346 (Replace .unwrap() with ? in std::os::unix::net)
 - #66789 (rustc: move mir::SourceScopeLocalData to a field of SourceScopeData.)
 - #66850 (rustc: hide HirId's fmt::Debug output from -Z span_free_formats.)
 - #66905 (rustc_plugin: Remove some remaining plugin features)
 - #66907 (rustc: don't just show raw DefIndex's in BrNamed's fmt::Debug impl.)
 - #66918 (Add crc and crypto to target feature whitelist on arm)
 - #66926 (add reusable MachineStop variant to Miri engine error enum)

Failed merges:

r? @ghost

4 years agoRollup merge of #66926 - RalfJung:miri-stop, r=oli-obk
Mazdak Farrokhzad [Mon, 2 Dec 2019 03:09:07 +0000 (04:09 +0100)]
Rollup merge of #66926 - RalfJung:miri-stop, r=oli-obk

add reusable MachineStop variant to Miri engine error enum

Replace the Miri-tool-specific `Exit` error variant with something dynamically typed that all clients of the Miri engine can use.

r? @oli-obk
Cc https://github.com/rust-lang/rust/issues/66902

4 years agoRollup merge of #66918 - makotokato:aarch32-crc-crypto, r=petrochenkov
Mazdak Farrokhzad [Mon, 2 Dec 2019 03:09:06 +0000 (04:09 +0100)]
Rollup merge of #66918 - makotokato:aarch32-crc-crypto, r=petrochenkov

Add crc and crypto to target feature whitelist on arm

aarch32 (ARMv8 32-bit) supports crc and crypto.

4 years agoRollup merge of #66907 - eddyb:br-nicer-named, r=oli-obk
Mazdak Farrokhzad [Mon, 2 Dec 2019 03:09:04 +0000 (04:09 +0100)]
Rollup merge of #66907 - eddyb:br-nicer-named, r=oli-obk

rustc: don't just show raw DefIndex's in BrNamed's fmt::Debug impl.

Context: these `fmt::Debug` impls only get used with `-Z verbose` (which some tests use).

I was going to print the path like in #66850 (or rather, use `DefId`'s `fmt::Debug`, which is close but not as nice), but then I realized that most of the `DefId`s were `crate0:DefIndex(0)`, i.e. the crate root.
As the crate root is not a lifetime, they're clearly dummies of some sort, and we don't have to print anything other than the name for them.

This means that out of all the tests, there's only 5 instances of `BrNamed` that now print the full path to the lifetime parameter, and everything else is shorter instead, which doesn't feel too bad.

cc @nikomatsakis

4 years agoRollup merge of #66905 - petrochenkov:rmplugin2, r=Centril
Mazdak Farrokhzad [Mon, 2 Dec 2019 03:09:03 +0000 (04:09 +0100)]
Rollup merge of #66905 - petrochenkov:rmplugin2, r=Centril

rustc_plugin: Remove some remaining plugin features

- Plugin arguments (`#![plugin(my_plugin(args))]`) are no longer supported.
- Registering additional plugins from command line (`-Z extra-plugins=my_plugin`) is no longer supported, `-Z crate-attr=plugin(my_plugin)` can be used instead.
- Lint `plugin_as_library` is removed as mostly useless now, when plugins exist as a compatibility feature with greatly reduced functionality.
- Plugins registering additional LLVM passes (`Registry::register_llvm_pass`) are no longer supported, `-C                   passes=my_passes` can be used instead.

r? @Centril

4 years agoRollup merge of #66850 - eddyb:span-free-formats, r=oli-obk
Mazdak Farrokhzad [Mon, 2 Dec 2019 03:09:01 +0000 (04:09 +0100)]
Rollup merge of #66850 - eddyb:span-free-formats, r=oli-obk

rustc: hide HirId's fmt::Debug output from -Z span_free_formats.

This replaces the only occurrences of `HirId {...}` from tests with paths, i.e.:
```rust
[closure@HirId { owner: DefIndex(4), local_id: 15 } q:&i32, t:&T]
```
becomes, after this PR:
```rust
[closure@foo<T>::{{closure}}#0 q:&i32, t:&T]
```

r? @oli-obk cc @michaelwoerister

4 years agoRollup merge of #66789 - eddyb:mir-source-scope-local-data, r=oli-obk
Mazdak Farrokhzad [Mon, 2 Dec 2019 03:09:00 +0000 (04:09 +0100)]
Rollup merge of #66789 - eddyb:mir-source-scope-local-data, r=oli-obk

rustc: move mir::SourceScopeLocalData to a field of SourceScopeData.

By having one `ClearCrossCrate<SourceScopeLocalData>` for each scope, as opposed to a single `ClearCrossCrate` for all the `SourceScopeLocalData`s, we can represent the fact that some scopes have `SourceScopeLocalData` associated with them, and some don't.

This is useful when doing MIR inlining across crates, because the `ClearCrossCrate` will be `Clear` for the cross-crate MIR scopes and `Set` for the local ones.

Also see https://github.com/rust-lang/rust/pull/66203#issuecomment-555589574 for some context around this approach.

Fixes #51314.

4 years agoRollup merge of #66346 - linkmauve:try-in-docstring, r=Dylan-DPC
Mazdak Farrokhzad [Mon, 2 Dec 2019 03:08:55 +0000 (04:08 +0100)]
Rollup merge of #66346 - linkmauve:try-in-docstring, r=Dylan-DPC

Replace .unwrap() with ? in std::os::unix::net

As people like to copy examples, this gives them good habits.

4 years agoIncorporate fixes from review
Dylan MacKenzie [Sun, 1 Dec 2019 19:43:19 +0000 (11:43 -0800)]
Incorporate fixes from review

4 years agorustc_plugin: Some further cleanup
Vadim Petrochenkov [Sat, 30 Nov 2019 12:35:25 +0000 (15:35 +0300)]
rustc_plugin: Some further cleanup

Remove a useless test

4 years agorustc_plugin: Remove support for plugins adding LLVM passes
Vadim Petrochenkov [Sat, 30 Nov 2019 11:50:04 +0000 (14:50 +0300)]
rustc_plugin: Remove support for plugins adding LLVM passes

4 years agorustc_lint: Remove lint `plugin_as_library`
Vadim Petrochenkov [Sat, 30 Nov 2019 11:08:39 +0000 (14:08 +0300)]
rustc_lint: Remove lint `plugin_as_library`

4 years agorustc_plugin: Remove support for adding plugins from command line
Vadim Petrochenkov [Sat, 30 Nov 2019 08:31:25 +0000 (11:31 +0300)]
rustc_plugin: Remove support for adding plugins from command line

4 years agorustc_plugin: Remove support for plugin arguments
Vadim Petrochenkov [Fri, 29 Nov 2019 22:20:06 +0000 (01:20 +0300)]
rustc_plugin: Remove support for plugin arguments

4 years agoadd reusable MachineStop variant to Miri engine error enum
Ralf Jung [Sun, 1 Dec 2019 10:42:19 +0000 (11:42 +0100)]
add reusable MachineStop variant to Miri engine error enum

4 years agoConditional compilation for sanitizers
Tomasz Miąsko [Tue, 22 Oct 2019 00:00:00 +0000 (00:00 +0000)]
Conditional compilation for sanitizers

Configure sanitize option when compiling with a sanitizer to make
it possible to execute different code depending on whether given
sanitizer is enabled or not.

4 years agoAuto merge of #66917 - Centril:rollup-xj2enik, r=Centril
bors [Sun, 1 Dec 2019 06:00:33 +0000 (06:00 +0000)]
Auto merge of #66917 - Centril:rollup-xj2enik, r=Centril

Rollup of 9 pull requests

Successful merges:

 - #66503 (More useful test error messages on should_panic(expected=...) mismatch)
 - #66662 (Miri: run panic-catching tests in liballoc)
 - #66679 (Improve lifetime errors with implicit trait object lifetimes)
 - #66726 (Use recursion_limit for const eval stack limit)
 - #66790 (Do `min_const_fn` checks for `SetDiscriminant`s target)
 - #66832 (const_prop: detect and avoid catching Miri errors that require allocation)
 - #66880 (Add long error code explanation message for E0203)
 - #66890 (Format liballoc with rustfmt)
 - #66896 (pass Queries to compiler callbacks)

Failed merges:

r? @ghost

4 years agoRollup merge of #66896 - RalfJung:queries, r=Zoxc
Mazdak Farrokhzad [Sun, 1 Dec 2019 03:49:32 +0000 (04:49 +0100)]
Rollup merge of #66896 - RalfJung:queries, r=Zoxc

pass Queries to compiler callbacks

https://github.com/rust-lang/rust/pull/66791 made it impossible to access the tcx in the callbacks; this should fix that.

r? @Zoxc