Commit Graph

121383 Commits

Author SHA1 Message Date
bors ccac43b86b Auto merge of #73153 - ecstatic-morse:revert-71956, r=tmandry
Revert #71956

...since it caused unsoundness in #73137. Also adds a reduced version of #73137 to the test suite. The addition of the `MaybeInitializedLocals` dataflow analysis has not been reverted, but it is no longer used.

Presumably there is a more targeted fix, but I'm worried that other bugs may be lurking. I'm not yet sure what the root cause of #73137 is.

This will need to get backported to beta.

r? @tmandry
2020-06-09 03:41:43 +00:00
bors 5d39f1fa29 Auto merge of #73147 - Dylan-DPC:rollup-9saqhj5, r=Dylan-DPC
Rollup of 8 pull requests

Successful merges:

 - #71842 (doc: make impl block collapsible if it has an associated constant)
 - #72912 (Add new E0758 error code)
 - #73008 (Update RELEASES.md)
 - #73090 (Use `LocalDefId` directly in `Resolver::export_map`)
 - #73118 (Improve the wording in documentation of std::mem::drop)
 - #73124 (Removed lifetime parameters from Explanation of E0207 )
 - #73138 (Use shorthand linker strip arguments in order to support MacOS)
 - #73143 (Update books)

Failed merges:

r? @ghost
2020-06-08 23:52:04 +00:00
Dylan MacKenzie b6121a5419 Add regression test for #73137
Co-authored-by: Aaron1011 <aa1ronham@gmail.com>
2020-06-08 16:51:26 -07:00
Dylan MacKenzie c3b0b7b68f Revert #71956 2020-06-08 14:58:37 -07:00
Dylan DPC 9890107a81
Rollup merge of #73143 - ehuss:update-books, r=ehuss
Update books

## nomicon

3 commits in d1517d4e3f29264c5c67bce2658516bb5202c800..bfe1ab96d717d1dda50e499b360f2e2f57e1750a
2020-05-12 13:47:00 -0400 to 2020-06-05 13:19:42 -0400
- Clarify that str data must still be initialized
- Remove language-level UB for non-UTF-8 str
- fix Nomicon transmute UB

## reference

5 commits in becdca9477c9eafa96a4eea5156fe7a2730d9dd2..5d40ba5c2515caffa7790cda621239dc21ef5a72
2020-05-21 21:08:02 +0100 to 2020-06-06 20:25:36 -0700
- Add some links to Disambiguating Function Calls. (rust-lang-nursery/reference#829)
- change bash to sh as shell code blocks language indentifier (rust-lang-nursery/reference#827)
- Fix sentence mistake in array-expr.md (rust-lang-nursery/reference#826)
- removed the word "Second" form the beginning of the 2nd list item and  labelled it as `2` (rust-lang-nursery/reference#822)
- Update fn-like proc-macro invocation restrictions. (rust-lang-nursery/reference#816)

## book

14 commits in e8a4714a9d8a6136a59b8e63544e149683876e36..30cd9dfe71c446de63826bb4472627af45acc9db
2020-05-25 10:29:27 -0500 to 2020-06-07 23:07:19 -0500
- Unnecessarily long type name in Ch 13 (rust-lang/book#2362)
- Tweak example in chapter 10 (rust-lang/book#2363)
- Mention that to_lowercase isn't perfect (rust-lang/book#2364)
- fix typo in CONTRIBUTING.md (rust-lang/book#2360)
- Link German translation in appendix F (rust-lang/book#2347)
- Updates wording on Box example (rust-lang/book#2332)
- fix: match 15-24 with 15-18 (rust-lang/book#2324)
- Reword ch01-03 recap paragraph (rust-lang/book#2305)
- Remove some confusing wording. (rust-lang/book#2358)
- Clarify some wording a bit (rust-lang/book#2357)
- Update ch12-05 PowerShell note (rust-lang/book#2348)
- text -&gt; console (rust-lang/book#2352)
- Improve wording around drop (rust-lang/book#2350)
- Make some statements about crates more correct (rust-lang/book#2349)

## edition-guide

1 commits in 0a8ab5046829733eb03df0738c4fafaa9b36b348..82bec5877c77cfad530ca11095db4456d757f668
2020-05-18 08:34:23 -0500 to 2020-06-03 08:56:02 -0500
- Add stuff for Rust 1.33 (rust-lang/edition-guide#214)
2020-06-08 22:15:21 +02:00
Dylan DPC fdaeb0ff12
Rollup merge of #73138 - eggyal:macos-linker-strip, r=petrochenkov
Use shorthand linker strip arguments in order to support MacOS

Per discussion from https://github.com/rust-lang/rust/issues/72110#issuecomment-636609419 onward, the current `-Z strip` options aren't supported by the MacOS linker, but I think only because it doesn't support the longhand arguments `--strip-debug` and `--strip-all`.

This PR switches to using the shorthand arguments `-s` and `-S` instead, which (I believe) are supported by all GCC linkers.
2020-06-08 22:15:19 +02:00
Dylan DPC 31a1858a73
Rollup merge of #73124 - ayushmishra2005:correction_in_explanation_of_E0207, r=petrochenkov
Removed lifetime parameters from Explanation of E0207

Removed lifetime parameters from Explanation of E0207
Fixes #62144
2020-06-08 22:15:17 +02:00
Dylan DPC 6d9cf6e8b7
Rollup merge of #73118 - alamb:alamb/doc-drop-typo, r=shepmaster
Improve the wording in documentation of std::mem::drop

I thought the original phrasing was somewhat awkward compared to rest of the (very well written) documentation, so figured I would propose a change to improve it.
2020-06-08 22:15:15 +02:00
Dylan DPC 845b869050
Rollup merge of #73090 - marmeladema:resolver-outputs-local-def-id, r=petrochenkov
Use `LocalDefId` directly in `Resolver::export_map`

This is to avoid the final conversion from `NodeId` to `HirId`
during call to `(clone|into)_outputs`

This brings down the post-lowering uses of `NodeId` down to 2 calls to convert the `trait_map`.

cc #50928

r? @petrochenkov
2020-06-08 22:15:13 +02:00
Dylan DPC 033f6899f7
Rollup merge of #73008 - tshepang:patch-1, r=nikomatsakis
Update RELEASES.md

make catch_unwind line more readable
2020-06-08 22:15:12 +02:00
Dylan DPC 82fd390d67
Rollup merge of #72912 - GuillaumeGomez:add-e0755, r=estebank
Add new E0758 error code
2020-06-08 22:15:10 +02:00
Dylan DPC 98bd22bda3
Rollup merge of #71842 - tspiteri:doc-impl-const, r=GuillaumeGomez
doc: make impl block collapsible if it has an associated constant

Fixes #71822.
2020-06-08 22:15:08 +02:00
bors fd4b177aab Auto merge of #72655 - jethrogb:sgx-lvi-hardening, r=petrochenkov
Enable LVI hardening for x86_64-fortanix-unknown-sgx

This implements mitigations for the Load Value Injection vulnerability (CVE-2020-0551) for the `x86_64-fortanix-unknown-sgx` target by enabling new LLVM passes. More information about LVI and mitigations may be found at https://software.intel.com/security-software-guidance/insights/deep-dive-load-value-injection.

This PR unconditionally enables the mitigations for `x86_64-fortanix-unknown-sgx` since there is no available hardware that doesn't require the mitigations. This may be reconsidered in the future.

* [x] This depends on https://github.com/rust-lang/compiler-builtins/pull/359/
2020-06-08 20:10:07 +00:00
Eric Huss ef4c4a570f Update books 2020-06-08 12:01:01 -07:00
Alan Egerton 8cf85bc0dc Use shorthand linker strip arguments in order to support MacOS 2020-06-08 17:51:34 +01:00
bors bc10b68e79 Auto merge of #73115 - RalfJung:rollup-jecowhz, r=RalfJung
Rollup of 10 pull requests

Successful merges:

 - #72026 (Update annotate-snippets-rs to 0.8.0)
 - #72583 (impl AsRef<[T]> for vec::IntoIter<T>)
 - #72615 (Fix documentation example for gcov profiling)
 - #72761 (Added the documentation for the 'use' keyword)
 - #72799 (Add `-Z span-debug` to allow for easier debugging of proc macros)
 - #72811 (Liballoc impl)
 - #72963 (Cstring `from_raw` and `into_raw` safety precisions)
 - #73001 (Free `default()` forwarding to `Default::default()`)
 - #73075 (Add comments to `Resolve::get_module`)
 - #73092 (Clean up E0646)

Failed merges:

r? @ghost
2020-06-08 16:32:49 +00:00
Ayush Kumar Mishra b7f25d512c Removed lifetime parameters from Explanation of E0207 #62144 2020-06-08 17:15:48 +05:30
alamb 7b0906b2e9 Fix small typo in docs for std::mem::drop 2020-06-08 06:04:34 -04:00
Ralf Jung 7983e56f40
Rollup merge of #73092 - GuillaumeGomez:cleanup-e0646, r=Dylan-DPC
Clean up E0646

r? @Dylan-DPC
2020-06-08 09:55:35 +02:00
Ralf Jung 13f2838c04
Rollup merge of #73075 - jyn514:comment-module, r=Dylan-DPC
Add comments to `Resolve::get_module`

r? @Manishearth
2020-06-08 09:55:33 +02:00
Ralf Jung 244465dbb8
Rollup merge of #73001 - ilya-bobyr:master, r=dtolnay
Free `default()` forwarding to `Default::default()`

It feels a bit redundant to have to say `Default::default()` every time I need a new value of a type that has a `Default` instance.
Especially so, compared to Haskell, where the same functionality is called `def`.
Providing a free `default()` function that forwards to `Default::default()` seems to improve the situation.
The trait is still there, so if someone wants to be explicit and to say `Default::default()` - it still works, but if imported as `std::default::default;`, then the free function reduces typing and visual noise.
2020-06-08 09:55:31 +02:00
Ralf Jung 824ea6bf2d
Rollup merge of #72963 - poliorcetics:cstring-from-raw, r=dtolnay
Cstring `from_raw` and `into_raw` safety precisions

Fixes #48525.
Fixes #68456.

This issue had two points:

- The one about `from_raw` has been addressed (I hope).
- The other one, about `into_raw`, has only been partially fixed.

About `into_raw`: the idea was to:

> steer users away from using the pattern of CString::{into_raw,from_raw} when interfacing with C APIs that may change the effective length of the string by writing interior NULs or erasing the final NUL

I tried making a `Vec<c_char>` like suggested but my current solution feels very unsafe and *hacky* to me (most notably the type cast), I included it here to make it available for discussion:

```rust
fn main() {
    use std::os::raw::c_char;

    let v = String::from("abc")
        .bytes()
        // From u8 to i8,
        // I feel like it will be a problem for values of u8 > 255
        .map(|c| c as c_char)
        .collect::<Vec<_>>();

    dbg!(v);
}
```
2020-06-08 09:55:30 +02:00
Ralf Jung 13815e4b35
Rollup merge of #72811 - pickfire:liballoc-impl, r=Amanieu
Liballoc impl

Mainly code rearrangements
2020-06-08 09:55:28 +02:00
Ralf Jung e135087868
Rollup merge of #72799 - Aaron1011:feature/span-debug, r=petrochenkov
Add `-Z span-debug` to allow for easier debugging of proc macros

Currently, the `Debug` impl for `proc_macro::Span` just prints out
the byte range. This can make debugging proc macros (either as a crate
author or as a compiler developer) very frustrating, since neither the
actual filename nor the `SyntaxContext` is displayed.

This commit adds a perma-unstable flag `-Z span-debug`. When enabled,
the `Debug` impl for `proc_macro::Span` simply forwards directly to
`rustc_span::Span`. Once #72618 is merged, this will start displaying
actual line numbers.

While `Debug` impls are not subject to Rust's normal stability
guarnatees, we probably shouldn't expose any additional information on
stable until `#![feature(proc_macro_span)]` is stabilized. Otherwise,
we would be providing a 'backdoor' way to access information that's
supposed be behind unstable APIs.
2020-06-08 09:55:26 +02:00
Ralf Jung 89d8979c9a
Rollup merge of #72761 - poliorcetics:use-keyword-doc, r=Dylan-DPC
Added the documentation for the 'use' keyword

This is a partial fix of #34601.

I heavily inspired myself from the Reference on the `use` keyword.

I checked the links when compiling the documentation, they should be ok.

I also added an example for the wildcard `*` in the case of types, because it's behaviour is not *import everything* like one might think at first.
2020-06-08 09:55:24 +02:00
Ralf Jung e8bb4c7001
Rollup merge of #72615 - jschwe:fix-Zprofile-documentation, r=steveklabnik
Fix documentation example for gcov profiling

closes #72546
Improves the documentation for the unstable Rustflag `-Zprofile` by:
- stating that Incremental compilation must be turned off.
- Adding the other `RUSTFLAGS` that should/need to be turned on (taken from [grcov documentation](https://github.com/mozilla/grcov#example-how-to-generate-gcda-files-for-a-rust-project))
- Mentioning `RUSTC_WRAPPER` to prevent everything getting instrumented.

r? @steveklabnik
2020-06-08 09:55:22 +02:00
Ralf Jung b0559bebd8
Rollup merge of #72583 - CAD97:vec-iter-asref-slice, r=dtolnay
impl AsRef<[T]> for vec::IntoIter<T>

Adds `impl<T> AsRef<[T]> for vec::IntoIter<T>`. This mirrors the same trait impl for [`slice::Iter`](https://doc.rust-lang.org/nightly/std/slice/struct.Iter.html). Both types already offer `fn as_slice(&self) -> &[T]`, this just adds the trait impl for `vec::IntoIter`.

If/when `fn as_slice(&self) -> &[T]` stabilizes for `vec::Drain` and `slice::IterMut`, they should get `AsRef<[T]>` impls as well. As thus, tangentially related to #58957.

My ultimate goal here: being able to use `for<T, I: Iterator<Item=T> + AsRef<[T]>> I` to refer to `vec::IntoIter`, `vec::Drain`, and eventually `array::IntoIter`, as an approximation of the set of by-value iterators that can be "previewed" as by-ref iterators. (Actually expressing that as a trait requires GAT.)
2020-06-08 09:55:20 +02:00
Ralf Jung 8484b9935c
Rollup merge of #72026 - botika:master, r=estebank
Update annotate-snippets-rs to 0.8.0

#59346
I made major changes to this library. In the previous version we worked with owned while in the current one with borrowed.

I have adapted it without changing the behavior.
I have modified the coverage since the previous one did not return correctly the index of the character in the line.
2020-06-08 09:55:18 +02:00
bors 7355816093 Auto merge of #73046 - marmeladema:save-analysis-fix-path, r=Xanewok
save_analysis: fix some ICEs

Fixes #73020
Fixes #73022
Fixes #73041
2020-06-08 03:54:52 +00:00
bors 6aa1d93c21 Auto merge of #72904 - shepmaster:reduce-abi-symbol-hash-churn, r=jonas-schievink,RalfJung
Order the Rust and C ABIs first to reduce test churn
2020-06-07 21:42:27 +00:00
marmeladema e759222461 Use `LocalDefId` directly in `Resolver::export_map` and `module_exports` query
This is to avoid the final conversion from `NodeId` to `HirId`
during call to `Resolver::(clone|into)_outputs`.
2020-06-07 21:15:57 +01:00
bors 0262de554b Auto merge of #73099 - Dylan-DPC:rollup-7u8f3m4, r=Dylan-DPC
Rollup of 2 pull requests

Successful merges:

 - #72952 (run-make regression test for issue #70924.)
 - #72977 (Fix codegen tests for RISC-V)

Failed merges:

r? @ghost
2020-06-07 17:55:19 +00:00
Dylan DPC 4dd5d5d4d6
Rollup merge of #72977 - tblah:riscv-codegen-llvm10, r=nikomatsakis
Fix codegen tests for RISC-V

Some codegen tests didn't seem relevant (e.g. unsupported annotations).

The RISC-V abi tests were broken by LLVM 10, c872dcf fixes that (cc: @msizanoen1)

I'm not sure about skipping catch-unwind.rs and included that change here mostly as a request for comment - I can't tell if that's a bug.
2020-06-07 18:11:29 +02:00
Dylan DPC b733368258
Rollup merge of #72952 - pnkfelix:regression-test-for-issue-70924, r=nikomatsakis
run-make regression test for issue #70924.

Sometime after my PR #72767 (to fix issue #70924) landed, I realized that I *could* make a local regression test, thanks to `rustc --print sysroot`: I can make a fresh "copy" (really mostly symlinks) of the sysroot, and then modify it to recreate the terms of this bug.
2020-06-07 18:11:27 +02:00
bors f9fdf642ba Auto merge of #73093 - Dylan-DPC:rollup-9gh5tyu, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #72764 (Be more careful around ty::Error in generators)
 - #72908 (rename FalseEdges -> FalseEdge)
 - #72970 (Properly handle feature-gated lints)
 - #72998 (Mention that some atomic operations may not be available on some platforms)
 - #73063 (Elide type on liballoc vec)

Failed merges:

r? @ghost
2020-06-07 14:14:34 +00:00
Dylan DPC a23b51ebea
Rollup merge of #73063 - pickfire:liballoc-elide, r=kennytm
Elide type on liballoc vec
2020-06-07 15:33:45 +02:00
Dylan DPC de1941ab2a
Rollup merge of #72998 - poliorcetics:atomic-availability-doc, r=Amanieu
Mention that some atomic operations may not be available on some platforms

fixes #54250

This simply adds a line saying the type/function/method may not be available on some platforms, depending on said platform capabilities.

I *think* I got them all.
2020-06-07 15:33:44 +02:00
Dylan DPC 1ff0ba03ef
Rollup merge of #72970 - OddCoincidence:feature-gated-lints, r=petrochenkov
Properly handle feature-gated lints

Closes #72694
2020-06-07 15:33:42 +02:00
Dylan DPC cbab74528a
Rollup merge of #72908 - RalfJung:false-edge, r=matthewjasper
rename FalseEdges -> FalseEdge

There's just a single false edge in this terminator, not multiple of them.

r? @matthewjasper @jonas-schievink
2020-06-07 15:33:39 +02:00
Dylan DPC 2cab88a33e
Rollup merge of #72764 - jonas-schievink:mind-the-tyerr, r=estebank
Be more careful around ty::Error in generators

cc https://github.com/rust-lang/rust/issues/72685

(doesn't close it because it's missing a reproduction to use as a test case)

r? @estebank
2020-06-07 15:33:32 +02:00
Guillaume Gomez af68249a8d Clean up E0646 2020-06-07 15:22:15 +02:00
Guillaume Gomez fbf7d27791 Add tests for E0758 2020-06-07 14:57:57 +02:00
Guillaume Gomez e8fb46090e Create new error code E0758 for unterminated multi-line comments 2020-06-07 14:57:53 +02:00
Jethro Beekman ea48f2e4da Enable LVI hardening for x86_64-fortanix-unknown-sgx 2020-06-07 12:12:30 +02:00
Ilya Bobyr ebb8722ea7 unstable book: default_free_fn 2020-06-07 01:27:06 -07:00
Ilya Bobyr 8f4dfa8839 Free `default()` forwarding to `Default::default()`
When creating default values a trait method needs to be called with an
explicit trait name.  `Default::default()` seems redundant.  A free
function on the other hand, when imported directly, seems to be a better
API, as it is just `default()`.  When implementing the trait, a method
is still required.
2020-06-07 01:27:06 -07:00
Ralf Jung d931b031b4 rename FalseEdges -> FalseEdge 2020-06-07 10:12:21 +02:00
bors a2fc33e0c8 Auto merge of #73072 - arcnmx:lld-noload, r=nikic
Update LLVM submodule to include lld NOLOAD fix

> Rust nightly 2020-05-22 and later ships lld with a regression related to linker scripts: NOLOAD sections incorrectly generate sections filled with 0s. This causes gdb and other elf loaders to write to reserved or otherwise invalid addresses (gdb also seems confused by the resulting ELF files and spits out a warning about the sections). This is particularly a problem for embedded rust projects that use lld by default and have affected linker scripts (cortex-m-rt based projects for instance).

https://github.com/rust-lang/llvm-project/pull/64

Note that this also pulls in llvm changes from #72937
2020-06-07 05:58:49 +00:00
Jake Goulding ae3586c9b7 Order the Rust and C ABIs first to reduce test churn 2020-06-06 22:36:21 -04:00
bors 450abe80f1 Auto merge of #73081 - Dylan-DPC:rollup-1aqk215, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #72810 (validate basic sanity for TerminatorKind)
 - #72989 (Revert pr 71840)
 - #72993 (Count the beta prerelease number just from master)
 - #73057 (Clean up E0644 explanation)
 - #73059 (remove outdated comment)

Failed merges:

r? @ghost
2020-06-07 00:34:54 +00:00