Commit graph

140000 commits

Author SHA1 Message Date
LevitatingLion
d4d7edfdf3 Use pointers to c_char instead of i8 in miri_host_to_target_path
This makes sure that the interface of `miri_host_to_target_path` is compatible with `CStr` for targets where `c_char` is unsigned (such as ARM). This commit changes the signature of `miri_host_to_target_path` in the README and in all test cases.
2023-02-24 04:18:38 +01:00
LevitatingLion
a80f5272c6 Add shim for llvm.arm.hint
This shim is required for `core::hint::spin_loop` on `arm` targets
2023-02-24 02:59:58 +01:00
Oli Scherer
4e0cb32311 Avoid formatting dyn* test as rustftm doesn't understand it yet and just deletes code 2023-02-21 11:36:49 +00:00
Ralf Jung
9005c774d6 silence clippy 2023-02-21 12:28:17 +01:00
Ralf Jung
84f345281e Merge from rustc 2023-02-21 10:49:28 +01:00
Ralf Jung
d46d6bdd65 Preparing for merge from rustc 2023-02-21 10:48:07 +01:00
bors
f715e430aa Auto merge of #107728 - RalfJung:miri-dyn-star, r=RalfJung,oli-obk
Miri: basic dyn* support

As usual I am very unsure about the dynamic dispatch stuff, but it passes even the `Pin<&mut dyn* Trait>` test so that is something.

TBH I think it was a mistake to make `dyn Trait` and `dyn* Trait` part of the same `TyKind` variant. Almost everywhere in Miri this lead to the wrong default behavior, resulting in strange ICEs instead of nice "unimplemented" messages. The two types describe pretty different runtime data layout after all.

Strangely I did not need to do the equivalent of [this diff](https://github.com/rust-lang/rust/pull/106532#discussion_r1087095963) in Miri. Maybe that is because the unsizing logic matches on `ty::Dynamic(.., ty::Dyn)` already? In `unsized_info` I don't think the `target_dyn_kind` can be `DynStar`, since then it wouldn't be unsized!

r? `@oli-obk` Cc `@eholk` (dyn-star) https://github.com/rust-lang/rust/issues/102425
2023-02-21 04:22:23 +00:00
bors
8f55d6025f Auto merge of #108286 - matthiaskrgr:rollup-dwy99rf, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #108241 (Fix handling of reexported macro in doc hidden items)
 - #108254 (Refine error span for trait error into borrowed expression)
 - #108255 (Remove old FIXMEs referring to #19596)
 - #108257 (Remove old FIXME that no longer applies)
 - #108276 (small `opaque_type_origin` cleanup)
 - #108279 (Use named arguments for `{,u}int_impls` macro)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2023-02-20 22:01:48 +00:00
Matthias Krüger
52fa8fe376
Rollup merge of #108241 - GuillaumeGomez:fix-reexported-macro-handling, r=notriddle
Fix handling of reexported macro in doc hidden items

Fixes https://github.com/rust-lang/rust/issues/108231.
Fixes #59368.

r? `@notriddle`
2023-02-20 22:12:17 +01:00
Guillaume Gomez
24b23aa958 Fix handling of reexported macro in doc hidden items 2023-02-20 20:19:21 +01:00
bors
5243ea5c29 Auto merge of #108260 - lnicola:rust-analyzer-2023-02-20, r=lnicola
⬆️ rust-analyzer

r? `@ghost`
2023-02-20 19:04:51 +00:00
Ralf Jung
ad6dd60396 fix Stacked Borrows interaction with dyn* 2023-02-20 15:08:05 +01:00
Ralf Jung
b2f58146b9 basic dyn* support for Miri 2023-02-20 15:08:05 +01:00
Matthias Krüger
1f5c2b1efd
Rollup merge of #108171 - mattjperez:compiler-artifacts-output, r=jyn514
Improve building compiler artifacts output

Fixes #108051

``@Manishearth,`` ``@jyn514`` mentioned you might be interested in these changes to the outputs.
2023-02-20 14:32:54 +01:00
Ralf Jung
d1a2425333 Merge from rustc 2023-02-20 13:36:03 +01:00
Jesus Checa Hidalgo
2f16355486 Add no-fail-fast support to miri, rustfmt and clippy testsuites
This commit adds `--no-fail-fast` flag to each `cargo test`
command in each tool Step trait implementation.

Fixes #108261
2023-02-22 08:29:09 +01:00
Ralf Jung
a52c750732 Preparing for merge from rustc 2023-02-20 13:35:48 +01:00
Laurențiu Nicola
03288ebba3 ⬆️ rust-analyzer 2023-02-20 10:14:12 +02:00
Noah Lev
fbd548acc3 Only include stable lints in rustdoc::all group
Including unstable lints in the lint group produces unintuitive behavior
on stable (see #106289). Meanwhile, if we only included unstable lints
on nightly and not on stable, we could end up with confusing bugs that
were hard to compare across versions of Rust that lacked code changes.

I think that only including stable lints in `rustdoc::all`, no matter
the release channel, is the most intuitive option. Users can then
control unstable lints individually, which is reasonable since they have
to enable the feature gates individually anyway.
2023-02-19 22:05:58 -08:00
bors
7aa413d592 Auto merge of #107921 - cjgillot:codegen-overflow-check, r=tmiasko
Make codegen choose whether to emit overflow checks

ConstProp and DataflowConstProp currently have a specific code path not to propagate constants when they overflow. This is meant to have the correct behaviour when inlining from a crate with overflow checks (like `core`) into a crate compiled without.

This PR shifts the behaviour change to the `Assert(Overflow*)` MIR terminators: if the crate is compiled without overflow checks, just skip emitting the assertions. This is already what happens with `OverflowNeg`.

This allows ConstProp and DataflowConstProp to transform `CheckedBinaryOp(Add, u8::MAX, 1)` into `const (0, true)`, and let codegen ignore the `true`.

 The interpreter is modified to conform to this behaviour.

Fixes #35310
2023-02-19 18:17:26 +00:00
Matthew J Perez
40f012a0ee
Improve building compiler artifacts output 2023-02-19 09:15:56 -05:00
Guillaume Gomez
24d907a7a9
Rollup merge of #108212 - KittyBorgX:master, r=jyn514
Download rustfmt regardless of rustc being set in config.toml

Fixes #81155

cc : https://github.com/rust-lang/rust/issues/108210 for exact error details
2023-02-19 14:47:57 +01:00
Guillaume Gomez
243dcd0083
Rollup merge of #108188 - jyn514:ra-sysroot, r=albertlarsan68
Change src/etc/vscode_settings.json to always treat ./library as the sysroot source

See
https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/False.20error.20report.20for.20.60rust-analyzer.28private-field.29.60 for further discussion; previously this had various bugs.

I tested go-to-definition on:
- `use std::io::Write` in `src/bootstrap/setup.rs`
- `use std::cell::RefCell` in `src/librustdoc/core.rs`
- `use rustc_span::symbol::sym` in `src/librustdoc/core.rs`
- `use std::fmt` in `compiler/rustc_span/src/symbol.rs`
- `Global` in `library/alloc/src/alloc/tests.rs`

The following things still don't work:
- `Global.deallocate` in alloc/tests.rs. This function is under `cfg(not(test))`, so it can't be enabled without disabling RA in `tests.rs` altogether. I think this might be fixable by moving `library/alloc/src/alloc/tests.rs` to `library/alloc/tests/alloc/lib.rs`, so it's in a different crate, but I'd like to avoid blocking this improvement on that change.

cc `@thomcc` `@BoxyUwU` `@spastorino` - you've had issues with RA in the past, does this fix them? Are there any other use cases I should test? You can try these changes out by running `cp src/etc/vscode_settings.json .vscode/settings.json`, or running `x setup` and picking a random profile (it won't overwrite config.toml if it already exists). See https://github.com/rust-lang/rust/pull/108135 for plans to make updating the config easier.

r? `@Veykril`
2023-02-19 14:47:56 +01:00
Guillaume Gomez
bd63edc07a
Rollup merge of #108129 - GuillaumeGomez:correctly-handle-links-starting-with-whitespace, r=petrochenkov
Correctly handle links starting with whitespace

Part of https://github.com/rust-lang/rust/issues/107995.

I just got this issue, wrote a fix and then saw the issue. So here's the PR. ^^'

r? `@petrochenkov`
2023-02-19 14:47:55 +01:00
Guillaume Gomez
49d7ed1dbe
Rollup merge of #107766 - GuillaumeGomez:fix-json-reexports-of-different-items-with-same-name, r=aDotInTheVoid
Fix json reexports of different items with same name

Fixes  #107677.

I renamed `from_item_id*` functions into `id_from_item` instead because it makes more sense now. I also simplified the logic around it a bit so that the `ids` function will now directly pass `&clean::Item` to `id_from_item` and the ID will be consistently generated (it caused an issue when I updated the ID for imports).

So now, the big change of this PR: I changed how imports' ID is generated: it now includes the target item's ID at the end of the ID. It's to prevent two reexported items with the same name (but different types).

r? `@aDotInTheVoid`
2023-02-19 14:47:55 +01:00
Dylan DPC
636679ecd6
Rollup merge of #108146 - notriddle:notriddle/rustdoc-search-reference, r=GuillaumeGomez
rustdoc: hide `reference` methods in search index

They're hidden in the HTML, so it makes no sense in the search engine for `reference::next` or `reference::shrink` to be shown.

https://rust-lang.zulipchat.com/#narrow/stream/122651-general/topic/What.20is.20.60reference.3A.3Ashrink.60.3F
2023-02-19 13:03:42 +05:30
Dylan DPC
4165de40f8
Rollup merge of #107783 - notriddle:notriddle/item-table-ul, r=GuillaumeGomez
rustdoc: simplify DOM for `.item-table`

This switches from using `<div>` to the more semantic `<ul>`, and using class names that rhyme with the classes the search results table uses.
2023-02-19 13:03:41 +05:30
KittyBorgX
cd3d4fcedf Download rustfmt regardless of rustc being set in config.toml 2023-02-19 11:59:01 +05:30
Guillaume Gomez
fd62036caa Correctly handle if a link starts with a whitespace 2023-02-18 23:24:58 +01:00
Camille GILLOT
c1a0f8205c Rename checked_binop_checks_overflow. 2023-02-18 21:35:02 +00:00
bors
610dbcbf8e Auto merge of #2784 - bryangarza:future-sizes-tests, r=RalfJung
Add tests for moving data across await point

This patch adds a few tests to assert the current behavior when passing data across an await point. This will help to test out an upcoming fix for the issue of arguments in async functions growing in size because of the generator upvar that is generated when we desugar the async function.

See https://github.com/rust-lang/rust/issues/62958

Also relates to https://github.com/rust-lang/rust/pull/107500

FYI `@oli-obk` `@pnkfelix`
2023-02-18 20:19:42 +00:00
Ralf Jung
b76b26ee1a fmt 2023-02-18 20:38:08 +01:00
Ralf Jung
036929d86d Merge from rustc 2023-02-18 19:28:51 +01:00
lionelllohcd
5643706ca2 Removed trailing spaces to satisfy lint 2023-02-19 23:51:17 -08:00
lionelllohcd
960ac2e07f [107049] Recognise top level keys in config.toml.example 2023-02-18 23:36:51 -08:00
Ralf Jung
aed3b3f38c Preparing for merge from rustc 2023-02-18 19:28:38 +01:00
Guillaume Gomez
1ae875f0a3 Improve code readability 2023-02-18 18:28:17 +01:00
Guillaume Gomez
3adc081254 Fix bad handling of primitive types 2023-02-18 18:28:17 +01:00
Guillaume Gomez
0541a0c8c3 Allow reexports of items with same name but different types to both appear 2023-02-18 18:13:23 +01:00
bors
53709aedba Auto merge of #108209 - petrochenkov:doclean, r=notriddle
rustdoc: Cleanup doc link extraction
2023-02-18 16:41:55 +00:00
Matthias Krüger
5d5e0b0fae
Rollup merge of #108197 - weihanglo:update-cargo, r=weihanglo
Update cargo

10 commits in 39c13e67a5962466cc7253d41bc1099bbcb224c3..17b3d0de0897e1c6b8ca347bd39f850bb0a5b9f6 2023-02-12 02:01:08 +0000 to 2023-02-17 19:45:09 +0000

- fix: unsupported protocol error on old macos version (rust-lang/cargo#11733)
- Error on invalid alphanumeric token for crates.io (rust-lang/cargo#11600)
- Add clippy lints (rust-lang/cargo#11722)
- chore: Make dependencies alphabetical order (rust-lang/cargo#11719)
- chore: bump mdbook to 0.4.27 (rust-lang/cargo#11716)
- Amend `mdman` tests. (rust-lang/cargo#11715)
- Run CI for macOS on nightly (rust-lang/cargo#11712)
- doc: doc comments and intra-doc links for `core::compiler` (rust-lang/cargo#11711)
- Ensure em dashes are recognizable in markup (rust-lang/cargo#11646)
- Set CARGO_BIN_NAME environment variable also for binary examples (rust-lang/cargo#11705)

r? `@ghost`
2023-02-18 13:26:48 +01:00
Vadim Petrochenkov
97e73eea84 doc links: Filter away autolinks in both rustc and rustdoc 2023-02-18 15:15:57 +04:00
Vadim Petrochenkov
ccdb598d1b rustdoc: Cleanup broken link callbacks 2023-02-18 14:45:01 +04:00
Vadim Petrochenkov
34ba77d260 rustdoc: Do not use Footnotes and HeadingLinks when extracting doc links
they do not add any `Link` events
2023-02-18 13:58:17 +04:00
bors
6d819a4b8f Auto merge of #106476 - keith:ks/add-sanitizer-support-for-modern-ios-platforms, r=badboy
Add sanitizer support for modern iOS platforms

asan and tsan generally support iOS, but that previously wasn't configured in rust. This only adds support for the simulator architectures, and arm64 device architecture, not the older 32 bit architectures.
2023-02-18 05:58:41 +00:00
bors
fabfd1fd93 Auto merge of #99679 - repnop:kernel-address-sanitizer, r=cuviper
Add `kernel-address` sanitizer support for freestanding targets

This PR adds support for KASan (kernel address sanitizer) instrumentation in freestanding targets. I included the minimal set of `x86_64-unknown-none`, `riscv64{imac, gc}-unknown-none-elf`, and `aarch64-unknown-none` but there's likely other targets it can be added to. (`linux_kernel_base.rs`?) KASan uses the address sanitizer attributes but has the `CompileKernel` parameter set to `true` in the pass creation.
2023-02-18 03:05:11 +00:00
bors
a9842c73bc Auto merge of #108112 - nnethercote:clarify-iterator-interners, r=oli-obk,compiler-errors
Clarify iterator interners

I found the iterator interners very confusing. This PR clarifies things.

r? `@compiler-errors`
2023-02-18 00:20:52 +00:00
Weihang Lo
55a7915a8b
Update cargo
10 commits in 39c13e67a5962466cc7253d41bc1099bbcb224c3..17b3d0de0897e1c6b8ca347bd39f850bb0a5b9f6
2023-02-12 02:01:08 +0000 to 2023-02-17 19:45:09 +0000

- fix: unsupported protocol error on old macos version (rust-lang/cargo#11733)
- Error on invalid alphanumeric token for crates.io (rust-lang/cargo#11600)
- Add clippy lints (rust-lang/cargo#11722)
- chore: Make dependencies alphabetical order (rust-lang/cargo#11719)
- chore: bump mdbook to 0.4.27 (rust-lang/cargo#11716)
- Amend `mdman` tests. (rust-lang/cargo#11715)
- Run CI for macOS on nightly (rust-lang/cargo#11712)
- doc: doc comments and intra-doc links for `core::compiler` (rust-lang/cargo#11711)
- Ensure em dashes are recognizable in markup (rust-lang/cargo#11646)
- Set CARGO_BIN_NAME environment variable also for binary examples (rust-lang/cargo#11705)
2023-02-17 23:56:00 +00:00
Joshua Nelson
6209e6c598 Change src/etc/vscode_settings.json to always treat ./library as the sysroot source
See
https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/False.20error.20report.20for.20.60rust-analyzer.28private-field.29.60
for further discussion; previously this had various bugs.

I tested go-to-definition on:
- `use std::io::Write` in `src/bootstrap/setup.rs`
- `use std::cell::RefCell` in `src/librustdoc/core.rs`
- `use rustc_span::symbol::sym` in `src/librustdoc/core.rs`
- `use std::fmt` in `compiler/rustc_span/src/symbol.rs`
- `Global` in `library/alloc/src/alloc/tests.rs`

The following things still don't work:
- `Global.deallocate` in alloc/tests.rs. This function is under
  `cfg(not(test))`, so it can't be enabled without disabling RA in
  `tests.rs` altogether. I think this might be fixable by moving
  `library/alloc/src/alloc/tests.rs` to
  `library/alloc/tests/alloc/lib.rs`, so it's in a different crate, but
  I'd like to avoid blocking this improvement on that change.
2023-02-17 15:18:09 -06:00
Bryan Garza
3fcbd1ccf9 Add tests for moving data across await point
This patch adds a few tests to assert the current behavior when passing
data across an await point. This will help to test out an upcoming fix
for the issue of arguments in async functions growing in size because of
the generator upvar that is generated when we desugar the async
function.

See https://github.com/rust-lang/rust/issues/62958

Also relates to https://github.com/rust-lang/rust/pull/107500

Co-authored-by: Ralf Jung <post@ralfj.de>
2023-02-17 21:15:56 +00:00