Commit Graph

110714 Commits

Author SHA1 Message Date
Dylan MacKenzie
59c746030a Use a ref-counted pointer for ownership of the predecessor cache
...instead of a `LockGuard` which means the lock is held for longer than
necessary.
2020-04-22 18:24:20 -07:00
Dylan MacKenzie
740f228b5b Remove predecessors_for
There is no `Arc::map` equivalent to `LockGuard::map`
2020-04-22 18:24:20 -07:00
Dylan MacKenzie
b3c26de25e Inline some function docs re-exported in std::ptr 2020-04-22 18:01:26 -07:00
bors
fc145e19d0 Auto merge of #71445 - Dylan-DPC:rollup-31givp1, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #71256 (Lint must_use on mem::replace)
 - #71350 (Error code explanation extra check)
 - #71369 (allow wasm32 compilation of librustc_data_structures/profiling.rs)
 - #71400 (proc_macro::is_available())
 - #71440 (Implement `Copy` for `AllocErr`)

Failed merges:

r? @ghost
2020-04-23 00:28:05 +00:00
Esteban Küber
25f8966b5a Sort MultiSpans on creation 2020-04-22 17:15:34 -07:00
Dylan MacKenzie
e97c227dbc Remove outdated reference to interpreter snapshotting 2020-04-22 16:31:14 -07:00
Ralf Jung
9b11c60178 update Miri 2020-04-23 00:12:04 +02:00
Amanieu d'Antras
99de3728f9 Only use read_unaligned in transmute_copy if necessary 2020-04-22 22:22:48 +01:00
Dylan DPC
bb13aab8e5
Rollup merge of #71440 - TimDiekmann:copy-allocerr, r=Amanieu
Implement `Copy` for `AllocErr`

r? @Amanieu
2020-04-22 23:19:25 +02:00
Dylan DPC
0f806534c0
Rollup merge of #71400 - dtolnay:isavailable, r=petrochenkov
proc_macro::is_available()

This PR adds `proc_macro::is_available() -> bool` to determine whether proc_macro has been made accessible to the currently running program.

The proc_macro crate is only intended for use inside the implementation of procedural macros. All the functions in the crate panic if invoked from outside of a procedural macro, such as from a build script or unit test or ordinary Rust binary.

Unfortunately those panics made it impossible for libraries that are designed to support both macro and non-macro use cases (e.g. Syn) to be used from binaries that are compiled with panic=abort. In panic=unwind mode we're able to attempt a proc macro call inside catch_unwind and use libproc_macro's result if it succeeds, otherwise fall back to a non-macro alternative implementation. But in panic=abort there was no way to determine which implementation needs to be used.

r? @eddyb
attn: @petrochenkov @adetaylor
ref: https://github.com/dtolnay/cxx/issues/130
2020-04-22 23:19:24 +02:00
Dylan DPC
16be619c6a
Rollup merge of #71369 - ctaggart:wasm32_profiling, r=ecstatic-morse
allow wasm32 compilation of librustc_data_structures/profiling.rs

I'm trying to use rustfmt from a wasm app. I ran into this compilation problem https://github.com/rust-lang/rustfmt/issues/4132 and after investigating, it looked like just adjusting a few cfg's. I based it on how measureme added support in https://github.com/rust-lang/measureme/pull/43.

My testing on my macbook was just that librustc_data_structures builds now with both:
- cargo build
- cargo build --target wasm32-unknown-unknown
2020-04-22 23:19:22 +02:00
Dylan DPC
d3e24bd457
Rollup merge of #71350 - GuillaumeGomez:error-code-explanation-extra-check, r=oli-obk
Error code explanation extra check

r? @Mark-Simulacrum
2020-04-22 23:19:20 +02:00
Dylan DPC
10e47f5b7b
Rollup merge of #71256 - cuviper:must_use_replace, r=estebank
Lint must_use on mem::replace

This adds a hint on `mem::replace`, "if you don't need the old value,
you can just assign the new value directly". This is in similar spirit
to the `must_use` on `ManuallyDrop::take`.
2020-04-22 23:19:19 +02:00
bors
db9b05aeb5 Auto merge of #71044 - ecstatic-morse:body-predecessor-cache, r=oli-obk
Remove `BodyAndCache`

...returning to the original approach using interior mutability within `Body`. This simplifies the API at the cost of some uncontended mutex locks when the parallel compiler is enabled.

The current API requires you to either have a mutable reference to `Body` (`&mut BodyAndCache`), or to compute the predecessor graph ahead of time by creating a `ReadOnlyBodyAndCache`. This is not a good fit for, e.g., the dataflow framework, which
1. does not mutate the MIR
2. only sometimes needs the predecessor graph (for backward dataflow problems)
2020-04-22 21:08:28 +00:00
Tim Diekmann
e60268076f Add a "by reference" adaptor for AllocRef 2020-04-22 22:51:11 +02:00
Tim Diekmann
863d2d92ba Make AllocErr copyable 2020-04-22 22:40:21 +02:00
Esteban Küber
59c816d58b fix test 2020-04-22 12:42:02 -07:00
Esteban Küber
ad379cd7a6 review comment 2020-04-22 12:12:33 -07:00
Esteban Küber
322b2045f2 Revert old span change 2020-04-22 12:12:33 -07:00
Esteban Küber
1f43fc0209 Tweak wording 2020-04-22 12:12:33 -07:00
Esteban Küber
13c1daeb2f Tweak 'static suggestion code
Fix #71196.
2020-04-22 12:12:33 -07:00
David Tolnay
3bd742ff4e
Add tracking issue for proc_macro_is_available 2020-04-22 11:07:07 -07:00
bors
b2e36e6c2d Auto merge of #71431 - Dylan-DPC:rollup-rvm6tfy, r=Dylan-DPC
Rollup of 4 pull requests

Successful merges:

 - #71280 (Miri: mplace_access_checked: offer option to force different alignment on place)
 - #71336 (Exhaustively match on `{Statement,Terminator}Kind` during const checking)
 - #71370 (Added detailed error code explanation for issue E0696 in Rust compiler.)
 - #71401 (visit_place_base is just visit_local)

Failed merges:

r? @ghost
2020-04-22 17:52:21 +00:00
Dylan MacKenzie
4e7469eaea Replace multiple calls to predecessors_for
...with a single one to `predecessors`. `predecessors_for` requires
taking the lock/incrementing the `RefCell` once each call.
2020-04-22 09:57:43 -07:00
Dylan MacKenzie
2ff1fc9b81 Add #[inline] declarations 2020-04-22 09:57:43 -07:00
Dylan MacKenzie
8287842eb4 Use Body everywhere 2020-04-22 09:57:43 -07:00
Dylan MacKenzie
64db428967 Don't use * for deref-coercion 2020-04-22 09:57:43 -07:00
Dylan MacKenzie
884ba4f11f Use internal mutability for predecessor cache 2020-04-22 09:57:43 -07:00
Pietro Albini
61831ff7f7
ci: remove duplicated job names on GHA 2020-04-22 18:55:48 +02:00
Pietro Albini
1f106b5527
ci: set a default shell on GHA 2020-04-22 18:53:11 +02:00
Cameron Taggart
51b194f09a remove some extra } 2020-04-22 09:18:54 -06:00
Cameron Taggart
02241db720
suggested rearrangement of the cfg if statements
Co-Authored-By: ecstatic-morse <ecstaticmorse@gmail.com>
2020-04-22 09:12:44 -06:00
Dylan DPC
238e8228d4
Rollup merge of #71401 - spastorino:remove-visit-place-base, r=wesleywiser
visit_place_base is just visit_local

r? @wesleywiser
2020-04-22 16:41:14 +02:00
Dylan DPC
7939a4d728
Rollup merge of #71370 - PankajChaudhary5:ErrorCode-E0696, r=GuillaumeGomez
Added detailed error code explanation for issue E0696 in Rust compiler.

Added proper error explanation for issue E0696 in the Rust compiler.
Error Code E0696

Sub Part of Issue #61137

r? @GuillaumeGomez
2020-04-22 16:41:12 +02:00
Dylan DPC
221f677d70
Rollup merge of #71336 - ecstatic-morse:check-consts-asm, r=oli-obk
Exhaustively match on `{Statement,Terminator}Kind` during const checking

This adds a pre-monomorphization error for inline assembly in a const context as well.

r? @oli-obk
2020-04-22 16:41:11 +02:00
Dylan DPC
e69141a52f
Rollup merge of #71280 - RalfJung:mplace-check-align, r=oli-obk
Miri: mplace_access_checked: offer option to force different alignment on place

Required to solve https://github.com/rust-lang/miri/issues/1339 in https://github.com/rust-lang/miri/pull/1348.

r? @oli-obk
2020-04-22 16:41:09 +02:00
bors
82e90d6426 Auto merge of #71374 - nnethercote:alphabetize-C-and-Z-options, r=petrochenkov
Alphabetize `-C` and `-Z` options

Because it will make it much easier to find options that way.

r? @petrochenkov
2020-04-22 14:39:33 +00:00
Tom Tromey
90b4a97efe Fix compiletest version-parsing tests
The compiletest version-parsing tests failed after the previous patch.
However, I don't believe these tests are correct, in that I don't
think RHEL or CentOS ever put the gdb version number into parentheses.
Instead they display like:

    GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-119.el7
2020-04-22 08:36:55 -06:00
Pietro Albini
940ce9465f
update openssl-src to 1.1.1g
Fixes CVE-2020-1967.
2020-04-22 16:21:54 +02:00
Tom Tromey
37097fb4f7 Let compiletest recognize gdb 10.x
git gdb has moved to version 10.  My build prints this as its
--version:

    GNU gdb (GDB) 10.0.50.20200420-git

Unfortunately this conflicts with this comment in compiletest:

    // We limit major to 1 digit, otherwise, on openSUSE, we parse the openSUSE version

This patch changes the version parsing to follow the GNU coding
standard, which accounts for both the openSUSE case as well as
handling gdb 10.

My debuginfo test run now says:

NOTE: compiletest thinks it is using GDB with native rust support
NOTE: compiletest thinks it is using GDB version 10000050

... where previously it failed to find that gdb 10 had rust support.
2020-04-22 07:54:33 -06:00
Guillaume Gomez
5cdea2d605 Fix new tidy checks 2020-04-22 15:10:07 +02:00
Guillaume Gomez
5c8f50952b Add checks to ensure that explanations have code examples using the error code and also that 'compile_fail' isn't mispelled 2020-04-22 15:10:07 +02:00
Nicholas Nethercote
6e7ba26bbd Use macros for option tests. 2020-04-22 22:47:05 +10:00
Nicholas Nethercote
14ea491744 Add all the missing option tests. 2020-04-22 22:45:33 +10:00
Nicholas Nethercote
4348f31e3b Alphabetize the -C and -Z options.
In the code, test, and docs, because it makes it much easier to find
things.

Other than adding the comments about alphabetical order, this commit
only moves things around.
2020-04-22 22:44:37 +10:00
bors
00f677d897 Auto merge of #71424 - Dylan-DPC:rollup-iunh61a, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #70970 (Detect mistyped associated consts in `Instance::resolve`.)
 - #71203 (Correct await span for async-await error reporting)
 - #71214 (Add error code for inner doc error)
 - #71337 (Moving all rustdoc-ui tests to check-pass)
 - #71412 (Clarify unused_doc_comments note on macro invocations)
 - #71414 (More diagnostic items for Clippy usage)

Failed merges:

r? @ghost
2020-04-22 11:14:23 +00:00
Ralf Jung
5449e0f10f comment explaining force_align usage 2020-04-22 12:58:17 +02:00
Dylan DPC
01fdc885d6
Rollup merge of #71414 - phansch:more-diagnostic-items, r=Manishearth
More diagnostic items for Clippy usage

This adds a couple of more diagnostic items to be used in Clippy.
I chose these particular ones because they were the types which we seem
to check for the most in Clippy. I'm not sure if the `cfg_attr(not(test))`
is needed, but it was also used for `Vec` and a few other types.

cc https://github.com/rust-lang/rust-clippy/issues/5393

r? @Manishearth
2020-04-22 12:18:39 +02:00
Dylan DPC
91ef66374b
Rollup merge of #71412 - dtolnay:uselessdoc, r=Manishearth
Clarify unused_doc_comments note on macro invocations

The previous error message used to say:

<pre>
/// doc
^^^^^^^ rustdoc does not generate documentation for <b>macros</b>
</pre>

Obviously we do generate documentation for macros, such as https://docs.rs/bitflags/1.2.1/bitflags/macro.bitflags.html. It's only macro invocations that don't get their own docs. This PR updates the message to say "rustdoc does not generate documentation for <b>macro invocations</b>".

I observe that prior to #69084 this used to say "rustdoc does not generate documentation for **macro expansions**", as implemented originally in #57882. I don't have a preference between those but I made the commit before looking up the history.

r? @Manishearth
attn: @yaahc @euclio
2020-04-22 12:18:38 +02:00
Dylan DPC
e7c5334a88
Rollup merge of #71337 - Valloric:rustdoc-check-pass, r=GuillaumeGomez
Moving all rustdoc-ui tests to check-pass

These were all build-pass before and don't seem to need it.

Helps with #62277

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/rust-lang/rust/71337)
<!-- Reviewable:end -->
2020-04-22 12:18:36 +02:00