Commit Graph

123970 Commits

Author SHA1 Message Date
Manish Goregaokar
8afb305e72
Rollup merge of #73893 - ajpaverd:cfguard-stabilize, r=nikomatsakis
Stabilize control-flow-guard codegen option

This is the stabilization PR discussed in #68793. It converts the `-Z control-flow-guard` debugging option into a codegen option (`-C control-flow-guard`), and changes the associated tests.
2020-07-22 09:29:03 -07:00
Manish Goregaokar
dade0f1f6c
Rollup merge of #73655 - JamieCunliffe:jamie_va-args-c, r=nikic
va_args implementation for AAPCS.

Implement the va args in codegen for AAPCS, this will be used as the
default va_args implementation for AArch64 rather than the va_args
llvm-ir as it currently is.

This should fix the following issues:
https://github.com/rust-lang/rust/issues/56475
https://github.com/rust-lang/rust/issues/72579
2020-07-22 09:29:00 -07:00
Vadim Petrochenkov
0b662c2358 build: Remove unnecessary build = "build.rs" annotations 2020-07-22 19:13:02 +03:00
Vadim Petrochenkov
4b052024a0 build: Remove unnecessary cargo:rerun-if-env-changed annotations 2020-07-22 19:12:32 +03:00
Guillaume Gomez
96225b15e5 Fix tooltip position if the documentation starts with a code block 2020-07-22 17:19:05 +02:00
Bastian Kauschke
40b6bccd64 no need to polymorphize 2020-07-22 17:02:59 +02:00
Bastian Kauschke
6a9c5fb4cc polymorphize GlobalAlloc::Function 2020-07-22 17:02:58 +02:00
David Wood
799d52eff7
tests: add regression test for #74614
This commit adds a regression test for #74614 so that it is fixed before
polymorphisation is re-enabled.

Signed-off-by: David Wood <david@davidtw.co>
2020-07-22 15:36:26 +01:00
David Wood
f39ed207fe
sess: disable polymorphisation
This commit disables polymorphisation to resolve regressions related to
closures which inherit unused generic parameters and are then used in
casts or reflection.

Signed-off-by: David Wood <david@davidtw.co>
2020-07-22 15:36:24 +01:00
David Wood
90e941a974
mir: improve polymorphic constant bug
This commit changes the span and content of the "collection encountered
polymorphic constant" bug in monomorphization collection to point to the
use of the constant rather than the definition.

Signed-off-by: David Wood <david@davidtw.co>
2020-07-22 15:36:22 +01:00
Vadim Petrochenkov
49b9a6486a rustc_target: Add a target spec option for disabling --eh-frame-hdr 2020-07-22 16:47:37 +03:00
bors
69d68f9096 Auto merge of #74620 - rust-lang:remove-most-azure, r=Mark-Simulacrum
Disable Azure Pipelines except for macOS

Following up on https://github.com/rust-lang/rust/pull/74565, this PR disables most of Azure Pipelines except for macOS auto builds, practically switching us to GitHub Actions 🎉

r? @Mark-Simulacrum
2020-07-22 13:40:55 +00:00
Mark Rousskov
b747a33abd Revert "include backtrace folder in rust-src component"
This reverts commit d7a36d8964.
2020-07-22 07:16:57 -04:00
Mark Rousskov
cc4f547cf4 Revert "std: Switch from libbacktrace to gimli"
This reverts commit 13db3cc1e8.
2020-07-22 07:16:45 -04:00
Mark Rousskov
3c6003c4c0 Revert "std: Fix compilation without backtrace feature"
This reverts commit 028f8d7b85.
2020-07-22 07:16:45 -04:00
Mark Rousskov
7442406783 Revert "update backtrace-rs"
This reverts commit 4cbd265c11.
2020-07-22 07:16:45 -04:00
Mark Rousskov
747bc8ec88 Enable perf try builder
This adds a dedicated branch for perf to use for CI, intended to allow perf to
enqueue builds without needing to use bors. bors is great, but bors requires an
open PR to work, and we want to invoke perf on closed PRs sometimes (in
particular, rollups).
2020-07-22 07:13:15 -04:00
Xavier Denis
711a6807a7 Optimize away BitAnd and BitOr when possible 2020-07-22 11:32:36 +02:00
Pietro Albini
ffd112250e
ci: disable Azure Pipelines except for macOS 2020-07-22 11:00:56 +02:00
bors
e22b61bff0 Auto merge of #73270 - dylanmckay:avr-use-correct-addrspace, r=nagisa
[AVR] Correctly set the pointer address space when constructing pointers to functions

NOTE: Pull request iterations:

* https://github.com/dylanmckay/rust/releases/tag/avr-use-correct-addrspace.0
* https://github.com/dylanmckay/rust/releases/tag/avr-use-correct-addrspace.1
* https://github.com/dylanmckay/rust/releases/tag/avr-use-correct-addrspace.2

This patch extends the existing `type_i8p` method so that it requires an
explicit address space to be specified. Before this patch, the
`type_i8p` method implcitily assumed the default address space, which is
not a safe transformation on all targets, namely AVR.

The Rust compiler already has support for tracking the "instruction
address space" on a per-target basis. This patch extends the code
generation routines so that an address space must always be specified.

In my estimation, around 15% of the callers of `type_i8p` produced
invalid code on AVR due to the loss of address space prior to LLVM final
code generation. This would lead to unavoidable assertion errors
relating to invalid bitcasts.

With this patch, the address space is always either 1) explicitly preserved
from the input type, or 2) explicitly set to the instruction address
space because the logic is dealing with functions which must be placed
there, or 3) explicitly set to the default address space 0 because the
logic can only operate on data space pointers and thus we keep the
existing semantics of assuming the default, "data" address space.
2020-07-22 08:18:46 +00:00
Yuki Okushi
430bd39a0d
Do not ICE on assoc type with bad placeholder 2020-07-22 14:43:11 +09:00
bors
4825e12fc9 Auto merge of #74578 - ehuss:fix-rust-src, r=Mark-Simulacrum
Fix rust-src component.

The rust-src component could not be installed by rustup because it included some symbolic links. #74520 added the backtrace directory which included some symlinks. Since the rust-src component doesn't need most of the files in the `backtrace` submodule, this changes it to only include the minimum necessary.

Tested with cargo's build-std that it can build from the resulting tarball.

Fixes #74577
2020-07-22 02:51:58 +00:00
Mark Rousskov
1d6860082f
Revert "Compare tagged/niche-filling layout and pick the best one" 2020-07-21 20:02:30 -04:00
bors
aca77cdd8f Auto merge of #74565 - pietroalbini:build-on-gha, r=Mark-Simulacrum
Upload builds from GHA instead of Azure Pipelines

This PR does two things:

* Enables RLA comments on PRs (needed after the switch to GHA in RLA).
* Switches GitHub Actions as the CI authorized to upload non-macOS builds.

Note that Docker/LLVM caches will likely be busted.

r? @Mark-Simulacrum
2020-07-21 23:29:22 +00:00
Josh Stone
37dd7a023b Remove Linux workarounds for missing CLOEXEC support
Now that #74163 updated the minimum Linux kernel to 2.6.32, we can
assume the availability of APIs that open file descriptors that are
already set to close on exec, including the flags `O_CLOEXEC`,
`SOCK_CLOEXEC`, and `F_DUPFD_CLOEXEC`.
2020-07-21 14:32:36 -07:00
Bastian Kauschke
4bffe8f00d fetch -> lookup 2020-07-21 23:12:10 +02:00
Bastian Kauschke
38e9e62663 try_update -> try_upgrade 2020-07-21 23:06:00 +02:00
Bastian Kauschke
ebc0c15610 remove some const arg in ty dep path boilerplate 2020-07-21 23:06:00 +02:00
Dylan McKay
5581ce6c10 [AVR] Ensure that function pointers stored within aggregates are annotated with the correct space
Before this patch, a function pointer stored within an aggregate like a
struct or an enum would always have the default address space `0`.

This patch removes this assumption and instead, introspects the inner
type being pointed at, storing the target address space in the PointeeInfo
struct so that downstream users may query it.
2020-07-22 05:16:26 +12:00
Dylan McKay
8ae5eadb22 [AVR] Correctly set the pointer address space when constructing pointers to functions
This patch extends the existing `type_i8p` method so that it requires an
explicit address space to be specified. Before this patch, the
`type_i8p` method implcitily assumed the default address space, which is
not a safe transformation on all targets, namely AVR.

The Rust compiler already has support for tracking the "instruction
address space" on a per-target basis. This patch extends the code
generation routines so that an address space must always be specified.

In my estimation, around 15% of the callers of `type_i8p` produced
invalid code on AVR due to the loss of address space prior to LLVM final
code generation. This would lead to unavoidable assertion errors
relating to invalid bitcasts.

With this patch, the address space is always either 1) explicitly set to
the instruction address space because the logic is dealing with functions
which must be placed there, or 2) explicitly set to the default address
space 0 because the logic can only operate on data space pointers and thus
we keep the existing semantics of assuming the default, "data" address space.
2020-07-22 05:16:22 +12:00
Eric Huss
3eed7da1f9 Update books 2020-07-21 07:58:59 -07:00
Jamie Cunliffe
8b58eb9dc4 Remove the assert on alignment check.
Also the alignment should only be done on general register types as
per the AAPCS so fixed that issue.

Copyright (c) 2020, Arm Limited.
2020-07-21 15:24:26 +01:00
bors
8ad7bc3f42 Auto merge of #74075 - sunfishcode:wasi-prelude-rawfd, r=alexcrichton
Add `RawFd` to WASI's `std::os::wasi::prelude`.

Add `RawFd` to WASI's `std::os::wasi::prelude`, making it consistent
with all other platforms which also have `AsRawFd`, `FromRawFd`, and
`IntoRawFd` in their respective preludes.
2020-07-21 06:55:17 +00:00
bors
b52522ade1 Auto merge of #69749 - davidtwco:issue-46477-polymorphization, r=eddyb
Polymorphization

This PR implements an analysis to detect when functions could remain polymorphic during code generation.

Fixes #46477

r? @eddyb
cc @rust-lang/wg-mir-opt @nikomatsakis @pnkfelix
2020-07-21 03:09:04 +00:00
Eric Huss
79673d3009 Fix rust-src component. 2020-07-20 19:49:03 -07:00
Gary Guo
b3340b5cea Expand test to cover type_name and monomorphic use 2020-07-21 02:28:51 +01:00
Mark Rousskov
8454ee89b2 Migrate rustc_depr uses to use deprecation attribute
This should not be a change in behavior.
2020-07-20 21:22:14 -04:00
Mark Rousskov
21a3d294dc rustc_depr no longer needs to be connected to stability
We can deprecate non-stable/unstable items.
2020-07-20 21:22:14 -04:00
Mark Rousskov
c5cc29b0e0 Parse rustc_deprecated as deprecated attribute 2020-07-20 21:22:14 -04:00
Jake Goulding
804241ea06 Update dependencies that have knowledge about aarch64-apple-darwin 2020-07-20 20:45:52 -04:00
Jake Goulding
4c69d4bc05 Add the aarch64-apple-darwin target
This is a basic copy-paste-modify from the existing
x86_64-apple-darwin target.
2020-07-20 20:33:14 -04:00
Andy Russell
7f3e2c0d37
refactor and reword intra-doc link errors
This commit refactors intra-doc link error reporting to deduplicate code
and decouple error construction from the type of error. This greatly
improves flexibility at each error construction site, while reducing the
complexity of the diagnostic creation.

This commit also rewords the diagnostics for clarity and style:

- Diagnostics should not end in periods.
- It's unnecessary to say "ignoring it". Since this is a warning by
  default, it's already clear that the link is ignored.
2020-07-20 18:44:15 -04:00
bors
734233d297 Auto merge of #74569 - Manishearth:rollup-hkn5ex9, r=Manishearth
Rollup of 13 pull requests

Successful merges:

 - #72714 (Fix debug assertion in typeck)
 - #73197 (Impl Default for ranges)
 - #73323 (wf: check foreign fn decls for well-formedness)
 - #74051 (disallow non-static lifetimes in const generics)
 - #74376 (test caching opt_const_param_of on disc)
 - #74501 (Ayu theme: Use different background color for Run button)
 - #74505 (Fix search input focus in ayu theme)
 - #74522 (Update sanitizer docs)
 - #74546 (Fix duplicate maybe_uninit_extra attribute)
 - #74552 (Stabilize TAU constant.)
 - #74555 (Improve "important traits" popup display on mobile)
 - #74557 (Fix an ICE on an invalid `binding @ ...` in a tuple struct pattern)
 - #74561 (update backtrace-rs)

Failed merges:

r? @ghost
2020-07-20 21:38:46 +00:00
Bastian Kauschke
cfcbca6c69 update coherence docs 2020-07-20 23:18:06 +02:00
Bastian Kauschke
c71b196f66 review 2020-07-20 22:34:26 +02:00
Manish Goregaokar
df8d169c31
Rollup merge of #74561 - RalfJung:backtrace, r=alexcrichton
update backtrace-rs

Hopefully fixes https://github.com/rust-lang/rust/issues/74484
r? @alexcrichton
2020-07-20 12:30:34 -07:00
Manish Goregaokar
6bbf82ddd7
Rollup merge of #74557 - jakubadamw:issue-74539, r=nagisa
Fix an ICE on an invalid `binding @ ...` in a tuple struct pattern

Fixes #74539.
2020-07-20 12:30:32 -07:00
Manish Goregaokar
963b837a83
Rollup merge of #74555 - GuillaumeGomez:important-traits-popup, r=Manishearth
Improve "important traits" popup display on mobile

I implemented what @XAMPPRocky suggested in the [internals thread topic](https://internals.rust-lang.org/t/feedback-on-important-traits-rustdoc-feature/12752/18). I can confirm it works nicely.

r? @Manishearth

@Manishearth: By the way: I realized that when you click on the "i", you have to click again to make the popup disappear. Do you want me to extend the popup removal to any click outside the popup?
2020-07-20 12:30:31 -07:00
Manish Goregaokar
810d322366
Rollup merge of #74552 - fusion-engineering-forks:stabilize-tau, r=dtolnay
Stabilize TAU constant.

Closes #66770.
2020-07-20 12:30:29 -07:00
Manish Goregaokar
b7357c4c90
Rollup merge of #74546 - jethrogb:jb/duplicate-attribute-maybe_uninit_extra, r=kennytm
Fix duplicate maybe_uninit_extra attribute

Introduced in #72414
2020-07-20 12:30:27 -07:00