Commit Graph

123882 Commits

Author SHA1 Message Date
Philippe Nadon
ef9c4f5cef Miri: rename "undef" to "uninit"
renamed Allocation::check_defined_and_ptr to Allocation::check_init_and_ptr

renamed Allocation::check_defined_and_ptr to Allocation::check_init_and_ptr

in src/librustc_middle/mir/interpret/allocation.rs

renamed Allocation::is_defined and Allocation::check_defined, fixed documentation

renamed Allocation::is_defined and Allocation::check_defined to is_init and check_init respectively.

Fixed documentation so it correctly refers to "initialization" instead of "defined"-ness

renamed Allocation::mark_definedness

renamed Allocation::mark_definedness to Allocation::mark_init

Renamed new_state parameter in Allocation::mark_init

Renamed new_state to is_init, as the latter is more descriptive.

renamed functions in AllocationDefinedness

renamed AllocationDefinedness::all_bytes_undef and AllocationDefinedness::mark_compressed_undef_range to no_bytes_init and mark_compressed_init_range respectively.

renamed AllocationDefinedness to InitMaskCompressed

renamed Immediate::to_scalar_or_undef

renamed to to_scalar_or_uninit

fixed comment references to "undef"

Changed comments referring to "undef" and "definedness" to "initialization" and "initialization state" in src/librustc_mir/interpret/memory.rs and src/librustc_middle/mir/interpret/allocation.rs

changed references to "undef" in comments and a variable

Changed some comments referring to "undef" to use "uninitialized" instead. Also changed a variable from "undef_end" to "uninit_end".
All changes were made within src/librustc_middle/mir/interpret/allocation.rs.

Changed more comments referring to undef

Changed comments to use "uninitialized" instead of "undef" in src/librustc_middle/mir/interpret/allocation.rs.
2020-07-25 11:04:55 -06:00
Philippe Nadon
55984b65ce renamed ScalarMaybeUninit::not_undef to check_init
Renamed the function ScalarMaybeUninit::not_undef to ScalarMaybeUninit::check_init in the file src/librustc_middle/mir/interpret/value.rs, to reflect changes in terminology used.

Related issue rust-lang#71193
2020-07-22 22:58:11 -06:00
bors
e8b55a4ad2 Auto merge of #74662 - Manishearth:rollup-jdt7t71, r=Manishearth
Rollup of 9 pull requests

Successful merges:

 - #73783 (Detect when `'static` obligation might come from an `impl`)
 - #73868 (Advertise correct stable version for const control flow)
 - #74460 (rustdoc: Always warn when linking from public to private items)
 - #74538 (Guard against non-monomorphized type_id intrinsic call)
 - #74541 (Add the aarch64-apple-darwin target )
 - #74600 (Enable perf try builder)
 - #74618 (Do not ICE on assoc type with bad placeholder)
 - #74631 (rustc_target: Add a target spec option for disabling `--eh-frame-hdr`)
 - #74643 (build: Remove unnecessary `cargo:rerun-if-env-changed` annotations)

Failed merges:

r? @ghost
2020-07-23 00:37:58 +00:00
Manish Goregaokar
b32383ca90
Rollup merge of #74643 - petrochenkov:noenvrerun, r=Mark-Simulacrum
build: Remove unnecessary `cargo:rerun-if-env-changed` annotations

... and a couple of related cleanups.

rustc and cargo now track the majority of env var dependencies automatically (https://github.com/rust-lang/cargo/pull/8421), so the annotations are no longer necessary.
2020-07-22 16:34:50 -07:00
Manish Goregaokar
7b28e7bf6b
Rollup merge of #74631 - petrochenkov:ehdr2, r=jonas-schievink
rustc_target: Add a target spec option for disabling `--eh-frame-hdr`

Disable `--eh-frame-hdr` for targets that use an `ld`-like linker, but don't support that option.
Do it through a target spec option rather than through hard-coding in `linker.rs`.
The option is still enabled by default though.

cc https://github.com/rust-lang/rust/pull/73564
Fixes https://github.com/rust-lang/rust/pull/73564#issuecomment-657011004
Fixes https://github.com/rust-lang/rust/pull/74625
Fixes https://github.com/rust-embedded/msp430-rt/issues/12
2020-07-22 16:34:48 -07:00
Manish Goregaokar
9ac2af1dfc
Rollup merge of #74618 - JohnTitor:no-more-bad-placeholder, r=estebank
Do not ICE on assoc type with bad placeholder

Fixes #74612
r? @estebank
2020-07-22 16:34:46 -07:00
Manish Goregaokar
0edf2e618d
Rollup merge of #74600 - Mark-Simulacrum:try-perf, r=pietroalbini
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 16:34:44 -07:00
Manish Goregaokar
8114dc7a4a
Rollup merge of #74541 - shepmaster:aarch64-apple-darwin-target, r=nagisa
Add the aarch64-apple-darwin target

This is a basic copy-paste-modify from the existing
x86_64-apple-darwin target.
2020-07-22 16:34:43 -07:00
Manish Goregaokar
4828895cd9
Rollup merge of #74538 - nbdd0121:issue-73976, r=lcnr
Guard against non-monomorphized type_id intrinsic call

This PR checks whether the type is sufficient monomorphized when calling type_id or type_name intrinsics. If the type is not sufficiently monomorphized, e.g. used in a pattern, the code will be rejected.

Fixes #73976
2020-07-22 16:34:41 -07:00
Manish Goregaokar
02e350f5a2
Rollup merge of #74460 - dennis-hamester:rustdoc-warn-pub-to-priv, r=jyn514
rustdoc: Always warn when linking from public to private items

Change the logic such that linking from a public to a private item always triggers `intra_doc_link_resolution_failure`.
Previously, the warning was not emitted when `--document-private-items` is passed.

This came up during the discussion in https://github.com/rust-lang/rust/pull/74147#discussion_r452597901.
2020-07-22 16:34:39 -07:00
Manish Goregaokar
da449a9c1b
Rollup merge of #73868 - ecstatic-morse:fix-stable-version, r=jonas-schievink
Advertise correct stable version for const control flow

#72437 was opened before the 1.45 release but merged afterwards. These will be stable in 1.46.
2020-07-22 16:34:37 -07:00
Manish Goregaokar
fe9babbaed
Rollup merge of #73783 - estebank:impl-dyn-trait-static-lifetime, r=nikomatsakis
Detect when `'static` obligation might come from an `impl`

Partly address #71341.
2020-07-22 16:34:36 -07:00
bors
4a86573c6b Auto merge of #74404 - lcnr:ty-dep-path-cleanup-aaaaa, r=eddyb
remove some const arg in ty dep path boilerplate

followup to #74113, together with #74376, this closes #74360.

r? @eddyb
2020-07-22 21:50:21 +00:00
Esteban Küber
889a4d9a0b Change error code number 2020-07-22 13:12:34 -07:00
Dennis Hamester
c14641a814 rustdoc: Add explanation when linting against public to private item links
The additional note helps explaining why the lint was triggered and that
--document-private-items directly influences the link resolution.
2020-07-22 21:40:51 +02:00
Dennis Hamester
ed53de029c rustdoc: Always warn when linking from public to private items
Change the logic such that linking from a public to a private item always
triggers intra_doc_link_resolution_failure. Previously, the warning was
not emitted when --document-private-items is passed.

Also don't rely anymore on the item's visibility, which would falsely trigger
the lint now that the check for --document-private-items is gone.
2020-07-22 21:36:30 +02:00
bors
bbebe7351f Auto merge of #74633 - davidtwco:issue-74614-disable-polymorphisation, r=wesleywiser
Disable polymorphisation

Fixes #74614.

This PR disables polymorphisation to fix the regression in #74614 after investigation into the issue makes it clear that the fix won't be trivial. ~~I'll file an issue shortly to replace #74614 with the findings so far.~~ #74636 has been filed to track the fix of the underlying regression.

r? @eddyb
2020-07-22 19:34:20 +00:00
Esteban Küber
53d96b5159 Handle fully-qualified paths and add test cases 2020-07-22 12:25:55 -07:00
Esteban Küber
3712dfc677 Partially account for case where used method is from trait 2020-07-22 12:25:55 -07:00
Esteban Küber
f80743712e Use ty::Instance::resolve to identify 'static bound source 2020-07-22 12:25:55 -07:00
Esteban Küber
7bf39fa9d9 Further tweak wording of E0759 and introduce E0767 2020-07-22 12:25:54 -07:00
Esteban Küber
6bac3dbfc2 Add more context to diagnostic 2020-07-22 12:25:54 -07:00
Esteban Küber
4e08bab87d Increase accuracy of lifetime bound on trait object impl suggestion 2020-07-22 12:25:54 -07:00
Esteban Küber
6513148c14 Detect when 'static obligation might come from an impl
Address #71341.
2020-07-22 12:25:54 -07:00
Vadim Petrochenkov
7be36a86f7 build: Avoid unnecessary build script reruns in libstd
Add a FIXME to build scripts in profiler_builtins
2020-07-22 20:06:37 +03:00
Vadim Petrochenkov
461c576457 build: Harden env var tracking in build scripts 2020-07-22 19:51:19 +03:00
bors
9e92106d45 Auto merge of #74642 - Manishearth:rollup-148kz52, r=Manishearth
Rollup of 9 pull requests

Successful merges:

 - #73655 (va_args implementation for AAPCS.)
 - #73893 (Stabilize control-flow-guard codegen option)
 - #74237 (compiletest: Rewrite extract_*_version functions)
 - #74454 (small coherence cleanup)
 - #74528 (refactor and reword intra-doc link errors)
 - #74568 (Apply #66379 to `*mut T` `as_ref`)
 - #74570 (Use forge links for prioritization procedure)
 - #74589 (Update books)
 - #74635 (Fix tooltip position if the documentation starts with a code block)

Failed merges:

r? @ghost
2020-07-22 16:30:36 +00:00
Manish Goregaokar
05a24661a3
Rollup merge of #74635 - GuillaumeGomez:fix-tooltip-pos, r=Manishearth
Fix tooltip position if the documentation starts with a code block

Fixes #74321.

Before:

![before](https://user-images.githubusercontent.com/3050060/88188970-cf842400-cc38-11ea-839b-37e41656837d.png)

After:

![after](https://user-images.githubusercontent.com/3050060/88188981-d3b04180-cc38-11ea-8194-713ffe640d3a.png)

And in case there is text, it is not being applied:

![after-witness](https://user-images.githubusercontent.com/3050060/88189009-ddd24000-cc38-11ea-9f0a-61dfd0a0cbd0.png)

And on mobile it isn't needed so it's not "activated":

![Screenshot from 2020-07-22 17-17-43](https://user-images.githubusercontent.com/3050060/88194698-65bb4880-cc3f-11ea-8513-0043ccca8cfc.png)

r? @rust-lang/rustdoc
2020-07-22 09:29:17 -07:00
Manish Goregaokar
3de0de1ded
Rollup merge of #74589 - ehuss:update-books, r=ehuss
Update books

## reference

5 commits in 0ea7bc494f1289234d8800bb9185021e0ad946f0..b329ce37424874ad4db94f829a55807c6e21d2cb
2020-07-02 15:33:04 -0700 to 2020-07-20 08:54:08 -0700
- this '*' is unnecessary, and reduces readability (rust-lang-nursery/reference#853)
- Tiny typo fix (rust-lang-nursery/reference#849)
- Update const eval chapter to latest changes (rust-lang-nursery/reference#842)
- Document #[track_caller]. (rust-lang-nursery/reference#742)
- Document shebang restriction. (rust-lang-nursery/reference#823)

## book

2 commits in 84a31397b34f9d405df44f2899ff17a4828dba18..a914f2c7e5cdb771fa465de142381a51c53b580e
2020-07-04 10:50:18 -0500 to 2020-07-21 09:20:05 -0500
- Change misleading wording (rust-lang/book#2399)
- Improve wording to include Windows versions (rust-lang/book#2395)

## edition-guide

3 commits in 82bec5877c77cfad530ca11095db4456d757f668..bd6e4a9f59c5c1545f572266af77f5c7a5bad6d1
2020-06-03 08:56:02 -0500 to 2020-07-12 17:37:08 -0500
- update guide for 1.36 and 1.37 (rust-lang/edition-guide#217)
- Add contents for Rust 1.35 (rust-lang/edition-guide#216)
- update edition guide for Rust 1.34 (rust-lang/edition-guide#215)
2020-07-22 09:29:15 -07:00
Manish Goregaokar
2bf54990a4
Rollup merge of #74570 - spastorino:fix-prioritization-procedures-links, r=Mark-Simulacrum
Use forge links for prioritization procedure

r? @Mark-Simulacrum

cc @rust-lang/wg-prioritization
2020-07-22 09:29:13 -07:00
Manish Goregaokar
d180c79a2f
Rollup merge of #74568 - aticu:master, r=Mark-Simulacrum
Apply #66379 to `*mut T` `as_ref`

#66379 changed the documentation of `as_ref` on the type `*const T` and `as_mut` on the type `*mut T`, but it missed making that same change for `as_ref` on the type `*mut T`.
2020-07-22 09:29:11 -07:00
Manish Goregaokar
f4079ce980
Rollup merge of #74528 - euclio:intra-link-errors, r=jyn514
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-22 09:29:09 -07:00
Manish Goregaokar
e811e29492
Rollup merge of #74454 - lcnr:negative-impls, r=nikomatsakis
small coherence cleanup

r? @eddyb
2020-07-22 09:29:07 -07:00
Manish Goregaokar
216ed3c4ab
Rollup merge of #74237 - lzutao:compiletest, r=Mark-Simulacrum
compiletest: Rewrite extract_*_version functions

This makes extract_lldb_version has the same version type like
extract_gdb_version.
2020-07-22 09:29:05 -07:00
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
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
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
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
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