1
Fork 0
Commit graph

260354 commits

Author SHA1 Message Date
bors
ad1d8a8f1e Auto merge of #3707 - adwinwhite:dup, r=RalfJung
Add syscall `dup()` for unix target

Add support for `dup()` and `dup2()`.

Fixes #3454
2024-07-02 19:04:49 +00:00
Ralf Jung
c96bec1860 use let-else to avoid rightwards drift 2024-07-02 21:03:13 +02:00
bors
49ff3909fb Auto merge of #127152 - ChrisDenton:rename, r=onur-ozkan
Bootstrap: Try renaming the file if removing fails

Second attempt at working around https://github.com/rust-lang/rust/issues/127126

If we can't remove the file, then try renaming it. This will leave the destination path free to use.

try-job: x86_64-msvc-ext
2024-07-02 17:53:03 +00:00
Antoni Boucher
fc2eee58d2 Ignore more tests 2024-07-02 13:37:34 -04:00
Antoni Boucher
3e91e162f9 Ignore a stdarch test that will fail until the stdarch version in rustc is updated 2024-07-02 13:33:26 -04:00
Philipp Krones
125c778d6d
Move exported check to check_fn to exit early 2024-07-02 19:30:30 +02:00
Philipp Krones
2da0edbdf1
Honor avoid-breaking-exported-api in needless_pass_by_ref_mut
Until now, the lint only emitted a warning, when breaking public API. Now it
doesn't lint at all when the config value is not set to `false`, bringing it in
line with the other lints using this config value.

Also ensures that this config value is documented in the lint.
2024-07-02 19:30:01 +02:00
Ana Hobden
4b0b97f66d
Give remote-test-client a longer timeout 2024-07-02 10:09:40 -07:00
Antoni Boucher
59de4fa991 Fix type of intrinsics 2024-07-02 12:55:30 -04:00
Antoni Boucher
63d308bd76 Fix broken libgccjit 12 CI 2024-07-02 12:43:41 -04:00
Antoni Boucher
6099d97bcb Fix rebase 2024-07-02 12:40:45 -04:00
Antoni Boucher
05a41b88a9 Merge branch 'master' into sync_from_rust_2024_07_02 2024-07-02 12:40:16 -04:00
Antoni Boucher
ee41c1904a Update to nightly-2024-07-02 2024-07-02 12:33:09 -04:00
Antoni Boucher
4d3d0d492f Fix intrinsic/generic-arithmetic-pass.rs test 2024-07-02 12:28:44 -04:00
Antoni Boucher
cd014cda8c Replace the type of global variables instead of replacing them 2024-07-02 12:28:25 -04:00
Antoni Boucher
606196b0cf Comment libgccjit 12 CI 2024-07-02 12:28:19 -04:00
Guillaume Gomez
2ecab996f8 Fix build failure in cfg-if 2024-07-02 12:27:34 -04:00
Antoni Boucher
bbc765b49b Fix clippy warnings 2024-07-02 12:27:31 -04:00
Antoni Boucher
21b1b11981 WIP: Implement dummy ThinLTO
FIXME: This seems very slow.
==> Not sure anymore: compare with the master branch.
2024-07-02 12:27:25 -04:00
Antoni Boucher
9ca7658817 Fix tests 2024-07-02 12:27:18 -04:00
Antoni Boucher
e8e6663167 Fix provenance intrinsics 2024-07-02 12:25:29 -04:00
Antoni Boucher
0ffcbb0f6e Remove the hack in zext
TODO: make sure this doesn't break something else.
2024-07-02 12:24:47 -04:00
Guillaume Gomez
dd4a546de0 Add explanations for ptr func call argument cast 2024-07-02 12:24:11 -04:00
Guillaume Gomez
527c049584 Fix warnings 2024-07-02 12:24:07 -04:00
Guillaume Gomez
ca654047fb Add missing cast for function_ptr arguments 2024-07-02 12:24:03 -04:00
Guillaume Gomez
30ee7ba862 Add shl and shr missing casts 2024-07-02 12:23:55 -04:00
Guillaume Gomez
684a69b4e6 Update gcc version to 272d0ccced960394fe6ff2b40b01610208cb4940 2024-07-02 12:23:39 -04:00
Guillaume Gomez
068fe5d10a If the type of a global is not the same, we remove the global and replace it with a new one 2024-07-02 12:23:33 -04:00
Guillaume Gomez
a89f17869c Fix stdarch crate add patch 2024-07-02 12:21:28 -04:00
Guillaume Gomez
621e948721 Fix clippy lint 2024-07-02 12:21:25 -04:00
Guillaume Gomez
fd7979d46d Remove usage of -Zno-parallel-llvm 2024-07-02 12:21:16 -04:00
Guillaume Gomez
7615e04f82 Fix usage of get_size for gcc 12 2024-07-02 12:20:47 -04:00
Guillaume Gomez
9b1211db58 Fix casts 2024-07-02 12:20:42 -04:00
Guillaume Gomez
263166894a Update libgccjit version 2024-07-02 12:20:38 -04:00
Guillaume Gomez
580e5ba456 Format code 2024-07-02 12:20:34 -04:00
Guillaume Gomez
f848dbbda5 Fix non-master build 2024-07-02 12:20:30 -04:00
Guillaume Gomez
8e819fbb5c Fix libcore patch 2024-07-02 12:20:25 -04:00
Boxy
8ce8c62f1e add test 2024-07-02 17:07:21 +01:00
Matthias Krüger
6407580aab
Rollup merge of #127243 - BoxyUwU:new_invalid_const_param_ty_test, r=compiler-errors
Add test for adt_const_params

Fixes #84238

r? `@compiler-errors`
2024-07-02 17:47:51 +02:00
Matthias Krüger
a10c231118
Rollup merge of #127230 - hattizai:patch01, r=saethlin
chore: remove duplicate words

remove duplicate words in comments to improve readability.
2024-07-02 17:47:50 +02:00
Matthias Krüger
5f17e5c00f
Rollup merge of #127224 - tgross35:pretty-print-exhaustive, r=RalfJung
Make `FloatTy` checks exhaustive in pretty print

This should prevent the default fallback if we add more float types in the future.
2024-07-02 17:47:50 +02:00
Matthias Krüger
3bf57179f3
Rollup merge of #127212 - rustbot:docs-update, r=ehuss
Update books

## rust-lang/book

2 commits in 45c1a6d69edfd1fc91fb7504cb73958dbd09441e..f1e49bf7a8ea6c31ce016a52b8a4f6e1ffcfbc64
2024-06-25 21:12:15 UTC to 2024-06-20 16:10:32 UTC

- Update ch10-00-generics.md (rust-lang/book#3963)
- infra: ignore Nova configuration directory (rust-lang/book#3962)

## rust-lang/edition-guide

3 commits in cb58c430b4e8054c2cb81d2d4434092c482a93d8..941db8b3df45fd46cd87b50a5c86714b91dcde9c
2024-06-30 19:26:27 UTC to 2024-06-20 18:43:18 UTC

- Add a section for the never type change in e2024 (rust-lang/edition-guide#310)
- Add 2024 unsafe attributes. (rust-lang/edition-guide#308)
- Add 2024 unsafe extern blocks. (rust-lang/edition-guide#309)

## rust-lang/reference

7 commits in 0b805c65804019b0ac8f2fe3117afad82a6069b8..1ae3deebc3ac16e276b6558e01420f8e605def08
2024-06-29 16:59:51 UTC to 2024-06-18 22:16:37 UTC

- Provide an example of `target_family` being multi-valued (rust-lang/reference#1518)
- Remove stubs needed for the link checker. (rust-lang/reference#1517)
- Document new `#[expect]` attribute and `reasons` parameter (RFC 2383) (rust-lang/reference#1237)
- Update recognized tool attributes (rust-lang/reference#1498)
- Add example of 1-ary tuple type (rust-lang/reference#1514)
- underscore-expr: add more examples (rust-lang/reference#1478)
- Remove outdated info about impl Trait in parameters and generics in the same function (rust-lang/reference#1495)

## rust-lang/rust-by-example

4 commits in b1d97bd6113aba732b2091ce093c76f2d05bb8a0..658c6c27cb975b92227936024816986c2d3716fb
2024-06-30 11:58:29 UTC to 2024-06-30 11:52:38 UTC

- Remove awkward match in if_let (rust-lang/rust-by-example#1725)
- Edit grammatical mistake (rust-lang/rust-by-example#1830)
- Update paragraph in src/fn/diverging.md (rust-lang/rust-by-example#1853)
- Fix minor typo in from_into.md (rust-lang/rust-by-example#1854)

## rust-lang/rustc-dev-guide

11 commits in aec82168dd3121289a194b381f56076fc789a4d2..d6e3a32a557db5902e714604def8015d6bb7e0f7
2024-07-01 10:51:26 UTC to 2024-06-18 18:24:17 UTC

- Update new target check-cfg instructions (rust-lang/rustc-dev-guide#2006)
- Add Rust for Linux integration tests documentation (rust-lang/rustc-dev-guide#2004)
- Add docs for building Fuchsia locally and in CI (rust-lang/rustc-dev-guide#1989)
- provide `libstdc++.so.6` through `LD_LIBRARY_PATH` (rust-lang/rustc-dev-guide#1999)
- Document how to run `run-make` tests on Windows (rust-lang/rustc-dev-guide#2002)
- Document `needs-symlink` directive (rust-lang/rustc-dev-guide#2001)
- Rename `wasm32-wasi` to `wasm32-wasip1` (rust-lang/rustc-dev-guide#1678)
- Document inert vs active attributes (rust-lang/rustc-dev-guide#1110)
- Document hard-resetting submodules (rust-lang/rustc-dev-guide#2000)
- Fix note about compiletest header `rustfix-only-machine-applicable` (rust-lang/rustc-dev-guide#1998)
- Mention `RUSTC_ICE=0` to suppress ICE file (rust-lang/rustc-dev-guide#1997)
2024-07-02 17:47:49 +02:00
Matthias Krüger
4d2a04914e
Rollup merge of #127203 - chenyukang:yukang-fix-120074-import, r=Nadrieril
Fix import suggestion error when path segment failed not from starting

Fixes #120074
2024-07-02 17:47:49 +02:00
Matthias Krüger
33b0238586
Rollup merge of #127168 - DianQK:cast-size, r=workingjubilee
Use the aligned size for alloca at args/ret when the pass mode is cast

Fixes #75839. Fixes #121028.

The `load` and `store` instructions in LLVM access the aligned size. For example, `load { i64, i32 }` accesses 16 bytes on x86_64: https://alive2.llvm.org/ce/z/n8CHAp.

BTW, this example is expected to be optimized to immediate UB by Alive2: https://rust.godbolt.org/z/b7xK7hv1c and https://alive2.llvm.org/ce/z/vZDtZH.

r? compiler
2024-07-02 17:47:48 +02:00
Matthias Krüger
836ce13ca9
Rollup merge of #127152 - ChrisDenton:rename, r=onur-ozkan
Bootstrap: Try renaming the file if removing fails

Second attempt at working around https://github.com/rust-lang/rust/issues/127126

If we can't remove the file, then try renaming it. This will leave the destination path free to use.

try-job: x86_64-msvc-ext
2024-07-02 17:47:47 +02:00
Matthias Krüger
36da46ab98
Rollup merge of #127146 - compiler-errors:fast-reject, r=lcnr
Uplift fast rejection to new solver

Self explanatory.

r? lcnr
2024-07-02 17:47:47 +02:00
Matthias Krüger
3cf567e3c0
Rollup merge of #127136 - compiler-errors:coroutine-closure-env-shim, r=oli-obk
Fix `FnMut::call_mut`/`Fn::call` shim for async closures that capture references

I adjusted async closures to be able to implement `Fn` and `FnMut` *even if* they capture references, as long as those references did not need to borrow data from the closure captures themselves. See #125259.

However, when I did this, I didn't actually relax an assertion in the `build_construct_coroutine_by_move_shim` shim code, which builds the `Fn`/`FnMut`/`FnOnce` implementations for async closures. Therefore, if we actually tried to *call* `FnMut`/`Fn` on async closures, it would ICE.

This PR adjusts this assertion to ensure that we only capture immutable references in closures if they implement `Fn`/`FnMut`. It also adds a bunch of tests and makes more of the async-closure tests into `build-pass` since we often care about these tests actually generating the right closure shims and stuff. I think it might be excessive to *always* use build-pass here, but 🤷 it's not that big of a deal.

Fixes #127019
Fixes #127012

r? oli-obk
2024-07-02 17:47:46 +02:00
Matthias Krüger
f8f67b2969
Rollup merge of #126883 - dtolnay:breakvalue, r=fmease
Parenthesize break values containing leading label

The AST pretty printer previously produced invalid syntax in the case of `break` expressions with a value that begins with a loop or block label.

```rust
macro_rules! expr {
    ($e:expr) => {
        $e
    };
}

fn main() {
    loop {
        break expr!('a: loop { break 'a 1; } + 1);
    };
}
```

`rustc -Zunpretty=expanded main.rs `:

```console
#![feature(prelude_import)]
#![no_std]
#[prelude_import]
use ::std::prelude::rust_2015::*;
#[macro_use]
extern crate std;
macro_rules! expr { ($e:expr) => { $e }; }

fn main() { loop { break 'a: loop { break 'a 1; } + 1; }; }
```

The expanded code is not valid Rust syntax. Printing invalid syntax is bad because it blocks `cargo expand` from being able to format the output as Rust syntax using rustfmt.

```console
error: parentheses are required around this expression to avoid confusion with a labeled break expression
 --> <anon>:9:26
  |
9 | fn main() { loop { break 'a: loop { break 'a 1; } + 1; }; }
  |                          ^^^^^^^^^^^^^^^^^^^^^^^^
  |
help: wrap the expression in parentheses
  |
9 | fn main() { loop { break ('a: loop { break 'a 1; }) + 1; }; }
  |                          +                        +
```

This PR updates the AST pretty-printer to insert parentheses around the value of a `break` expression as required to avoid this edge case.
2024-07-02 17:47:45 +02:00
Oneirical
45313a6ca0 rewrite test-harness to rmake 2024-07-02 11:37:59 -04:00
Oneirical
b75dd71ef0 rewrite msvc-opt-minsize to ui test 2024-07-02 11:37:59 -04:00