Commit Graph

122433 Commits

Author SHA1 Message Date
Josh Stone
a7c2cf8f51 Reduce pointer casts in Box::into_boxed_slice
We only need to cast the pointer once to change `Box<T>` to an array
`Box<[T; 1]>`, then we can let unsized coercion return `Box<[T]>`.
2020-06-17 16:30:27 -07:00
Esteban Küber
8d1a3801fa review comments 2020-06-17 16:29:03 -07:00
Tomasz Miąsko
f488dfc2b6 Use alloc::Layout in DroplessArena API 2020-06-18 01:19:04 +02:00
Rich Kadel
36c9014ddd removed try config to test mac & windows (passed)
https://dev.azure.com/rust-lang/rust/_build/results?buildId=32224&view=results
2020-06-17 14:50:28 -07:00
sozysozbot
f3a40f5eb1
Fix typo
extending it's lifetime -> extending its lifetime
2020-06-18 06:50:04 +09:00
matthewjasper
ba2ef58ae6 Unify region variables when projecting associated types
This is required to avoid cycles when evaluating auto trait
predicates.
2020-06-17 19:46:15 +01:00
Rich Kadel
b9f0304af8 temporarily enable mac and windows tests on bors try
testing platform-specific changes
2020-06-17 11:39:35 -07:00
Rich Kadel
c3387293d4
Update src/libcore/intrinsics.rs
Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
2020-06-17 10:29:00 -07:00
erikdesjardins
6351850d8f
ignore-debug: debug assertions in slice indexing prevent the optimization 2020-06-17 13:10:49 -04:00
Dylan MacKenzie
3a1207f688 Add issue number to novel violation warning 2020-06-17 10:05:07 -07:00
Dylan MacKenzie
38e921b2c1 Add regression test for #73431 2020-06-17 09:55:08 -07:00
Dylan MacKenzie
c9dc73d757 Make novel structural match violations a warning 2020-06-17 09:29:33 -07:00
Pietro Albini
afde8601d6
ci: disable alt build during try builds
The build is not actually needed often, and it can be added back on a
case-by-case basis if a specific PR needs access to it.
2020-06-17 17:17:25 +02:00
Joshua Nelson
936ecadcec Add src/librustdoc as an alias for src/tools/rustdoc
No one actually works with src/tools/librustdoc, it's almost empty.
2020-06-17 09:33:27 -04:00
Guillaume Gomez
bde1ccfcb2 Clean up E0670 explanation 2020-06-17 14:07:34 +02:00
bors
2935d294ff Auto merge of #69890 - lenary:lenary/riscv-frame-pointers, r=hanna-kruppe,Mark-Simulacrum
[RISC-V] Do not force frame pointers

We have been seeing some very inefficient code that went away when using
`-Cforce-frame-pointers=no`. For instance `core::ptr::drop_in_place` at
`-Oz` was compiled into a function which consisted entirely of saving
registers to the stack, then using the frame pointer to restore the same
registers (without any instructions between the prolog and epilog).

The RISC-V LLVM backend supports frame pointer elimination, so it makes
sense to allow this to happen when using Rust. It's not clear to me that
frame pointers have ever been required in the general case.

In rust-lang/rust#61675 it was pointed out that this made reassembling
stack traces easier, which is true, but there is a code generation
option for forcing frame pointers, and I feel the default should not be
to require frame pointers, given it demonstrably makes code size worse
(around 10% in some embedded applications).

The kinds of targets mentioned in rust-lang/rust#61675 are popular, but
should not dictate that code generation should be worse for all RISC-V
targets, especially as there is a way to use CFI information to
reconstruct the stack when the frame pointer is eliminated. It is also
a misconception that `fp` is always used for the frame pointer. `fp` is
an ABI name for `x8` (aka `s0`), and if no frame pointer is required,
`x8` may be used for other callee-saved values.

---

I am partly posting this to get feedback from @fintelia who introduced the change to require frame pointers, and @hanna-kruppe who had issues with the original PR. I would understand if we wanted to remove this setting on only a subset of RISC-V targets, but my preference would be to remove this setting everywhere.

There are more details on the code size savings seen in Tock here: https://github.com/tock/tock/pull/1660
2020-06-17 11:30:56 +00:00
Ayaz Hafiz
7a89a33823
fixup! Note numeric literals that can never fit in an expected type 2020-06-16 23:10:41 -07:00
asrar
caffb28ece
add blank line bw sections
Separate target features from rust ones with a blank line

Co-authored-by: Josh Stone <cuviper@gmail.com>
2020-06-17 10:31:46 +05:30
Ayaz Hafiz
d7277df3ac
fixup! Note numeric literals that can never fit in an expected type 2020-06-16 20:05:55 -07:00
Rich Kadel
1db44afecd Ensure profiling runtime for -Zinstrument-coverage
If config.toml `profiler = false`, the test/mir-opt/instrument_coverage
test is ignored. Otherwise, this patch ensures the profiler_runtime is
loaded when -Zinstrument-coverage is enabled. Confirmed that this works
for MacOS.
2020-06-16 18:48:46 -07:00
Poliorcetics
e75fa896ba
Don't imply function pointers are references
Co-authored-by: David Tolnay <dtolnay@gmail.com>
2020-06-17 03:30:41 +02:00
pierwill
9f2e8adc35
Fix typo in librustc_ast docs
Fixed sentence by removing a word.
2020-06-16 18:11:47 -07:00
Esteban Küber
af45d8a5bb Suggest new type param on single char ident
Suggest new type parameter on single char uppercase ident even if it
doesn't appear in a field's type parameter.

Address comment in #72641.
2020-06-16 17:36:55 -07:00
Esteban Küber
aa84b0fa37 Provide help when T: ?Sized can't be suggested 2020-06-16 17:24:16 -07:00
Eduardo Broto
a7743e9084 redundant_pattern_matching: avoid non-const fn in const context 2020-06-17 00:32:47 +02:00
Gary Guo
2b7d858866 Add some comments related to place op typeck 2020-06-16 22:50:21 +01:00
Alexis Bourget
15cd51af5e Mention functions pointers in the documentation 2020-06-16 23:39:03 +02:00
bors
e8ff4bcbd0 Auto merge of #73322 - Amanieu:asm-srcloc-llvm, r=cuviper
Update LLVM submodule

Only includes one commit:
- [D80759](https://reviews.llvm.org/D80759): Fix FastISel dropping srcloc metadata from InlineAsm

Fixes #40555
2020-06-16 20:40:22 +00:00
Hanif Bin Ariffin
5a9df8406f Added some more documentations to unsafety blocks in slice/sort.rs 2020-06-16 16:19:49 -04:00
Ralf Jung
81c7ebd544 we can enable one more codegen test in debug mode now 2020-06-16 16:01:30 -04:00
Ralf Jung
f0a42332b8 memory access sanity checks: abort instead of panic 2020-06-16 16:01:30 -04:00
root
457acbd5a8 trim whitespace 2020-06-16 18:53:30 +00:00
Matthew Jasper
1b92d592b5 Explain unused macro param 2020-06-16 19:29:53 +01:00
Ericko Samudera
8c1ee063bb mem_replace_with_uninit: suggest std::ptr::read 2020-06-17 01:26:37 +07:00
root
9f50f84ef1 break long line for formatting 2020-06-16 18:14:32 +00:00
root
4506a358ca add header for rust specific feature 2020-06-16 17:36:04 +00:00
Andrew Paverd
83e6c0e986 Update CFGuard syntax 2020-06-16 17:44:03 +01:00
Eric Huss
8f5ff7b379 Update cargo 2020-06-16 09:22:27 -07:00
bors
a647c0cd68 Auto merge of #73402 - Dylan-DPC:rollup-8udzpfu, r=Dylan-DPC
Rollup of 8 pull requests

Successful merges:

 - #73237 (Check for overflow in DroplessArena and align returned memory)
 - #73339 (Don't run generator transform when there's a TyErr)
 - #73372 (Re-order correctly the sections in the sidebar)
 - #73373 (Use track caller for bug! macro)
 - #73380 (Add more info to `x.py build --help` on default value for `-j JOBS`.)
 - #73381 (Fix typo in docs of std::mem)
 - #73389 (Use `Ipv4Addr::from<[u8; 4]>` when possible)
 - #73400 (Fix forge-platform-support URL)

Failed merges:

r? @ghost
2020-06-16 14:58:14 +00:00
Who? Me?!
cfdbbb5600
format derives
Co-authored-by: lzutao <taolzu@gmail.com>
2020-06-16 09:41:05 -05:00
Brian Cain
7a9f29d305 Add initial asm!() support for hexagon
GPRs only
2020-06-16 08:58:13 -05:00
Ayaz Hafiz
f0d36891b6
fixup! Note numeric literals that can never fit in an expected type 2020-06-16 06:55:24 -07:00
Charles Lew
1990f9777f Disallow loading crates with non-ascii identifier name. 2020-06-16 21:34:36 +08:00
Dylan DPC
b4dd6a0dc4
Rollup merge of #73400 - rnestler:patch-1, r=jonas-schievink
Fix forge-platform-support URL

Apparently it got changed.
2020-06-16 15:08:48 +02:00
Dylan DPC
3c437e5733
Rollup merge of #73389 - lzutao:from, r=kennytm
Use `Ipv4Addr::from<[u8; 4]>` when possible

Resolve this comment: https://github.com/rust-lang/rust/pull/73331#discussion_r440098369
2020-06-16 15:08:47 +02:00
Dylan DPC
759547b210
Rollup merge of #73381 - ratijas:fix-typo-std-mem, r=jonas-schievink
Fix typo in docs of std::mem
2020-06-16 15:08:45 +02:00
Dylan DPC
66a1da38d0
Rollup merge of #73380 - pnkfelix:make-bootstrap-help-print-num-cpus, r=Mark-Simulacrum
Add more info to `x.py build --help` on default value for `-j JOBS`.
2020-06-16 15:08:43 +02:00
Dylan DPC
94105c2da3
Rollup merge of #73373 - lzutao:bug-trackcaller, r=Amanieu
Use track caller for bug! macro
2020-06-16 15:08:42 +02:00
Dylan DPC
6c44519749
Rollup merge of #73372 - GuillaumeGomez:re-order-sidebar-sections, r=kinnison
Re-order correctly the sections in the sidebar

Before that, "trait implementations" and "implementors" titles in the sidebar were before "methods" for example. Which wasn't logical considering that the two sections come after in the "content".

r? @kinnison
2020-06-16 15:08:40 +02:00
Dylan DPC
5bbcdf5f53
Rollup merge of #73339 - jonas-schievink:unbug, r=estebank
Don't run generator transform when there's a TyErr

Not sure if this might cause any problems later on, but we shouldn't be hitting codegen or const eval for the produced MIR anyways, so it should be fine.

cc https://github.com/rust-lang/rust/issues/72685#issuecomment-643749020
2020-06-16 15:08:37 +02:00