]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoDirectly use types from libsyntax::ast
Mark Rousskov [Wed, 20 Nov 2019 01:02:16 +0000 (20:02 -0500)]
Directly use types from libsyntax::ast

4 years agoRe-export Client from rustc_data_structures::jobserver
Mark Rousskov [Wed, 20 Nov 2019 00:21:47 +0000 (19:21 -0500)]
Re-export Client from rustc_data_structures::jobserver

4 years agoMove NativeLibraryKind to rustc_session
Mark Rousskov [Thu, 14 Nov 2019 17:16:24 +0000 (12:16 -0500)]
Move NativeLibraryKind to rustc_session

4 years agoMove early lint declarations to librustc_session
Mark Rousskov [Tue, 12 Nov 2019 17:09:20 +0000 (12:09 -0500)]
Move early lint declarations to librustc_session

4 years agoMove Lint to rustc_session
Mark Rousskov [Tue, 12 Nov 2019 16:52:26 +0000 (11:52 -0500)]
Move Lint to rustc_session

This commit breaks early-lint registration, which will be fixed in the
next commit. This movement will allow essentially all crates in the compiler
tree to declare lints (though not lint passes).

4 years agoMove Level to rustc_session
Mark Rousskov [Tue, 12 Nov 2019 13:51:57 +0000 (08:51 -0500)]
Move Level to rustc_session

4 years agoMove duration_to_secs_str to rustc_session
Mark Rousskov [Tue, 12 Nov 2019 13:30:40 +0000 (08:30 -0500)]
Move duration_to_secs_str to rustc_session

4 years agoMove cgu_reuse_tracker to librustc_session
Mark Rousskov [Tue, 12 Nov 2019 13:22:16 +0000 (08:22 -0500)]
Move cgu_reuse_tracker to librustc_session

4 years agoIntroduce rustc_session crate
Mark Rousskov [Tue, 12 Nov 2019 13:17:33 +0000 (08:17 -0500)]
Introduce rustc_session crate

4 years agoDecouple CguReuseTracker from Session
Mark Rousskov [Tue, 12 Nov 2019 13:07:35 +0000 (08:07 -0500)]
Decouple CguReuseTracker from Session

4 years agoUse FxHash* from data structures not nodemap
Mark Rousskov [Tue, 12 Nov 2019 13:04:39 +0000 (08:04 -0500)]
Use FxHash* from data structures not nodemap

4 years agoAuto merge of #66982 - Centril:rollup-yq2281i, r=Centril
bors [Tue, 3 Dec 2019 13:21:03 +0000 (13:21 +0000)]
Auto merge of #66982 - Centril:rollup-yq2281i, r=Centril

Rollup of 6 pull requests

Successful merges:

 - #66148 (Show the sign for signed ops on `exact_div`)
 - #66651 (Add `enclosing scope` parameter to `rustc_on_unimplemented`)
 - #66904 (Adding docs for keyword match, move)
 - #66935 (syntax: Unify macro and attribute arguments in AST)
 - #66941 (Remove `ord` lang item)
 - #66967 (Remove hack for top-level or-patterns in match checking)

Failed merges:

r? @ghost

4 years agoRollup merge of #66967 - Nadrieril:remove-or-pat-hack, r=varkor
Mazdak Farrokhzad [Tue, 3 Dec 2019 10:07:08 +0000 (11:07 +0100)]
Rollup merge of #66967 - Nadrieril:remove-or-pat-hack, r=varkor

Remove hack for top-level or-patterns in match checking

Follow-up to #66612.

Or-patterns are now truly first-class in match checking. As a side-effect, redundant subpatterns are linted as such, making the `unreachable_patterns` lint a bit more general.

cc #54883

r? @varkor

4 years agoRollup merge of #66941 - CAD97:nord, r=Dylan-DPC
Mazdak Farrokhzad [Tue, 3 Dec 2019 10:07:07 +0000 (11:07 +0100)]
Rollup merge of #66941 - CAD97:nord, r=Dylan-DPC

Remove `ord` lang item

At this point it seems to be unused, and just `partial_ord` is used instead. This removes the unused lang item.

4 years agoRollup merge of #66935 - petrochenkov:attrtok2, r=Centril
Mazdak Farrokhzad [Tue, 3 Dec 2019 10:07:05 +0000 (11:07 +0100)]
Rollup merge of #66935 - petrochenkov:attrtok2, r=Centril

syntax: Unify macro and attribute arguments in AST

The unified form (`ast::MacArgs`) represents parsed arguments instead of an unstructured token stream that was previously used for attributes.
It also tracks some spans and delimiter kinds better for fn-like macros and macro definitions.

I've been talking about implementing this with @nnethercote in https://github.com/rust-lang/rust/pull/65750#issuecomment-546517322.
The parsed representation is closer to `MetaItem` and requires less token juggling during conversions, so it potentially may be faster.

r? @Centril

4 years agoRollup merge of #66904 - DevinR528:keyword-doc, r=Dylan-DPC
Mazdak Farrokhzad [Tue, 3 Dec 2019 10:07:04 +0000 (11:07 +0100)]
Rollup merge of #66904 - DevinR528:keyword-doc, r=Dylan-DPC

Adding docs for keyword match, move

Partial fix of issue #34601.

4 years agoRollup merge of #66651 - Areredify:on-unimplemented-scope, r=davidtwco
Mazdak Farrokhzad [Tue, 3 Dec 2019 10:07:01 +0000 (11:07 +0100)]
Rollup merge of #66651 - Areredify:on-unimplemented-scope, r=davidtwco

Add `enclosing scope` parameter to `rustc_on_unimplemented`

Adds a new parameter to `#[rustc_on_unimplemented]`, `enclosing scope`, which highlights the function or closure scope with a message.

The wip part refers to adding this annotation to `Try` trait to improve ergonomics (which I don't know how to do since I change both std and librustc)

Closes #61709.

4 years agoRollup merge of #66148 - oli-obk:it_must_be_a_sign, r=RalfJung
Mazdak Farrokhzad [Tue, 3 Dec 2019 10:06:57 +0000 (11:06 +0100)]
Rollup merge of #66148 - oli-obk:it_must_be_a_sign, r=RalfJung

Show the sign for signed ops on `exact_div`

r? @RalfJung Cc https://github.com/rust-lang/miri/pull/961/files#r341842128

I'm fairly unhappy with the duplication and the general effort required for this.

Maybe it would be better to add a `display` impl for `ImmTy`?

4 years agoAuto merge of #66947 - matthiaskrgr:submodule_upd, r=oli-obk
bors [Tue, 3 Dec 2019 09:51:07 +0000 (09:51 +0000)]
Auto merge of #66947 - matthiaskrgr:submodule_upd, r=oli-obk

submodules: update clippy from 7b8e8293 to 45196cee

Changes:
````
account for external macro in MISSING_INLINE_IN_PUBLIC_ITEMS lint
build(tests/fmt): use shared target dir
chore: fix and split some ui tests on 32bit system
build: set up build job for i686 targets
remove needless my_lint ui test
git quiet
deploy: cd to out/ before adding files to git
Less needless_doctest_main false positives
fmt
Feed the dog
Use rustc_env instead of exec_env for test
Make triggering this lint less likely :paperclip:
Use exec_env to set backtrace level and normalize output
Update custom ICE function with latest rustc
Use Clippy version in ICE message
Add custom ICE message that points to Clippy repo
Fix master deployment
Run update_lints
Add projections check to EUV for escape analysis
Use infer_ctxt
Move use_self to nursery
Use `println!` on success instead of `eprintln!`
Revert "Disable chalk integration test. Output too large"
Remove the old integration-tests.sh script
Use rust implementation for integration tests in CI
Rust implementation of integration test
Don't error on clippy.toml of dependencies
Fix categorizations
Fix arguments on ExprUseVisitor::new
euv moved from middle to typeck
cmt_ -> Place
build: check if RTIM is not installed
make use of Result::map_or
trigger string_lit_as_bytes when literal has escapes
Remove negative float literal checks.
Enable deny-warnings feature everywhere in CI
Remove unused debugging feature
implemented `as_conversions` lint
fixing a typo
[comparison_chain] #4827 Check `core::cmp::Ord` is implemented
add a good example for the approx_const lint
Add suggested good cases in docs for lifetimes lint
````
Fixes #66840

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 agosubmodules: update clippy from 7b8e8293 to 7a943a9d
Matthias Krüger [Mon, 2 Dec 2019 22:09:48 +0000 (23:09 +0100)]
submodules: update clippy from 7b8e8293 to 7a943a9d

Changes:
````
Normalize custom ICE test
Rustup to rust-lang/rust#64736
Use assert_crate_local for a more explicit error
Rustup to https://github.com/rust-lang/rust/pull/66789
account for external macro in MISSING_INLINE_IN_PUBLIC_ITEMS lint
build(tests/fmt): use shared target dir
chore: fix and split some ui tests on 32bit system
build: set up build job for i686 targets
remove needless my_lint ui test
git quiet
deploy: cd to out/ before adding files to git
Less needless_doctest_main false positives
fmt
Feed the dog
Use rustc_env instead of exec_env for test
Make triggering this lint less likely :paperclip:
Use exec_env to set backtrace level and normalize output
Update custom ICE function with latest rustc
Use Clippy version in ICE message
Add custom ICE message that points to Clippy repo
Fix master deployment
Run update_lints
Add projections check to EUV for escape analysis
Use infer_ctxt
Move use_self to nursery
Use `println!` on success instead of `eprintln!`
Revert "Disable chalk integration test. Output too large"
Remove the old integration-tests.sh script
Use rust implementation for integration tests in CI
Rust implementation of integration test
Don't error on clippy.toml of dependencies
Fix categorizations
Fix arguments on ExprUseVisitor::new
euv moved from middle to typeck
cmt_ -> Place
build: check if RTIM is not installed
make use of Result::map_or
trigger string_lit_as_bytes when literal has escapes
Remove negative float literal checks.
Enable deny-warnings feature everywhere in CI
Remove unused debugging feature
implemented `as_conversions` lint
fixing a typo
[comparison_chain] #4827 Check `core::cmp::Ord` is implemented
add a good example for the approx_const lint
Add suggested good cases in docs for lifetimes lint
````

4 years agoAddress review comments
Vadim Petrochenkov [Mon, 2 Dec 2019 18:56:11 +0000 (21:56 +0300)]
Address review comments

4 years agosyntax: Optimize conversion `AttrItem` -> `MetaItem` by avoiding `outer_tokens`.
Vadim Petrochenkov [Sun, 1 Dec 2019 16:16:44 +0000 (19:16 +0300)]
syntax: Optimize conversion `AttrItem` -> `MetaItem` by avoiding `outer_tokens`.

4 years agosyntax: Use `ast::MacArgs` for macro definitions
Vadim Petrochenkov [Sun, 1 Dec 2019 14:53:59 +0000 (17:53 +0300)]
syntax: Use `ast::MacArgs` for macro definitions

4 years agosyntax: Use `ast::MacArgs` for attributes
Vadim Petrochenkov [Sun, 1 Dec 2019 14:07:38 +0000 (17:07 +0300)]
syntax: Use `ast::MacArgs` for attributes

4 years agosyntax: Remove redundant span from `ast::Mac`
Vadim Petrochenkov [Sun, 1 Dec 2019 12:55:32 +0000 (15:55 +0300)]
syntax: Remove redundant span from `ast::Mac`

Also remove a couple of redundant `visit_mac` asserts

4 years agosyntax: Introduce a struct `MacArgs` for macro arguments
Vadim Petrochenkov [Sat, 30 Nov 2019 23:25:32 +0000 (02:25 +0300)]
syntax: Introduce a struct `MacArgs` for macro arguments

4 years agoRemove top-level or-pattern hack
Nadrieril [Fri, 29 Nov 2019 15:53:54 +0000 (15:53 +0000)]
Remove top-level or-pattern hack

4 years agoMove recently changed tests to the correct file
Nadrieril [Fri, 29 Nov 2019 13:02:14 +0000 (13:02 +0000)]
Move recently changed tests to the correct file

4 years agoCorrect error on partially unreachable or-pat in `if let`
Nadrieril [Fri, 29 Nov 2019 12:51:34 +0000 (12:51 +0000)]
Correct error on partially unreachable or-pat in `if let`

4 years agoLint for redundant branches in or-patterns
Nadrieril [Thu, 28 Nov 2019 16:56:45 +0000 (16:56 +0000)]
Lint for redundant branches in or-patterns

4 years agoAdd some tests
Nadrieril [Fri, 29 Nov 2019 12:25:36 +0000 (12:25 +0000)]
Add some tests

4 years agoSimplify lifetimes by allocating patterns on the arena
Nadrieril [Thu, 28 Nov 2019 13:03:02 +0000 (13:03 +0000)]
Simplify lifetimes by allocating patterns on the arena

We want the lifetimes of the patterns contained in the matrix and the
candidate `PatStack` to be the same so that they can be mixed together.
A lot of this would not be necessary if `SmallVec` was covariant in its
type argument (see https://github.com/servo/rust-smallvec/issues/146).

4 years ago`UsefulWithWitness` always carries some witnesses
Nadrieril [Wed, 27 Nov 2019 16:50:42 +0000 (16:50 +0000)]
`UsefulWithWitness` always carries some witnesses

4 years agoDon't build the same matrix twice
Nadrieril [Sun, 3 Nov 2019 17:10:33 +0000 (17:10 +0000)]
Don't build the same matrix twice

The exact same logic was used in check_arms and check_match to build the
matrix of relevant patterns. It would actually probably have been a bug
if it was not the case, since exhaustiveness checking should be the same
as checking reachability of an additional `_ => ...` match branch.

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