Commit Graph

110422 Commits

Author SHA1 Message Date
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
bors
52fa23add6 Auto merge of #71218 - eddyb:a-lifetime-stranded-in-fn-def, r=nikomatsakis
outlives: ignore lifetimes shallowly found in `ty::FnDef`s.

Fixes #70917 by restoring the pre-#70164 behavior for now.

r? @nikomatsakis
2020-04-18 14:15:31 +00:00
Amanieu d'Antras
9f23b2d36b Add an option to inhibit automatic injection of profiler_builtins 2020-04-18 14:10:04 +01:00
bors
339a938fa6 Auto merge of #71278 - matthiaskrgr:submodule_upd, r=Dylan-DPC
submodules: update clippy from 6651c1b9 to 891e1a85

This PR gets `cargo clippy --fix -Zunstable-options` into nightly 🎉

Changes:
````
Polished lint and tests
Added final lint and tests
Added basic lint and tests
fix redundant_pattern_matching lint
add lint futures_not_send
Integrate more idiomatic rust changes.
Fix issue #4892.
cargo dev fmt
Cleanup: Rename 'db' variable to 'diag'
question_mark: don't add `as_ref()` for a call expression
unit_arg suggestion may be incorrect
readme: update to cargo clippy --fix command
CI: performing system upgrade fixes broken apt deps on ubuntu 32bit
Do not lint in macros for match lints
[fix] Minor typo in GH Actions 'clippy_dev'
Reenable rustfmt integration test
Add test to map_flatten with an Option
Lint map_flatten if caller is an Option
Apply suggestions from code review
manually fixing formatting at this point lol
fmt
rename field
revert the damn fmt changes
add some tests
split it up for testing but the merge broke tests
dogfood tasted bad
fix rustfmt issue
boycott manish
check for unstable options
Start work on clippy-fix as subcommand
````

Should be save to rollup since we are in no-toolstate-break week (I also didn't see any breakage when testing the clippy with  28742a114)
2020-04-18 11:09:07 +00:00
Matthias Krüger
56e0295348 submodules: update clippy from 6651c1b9 to 891e1a85
Changes:
````
Polished lint and tests
Added final lint and tests
Added basic lint and tests
fix redundant_pattern_matching lint
add lint futures_not_send
Integrate more idiomatic rust changes.
Fix issue #4892.
cargo dev fmt
Cleanup: Rename 'db' variable to 'diag'
question_mark: don't add `as_ref()` for a call expression
unit_arg suggestion may be incorrect
readme: update to cargo clippy --fix command
CI: performing system upgrade fixes broken apt deps on ubuntu 32bit
Do not lint in macros for match lints
[fix] Minor typo in GH Actions 'clippy_dev'
Reenable rustfmt integration test
Add test to map_flatten with an Option
Lint map_flatten if caller is an Option
Apply suggestions from code review
manually fixing formatting at this point lol
fmt
rename field
revert the damn fmt changes
add some tests
split it up for testing but the merge broke tests
dogfood tasted bad
fix rustfmt issue
boycott manish
check for unstable options
Start work on clippy-fix as subcommand
````
2020-04-18 12:44:30 +02:00
Ralf Jung
cf3470a5fc miri-unleashed: test that we detect heap allocations 2020-04-18 11:38:25 +02:00
Ralf Jung
76cb95ef4d check_consts: make ops module private 2020-04-18 11:38:25 +02:00
bors
9d430cb351 Auto merge of #71204 - JohnTitor:into-vec, r=wesleywiser
perf: Remove inline attribute from `into_vec()`

It was introduced in #70565 and is likely related to this perf results: https://perf.rust-lang.org/compare.html?start=1edcfc83c6a08ddc5e63fc652b149baea0236e7c&end=d249d756374737eb014079901ac132f1e1ed905e&stat=instructions:u
Let's check if it's related to that.
r? @wesleywiser could you kick off perf check? I don't think I can do it.
2020-04-18 08:03:38 +00:00
huangjiahua
1a1863b815 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.
2020-04-18 14:58:38 +08:00
Yuki Okushi
58ad251ea8
Move MapInPlace to rustc_data_structures 2020-04-18 13:02:33 +09:00
JOE1994
3211b83134 fix -Zast-json to properly output the 'id' field 2020-04-17 22:47:26 -04:00
bors
28742a1146 Auto merge of #71147 - cuviper:min-llvm8, r=Mark-Simulacrum
Update the minimum external LLVM to 8

LLVM 8 was released on March 20, 2019, over a year ago.
2020-04-18 01:37:27 +00:00
CAD97
a01b00faf8 Clarify layout information in Layout::extend 2020-04-17 18:59:36 -04:00
bors
cff9a758ae Auto merge of #71264 - Dylan-DPC:rollup-njgbey7, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #70467 (Use `call` instead of `invoke` for functions that cannot unwind )
 - #71070 (rustbuild: Remove stage 0 LLD flavor workaround for MSVC)
 - #71167 (big-O notation: parenthesis for function calls, explicit multiplication)
 - #71238 (Miri: fix typo)
 - #71242 (Format Mailmap To Work With GitHub)
 - #71243 (Account for use of `try!()` in 2018 edition and guide users in the right direction)

Failed merges:

r? @ghost
2020-04-17 21:57:06 +00:00
Dylan DPC
4b9eeca5c5
Rollup merge of #71243 - Duddino:Fix2, r=estebank
Account for use of `try!()` in 2018 edition and guide users in the right direction

fixes #71155
2020-04-17 23:56:04 +02:00
Dylan DPC
6a140a31df
Rollup merge of #71242 - XAMPPRocky:mailmap, r=Dylan-DPC
Format Mailmap To Work With GitHub

r? @Mark-Simulacrum
2020-04-17 23:56:03 +02:00
Dylan DPC
0050a6479b
Rollup merge of #71238 - RalfJung:miri-typo, r=oli-obk
Miri: fix typo

r? @oli-obk at least I think this should be "without", right?
2020-04-17 23:56:01 +02:00
Dylan DPC
d5d9bf0406
Rollup merge of #71167 - RalfJung:big-o, r=shepmaster
big-O notation: parenthesis for function calls, explicit multiplication

I saw `O(n m log n)` in the docs and found that really hard to parse. In particular, I don't think we should use blank space as syntax for *both* multiplication and function calls, that is just confusing.

This PR makes both multiplication and function calls explicit using Rust-like syntax. If you prefer, I can also leave one of them implicit, but I believe explicit is better here.

While I was at it I also added backticks consistently.
2020-04-17 23:56:00 +02:00
Dylan DPC
b45f133a0d
Rollup merge of #71070 - petrochenkov:nolldaround, r=Mark-Simulacrum
rustbuild: Remove stage 0 LLD flavor workaround for MSVC
2020-04-17 23:55:58 +02:00
Dylan DPC
43cf9d791b
Rollup merge of #70467 - wesleywiser:invoke-vs-call, r=nagisa
Use `call` instead of `invoke` for functions that cannot unwind

The `FnAbi` now knows if the function is allowed to unwind. If a
function isn't allowed to unwind, we can use a `call` instead of an
`invoke`.

This resolves an issue when calling LLVM intrinsics which cannot unwind
LLVM will generate an error if you attempt to invoke them so we need to
ignore cleanup blocks in codegen and generate a call instead.

Fixes #69911

r? @eddyb
cc @rust-lang/wg-ffi-unwind
2020-04-17 23:55:56 +02:00
Felix S. Klock II
1abfd4ab23 Issue #71248: attempt to recover perf by removing exports_all_green flag.
(My hypothesis is that my use of this flag was an overly conservative
generalization of PR 67020.)
2020-04-17 16:04:59 -04:00
Amanieu d'Antras
7fe41279c5 Make -Zprofile set codegen-units to 1 2020-04-17 19:53:31 +01:00