Commit Graph

110499 Commits

Author SHA1 Message Date
ljedrz
3c455fe8e1 MIR: use span instead of NodeId to determine if optimized_mir should be run 2020-04-19 21:14:19 +02:00
Dylan DPC
9fc24430e2
Rollup merge of #71324 - petrochenkov:passcheck2, r=RalfJung
Fix some tests failing in `--pass check` mode

r? @RalfJung
2020-04-19 21:11:29 +02:00
Dylan DPC
b20bd73673
Rollup merge of #71317 - RalfJung:unleash-inline-asm, r=ecstatic-morse
miri-unleash test for llvm_asm

r? @oli-obk @ecstatic-morse
2020-04-19 21:11:28 +02:00
Dylan DPC
ab44c7701e
Rollup merge of #71310 - JohnTitor:dont-did, r=estebank
Do not show DefId in diagnostics

Fixes #71222
r? @estebank cc @eddyb
2020-04-19 21:11:24 +02:00
Dylan DPC
9c5da9afa9
Rollup merge of #71026 - seiyab:issue-64362-adhoc, r=varkor
Fix false "never constructed" warnings for `Self::` variant paths

Closes #64362 .
2020-04-19 21:11:22 +02:00
Ralf Jung
f6adbc3a26 Fix comment 2020-04-19 20:23:28 +02:00
bors
ad48d52a74 Auto merge of #71231 - cuviper:rustc_or_patterns, r=Mark-Simulacrum
Dogfood more or_patterns in the compiler

Another step toward the stabilization of `or_patterns`...

cc #54883 @Centril
r? @Mark-Simulacrum
2020-04-19 16:43:02 +00:00
JOE1994
928eedb0aa fix decode logic for 'AttrId' to be symmetric with encode logic 2020-04-19 12:00:45 -04:00
Josh Stone
7b005c5fcb Dogfood more or_patterns in the compiler 2020-04-19 07:33:58 -07:00
Vadim Petrochenkov
1c77e20aba Fix some tests failing in --pass check mode 2020-04-19 17:19:28 +03:00
bors
1b7dec9e44 Auto merge of #71326 - Dylan-DPC:rollup-hdlkdj5, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #71107 (Address concerns of weak-into-raw)
 - #71188 (Fixed missing trait method suggests incorrect code (self parameter not named "self"). )
 - #71300 (Clarify when to use the tracking issue template)
 - #71315 (Add example in the alternative in std::mem::transmute docs)
 - #71319 (Clean up E0522 explanation)

Failed merges:

r? @ghost
2020-04-19 13:24:05 +00:00
Dylan DPC
1d2532bdf6
Rollup merge of #71319 - GuillaumeGomez:cleanup-e0522, r=Dylan-DPC
Clean up E0522 explanation

r? @Dylan-DPC
2020-04-19 15:12:42 +02:00
Dylan DPC
7cdcc876a5
Rollup merge of #71315 - huangjiahua:update-documentation, r=Dylan-DPC
Add example in the alternative in std::mem::transmute docs

It is safer to use `from_ne_bytes` to convert raw bytes to type like u32.  #71187
2020-04-19 15:12:40 +02:00
Dylan DPC
9c37038380
Rollup merge of #71300 - rust-lang:jonas-schievink-patch-1, r=XAMPPRocky
Clarify when to use the tracking issue template

People tend to open this for feature requests. Let's see if this helps.

r? @XAMPPRocky
2020-04-19 15:12:39 +02:00
Dylan DPC
36791dabe8
Rollup merge of #71188 - Duddino:fix, r=matthewjasper
Fixed missing trait method suggests incorrect code (self parameter not named "self").

fixes #71150
2020-04-19 15:12:38 +02:00
Dylan DPC
4d11c3fe30
Rollup merge of #71107 - vorner:weak-into-raw-dangling, r=Amanieu
Address concerns of weak-into-raw

This should address the standing concerns in https://github.com/rust-lang/rust/issues/60728#issuecomment-612525616.

I've still left the ability to create a new dangling pointer from `null`, as I feel like this is the natural behaviour to expect, but I'm fine removing that too. I've modified the documentation to allow the `as_ptr` or `into_ptr` to return whatever garbage in case of a dangling pointer. I've also removed the guarantee to be able to do `from_raw(as_ptr)` from the documentation (but it would still work right now).

I've renamed the method and added implementations for `Rc`/`Arc`.

I've also tried if I can just „enable“ unsized types. I believe the current interface is compatible with them. But the inner implementation will be a bit challenging ‒ I can't use the `data_offset` as is used by `Rc` or `Arc` because it AFAIK „touches“ (creates a reference to) the live value of `T` ‒ and in case of `Weak`, it might be completely bogus or already dead ‒ so that would be UB.

`./x.py test tidy` is completely mad on my own system all over the code base :-(. I'll just hope it goes through CI, or will fix as necessary.

Is it OK if I ask @Amanieu for review, as the concerns are from you?

~r @Amanieu
2020-04-19 15:12:36 +02:00
seiya
d3f8db6a2f Fix false "never constructed" warnings for Self:: variant paths 2020-04-19 21:57:35 +09:00
jakubadamw
f742afaca4 test for false "never constructed" warnings for Self:: variant paths 2020-04-19 21:57:35 +09:00
Guillaume Gomez
ca6eb2c2b2 Clean up E0522 explanation 2020-04-19 13:19:44 +02:00
Ralf Jung
56884581ec miri-unleash test for llvm_asm 2020-04-19 12:13:54 +02:00
Nicholas Nethercote
3e3fd73f85 Disallow values for -C no-* and -Z no-* options again.
With the exception of `-C no-redzone`, because that could take a value
before this PR.

This partially undoes one of the earlier commits in this PR, which added
the ability to take a value to all boolean options that lacked it.

The help output for these options looks like this:
```
    -C         no-vectorize-slp=val -- disable LLVM's SLP vectorization pass
```
The "=val" part is a lie, but hopefully this will be fixed in the future.
2020-04-19 20:05:23 +10:00
Nicholas Nethercote
dc06539872 Improve codegen option docs.
This commit:
- Adds "following values" indicators for all the options that are
  missing them.
- Tweaks some wording and punctuation for consistency.
- Rewords some things for clarity.
- Removes the `no-integrated-as` entry, because that option was removed
  in #70345.
2020-04-19 20:03:20 +10:00
Nicholas Nethercote
cc93e51ed3 Show defaults in options descriptions.
For all `-C` and `-Z` options that have them.

The commit also rewords a few options to make them clearer, mostly by
avoiding the word "don't".

It also removes the listed default for `-Cinline-threshold`, which is
incorrect -- that option doesn't have a static default.
2020-04-19 20:03:18 +10:00
bors
36b1a9296c Auto merge of #70015 - jonas-schievink:gen-needs-drop, r=matthewjasper
Make `needs_drop` less pessimistic on generators

Generators only have non-trivial drop logic when they may store (in upvars or across yields) a type that does.

This prevents generation of some unnecessary MIR in simple generators. There might be some impact on compile times, but this is probably limited in real-world applications.

~~This builds off of https://github.com/rust-lang/rust/pull/69814 since that contains some fixes that are made relevant by *this* PR (see https://github.com/rust-lang/rust/pull/69814#issuecomment-599147269).~~ (this has been merged)
2020-04-19 10:01:16 +00:00
Nicholas Nethercote
58217bc996 Replace uses of parse_opt_* with parse_* where possible.
This lets us specify the default at the options declaration point,
instead of using `.unwrap(default)` or `None | Some(default)` at some
use point far away. It also makes the code more concise.
2020-04-19 19:53:54 +10:00
Nicholas Nethercote
b9bcddc527 Make option type descriptions non-optional.
Because all options now can take a value. This simplifies some code
quite a bit.
2020-04-19 19:53:54 +10:00
Nicholas Nethercote
3093018474 Tweak parse_opt_uint.
Don't set `slot` on failure, like all the other `parse_*` functions.
2020-04-19 19:53:54 +10:00
Nicholas Nethercote
7ec7b572a9 Fix the -Zsanitizer_memory_track_origins error message.
Currently, if you give a bogus value like
`-Zsanitizer-memory-track-origins=99` you get this incorrect error:
```
error: debugging option `sanitizer-memory-track-origins` takes no value
```
This commit fixes it so it gives this instead:
```
error: incorrect value `99` for debugging option `sanitizer-memory-track-origins` - 0, 1, or 2 was expected
```
The commit also makes `parse_sanitizer_memory_track_origins` more
readable.
2020-04-19 19:53:54 +10:00
Nicholas Nethercote
0b92969b8f Clean up the list of parser descriptions.
Put identical ones next to each other, and avoid duplicated strings.
2020-04-19 19:53:54 +10:00
Nicholas Nethercote
94b93d3c1c Allow all boolean options to take values.
They now all accept yes/no/y/n/on/off values. (Previously only some of
them did.)

This commit also makes `parse_bool` and `parse_opt_bool` more concise
and readable, and adds some helpful comments to some functions.
2020-04-19 19:53:54 +10:00
Nicholas Nethercote
2109464cc5 Make some option descriptions fit the usual pattern.
- No trailing '.' chars.
- Use a lower-case letter at the start.
2020-04-19 19:53:53 +10:00
Michal 'vorner' Vaner
f4ded11b49
weak-into-raw: Add {Arc,Rc}::as_ptr
For consistency with Weak
2020-04-19 09:38:16 +02:00
bors
e7497a8ccb Auto merge of #69793 - estebank:predicate-obligations-4, r=nikomatsakis
Maintain chain of derived obligations

When evaluating the derived obligations from super traits, maintain a
reference to the original obligation in order to give more actionable
context in the output.

Continuation (and built on) #69745, subset of #69709.

r? @eddyb
2020-04-19 06:42:51 +00:00
Rustin-Liu
7c28dfe113 Fix has_no_input_arg function has self check
Signed-off-by: Rustin-Liu <rustin.liu@gmail.com>

rename has_no_input_arg to has_only_self_parameter

Signed-off-by: Rustin-Liu <rustin.liu@gmail.com>
2020-04-19 13:38:52 +08:00
Yuki Okushi
e171cdaada
Do not show DefId in diagnostics 2020-04-19 12:31:37 +09:00
bors
a0e52b1e82 Auto merge of #71102 - tmiasko:compiler-builtins, r=Mark-Simulacrum
Update compiler_builtins to 0.1.27

* aarch64: Exclude FP intrinsics on +nofp or +nosimd
* Place intrinsics in individual object files

https://github.com/rust-lang/compiler-builtins/compare/0.1.25...0.1.27
2020-04-19 02:16:13 +00:00
Esteban Küber
d9a5419ef4 Add label to item source of bound obligation 2020-04-18 17:19:53 -07:00
Esteban Küber
ce936e9336 Do not emit note for projected derived obligations 2020-04-18 16:37:08 -07:00
Esteban Küber
6bc55c701f Remove AssocTypeBound and propagate bound Spans 2020-04-18 16:37:08 -07:00
Esteban Küber
ad1c23c993 Maintain chain of derived obligations
When evaluating the derived obligations from super traits, maintain a
reference to the original obligation in order to give more actionable
context in the output.
2020-04-18 16:37:08 -07:00
bors
8001b96f48 Auto merge of #71306 - Dylan-DPC:rollup-kvzc1da, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #71271 (Move `MapInPlace` to rustc_data_structures)
 - #71276 (miri-unleashed: test that we detect heap allocations)
 - #71283 (Minor improvements to -Zprofile)
 - #71287 (Explain why we shouldn't add inline attr to into_vec)
 - #71303 (remove build warnings)

Failed merges:

r? @ghost
2020-04-18 23:06:08 +00:00
Dylan DPC
f6fb931d4f
Rollup merge of #71303 - tshepang:master, r=Mark-Simulacrum
remove build warnings

Code blocks that are not annotated are assumed to be Rust
2020-04-19 01:04:56 +02:00
Dylan DPC
dfdfc76cd9
Rollup merge of #71287 - JohnTitor:comment-vec, r=RalfJung
Explain why we shouldn't add inline attr to into_vec

Follow-up of #71204
r? @RalfJung
2020-04-19 01:04:54 +02:00
Dylan DPC
cd748abc56
Rollup merge of #71283 - Amanieu:zprofile, r=davidtwco
Minor improvements to -Zprofile

- `-Zprofile` is broken with codegen units because GCOV assumes that each source file corresponds to one object file. This PR makes `-Zprofile` automatically set codegen units to 1 and gives an error if `-Ccodegen-units=X` is specified on the command line (with `X != 1`).
- The `profiler_builtins` crate is not suitable for `no_std` applications since it contains C code that depends on libc. In such cases a custom implementation of the LLVM gcov API (`llvm_gcov_init`, `llvm_gcda_*`) is needed. This PR adds `-Zno-profiler-runtime` flag which inhibits automatic injection of the `profiler_builtins` crate.

cc @whitequark who implemented the original `-Zprofile` support
2020-04-19 01:04:53 +02:00
Dylan DPC
404e06785b
Rollup merge of #71276 - RalfJung:miri-unleash-box, r=ecstatic-morse
miri-unleashed: test that we detect heap allocations

This removes the second-to-last use of `IS_SUPPORTED_IN_MIRI = false`.

r? @ecstatic-morse @oli-obk
2020-04-19 01:04:49 +02:00
Dylan DPC
2af681b731
Rollup merge of #71271 - JohnTitor:map-in-place, r=petrochenkov
Move `MapInPlace` to rustc_data_structures

Follow-up of #67786, it fits the purpose of rustc_data_structures.
r? @petrochenkov
2020-04-19 01:04:47 +02:00
Tshepang Lekhonkhobe
fcbefae017 remove build warnings
Code blocks that are not annotated are assumed to be Rust
2020-04-18 22:32:23 +02:00
Jonas Schievink
49bca71418
Clarify when to use the tracking issue template 2020-04-18 21:07:28 +02:00
Santiago Pastorino
365807f057
Make Box<dyn FnOnce> respect self alignment 2020-04-18 14:37:44 -03:00
Yuki Okushi
1a46159828
Explain why we shouldn't add inline attr to into_vec 2020-04-19 01:03:43 +09:00