Commit graph

106573 commits

Author SHA1 Message Date
Alex Crichton
05b2d3f7dc std: Enable atomic.fence emission on wasm32
This commit removes the `#[cfg]` guards in `atomic::fence` on wasm
targets. Since these guards were originally added the upstream wasm
specification for threads gained an `atomic.fence` instruction, so LLVM
no longer panics on these intrinsics.

Although there aren't a ton of tests in-repo for this right now I've
tested locally and all of these fences generate `atomic.fence`
instructions in wasm.

Closes #72997
2020-06-05 10:14:53 -07:00
bors
219380d840 Auto merge of #72901 - ehuss:update-cargo, r=Mark-Simulacrum
Update cargo

9 commits in 9fcb8c1d20c17f51054f7aa4e08ff28d381fe096..40ebd52206e25c7a576ee42c137cc06a745a167a
2020-05-25 16:25:36 +0000 to 2020-06-01 22:35:00 +0000
- Warn if using hash in git URL, Fixes rust-lang/cargo#8241 (rust-lang/cargo#8297)
- reset lockfile information between resolutions (rust-lang/cargo#8274)
- Disable strip_works test on macos. (rust-lang/cargo#8301)
- Fix typo in impl Display for Strip (rust-lang/cargo#8299)
- Add support for rustdoc root URL mappings. (rust-lang/cargo#8287)
- Fix tests with enoent error message on non-english systems. (rust-lang/cargo#8295)
- Fix fingerprinting for lld on Windows with dylib. (rust-lang/cargo#8290)
- Fix a typo (rust-lang/cargo#8289)
- Fix several issues with close_output test. (rust-lang/cargo#8286)
2020-06-04 23:17:05 +00:00
Eric Huss
e6582006e8 Enable lld for Cargo tests on Windows. 2020-06-04 14:32:23 -07:00
Dylan DPC
e324c25fff
Rollup merge of #72986 - pickfire:vec-assert, r=Mark-Simulacrum
Add more assert to Vec with_capacity docs

Show assertion on len too to show them how adding new items will affect both the
length and capacity, before and after.
2020-06-04 21:31:19 +02:00
Dylan DPC
b584687f4f
Rollup merge of #72971 - androm3da:fixes_00, r=Dylan-DPC
Hexagon libstd: fix typo for c_ulonglong
2020-06-04 21:31:15 +02:00
Dylan DPC
6ab084c9b0
Rollup merge of #72946 - lcnr:remove-fixme, r=Dylan-DPC
remove outdated fixme

This function now accepts `impl Iterator<Item = ty::Predicate<'tcx>>`.
2020-06-04 21:31:12 +02:00
Ivan Tham
29ab6b73e1 Add more assert to Vec with_capacity docs
Show assertion on len too to show them how adding new items will affect both the
length and capacity, before and after.
2020-06-05 01:11:01 +08:00
bors
3d5d0f898c Auto merge of #72882 - marmeladema:save-analysis-hir-tree, r=Xanewok
save_analysis: work on HIR tree instead of AST

In order to reduce the uses of `NodeId`s in the compiler, `save_analysis` crate has been reworked to operate on the HIR tree instead of the AST.

cc #50928
2020-06-04 14:16:13 +00:00
Dylan DPC
8fe23a7726
Rollup merge of #72950 - lcnr:fix_doc, r=davidtwco
fix `AdtDef` docs
2020-06-04 12:12:49 +02:00
Dylan DPC
085c16d552
Rollup merge of #72923 - Patryk27:fix/52468, r=estebank
Improve E0433, so that it suggests missing imports

Closes #52468
2020-06-04 12:12:47 +02:00
Dylan DPC
adc321a1e3
Rollup merge of #72782 - petrochenkov:crtargs, r=varkor
rustc_target: Remove `pre_link_args_crt`

To regain some more control over the definition of `+crt-static` (https://github.com/rust-lang/rust/pull/71586).

After https://github.com/rust-lang/rust/pull/71769 this target option wasn't used anywhere except for VxWorks, and I suspect that for VxWorks its use may be redundant as well.
2020-06-04 12:12:45 +02:00
Dylan DPC
21ac561ab7
Rollup merge of #72718 - estebank:impl-trait-obligation-failure, r=matthewjasper
Add regression test for #72554

Fix #72554.
2020-06-04 12:12:40 +02:00
marmeladema
70228f97ab Update rls submodule 2020-06-04 08:31:45 +01:00
marmeladema
8ec687611b save_analysis: work on HIR tree instead of AST 2020-06-04 08:31:41 +01:00
bors
627957100c Auto merge of #72618 - Aaron1011:feature/early-sourcemap, r=petrochenkov
Make `SourceMap` available for early debug-printing of `Span`s

Normally, we debug-print `Spans` using the `SourceMap` retrieved from
the global `TyCtxt`. However, we fall back to printing out the `Span`'s
raw fields (instead of a file and line number) when we try to print a
`Span` before a `TyCtxt` is available. This makes debugging early phases
of the compile, such as parsing, much more difficult.

This commit stores a `SourceMap` in `rustc_span::GlOBALS` as a fallback.
When a `TyCtxt` is not available, we try to retrieve one from `GLOBALS`
- only if this is not available do we fall back to the raw field output.

I'm not sure how to write a test for this - however, this can be
verified locally by setting `RUSTC_LOG="rustc_parse=debug"`, and
verifying that the output contains filenames and line numbers.
2020-06-04 04:38:48 +00:00
Brian Cain
d0ee0dc9de Hexagon libstd: fix typo for c_ulonglong 2020-06-03 22:47:48 -05:00
bors
f3fadf6abd Auto merge of #72754 - lcnr:predicate-fold, r=nikomatsakis
remove trivial `mk_predicate`s

r? @nikomatsakis
2020-06-03 20:12:40 +00:00
Bastian Kauschke
86f8105389 fix AdtDef docs 2020-06-03 19:24:58 +02:00
Vadim Petrochenkov
b628358e9a rustc_target: Remove pre_link_args_crt 2020-06-03 19:51:42 +03:00
Dylan DPC
b61f3bb66b
Rollup merge of #72945 - ajpaverd:cfguard-docs, r=Mark-Simulacrum
Updated documentation for Control Flow Guard

Update user-facing documentation for the Control Flow Guard (CFG) exploit mitigation in the unstable book, as requested in #68793.
2020-06-03 18:05:44 +02:00
Dylan DPC
77a74ec878
Rollup merge of #72942 - GuillaumeGomez:cleanup-e0641, r=Dylan-DPC
clean up E0641 explanation

r? @Dylan-DPC
2020-06-03 18:05:42 +02:00
Dylan DPC
ec2826cc2e
Rollup merge of #72924 - JohnTitor:stabilize-buf-capacity, r=shepmaster
Stabilize `std::io::Buf{Reader, Writer}::capacity`

Closes #68833
FCP is done here: https://github.com/rust-lang/rust/issues/68833#issuecomment-637596083
2020-06-03 18:05:41 +02:00
Dylan DPC
7973d9381f
Rollup merge of #72900 - jsgf:no-unused-pathless, r=petrochenkov
Don't count pathless --extern for unused-crate-dependencies warnings

`--extern proc_macro` is used to add the proc_macro crate to the extern
prelude for all procmacros. In general pathless `--extern` only references
sysroot/standard libraries and so should be exempt from
unused-crate-dependencies warnings.

r? @petrochenkov
2020-06-03 18:05:39 +02:00
Dylan DPC
f94c0df037
Rollup merge of #72586 - lcnr:winner-winnowing, r=nikomatsakis
split select into submodules

a0f06d11ae/src/librustc_trait_selection/traits/select.rs (L1)

I extracted two submodules:

- confirmation: apart from `pub(super) fn confirm_candidate`, everything else is private
- candidate_assembly: exports `pub(super) fn candidate_from_obligation` and `pub(super) fn assemble_candidates`

I tried to change as little as possible while doing this and hopefully split this into well reviewable commits.
2020-06-03 18:05:37 +02:00
Bastian Kauschke
f3eab4b124 remove outdated fixme 2020-06-03 15:59:10 +02:00
Andrew Paverd
d282fb000b Updated documentation for Control Flow Guard 2020-06-03 14:31:08 +01:00
Bastian Kauschke
b28026447a remove ignore-tidy-filelength 2020-06-03 14:49:35 +02:00
Bastian Kauschke
bf5c62da9e move confirmation into submodule 2020-06-03 14:49:35 +02:00
Bastian Kauschke
b8172ec405 move candidate assembly into a submodule 2020-06-03 14:49:35 +02:00
Bastian Kauschke
634977f8f2 move select into subfolder 2020-06-03 14:49:35 +02:00
bors
6f48888456 Auto merge of #72746 - petrhosek:libunwind-hermetic, r=tmandry
Make libunwind build hermetic

We want to avoid exporting any symbols from Rust's version of libunwind,
and to do so we need to disable visibility annotations to make sure that
the -fvisibility=hidden has effect, and also hide global new/delete.

This matches the CMake build of libunwind.
2020-06-03 12:20:45 +00:00
Guillaume Gomez
64b5520757 clean up E0641 explanation 2020-06-03 13:52:09 +02:00
bors
ff4aff6ce0 Auto merge of #70107 - lcnr:issue68977, r=eddyb
WF-check all ty::Const's, not just array lengths.

fixes #68977

This PR removes the special case for array length in `wf::compute` and
checks the well formedness of all consts.

Changes `PredicateKind::WellFormed` to take a `GenericArg` and updates `wf::obligations`.
2020-06-03 08:43:11 +00:00
Patryk Wychowaniec
c55d55e850
Fix a typo in late.rs
Co-authored-by: Esteban Kuber <estebank@users.noreply.github.com>
2020-06-03 08:38:10 +02:00
Dylan DPC
ba3d98250f
Rollup merge of #72921 - pickfire:vec-assert, r=Mark-Simulacrum
Add assert to Vec with_capacity docs
2020-06-03 02:39:09 +02:00
Dylan DPC
0050b8817b
Rollup merge of #72902 - cuviper:fuse-covariant, r=nikomatsakis
Add a test to ensure Fuse stays covariant

When #70502 attempted to specialize the data types in `Fuse`, one of the problems we found was that it broke variance. This was also realized when `Fuse` was first added, https://github.com/rust-lang/rust/pull/35656#discussion-diff-74995079, but now this PR adds a test so we don't forget again.
2020-06-03 02:39:07 +02:00
Dylan DPC
69a1ac3891
Rollup merge of #72848 - camelid:fix-72815, r=varkor
Correct generic parameter ordering in error note for E0747

Fixes #72815.

r? @varkor
2020-06-03 02:39:05 +02:00
Dylan DPC
9c3ac0c9bb
Rollup merge of #72820 - jonas-schievink:instcombine-uninit, r=oli-obk
InstCombine: Don't optimize `&mut *x` into `x`

Fixes https://github.com/rust-lang/rust/issues/72797
2020-06-03 02:39:03 +02:00
Dylan DPC
b47896492c
Rollup merge of #72704 - tblah:remote-testing-fixes, r=Mark-Simulacrum
Remote testing fixes

Improvements for remote testing

- Create a `RUST_TEST_TMPDIR` directory on the remote testing host
- Verbose mode for remote-test-server
- Skip tests which don't support remote testing using `// ignore-remote`

To test:
- Build `remote-test-server` for the target machine and copy it over
- On the target:
``` sh
remote-test-server remote
```
- On the build machine
``` sh
export TEST_DEVICE_ADDR="1.2.3.4:12345"
./x.py test
```
2020-06-03 02:38:59 +02:00
Yuki Okushi
7d27c63114
Stabilize std::io::Buf{Reader, Writer}::capacity 2020-06-03 04:32:22 +09:00
Patryk Wychowaniec
d31d215c56
Improve E0433, so that it suggests missing imports 2020-06-02 20:41:25 +02:00
Ivan Tham
596b0c88cc Add assert to Vec with_capacity docs 2020-06-03 01:29:02 +08:00
Dylan DPC
9763e0c089
Rollup merge of #72888 - poliorcetics:improve-read_line-read_until-doc, r=Dylan-DPC
Add a warning about infinite reading in read_(until|line)

Fix for #48788.

This PR adds a warning to [`BufRead::read_line`](https://doc.rust-lang.org/stable/std/io/trait.BufRead.html#method.read_line) and [`BufRead::read_until`](https://doc.rust-lang.org/stable/std/io/trait.BufRead.html#method.read_until) about the possibility of an attack using the behaviour of these functions.

I did not mention a possible fix (using [`Read::take`](https://doc.rust-lang.org/stable/std/io/trait.Read.html#method.take), should I ?
2020-06-02 18:29:59 +02:00
Dylan DPC
466d3e702a
Rollup merge of #72884 - Julian-Wollersberger:raw_str_error_cleanup, r=petrochenkov
RawString error reporting cleanup

I simplified how errors with raw string are represented in the lexer and reportet in the parser, by using one enum instead of two structs with impls. This makes 70 code lines obsolete.

I also noticed some other things (2nd commit) and added a missing test for the `too many '#' symbols' error.

My original intent was to improve performance, but the only thing I found was to inline some functions in `cursor.rs`. It's effect is barely measurable, though.

There is one open question. Before, the compiler aborts when encountering the `too many '#' symbols` error. Now the lexer says in this case that there are 0 hashes, and then later the parser aborts on the error.
I'm worrying that the parser may be changed to recover and continue, and then later stages will see the wrong numer of hashes and act strange. (eg. the `format!` macro expansion).
Is that possibility important enough today to worry about it?
2020-06-02 18:29:57 +02:00
Bastian Kauschke
631ac9c472 update tests 2020-06-02 15:02:36 +02:00
Bastian Kauschke
ef4d2c1043 change WellFormed predicate to GenericArg 2020-06-02 15:02:36 +02:00
Bastian Kauschke
81831e124e add WellFormedConst predicate 2020-06-02 15:02:36 +02:00
Bastian Kauschke
cb2308de54 implement wf checking for constants 2020-06-02 15:02:36 +02:00
Tom Eccles
81df5ac241 compiletest: Add name directive for remote runners
Allow tests to use
// ignore-remote
to ignore the test when using remote-test-{client,server}. In most
situations this would be covered by
// ignore-cross-compile
but I see no reason that a non-cross compiled remote test runner
shouldn't work.
2020-06-02 14:00:18 +01:00
Tom Eccles
9e137bb8b6 tools/remote-test-server: make use of verbose option
There was an unused verbose command line argument. Add some prints if
verbose is set.
2020-06-02 14:00:18 +01:00