Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 9 pull requests #126771

Closed
wants to merge 23 commits into from

Conversation

workingjubilee
Copy link
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

ChrisDenton and others added 23 commits June 14, 2024 16:12
As long as a pidfd is on a child it can be safely reaped. Taking it
would mean the child would now have to be awaited through its pid, but could also
be awaited through the pidfd. This could then suffer from a recycling race.
Add PidFd::{kill, wait, try_wait}

rust-lang#117957 changed `Child` kill/wait/try_wait to use its pidfd instead of the pid, when one is available.
This PR extracts those implementations and makes them available on `PidFd` directly.

The `PidFd` implementations differ significantly from the corresponding `Child` methods:

* the methods can be called after the child has been reaped, which will result in an error but will be safe. This state is not observable in `Child` unless something stole the zombie child
* the `ExitStatus` is not kept, meaning that only the first time a wait succeeds it will be returned
* `wait` does not close stdin
* `wait` only requires `&self` instead of `&mut self` since there is no state to maintain and subsequent calls are safe

Tracking issue: rust-lang#82971
Improve conflict marker recovery

<!--
If this PR is related to an unstable feature or an otherwise tracked effort,
please link to the relevant tracking issue here. If you don't know of a related
tracking issue or there are none, feel free to ignore this.

This PR will get automatically assigned to a reviewer. In case you would like
a specific user to review your work, you can assign it to them by using

    r​? <reviewer name>
-->
closes rust-lang#113826
r? `@estebank` since you reviewed rust-lang#115413
cc: `@rben01` since you opened up the issue in the first place
…, r=ehuss

Add `powerpc-unknown-openbsd` maintaince status

As noted in rust-lang#126451 (comment) `powerpc-unknown-openbsd` is not maintained by the OpenBSD devs. If a maintainer is found this can be updated with their information but we should document the current status and note explicitly that it's different from other OpenBSD targets.
Print the tested value in int_log tests

Tiny change - from the failures in rust-lang#125016, it would have been nice to see what the tested values were. Update the assertion messages.
Expand `avx512_target_feature` to include VEX variants

Added 5 new target features for x86:

 - `AVX-IFMA`
 - `AVX-NE-CONVERT`
 - `AVX-VNNI`
 - `AVX-VNNI_INT8`
 - `AVX-VNNI_INT16`

Both LLVM and GCC already have support for these.

See also the [stdarch PR](rust-lang/stdarch#1586)
…le-temp-dir, r=jieyouxu

Pass target to inaccessible-temp-dir rmake test

This PR circles back to do the target specific changes in `inaccessible-temp-dir` from rust-lang#126355. Specifically, this repairs the test on `riscv64gc-unknown-linux-gnu`. (The failure can be viewed in rust-lang#126641 -> https://github.com/rust-lang/rust/actions/runs/9571149616/job/26387537888?pr=126641)

We removed this change from rust-lang#126355 to avoid a merge conflict with rust-lang#126279. (...and, because I hoped that would fix the test instead, but it did not.)

## Testing

> [!NOTE]
> `riscv64gc-unknown-linux-gnu` is a [**Tier 2 with Host Tools** platform](https://doc.rust-lang.org/beta/rustc/platform-support.html), all tests may not necessarily pass! This PR is specifically about the `inaccessible-temp-dir` rmake test.

You can test out the job locally:

```sh
DEPLOY=1 ./src/ci/docker/run.sh riscv64gc-gnu
```

`DEPLOY=1` helps reproduce the CI's environment and also avoids the chance of a `llvm-c/BitReader.h` error (detailed in rust-lang#85424 and rust-lang#56650).

<details>

<summary>tests/run-make/inaccessible-temp-dir failure</summary>

```bash
---- [run-make] tests/run-make/inaccessible-temp-dir stdout ----
---- [run-make] tests/run-make/inaccessible-temp-dir stdout ----

error: rmake recipe failed to complete
status: exit status: 1
command: cd "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/inaccessible-temp-dir/inaccessible-temp-dir/rmake_out" && env -u RUSTFLAGS AR="riscv64-linux-gnu-ar" CC="riscv64-linux-gnu-gcc" CC_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -fPIC -march=rv64gc -mabi=lp64d" CXX="riscv64-linux-gnu-g++" CXX_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -fPIC -march=rv64gc -mabi=lp64d" HOST_RPATH_DIR="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools-bin:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" LD_LIB_PATH_ENVVAR="LD_LIBRARY_PATH" LLVM_BIN_DIR="/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/bin" LLVM_COMPONENTS="aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils aggressiveinstcombine all all-targets analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter avr avrasmparser avrcodegen avrdesc avrdisassembler avrinfo binaryformat bitreader bitstreamreader bitwriter bpf bpfasmparser bpfcodegen bpfdesc bpfdisassembler bpfinfo cfguard codegen codegentypes core coroutines coverage csky cskyasmparser cskycodegen cskydesc cskydisassembler cskyinfo debuginfobtf debuginfocodeview debuginfodwarf debuginfogsym debuginfologicalview debuginfomsf debuginfopdb demangle dlltooldriver dwarflinker dwarflinkerclassic dwarflinkerparallel dwp engine executionengine extensions filecheck frontenddriver frontendhlsl frontendoffloading frontendopenacc frontendopenmp fuzzercli fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo hipstdpar instcombine instrumentation interfacestub interpreter ipo irprinter irreader jitlink libdriver lineeditor linker loongarch loongarchasmparser loongarchcodegen loongarchdesc loongarchdisassembler loongarchinfo lto m68k m68kasmparser m68kcodegen m68kdesc m68kdisassembler m68kinfo mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts objcopy object objectyaml option orcdebugging orcjit orcshared orctargetprocess passes powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvtargetmca runtimedyld scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target targetparser textapi textapibinaryreader transformutils vectorize webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo webassemblyutils windowsdriver windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info x86targetmca xray" LLVM_FILECHECK="/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" PYTHON="/usr/bin/python3" REMOTE_TEST_CLIENT="/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/remote-test-client" RUSTC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" RUSTC_LINKER="riscv64-linux-gnu-gcc" RUSTDOC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" RUST_BUILD_STAGE="stage2-riscv64gc-unknown-linux-gnu" SOURCE_ROOT="/checkout" TARGET="riscv64gc-unknown-linux-gnu" TARGET_RPATH_DIR="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/riscv64gc-unknown-linux-gnu/lib" TARGET_RPATH_ENV="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/inaccessible-temp-dir/inaccessible-temp-dir/rmake_out:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/inaccessible-temp-dir/inaccessible-temp-dir/rmake"
stdout: none
--- stderr -------------------------------
command unexpectedly succeeded at line 33
Command { cmd: LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/inaccessible-temp-dir/inaccessible-temp-dir/rmake_out:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools-bin:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/inaccessible-temp-dir/inaccessible-temp-dir/rmake_out" "program.rs" "-Ztemps-dir=inaccessible/tmp", stdin: None, drop_bomb: DropBomb { command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc", defused: true, armed_line: 30 } }
output status: `exit status: 0`
=== STDOUT ===

=== STDERR ===
```

</details>
… r=jieyouxu

Migrate `relocation-model`, `error-writing-dependencies` and `crate-name-priority` `run-make` tests to rmake

Part of rust-lang#121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html).

Needs MSVC try-job due to rust-lang#28026, almost guaranteed to fail, but let's see anyways.

try-job: aarch64-gnu
`/* try-job: x86_64-msvc */`
try-job: x86_64-apple-1
try-job: armhf-gnu
try-job: test-various
Properly gate `safe` keyword in pre-expansion

This PR gates `safe` keyword in pre-expansion contexts. Should mitigate the fallout of rust-lang#126755, which is that `safe` is now usable on beta lol.

r? ``@spastorino`` or ``@oli-obk``

cc rust-lang#124482 tracking rust-lang#123743
…fe-blocks, r=compiler-errors

Do not allow safe/unsafe on static and fn items

Fixes rust-lang#126749

r? `@compiler-errors`

Tracking:

- rust-lang#123743
@rustbot rustbot added A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc O-linux Operating system: Linux O-unix Operating system: Unix-like S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jun 21, 2024
@rustbot rustbot added T-libs Relevant to the library team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Jun 21, 2024
@workingjubilee
Copy link
Member Author

@bors r+ rollup=never p=9

@bors
Copy link
Contributor

bors commented Jun 21, 2024

📌 Commit ff05860 has been approved by workingjubilee

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 21, 2024
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-17 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 46)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 49)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 61)
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-17]
---
sccache: Starting the server...
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-17', '--enable-llvm-link-shared', '--set', 'rust.thin-lto-import-instr-limit=10', '--set', 'change-id=99999999', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-17/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.thin-lto-import-instr-limit := 10
configure: change-id            := 99999999
---

---- [ui] tests/ui/rust-2024/safe-outside-extern.rs#ungated stdout ----
diff of stderr:

28 LL | type FnPtr = safe fn(i32, i32) -> i32;
30 
- error: aborting due to 5 previous errors
- error: aborting due to 5 previous errors
+ error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
+   --> $DIR/safe-outside-extern.rs:4:1
+ LL | safe fn foo() {}
+    | ^^^^
+    |
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
32 
+ error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
+   --> $DIR/safe-outside-extern.rs:7:1
+    |
+ LL | safe static FOO: i32 = 1;
+    |
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
+    = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+ 
+ error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
+   --> $DIR/safe-outside-extern.rs:11:5
+ LL |     safe fn foo();
+    |     ^^^^
+    |
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+ 
+ error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
+   --> $DIR/safe-outside-extern.rs:16:5
+ LL |     safe fn foo() {}
+    |     ^^^^
+    |
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+ 
+ error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
+   --> $DIR/safe-outside-extern.rs:20:14
+    |
+ LL | type FnPtr = safe fn(i32, i32) -> i32;
+    |
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
+    = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+ error: aborting due to 10 previous errors
+ 
+ For more information about this error, try `rustc --explain E0658`.
33 
33 


The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rust-2024/safe-outside-extern.ungated/safe-outside-extern.ungated.stderr
To only update this specific test, also pass `--test-args rust-2024/safe-outside-extern.rs`

error in revision `ungated`: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/rust-2024/safe-outside-extern.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--cfg" "ungated" "--check-cfg" "cfg(FALSE,gated,ungated)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rust-2024/safe-outside-extern.ungated" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rust-2024/safe-outside-extern.ungated/auxiliary"
--- stderr -------------------------------
--- stderr -------------------------------
error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:4:1
LL | safe fn foo() {}
   | ^^^^^^^^^^^^^^^^


error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:7:1
LL | safe static FOO: i32 = 1;
   | ^^^^^^^^^^^^^^^^^^^^^^^^^


error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:11:5
LL |     safe fn foo();
   |     ^^^^^^^^^^^^^^


error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:16:5
LL |     safe fn foo() {}
   |     ^^^^^^^^^^^^^^^^


error: function pointers cannot be declared with `safe` safety qualifier
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:20:14
   |
LL | type FnPtr = safe fn(i32, i32) -> i32;


error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:4:1
LL | safe fn foo() {}
   | ^^^^
   |
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:7:1
LL | safe static FOO: i32 = 1;
   | ^^^^
   |
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:11:5
LL |     safe fn foo();
   |     ^^^^
   |
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:16:5
LL |     safe fn foo() {}
   |     ^^^^
   |
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:20:14
   |
LL | type FnPtr = safe fn(i32, i32) -> i32;
   |
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error: aborting due to 10 previous errors

For more information about this error, try `rustc --explain E0658`.
------------------------------------------

@bors
Copy link
Contributor

bors commented Jun 21, 2024

⌛ Testing commit ff05860 with merge 07fef41...

bors added a commit to rust-lang-ci/rust that referenced this pull request Jun 21, 2024
…kingjubilee

Rollup of 9 pull requests

Successful merges:

 - rust-lang#124101 (Add PidFd::{kill, wait, try_wait})
 - rust-lang#126125 (Improve conflict marker recovery)
 - rust-lang#126481 (Add `powerpc-unknown-openbsd` maintaince status)
 - rust-lang#126613 (Print the tested value in int_log tests)
 - rust-lang#126617 (Expand `avx512_target_feature` to include VEX variants)
 - rust-lang#126707 (Pass target to inaccessible-temp-dir rmake test)
 - rust-lang#126712 (Migrate `relocation-model`, `error-writing-dependencies` and `crate-name-priority` `run-make` tests to rmake)
 - rust-lang#126757 (Properly gate `safe` keyword in pre-expansion)
 - rust-lang#126758 (Do not allow safe/unsafe on static and fn items)

r? `@ghost`
`@rustbot` modify labels: rollup
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-18 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)

---- [ui] tests/ui/rust-2024/safe-outside-extern.rs#ungated stdout ----
diff of stderr:

28 LL | type FnPtr = safe fn(i32, i32) -> i32;
30 
- error: aborting due to 5 previous errors
- error: aborting due to 5 previous errors
+ error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
+   --> $DIR/safe-outside-extern.rs:4:1
+ LL | safe fn foo() {}
+    | ^^^^
+    |
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
32 
+ error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
+   --> $DIR/safe-outside-extern.rs:7:1
+    |
+ LL | safe static FOO: i32 = 1;
+    |
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
+    = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+ 
+ error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
+   --> $DIR/safe-outside-extern.rs:11:5
+ LL |     safe fn foo();
+    |     ^^^^
+    |
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+ 
+ error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
+   --> $DIR/safe-outside-extern.rs:16:5
+ LL |     safe fn foo() {}
+    |     ^^^^
+    |
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+ 
+ error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
+   --> $DIR/safe-outside-extern.rs:20:14
+    |
+ LL | type FnPtr = safe fn(i32, i32) -> i32;
+    |
+    = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
+    = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
+    = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
+    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+ error: aborting due to 10 previous errors
+ 
+ For more information about this error, try `rustc --explain E0658`.
33 
33 


The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rust-2024/safe-outside-extern.ungated/safe-outside-extern.ungated.stderr
To only update this specific test, also pass `--test-args rust-2024/safe-outside-extern.rs`

error in revision `ungated`: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/checkout/tests/ui/rust-2024/safe-outside-extern.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1" "--target=x86_64-unknown-linux-gnu" "--cfg" "ungated" "--check-cfg" "cfg(FALSE,gated,ungated)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rust-2024/safe-outside-extern.ungated" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/rust-2024/safe-outside-extern.ungated/auxiliary"
--- stderr -------------------------------
--- stderr -------------------------------
error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:4:1
LL | safe fn foo() {}
   | ^^^^^^^^^^^^^^^^


error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:7:1
LL | safe static FOO: i32 = 1;
   | ^^^^^^^^^^^^^^^^^^^^^^^^^


error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:11:5
LL |     safe fn foo();
   |     ^^^^^^^^^^^^^^


error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:16:5
LL |     safe fn foo() {}
   |     ^^^^^^^^^^^^^^^^


error: function pointers cannot be declared with `safe` safety qualifier
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:20:14
   |
LL | type FnPtr = safe fn(i32, i32) -> i32;


error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:4:1
LL | safe fn foo() {}
   | ^^^^
   |
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:7:1
LL | safe static FOO: i32 = 1;
   | ^^^^
   |
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:11:5
LL |     safe fn foo();
   |     ^^^^
   |
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:16:5
LL |     safe fn foo() {}
   |     ^^^^
   |
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
##[error]  --> /checkout/tests/ui/rust-2024/safe-outside-extern.rs:20:14
   |
LL | type FnPtr = safe fn(i32, i32) -> i32;
   |
   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error: aborting due to 10 previous errors

For more information about this error, try `rustc --explain E0658`.
------------------------------------------

@bors
Copy link
Contributor

bors commented Jun 21, 2024

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jun 21, 2024
@tgross35
Copy link
Contributor

Looks like there might be a race between #126758 and #126757

@workingjubilee
Copy link
Member Author

Pushing errs's through first since it's scheduled for backport.

@workingjubilee workingjubilee deleted the rollup-wjof1kc branch June 21, 2024 03:58
@workingjubilee
Copy link
Member Author

feel a bit silly I didn't check whether this passed CI but 😵‍💫

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc O-linux Operating system: Linux O-unix Operating system: Unix-like rollup A PR which is a rollup S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.