107562 Commits

Author SHA1 Message Date
Josh Stone
3a55e8875e configure: set LLVM flags with a value
Rather than a boolean `--enable-cflags` etc., these options should
reflect that they are for LLVM, and that they need a value. You would
now use `./configure --llvm-cflags="..."`.
2020-02-17 11:01:52 -08:00
Camille GILLOT
6e15faf68a Querify object_safety_violations. 2020-02-17 19:48:36 +01:00
Markus Westerlind
ee064befa0 Ensure diagnostics are printed in the correct order
Even when buffered. Ideally we would flush only when the emitter is
done, but that requires larger changes. This gives most of the benefit
of buffering in any case.
2020-02-17 16:46:53 +01:00
Mazdak Farrokhzad
0b1e08cb55 parse: recover mut (x @ y) as (mut x @ mut y). 2020-02-17 16:08:13 +01:00
Markus Westerlind
7ac4154643 perf: Buffer stderr when writing json errors/warnings
Since `stderr` is unbuffered, writing out json messages actually take up
about ~10%/0.1s of the runtime of the `inflate` benchmark.

cc #64413
2020-02-17 15:35:42 +01:00
LeSeulArtichaut
2e07892c7d Do not emit note suggesting to implement trait to foreign type
Update tests

Extend to other operations

Refractor check in a separate function

Fix more tests
2020-02-17 15:21:36 +01:00
Mark Rousskov
f6bfdc9544 Move the show_usize marker function to a static
Currently, function items are always tagged unnamed_addr, which means that
casting a function to a function pointer is not guaranteed to produce a
deterministic address. However, once a function pointer is created, we do expect
that to remain stable. So, this changes the show_usize function to a static
containing a function pointer and uses that for comparisons.

Notably, a *static* may have 'unstable' address, but the function pointer within
it must be constant.

Resolves issue 58320.
2020-02-17 09:18:33 -05:00
Mark Rousskov
34ef8f5441 Move to using an extern type for opaqueness
This prevents accidental dereferences and so forth of the Void type, as well as
cleaning up the error message to reference Opaque rather than the more
complicated PhantomData type.
2020-02-17 09:18:33 -05:00
Mark Rousskov
6c45e4540b Drop unused argument to float functions 2020-02-17 09:18:33 -05:00
Yuki Okushi
3b431234e0 Update Clippy 2020-02-17 22:34:35 +09:00
bors
0176a9eef8 Auto merge of #69129 - Centril:macro-legacy-errors, r=petrochenkov
Transition macro_legacy_warnings into a hard error

Fixes https://github.com/rust-lang/rust/issues/67098.

r? @petrochenkov
2020-02-17 11:54:49 +00:00
Wesley Wiser
535fc0f43a Add documentation for the -Zself-profile flag 2020-02-17 06:41:18 -05:00
Pietro Albini
79c166ef73
ci: switch macOS builders to 10.15 2020-02-17 12:21:28 +01:00
Mazdak Farrokhzad
045b7d53a3 ast: add a FIXME 2020-02-17 11:16:28 +01:00
bors
75b98fbe77 Auto merge of #69226 - JohnTitor:rollup-syn03oj, r=JohnTitor
Rollup of 6 pull requests

Successful merges:

 - #68495 (Updating str.chars docs to mention crates.io.)
 - #68701 (Improve #Safety of various methods in core::ptr)
 - #69158 (Don't print block exit state in dataflow graphviz if unchanged)
 - #69179 (Rename `FunctionRetTy` to `FnRetTy`)
 - #69186 ([tiny] parser: `macro_rules` is a weak keyword)
 - #69188 (Clean up E0309 explanation)

Failed merges:

r? @ghost
2020-02-17 06:44:35 +00:00
Yuki Okushi
cc497c4c84
Rollup merge of #69188 - GuillaumeGomez:clean-up-e0309, r=Dylan-DPC
Clean up E0309 explanation

r? @Dylan-DPC
2020-02-17 13:46:59 +09:00
Yuki Okushi
3e7addccc6
Rollup merge of #69186 - petrochenkov:kwrules, r=Centril
[tiny] parser: `macro_rules` is a weak keyword

r? @Centril
2020-02-17 13:46:57 +09:00
Yuki Okushi
5f0c593386
Rollup merge of #69179 - JohnTitor:rename-to-fnretty, r=Centril
Rename `FunctionRetTy` to `FnRetTy`

As per FIXME comment

r? @Centril
2020-02-17 13:46:56 +09:00
Yuki Okushi
50ddda6949
Rollup merge of #69158 - ecstatic-morse:graphviz-diff, r=matthewjasper
Don't print block exit state in dataflow graphviz if unchanged

A small quality-of-life improvement I was using while working on #68528. It's pretty common to have a lot of zero-statement basic blocks, especially before a `SimplifyCfg` pass is run. When the dataflow state was dense, these blocks could take up a lot of vertical space since the full flow state was printed on both entry and exit. After this PR, we only print a block's exit state if it differs from that block's entry state. Take a look at the two basic blocks on the left.

Before:

![image](https://user-images.githubusercontent.com/29463364/74505395-e2d1dd00-4eab-11ea-8006-ec8f0dc9d1b6.png)

After:
![image](https://user-images.githubusercontent.com/29463364/74505277-98506080-4eab-11ea-8d95-5190bc378331.png)
2020-02-17 13:46:54 +09:00
Yuki Okushi
c3fed9fabd
Rollup merge of #68701 - amosonn:patch-2, r=RalfJung
Improve #Safety of various methods in core::ptr

For `read`, `read_unaligned`,`read_volatile`, `replace`, and `drop_in_place`:

- The value they point to must be properly initialized

For `replace`, additionally:

- The pointer must be readable
2020-02-17 13:46:52 +09:00
Yuki Okushi
5f818f94e7
Rollup merge of #68495 - sdegutis:patch-1, r=Mark-Simulacrum
Updating str.chars docs to mention crates.io.

This might spare someone else a little time searching the stdlib for unicode/grapheme support.
2020-02-17 13:46:48 +09:00
bors
3c4590facc Auto merge of #68781 - ssomers:btree_miri_relief, r=RalfJung
BTree: lighten the load on Miri

Reduce the amount of work Miri ploughs through in btree code, in particular on `test_clone_from` (which takes up 5 minutes on my machine).

r? @crgl
2020-02-17 03:24:53 +00:00
Esteban Küber
e5b2c66dea Do not ICE when encountering yield inside async block 2020-02-16 18:53:52 -08:00
Esteban Küber
8bafe883b6 Select an appropriate unused lifetime name in suggestion 2020-02-16 18:41:02 -08:00
Yuki Okushi
eb12ed889d Rename FunctionRetTy to FnRetTy 2020-02-17 11:24:29 +09:00
Fisher Darling
c53693d34d Handle recursion_limit parsing errors 2020-02-16 19:08:25 -07:00
spunit262
a9b5c692d9 Ignore GDB versions with broken str printing.
https://sourceware.org/bugzilla/show_bug.cgi?id=22236
2020-02-16 17:49:45 -07:00
bors
a643ee8d69 Auto merge of #67953 - cjgillot:split_infer, r=Zoxc
Split librustc::{traits,infer} to a separate crate rustc_infer

This is still very much work in progress.
Three functions are between dimensions (at the end of `rustc::traits`), waiting for some dependency breaking scheme.
Please tell me if the approach seems sound, and how you would like to split this PR up.

The formatting is deliberately off, to ease rebasing.

cc #65031
2020-02-16 22:24:54 +00:00
Stein Somers
da226dd9dc Lighten tests, in particular for Miri, yet test and explain more 2020-02-16 22:35:44 +01:00
Stein Somers
914b855f40 Fix comments outdated during #66648 2020-02-16 22:10:14 +01:00
LeSeulArtichaut
2ae493a767 Stabilize {f32, f64}::{LOG2_10, LOG10_2} 2020-02-16 18:53:02 +01:00
bors
5e7af4669f Auto merge of #67885 - tobithiel:fix_group_lint_allow_override, r=Mark-Simulacrum
rustc_session: allow overriding lint level of individual lints from a group

Fixes #58211 and fixes rust-lang/rust-clippy#4778 and fixes rust-lang/rust-clippy#4091

Instead of hard-coding the lint level preferences (from lowest to highest precedence: `lint::Allow -> lint::Warn -> lint::Deny -> lint::Forbid`), the position of the argument in the command line gets taken into account.

Examples:
1. Passing `-D unused -A unused-variables` denies everything in the lint group `unused` **except** `unused-variables` which is explicitly allowed.
1. Passing `-A unused-variables -D unused` denies everything in the lint group `unused` **including** `unused-variables` since the allow is specified before the deny (and therefore overridden by the deny).

This matches the behavior that is already being used when specifying `allow`/`deny` in the source code.
2020-02-16 15:28:41 +00:00
Yuki Okushi
d1a7ae7d16 Allow whitespaces in revision flags 2020-02-16 22:53:28 +09:00
Ralf Jung
bec5d37ee1 debug_assert a few more raw pointer methods 2020-02-16 14:44:16 +01:00
bors
116dff95a3 Auto merge of #68997 - Zoxc:pure-node-id, r=petrochenkov
Panic if NodeIds are used for incremental compilation

r? @michaelwoerister
2020-02-16 12:16:49 +00:00
Amos Onn
943e65396d Improve #Safety of core::ptr::drop_in_place
Added missing conditions:
- Valid for writes
- Valid for destructing
2020-02-16 13:12:34 +01:00
Jonas Schievink
bb482ebf28 suspend -> yield 2020-02-16 13:08:36 +01:00
Camille GILLOT
e88500b5e1 Prune rustc dependencies. 2020-02-16 12:03:30 +01:00
Camille GILLOT
5d57208353 Gate macro use. 2020-02-16 12:03:13 +01:00
Camille GILLOT
0b93cfc1ee Prune features. 2020-02-16 12:02:51 +01:00
Camille GILLOT
795673ae20 Remove librustc_infer crate re-exports. 2020-02-16 12:02:37 +01:00
Camille GILLOT
bee6a5ac12 Other crates. 2020-02-16 11:59:35 +01:00
Camille GILLOT
2519f4a0a3 Make librustc_traits compile. 2020-02-16 11:57:52 +01:00
Camille GILLOT
1637aab15e Make librustc_mir compile. 2020-02-16 11:57:49 +01:00
Hiroki Noda
67068f35dd macOS: avoid calling pthread_self() twice 2020-02-16 19:53:42 +09:00
Camille GILLOT
4b57cb3cbe Make librustc_typeck compile. 2020-02-16 11:53:12 +01:00
Camille GILLOT
f07e889145 Make librustc_infer compile. 2020-02-16 11:49:29 +01:00
Camille GILLOT
187a9741d3 Make librustc compile. 2020-02-16 11:41:25 +01:00
Camille GILLOT
d5691209b6 Move librustc/{traits,infer} to librustc_infer. 2020-02-16 11:41:25 +01:00
bors
8040bc9836 Auto merge of #69156 - ecstatic-morse:unified-dataflow-impls2, r=eddyb
Use `ResultsCursor` for `elaborate_drops`

Some cleanup after #68241. The old code was using a custom cursor-like struct called `InitializationData`.
2020-02-16 05:08:08 +00:00