Nicholas Nethercote
854219d2ad
Expand the HIR (and AST) size assertions.
2022-08-29 06:35:14 +10:00
Nicholas Nethercote
9ee0192095
Add prefix to every line of -Zhir-stats output.
...
This is based on `-Zprint-type-sizes` which does the same thing. It
makes the output provenance clearer, and helps with post-processing.
E.g. if you have `-Zhir-stats` output from numerous compiler invocations
you can now easily extract the pre-expansion stats separately from the
post-expansion stats.
2022-08-29 06:35:14 +10:00
bors
ce36e88256
Auto merge of #100497 - kadiwa4:remove_clone_into_iter, r=cjgillot
...
Avoid cloning a collection only to iterate over it
`@rustbot` label: +C-cleanup
2022-08-28 18:31:08 +00:00
Martin Nordholts
ddee45e1d7
Support #[unix_sigpipe = "inherit|sig_dfl|sig_ign"] on fn main()
...
This makes it possible to instruct libstd to never touch the signal
handler for `SIGPIPE`, which makes programs pipeable by default (e.g.
with `./your-program | head -n 1`) without `ErrorKind::BrokenPipe`
errors.
2022-08-28 19:46:45 +02:00
Ralf Jung
f29c3c421b
entirely get rid of NeedsRfc CTFE errors
2022-08-28 13:40:24 -04:00
Ralf Jung
a9f9145b09
CTFE: exposing pointers and calling extern fn doesn't need an RFC, it is just impossible
2022-08-28 13:32:48 -04:00
Ralf Jung
c46e803aaf
improve OFFSET_IS_ADDR docs
2022-08-28 13:05:34 -04:00
Ralf Jung
1a1220c5e4
validation should only catch UB errors
2022-08-28 11:49:32 -04:00
Ben Kimock
cd1a42a95d
Use the declaration's SourceInfo for FnEntry retags, not the outermost
2022-08-28 11:40:10 -04:00
Yuki Okushi
76dd5c58a0
Remove register_attr feature
...
Signed-off-by: Yuki Okushi <jtitor@2k36.org >
2022-08-28 21:23:23 +09:00
Hirochika Matsumoto
152913767a
Support method calls
2022-08-28 17:51:28 +09:00
Matthias Krüger
0335909b4f
Rollup merge of #101098 - petrochenkov:noinvis, r=TaKO8Ki
...
rustc_middle: Remove `Visibility::Invisible`
It had a different meaning in the past, but now it's only used as an implementation detail of import resolution.
2022-08-28 09:35:22 +02:00
Matthias Krüger
3142996a46
Rollup merge of #101055 - TaKO8Ki:use-smaller-span, r=compiler-errors
...
Use smaller span for suggestions
2022-08-28 09:35:20 +02:00
Matthias Krüger
5b8081490f
Rollup merge of #101038 - RalfJung:interning-alignment, r=oli-obk
...
no alignment check during interning
This should fix https://github.com/rust-lang/rust/issues/101034
r? `@oli-obk`
Unfortunately we don't have a self-contained testcase for this problem. I am not sure how it can be triggered...
2022-08-28 09:35:19 +02:00
Matthias Krüger
c5770219f2
Rollup merge of #101002 - estebank:hashmap-idx, r=davidtwco
...
Provide structured suggestion for `hashmap[idx] = val`
2022-08-28 09:35:18 +02:00
Hirochika Matsumoto
75ed56f0cb
Make CI pass
2022-08-28 16:18:44 +09:00
Hirochika Matsumoto
722d136766
Use hir::Map to prevent false positives
2022-08-28 16:05:44 +09:00
Sébastien Marie
1de5b22678
add riscv64gc-unknown-openbsd support (target riscv64-unknown-openbsd on OpenBSD)
...
- add platform-support documentation
- add riscv64gc-unknown-openbsd spec
- do not try to link with -latomic on openbsd
2022-08-28 05:22:21 +00:00
Sébastien Marie
dacb6ee7b0
add powerpc64-unknown-openbsd support
2022-08-28 05:16:02 +00:00
bors
91f128baf7
Auto merge of #92845 - Amanieu:std_personality, r=Mark-Simulacrum
...
Move EH personality functions to std
These were previously in the panic_unwind crate with dummy stubs in the
panic_abort crate. However it turns out that this is insufficient: we
still need a proper personality function even with -C panic=abort to
handle the following cases:
1) `extern "C-unwind"` still needs to catch foreign exceptions with -C
panic=abort to turn them into aborts. This requires landing pads and a
personality function.
2) ARM EHABI uses the personality function when creating backtraces.
The dummy personality function in panic_abort was causing backtrace
generation to get stuck in a loop since the personality function is
responsible for advancing the unwind state to the next frame.
Fixes #41004
2022-08-28 04:16:29 +00:00
yukang
9678751a88
pretty printing give proper erro message without panic
2022-08-28 09:56:18 +08:00
bors
1e978a3627
Auto merge of #96946 - WaffleLapkin:ptr_mask, r=scottmcm
...
Add pointer masking convenience functions
This PR adds the following public API:
```rust
impl<T: ?Sized> *const T {
fn mask(self, mask: usize) -> *const T;
}
impl<T: ?Sized> *mut T {
fn mask(self, mask: usize) -> *const T;
}
// mod intrinsics
fn mask<T>(ptr: *const T, mask: usize) -> *const T
```
This is equivalent to `ptr.map_addr(|a| a & mask)` but also uses a cool llvm intrinsic.
Proposed in https://github.com/rust-lang/rust/pull/95643#issuecomment-1121562352
cc `@Gankra` `@scottmcm` `@RalfJung`
r? rust-lang/libs-api
2022-08-28 01:34:47 +00:00
Michael Goulet
1256530643
More descriptive argument placeholders
2022-08-28 01:24:41 +00:00
Michael Goulet
18b640aee5
Suggest calling when operator types mismatch
2022-08-28 01:08:24 +00:00
Michael Goulet
2f78dd15a6
Suggest calling trait objects and parameters too, when possible
2022-08-27 23:08:44 +00:00
Amanieu d'Antras
a7e4794c2e
Fix handling of rust_eh_personality in reachable_non_generics
2022-08-28 06:38:01 +08:00
Ralf Jung
2e172473da
interpret: make read-pointer-as-bytes *always* work in Miri
...
and show some extra information when it happens in CTFE
2022-08-27 18:37:44 -04:00
Michael Goulet
703603a362
Only suggest call on nonexistent fields and methods if they make sense
2022-08-27 22:36:04 +00:00
Michael Goulet
0734200e80
Use autoderef
2022-08-27 21:23:06 +00:00
Michael Goulet
dca5f5bf8f
Drive-by: Rename expr_t to base_ty
2022-08-27 21:23:06 +00:00
Vadim Petrochenkov
fc3f3c304b
rustc_middle: Remove Visibility::Invisible
2022-08-27 22:34:18 +03:00
Matthew Kelly
deadf071ed
fix trailing ]
2022-08-27 14:36:17 -04:00
Matthew Kelly
de3e95b56c
Review updates: simpler MWE and docs
...
- use the simpler minimum working example from the review
- add an alterate "fix" that helps make the cause of the error more
clear
- attempt to add an improved description of what is going on
2022-08-27 14:20:59 -04:00
Ralf Jung
e63a625711
interpret: rename relocation → provenance
2022-08-27 14:11:19 -04:00
bors
eaadb8947b
Auto merge of #100591 - est31:stabilization_placeholder, r=Mark-Simulacrum
...
Require stabilizations to use a placeholder instead of writing out stabilization version
Implements the idea from [this](https://rust-lang.zulipchat.com/#narrow/stream/241545-t-release/topic/libs.20stabilization.20placeholder ) zulip stream.
It's a common phenomenon that feature stabilizations don't make it into a particular release, but the version is still inaccurate. Often this is caught in the PR, but it can also require subsequent changes to adjust/correct the version. A list with examples of such PRs is given in #100577 , but it's far from complete.
This PR requires stabilization PRs to use the placeholder `CURRENT_RUSTC_VERSION`, enforced via tidy tooling. The PR also adds a tool that replaces the placeholder with the version number. It can be invoked via `./x.py run src/tools/replace-version-placeholder` and is supposed to be ran upon beta branching as well as version bumping and any backports to the beta branch. I filed PRs to the dev guide and forge to document these changes in the release and stabilization workflows:
* The [dev guide](https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#determining-the-stabilization-version ) PR: https://github.com/rust-lang/rustc-dev-guide/pull/1443
* The [std dev guide](https://std-dev-guide.rust-lang.org/ ) PR: https://github.com/rust-lang/std-dev-guide/pull/43
* The [forge](https://github.com/rust-lang/rust-forge ) PR: https://github.com/rust-lang/rust-forge/pull/643
Alternative to #100577 which added checking.
2022-08-27 16:57:19 +00:00
Nicholas Bishop
1dd47b04c0
Set DebuginfoKind::Pdb in msvc_base
...
This PDB setting was added to `windows_msvc_base` in
https://github.com/rust-lang/rust/pull/98051 . It's also needed for the
UEFI targets, and since `uefi_msvc_base` and `windows_msvc_base` are the
only things that inherit from `msvc_base`, just move the PDB setting up
to `mscv_base` to cover both.
Fixes https://github.com/rust-lang/rust/issues/101071
2022-08-27 11:44:35 -04:00
est31
4caedbae86
Adjust label break value stabilization version to CURRENT_RUSTC_VERSION
2022-08-27 17:36:13 +02:00
est31
7a5b1d7939
Expand the version placeholder to the current version in stability attribute parsing
...
That way, the current version is shown in rustdoc etc.
2022-08-27 17:08:52 +02:00
bors
332cc8fb75
Auto merge of #100999 - nnethercote:shrink-FnAbi, r=bjorn3
...
Shrink `FnAbi`
Because they can take up a lot of memory in debug and release builds.
r? `@bjorn3`
2022-08-27 14:00:53 +00:00
Caleb Zulawski
3f2ce0624d
Check pointer metadata rather than pointee size
2022-08-27 13:35:18 +00:00
Ralf Jung
aff9841507
remove a now-useless machine hook
2022-08-27 08:53:04 -04:00
Ralf Jung
4173e971b8
remove an ineffective check in const_prop
2022-08-27 08:53:04 -04:00
Vadim Petrochenkov
f4b5954764
rustc_target: Use Cow and link args helpers in apple_base
2022-08-27 15:30:05 +03:00
Vadim Petrochenkov
f0d0573db1
rustc_target: Do not specify some target options redundantly
...
These values are already inherited
2022-08-27 15:30:05 +03:00
Vadim Petrochenkov
2e83c22154
rustc_target: Add some more target spec sanity checking
2022-08-27 15:30:05 +03:00
bors
3b3f3b72c5
Auto merge of #100989 - lcnr:implied-bounds-uwu, r=spastorino
...
no unnormalized types for implied bounds outside borrowck
fixes #100910 - introduced in https://github.com/rust-lang/rust/pull/100676 - by only considering normalized types for wf.
r? types
2022-08-27 11:37:06 +00:00
bors
4065b89b1e
Auto merge of #100946 - jyn514:query-system-3, r=cjgillot
...
Simplify the arguments to macros generated by the `rustc_queries` proc macro
Very small cleanup. Based on https://github.com/rust-lang/rust/pull/100436 which modifies some of the same code.
r? `@cjgillot`
2022-08-27 08:53:24 +00:00
Jean CASPAR
e89d4fcc7d
remove span_fatal from ast_lowering
2022-08-27 09:15:55 +02:00
Takayuki Maeda
b33c3d6cd6
use smaller span for suggestions
2022-08-27 15:22:08 +09:00
bors
d0e1491ecd
Auto merge of #101074 - JohnTitor:rollup-zwznihq, r=JohnTitor
...
Rollup of 11 pull requests
Successful merges:
- #96240 (Stabilize `const_ptr_offset_from`.)
- #99784 (Make forward compatibility lint deprecated_cfg_attr_crate_type_name deny by default)
- #100811 (Fix wrong compiletest filters on Windows)
- #100924 (Smaller improvements of tidy and the unicode generator)
- #100953 (Update documentation for `write!` and `writeln!`)
- #101018 (rustdoc: omit start/end tags for empty item description blocks)
- #101044 (rustdoc: remove unused CSS for `hidden-by-*-hider`)
- #101046 (rustdoc: remove incorrect CSS selector `.impl-items table td`)
- #101057 (Merge implementations of HIR fn_decl and fn_sig.)
- #101062 (rustdoc: remove empty extern_crates and type="text/javascript" on script)
- #101063 (Merge duplicated CSS rules)
Failed merges:
- #101055 (Use smaller span for suggestions)
r? `@ghost`
`@rustbot` modify labels: rollup
2022-08-27 06:12:17 +00:00