Commit Graph

103689 Commits

Author SHA1 Message Date
Josh Stone
16d21783d6 Migrate to LLVM{Get,Set}ValueName2
The deprecated `LLVM{Get,Set}ValueName` only work with NUL-terminated
strings, but the `2` variants use explicit lengths, which fits better
with Rust strings and slices. We now use these in new helper functions
`llvm::{get,set}_value_name` that convert to/from `&[u8]`.
2019-12-04 12:00:28 -08:00
bors
6d77e45f01 Auto merge of #66866 - oli-obk:const_fn_memoization, r=RalfJung
Only memoize const fn calls during const eval

Miri and other engines may want to execute the function in order to detect UB inside of them.

r? @RalfJung
2019-12-04 17:48:19 +00:00
Oliver Scherer
af8f1416e1
Update src/librustc_mir/interpret/terminator.rs
Co-Authored-By: Ralf Jung <post@ralfj.de>
2019-12-04 16:38:58 +01:00
Mark Mansi
b998e83064 more private 2019-12-04 09:18:04 -06:00
Mark Mansi
d9511a1558 minor fix 2019-12-04 09:18:04 -06:00
Mark Mansi
3c4612a720 fix some imports 2019-12-04 09:18:04 -06:00
Mark Mansi
f5ac04ba43 move region errors to diagnostics module 2019-12-04 09:18:04 -06:00
Mark Mansi
fbf4731778 fix imports 2019-12-04 09:18:04 -06:00
Mark Mansi
4917bba0e8 move explain_borrow to diagnostics 2019-12-04 09:18:04 -06:00
Mark Mansi
67560976b4 fix imports 2019-12-04 09:18:03 -06:00
Mark Mansi
07a0486228 create new borrow_check::diagnostics module and move stuff there 2019-12-04 09:18:03 -06:00
Jethro Beekman
22d9f20f60 SGX: Fix target linker used by bootstrap 2019-12-04 16:02:28 +01:00
bors
c4f1304935 Auto merge of #66408 - nnethercote:greedy-process_obligations, r=nmatsakis
Make `process_obligations()` greedier.

`process_obligations()` adds new nodes, but it does not process these
new nodes until the next time it is called.

This commit changes it so that it does process these new nodes within
the same call. This change reduces the number of calls to
`process_obligations()` required to complete processing, sometimes
giving significant speed-ups.

The change required some changes to tests.
- The output of `cycle-cache-err-60010.rs` is slightly different.
- The unit tests required extra cases to handle the earlier processing
  of the added nodes. I mostly did these in the simplest possible way,
  by making the added nodes be ignored, thus giving outcomes the same as
  with the old behaviour. But I changed `success_in_grandchildren()`
  more extensively so that some obligations are completed earlier than
  they used to be.

r? @nikomatsakis
2019-12-04 14:33:38 +00:00
Elichai Turkel
8be7223145
Fix docs for formatting delegations 2019-12-04 15:20:47 +02:00
Guillaume Gomez
ae753a55ac some error codes long explanation 2019-12-04 13:36:50 +01:00
Guillaume Gomez
9eaea4d3ea Clean up E0118 error code long explanation 2019-12-04 13:35:26 +01:00
Guillaume Gomez
1e5450d4cb Clean up E0117 error code long explanation 2019-12-04 13:32:37 +01:00
Guillaume Gomez
c2ce7dd756 Clean up E0116 error code long explanation 2019-12-04 13:32:37 +01:00
Guillaume Gomez
12a267134e Remove unused constant 2019-12-04 13:13:59 +01:00
Guillaume Gomez
e14eebb6bb Make Lifetime struct field public 2019-12-04 13:13:59 +01:00
Guillaume Gomez
f5e0d0cc18 Make some formatting improvements 2019-12-04 13:13:59 +01:00
Guillaume Gomez
91e021a59c Make some private methods public 2019-12-04 13:13:59 +01:00
Guillaume Gomez
db0e6cd562 fixup clean/types.rs imports 2019-12-04 13:13:59 +01:00
Guillaume Gomez
81e549cc76 remove code that doesn't belong in clean/types.rs 2019-12-04 13:13:59 +01:00
bors
7fa046534e Auto merge of #66275 - oli-obk:organize-intrinsics-promotion-checks, r=RalfJung
Organize intrinsics promotion checks

cc @vertexclique

supersedes #61835

r? @RalfJung
2019-12-04 11:22:26 +00:00
Guillaume Gomez
a8ec6200df Remove potential cfgs duplicates 2019-12-04 11:53:33 +01:00
bors
5f1d6c4403 Auto merge of #65947 - eddyb:fn-abi, r=oli-obk,nagisa
rustc: split FnAbi's into definitions/direct calls ("of_instance") and indirect calls ("of_fn_ptr").

After this PR:
* `InstanceDef::Virtual` is only used for "direct" virtual calls, and shims around those calls use `InstanceDef::ReifyShim` (i.e. for `<dyn Trait as Trait>::f as fn(_)`)
  * this could easily be done for intrinsics as well, to allow their reification, but I didn't do it
* `FnAbi::of_instance` is **always** used for declaring/defining an `fn`, and for direct calls to an `fn`
  * this is great for e.g. https://github.com/rust-lang/rust/pull/65881 (`#[track_caller]`), which can introduce the "caller location" argument into "codegen signatures" by only changing `FnAbi::of_instance`, after this PR
* `FnAbi::of_fn_ptr` is used primarily for indirect calls, i.e. to `fn` pointers
  * *not* virtual calls (which use `FnAbi::of_instance` with `InstanceDef::Virtual`)
  * there's also a couple uses where the `rustc_codegen_llvm` needs to declare (i.e. FFI-import) an LLVM function that has no Rust declaration available at all
    * at least one of them could probably be a "weak lang item" instead

As there are many steps, this PR is best reviewed commit by commit - some of which arguably should be in their own PRs, I may have gotten carried away a bit.

cc @nagisa @rkruppe @oli-obk @anp
2019-12-04 08:22:05 +00:00
Esteban Küber
0103308ad3 Account for raw idents in module file finding 2019-12-03 22:25:44 -08:00
Esteban Küber
b5ad0cb033 review comments: move test 2019-12-03 22:25:15 -08:00
bors
a7fc0939ca Auto merge of #66996 - ehuss:update-cargo, r=alexcrichton
Update cargo

11 commits in 750cb1482e4d0e74822cded7ab8b3c677ed8b041..626f0f40efd32e6b3dbade50cd53fdfaa08446ba
2019-11-23 23:06:36 +0000 to 2019-12-03 16:53:04 +0000
- Change some texts to links in README (rust-lang/cargo#7652)
- Update config and environment variable docs. (rust-lang/cargo#7650)
- Stop ignoring .rs.bk files; rustfmt hasn't generated them in years (rust-lang/cargo#7647)
- Various contributing docs updates. (rust-lang/cargo#7642)
- Stabilize profile-overrides. (rust-lang/cargo#7591)
- Update comment about ResolveVersion default version. (rust-lang/cargo#7637)
- Update tests for slight wording change in rustdoc error message. (rust-lang/cargo#7641)
- Remove dep_targets. (rust-lang/cargo#7626)
- vendor: don't use canonical path in .cargo/config (rust-lang/cargo#7629)
- Minor testsuite organization. (rust-lang/cargo#7628)
- Remove failing plugin tests. (rust-lang/cargo#7630)
2019-12-04 05:07:34 +00:00
Aaron Hill
168e35d569
Include a span in more expected...found notes
In most places, we use a span when emitting `expected...found` errors.
However, there were a couple of places where we didn't use any span,
resulting in hard-to-interpret error messages.

This commit attaches the relevant span to these notes, and additionally
switches over to using `note_expected_found` instead of manually
formatting the message
2019-12-03 23:13:10 -05:00
Esteban Küber
f6b435d923 Accurately portray raw identifiers in error messages
When refering to or suggesting raw identifiers, refer to them with `r#`.

Fix #65634.
2019-12-03 19:01:42 -08:00
Aaron Hill
a6883c0ab0
Disable issue-59756 test for now
Currently, rustfix has no notion of mutually exclusive suggestions. When
it processes issue-59756, it will attempt to apply two mutually
exclusive suggestions for the same span, causing an error.
2019-12-03 21:56:32 -05:00
Aaron Hill
462f06de07
Emit coercion suggestions in more places
Fixes #66910

We have several different kinds of suggestions we can try to make when
type coercion fails. However, we were previously only emitting these
suggestions from `demand_coerce_diag`. This resulted in the compiler
failing to emit applicable suggestions in several different cases, such
as when the implicit return value of a function had the wrong type.

This commit adds a new `emit_coerce_suggestions` method, which tries to
emit a number of related suggestions. This method is called from both
`demand_coerce_diag` and `CoerceMany::coerce_inner`, which covers a much
wider range of cases than before.

We now suggest using `.await` in more cases where it is applicable,
among other improvements.
2019-12-03 21:51:16 -05:00
bors
ff143089a8 Auto merge of #66995 - flip1995:clippyup, r=Manishearth
Update Clippy

Fixes #66989

r? @Manishearth @Centril
2019-12-04 01:52:49 +00:00
Oliver Middleton
b6b0fd9148 rustdoc: Add test for fixed issue 2019-12-04 01:31:35 +00:00
Oliver Scherer
5cef094a72 Leave fixme 2019-12-04 01:51:26 +01:00
flip1995
5ce98d318d
Update Clippy 2019-12-04 01:37:28 +01:00
Andrew Banchich
1fa948f4cc
capitalize Rust 2019-12-03 19:11:53 -05:00
bors
2f04472c02 Auto merge of #66925 - RalfJung:miri, r=RalfJung
update Miri

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

r? @ghost
2019-12-03 22:40:44 +00:00
Camille GILLOT
d84eb506e2 Fix TypedArena. 2019-12-03 23:35:40 +01:00
Sen Jiang
52649ddfbd
Fix documentation of pattern for str::matches()
Made it the same as rmatches()
2019-12-03 14:31:41 -08:00
Guillaume Gomez
c911bb1a2e clean up E0107 error explanation 2019-12-03 22:25:15 +01:00
Guillaume Gomez
72fdce2d86 remove code that doesn't belong in clean/mod.rs anymore 2019-12-03 22:03:38 +01:00
Guillaume Gomez
c0e78d6124 Create new types.rs file 2019-12-03 22:03:19 +01:00
Reese Williams
911b7d6d4d Update missed test. 2019-12-03 14:58:41 -05:00
Umesh Kalappa
dc1a428d87 Modified the testcases for VxWorks 2019-12-03 11:58:03 -08:00
bors
7afe6d9d1f Auto merge of #66997 - Centril:rollup-uraqpgu, r=Centril
Rollup of 7 pull requests

Successful merges:

 - #66750 (Update the `wasi` crate for `wasm32-wasi`)
 - #66878 (Move Sessions into (new) librustc_session)
 - #66903 (parse_enum_item -> parse_enum_variant)
 - #66951 (miri: add throw_machine_stop macro)
 - #66957 (Change Linker for x86_64-fortanix-unknown-sgx target to rust-lld)
 - #66960 ([const-prop] Fix ICE calculating enum discriminant)
 - #66973 (Update the minimum external LLVM to 7)

Failed merges:

r? @ghost
2019-12-03 18:42:43 +00:00
Mazdak Farrokhzad
8dcb5326dd
Rollup merge of #66973 - cuviper:min-llvm7, r=alexcrichton
Update the minimum external LLVM to 7

LLVM 7 is over a year old, which should be plenty for compatibility. The
last LLVM 6 holdout was llvm-emscripten, which went away in #65501.

I've also included a fix for LLVM 8 lacking `MemorySanitizerOptions`,
which was broken by #66522.
2019-12-03 19:41:57 +01:00
Mazdak Farrokhzad
ded98853ec
Rollup merge of #66960 - wesleywiser:fix_66787_take2, r=oli-obk,RalfJung
[const-prop] Fix ICE calculating enum discriminant

Fixes #66787

Different approach than #66857

r? @oli-obk
cc @RalfJung @eddyb
2019-12-03 19:41:55 +01:00